I have recently expanded my system with a zigbee bus and 7 Danfoss Ally TRV.
I am using zigbee2mqtt and a tasmotized Sonoff device. The devices all have the same firmware (01.18.0008 01.18).
The achievement so far is that I am able to control temperature of the radiators in a very accurate way (I tried SASWELL devices previously, but they were not as precise as the Danfoss).
I wanted to share how I’ve setup the internal scheduler and the struggles I have faced.
In order to manually and easily control the valves, I am issuing these commands over MQTT:
- set an arbitrary temperature setpoint (as a payload to zigbee2mqtt/DEVICE/set):
{"occupied_heating_setpoint" : 15}
- make sure the TRV is working on a setpoint:
{"programming_operation_mode": "setpoint" }
- to clean previous programming:
{"clear_weekly_schedule": 0 }
- program with a set of time buckets to see where the valve will “land”:
{"weekly_schedule":{"dayofweek":62,"mode":1,"numoftrans":6,"transitions":[{"heatSetpoint":24.5,"transitionTime":0},{"heatSetpoint":25.5,"transitionTime":240},{"heatSetpoint":26.5,"transitionTime":480},{"heatSetpoint":27.5,"transitionTime":720},{"heatSetpoint":28.5,"transitionTime":960},{"heatSetpoint":29.5,"transitionTime":1200}]}}
(the weekly_schedule payload has a bit tricky as I could not find examples, but it is accepted. And 62 is just a bitmask apparently meaning all workdays in the week)
I had time synchronization issues (it took a while to understand) that forced me to unlink/reset and reconnect the TRVs several times because they were not synchronizing to a master clock.
Any idea how this can be solved permanently?
Is there a way to check the time acquired by the device?
Thanks for the feedback.
My source of information have been mostly: