prefixkit Ask an engineerAsk Support RU

Zigbee devices Air quality sensors

EFEKTA EFEKTA_Air_Quality_Station_2c

EFEKTA Air Quality Station, PM0.5, PM1.0, PM2.5, PM4.0, PM10, PM Size, CO2, VOC Index, CH2O, Temperature, Humidity, TFT display 3.2 inches.. Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
EFEKTA
Model
EFEKTA_Air_Quality_Station_2c
Type
Air quality sensors
Power
mains: usually a router that extends the mesh
Firmware updates (OTA)
no

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

What it exposes

FeaturePropertyValuesControl
CO₂co2ppmread only
Pm1pm1µg/m³read only
PM2.5pm25µg/m³read only
Pm4pm4µg/m³read only
Pm10pm10µg/m³read only
Pm sizepm_sizeµmread only
Pm n05pm_n05#/cm³read only
Pm n1pm_n1#/cm³read only
Pm n25pm_n25#/cm³read only
Pm n4pm_n4#/cm³read only
Pm n10pm_n10#/cm³read only
Voc indexvoc_indexVOC Index pointsread only
Nox indexnox_indexNOx Index pointsread only
Formaldehydeformaldehydeppbread only
Temperaturetemperature°Cread only
Humidityhumidity%read only
Illuminanceilluminancelxread only
Report delayreport_delaysec · 6…600settable
Auto brightnessauto_brightness—settable
Night onoff backlightnight_onoff_backlight—settable
Night on backlightnight_on_backlightHr · 0…23settable
Night off backlightnight_off_backlightHr · 0…23settable
Temperature offsettemperature_offset°C · -50…50settable
Humidity offsethumidity_offset% · -50…50settable
Formaldehyde offsetformaldehyde_offsetadc · -100…100settable
Auto clean intervalauto_clean_intervalday · 0…10settable
Manual cleanmanual_clean—settable
Set altitudeset_altitudemeters · 0…3000settable
Forced recalibrationforced_recalibration—settable
Manual forced recalibrationmanual_forced_recalibrationppm · 0…5000settable
Automatic self calibrationautomatic_self_calibration—settable
Factory reset co2factory_reset_co2—settable

MQTT: state and commands

Zigbee2MQTT publishes the device state to zigbee2mqtt/my_device (my_device is the name you give the device). An example message:

{
  "co2": 640,
  "pm1": 0,
  "pm25": 8,
  "pm4": 0,
  "pm10": 0,
  "pm_size": 0,
  "pm_n05": 0,
  "pm_n1": 0,
  "pm_n25": 0,
  "pm_n4": 0,
  "pm_n10": 0,
  "voc_index": 0,
  "nox_index": 0,
  "formaldehyde": 0,
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"auto_brightness":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"night_onoff_backlight":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"manual_clean":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"forced_recalibration":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"automatic_self_calibration":true}'

Watch the topics live from the browser: MQTT client.

Home Assistant automation example

Zigbee2MQTT creates Home Assistant entities from the device name. If it is called my_device, an automation in automations.yaml can look like this:

- alias: "Room too warm"
  mode: single
  triggers:
    - trigger: numeric_state
      entity_id: sensor.my_device_temperature
      above: 26
      for: "00:10:00"
  actions:
    - action: notify.notify
      data:
        message: "Temperature above 26 °C"

Check the YAML: YAML checker.

How to pair it

  1. In Zigbee2MQTT click Permit join.
  2. Put the device in pairing mode: usually a long press of the reset button (5–10 s) until the LED blinks; bulbs: switch the power off and on 5–6 times.
  3. Keep the device close to the coordinator or a router while pairing.
  4. Give it a clear name: MQTT topics and Home Assistant entities are built from it.

Exact procedure and model notes: the device page in the Zigbee2MQTT docs. No coordinator yet: coordinator picker.

Similar devices

Idea?