Skip to content

Commit e92b434

Browse files
feat(add): EFEKTA_Air_Quality_Station (#8726)
Co-authored-by: Koen Kanters <[email protected]>
1 parent 80c08ec commit e92b434

File tree

1 file changed

+228
-0
lines changed

1 file changed

+228
-0
lines changed

src/devices/efekta.ts

+228
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,234 @@ const definitions: DefinitionWithExtend[] = [
750750
}),
751751
],
752752
},
753+
{
754+
zigbeeModel: ['EFEKTA_Air_Quality_Station'],
755+
model: 'EFEKTA_Air_Quality_Station',
756+
vendor: 'EFEKTA',
757+
description: 'Air quality station',
758+
extend: [
759+
m.co2({
760+
reporting: false,
761+
access: 'STATE',
762+
}),
763+
m.numeric({
764+
name: 'pm1',
765+
unit: 'µg/m³',
766+
cluster: 'pm25Measurement',
767+
attribute: {ID: 0x0601, type: Zcl.DataType.SINGLE_PREC},
768+
description: 'Measured PM1.0 (particulate matter) concentration',
769+
access: 'STATE',
770+
reporting: false,
771+
precision: 1,
772+
}),
773+
m.pm25({
774+
reporting: false,
775+
access: 'STATE',
776+
description: 'Measured PM2.5 (particulate matter) concentration',
777+
precision: 1,
778+
}),
779+
m.numeric({
780+
name: 'pm4',
781+
unit: 'µg/m³',
782+
cluster: 'pm25Measurement',
783+
attribute: {ID: 0x0605, type: Zcl.DataType.SINGLE_PREC},
784+
description: 'Measured PM4.0 (particulate matter) concentration',
785+
access: 'STATE',
786+
reporting: false,
787+
precision: 1,
788+
}),
789+
m.numeric({
790+
name: 'pm10',
791+
unit: 'µg/m³',
792+
cluster: 'pm25Measurement',
793+
attribute: {ID: 0x0602, type: Zcl.DataType.SINGLE_PREC},
794+
description: 'Measured PM10.0 (particulate matter) concentration',
795+
access: 'STATE',
796+
reporting: false,
797+
precision: 1,
798+
}),
799+
m.numeric({
800+
name: 'pm_size',
801+
unit: 'µm',
802+
cluster: 'pm25Measurement',
803+
attribute: {ID: 0x0603, type: Zcl.DataType.SINGLE_PREC},
804+
description: 'Typical Particle Size',
805+
access: 'STATE',
806+
reporting: false,
807+
precision: 2,
808+
}),
809+
m.numeric({
810+
name: 'aqi_25_index',
811+
unit: 'PM2.5 Index',
812+
cluster: 'pm25Measurement',
813+
attribute: {ID: 0x0604, type: Zcl.DataType.SINGLE_PREC},
814+
description: 'PM 2.5 INDEX',
815+
access: 'STATE',
816+
reporting: false,
817+
}),
818+
m.numeric({
819+
name: 'voc_index',
820+
unit: 'VOC Index points',
821+
cluster: 'genAnalogInput',
822+
attribute: 'presentValue',
823+
description: 'VOC index',
824+
access: 'STATE',
825+
reporting: false,
826+
}),
827+
m.temperature({
828+
description: 'Measured value of the built-in temperature sensor',
829+
reporting: false,
830+
access: 'STATE',
831+
}),
832+
m.humidity({
833+
description: 'Measured value of the built-in humidity sensor',
834+
reporting: false,
835+
access: 'STATE',
836+
}),
837+
m.illuminance({
838+
access: 'STATE',
839+
reporting: false,
840+
}),
841+
m.numeric({
842+
name: 'report_delay',
843+
unit: 'sec',
844+
valueMin: 6,
845+
valueMax: 600,
846+
cluster: 'pm25Measurement',
847+
attribute: {ID: 0x0201, type: Zcl.DataType.UINT16},
848+
description: 'Setting the sensor report delay. Setting the time in seconds (6-600), by default 15 seconds',
849+
access: 'STATE_SET',
850+
}),
851+
m.binary({
852+
name: 'auto_brightness',
853+
valueOn: ['ON', 1],
854+
valueOff: ['OFF', 0],
855+
cluster: 'msIlluminanceMeasurement',
856+
attribute: {ID: 0x0203, type: Zcl.DataType.BOOLEAN},
857+
description: 'Enable or Disable Auto Brightness of the Display',
858+
access: 'STATE_SET',
859+
}),
860+
m.binary({
861+
name: 'night_onoff_backlight',
862+
valueOn: ['ON', 1],
863+
valueOff: ['OFF', 0],
864+
cluster: 'msIlluminanceMeasurement',
865+
attribute: {ID: 0x0401, type: Zcl.DataType.BOOLEAN},
866+
description: 'Complete shutdown of the backlight at night mode',
867+
access: 'STATE_SET',
868+
}),
869+
m.numeric({
870+
name: 'night_on_backlight',
871+
unit: 'Hr',
872+
valueMin: 0,
873+
valueMax: 23,
874+
cluster: 'msIlluminanceMeasurement',
875+
attribute: {ID: 0x0405, type: Zcl.DataType.UINT8},
876+
description: 'Night mode activation time',
877+
access: 'STATE_SET',
878+
}),
879+
m.numeric({
880+
name: 'night_off_backlight',
881+
unit: 'Hr',
882+
valueMin: 0,
883+
valueMax: 23,
884+
cluster: 'msIlluminanceMeasurement',
885+
attribute: {ID: 0x0406, type: Zcl.DataType.UINT8},
886+
description: 'Night mode activation time',
887+
access: 'STATE_SET',
888+
}),
889+
m.numeric({
890+
name: 'temperature_offset',
891+
unit: '°C',
892+
valueMin: -50,
893+
valueMax: 50,
894+
valueStep: 0.1,
895+
scale: 10,
896+
cluster: 'msTemperatureMeasurement',
897+
attribute: {ID: 0x0210, type: Zcl.DataType.INT16},
898+
description: 'Adjust temperature',
899+
access: 'STATE_SET',
900+
}),
901+
m.numeric({
902+
name: 'humidity_offset',
903+
unit: '%',
904+
valueMin: -50,
905+
valueMax: 50,
906+
valueStep: 1,
907+
cluster: 'msRelativeHumidity',
908+
attribute: {ID: 0x0210, type: Zcl.DataType.INT16},
909+
description: 'Adjust humidity',
910+
access: 'STATE_SET',
911+
}),
912+
m.numeric({
913+
name: 'auto_clean_interval',
914+
unit: 'day',
915+
valueMin: 0,
916+
valueMax: 10,
917+
valueStep: 1,
918+
cluster: 'pm25Measurement',
919+
attribute: {ID: 0x0330, type: Zcl.DataType.UINT8},
920+
description: 'Auto clean interval PM2.5 sensor',
921+
access: 'STATE_SET',
922+
}),
923+
m.binary({
924+
name: 'manual_clean',
925+
valueOn: ['ON', 1],
926+
valueOff: ['OFF', 0],
927+
cluster: 'pm25Measurement',
928+
attribute: {ID: 0x0331, type: Zcl.DataType.BOOLEAN},
929+
description: 'Manual clean PM2.5 sensor',
930+
access: 'STATE_SET',
931+
}),
932+
m.numeric({
933+
name: 'set_altitude',
934+
unit: 'meters',
935+
valueMin: 0,
936+
valueMax: 3000,
937+
cluster: 'msCO2',
938+
attribute: {ID: 0x0205, type: Zcl.DataType.UINT16},
939+
description: 'Setting the altitude above sea level (for high accuracy of the CO2 sensor)',
940+
access: 'STATE_SET',
941+
}),
942+
m.binary({
943+
name: 'forced_recalibration',
944+
valueOn: ['ON', 1],
945+
valueOff: ['OFF', 0],
946+
cluster: 'msCO2',
947+
attribute: {ID: 0x0202, type: Zcl.DataType.BOOLEAN},
948+
description: 'Start FRC (Perform Forced Recalibration of the CO2 Sensor)',
949+
access: 'STATE_SET',
950+
}),
951+
m.numeric({
952+
name: 'manual_forced_recalibration',
953+
unit: 'ppm',
954+
valueMin: 0,
955+
valueMax: 5000,
956+
cluster: 'msCO2',
957+
attribute: {ID: 0x0207, type: Zcl.DataType.UINT16},
958+
description: 'Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)',
959+
access: 'STATE_SET',
960+
}),
961+
m.binary({
962+
name: 'automatic_self_calibration',
963+
valueOn: ['ON', 1],
964+
valueOff: ['OFF', 0],
965+
cluster: 'msCO2',
966+
attribute: {ID: 0x0402, type: Zcl.DataType.BOOLEAN},
967+
description: 'Automatic self calibration',
968+
access: 'STATE_SET',
969+
}),
970+
m.binary({
971+
name: 'factory_reset_co2',
972+
valueOn: ['ON', 1],
973+
valueOff: ['OFF', 0],
974+
cluster: 'msCO2',
975+
attribute: {ID: 0x0206, type: Zcl.DataType.BOOLEAN},
976+
description: 'Factory Reset CO2 sensor',
977+
access: 'STATE_SET',
978+
}),
979+
],
980+
},
753981
];
754982

755983
export default definitions;

0 commit comments

Comments
 (0)