prefixkit Ask an engineerAsk Support RU

Zigbee devices Thermostats and radiator valves

Popp 701721

Smart thermostat. Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
Popp
Model
701721
Type
Thermostats and radiator valves
Power
battery: an end device, does not extend the mesh
Firmware updates (OTA)
yes, through Zigbee2MQTT

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
System status codesystem_status_code—read only
Climatelocal_temperature, occupied_heating_setpoint, system_mode, pi_heating_demand, running_stateroom temperature, heating setpoint, mode, pi_heating_demand, running statesettable
Max heat setpoint limitmax_heat_setpoint_limit°C · 5…35settable
Min heat setpoint limitmin_heat_setpoint_limit°C · 5…35settable
Programming operation modeprogramming_operation_modesetpoint, schedule, schedule_with_preheat, ecosettable
Occupied heating setpoint scheduledoccupied_heating_setpoint_scheduled°C · 5…35settable
Abs max heat setpoint limitabs_max_heat_setpoint_limit°Cread only
Abs min heat setpoint limitabs_min_heat_setpoint_limit°Cread only
Heating system modeheating_system_modeauto_system, boiler_heating, default_heatingsettable
Batterybattery% · 0…100read only
Keypad lockoutkeypad_lockoutunlock, locksettable
Mounted mode activemounted_mode_active—read only
Mounted mode controlmounted_mode_control—settable
Thermostat orientationthermostat_orientation—settable
Viewing directionviewing_direction—settable
Heat availableheat_available—settable
Heat requiredheat_required—read only
Setpoint change sourcesetpoint_change_sourcemanual, schedule, externallyread only
External measured room sensorexternal_measured_room_sensor-8000…3500settable
Radiator coveredradiator_covered—settable
Window open featurewindow_open_feature—settable
Window open internalwindow_open_internalquarantine, closed, hold, open, external_openread only
Window open externalwindow_open_external—settable
Day of weekday_of_weeksunday, monday, tuesday, wednesday, thursday, friday, saturday, away_or_vacationsettable
Trigger timetrigger_time—settable
Algorithm scale factoralgorithm_scale_factor1…10settable
Load balancing enableload_balancing_enable—settable
Load room meanload_room_mean-8000…3600settable
Load estimateload_estimate-8000…3600read only
Preheat statuspreheat_status—read only
Preheat timepreheat_time—read only
Adaptation run statusadaptation_run_statusnone, in_progress, found, lost, lost_in_progressread only
Adaptation run settingsadaptation_run_settings—settable
Adaptation run controladaptation_run_controlidle, initiate_adaptation, cancel_adaptationsettable
Regulation setpoint offsetregulation_setpoint_offset°C · -2.5…2.5settable

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:

{
  "local_temperature": 20.5,
  "occupied_heating_setpoint": 21,
  "system_mode": "heat",
  "max_heat_setpoint_limit": 20,
  "min_heat_setpoint_limit": 20,
  "programming_operation_mode": "setpoint",
  "occupied_heating_setpoint_scheduled": 20,
  "abs_max_heat_setpoint_limit": 0,
  "abs_min_heat_setpoint_limit": 0,
  "heating_system_mode": "auto_system",
  "battery": 87,
  "keypad_lockout": "unlock",
  "mounted_mode_active": false,
  "mounted_mode_control": false,
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"occupied_heating_setpoint":21.5}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"system_mode":"heat"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"programming_operation_mode":"schedule"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"heating_system_mode":"boiler_heating"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"keypad_lockout":"lock"}'

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: "Cooler at night"
  mode: single
  triggers:
    - trigger: time
      at: "23:00:00"
  actions:
    - action: climate.set_temperature
      target:
        entity_id: climate.my_device
      data:
        temperature: 18

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?