OZW (Beta) Polling Help

Tags: #<Tag:0x00007f739ba4a4a0>

Hope you are all doing well! I was hoping I could get some assistance regarding the new OZW polling config. I recently switched from using my hubitat as “Z” bridge hub and installed Nortek Z-Wave/Zigbee USB stick directly to my supervised machine. Aside from some connectivity issues, everything is fine, if not better than before (huge drop in latency!). With that said, I have two radio thermostats that I would like to poll maybe every 2 minutes or so, for the purposes of humidity, temperature, and operating state metrics. I have looked at the documentation but Im incredibly lost and confused. Looking through mqtt-explorer, the value ids are buried deep in subsections so thats going to be a pain. But the biggest issue I need help with is even formatting the command. I have literally no clue what to do at the point. Any assistance would be greatly appreciated! I will try to get screenshots so I can show the mess.

Thermostats shouldn’t require polling as they are supposed to report any change in state automatically. The problem is that some won’t do this by default and will require setting a configuration register using ozw-admin. If you have a Z-wave thermostat that gets power via the 24VAC furnace wiring, but included it on the network using the batteries, it may configure itself in manner to conserve battery life which would include not sending automatic reports.

Which thermostat make and model do you have?

But to answer how to enable the polling, here is a shell script to do it with the mosquitto-clients command line tools.

#!/bin/bash

if [ -z "$MQTT_SERVER" ] ;then
        MQTT_SERVER="127.0.0.1"
fi

### An Intensity of 10 results in a poll every minute

for value_id in [email protected] ; do
        payload='{"ValueIDKey": '$value_id', "Intensity": 10}'
        mosquitto_pub -h $MQTT_SERVER -t "OpenZWave/1/command/enablepoll/" -m "$payload"
done

On my thermostat the temperature in the commandclass/48 tree and Operating State is under the commandclass/66 tree. I don’t have to poll, however.

Hello! Really appreciate the detailed response! College is definitely kicking my rear so I dont have as much time to play around with HA. So the thermostats are Radio thermostats, specifically a CT101, and a CT100. The CT101 is branded as a Radio thermostat, and the CT100 is branded as a Vivint model. Oddly, OZW identifies the CT100 in its database and the CT101 is unknown. The parameters appear to be detected so that is not bothering me. I paired the devices while batteries were installed and the C wire is connected, so Im not sure which energy mode it operates in. Regardless, I monitored the status of the CT101 in realtime and the fan status does change when it kicks on to cooling. However, the status does not, it remains on idle until the device is polled. Same thing goes for the CT100 thermostat. I suppose I should wait and maybe figure out device variables and contribute to the project or use polling as a temporary stopgap.

It sounds like none of the CT thermostats update the operating state reliably. I have a CT32 with the same problem, it only updates the operating state when manually adjusted on the thermostat. When heating or cooling starts due to the current temperate and the setpoints, I get no updates.

Searching Google you’ll find numerous reports of the same issue.

If you look at the SmartThings or Hubitat device handlers you’ll see they all enable polling and refresh the operating state very often.

So unfortunately I don’t think you’ll have any alternative to polling, or doing manual refreshes.

Here’s a bash script which both retrieves the value_id and sets the poll intensity for Eurotronic StellaZ TRV air temperature readings.

It is easily adaptable to other devices if you override the command class.

Edit: apologies for the lame bit of python in there simply to query the json response…

1 Like