Been using the Stelpro Maestro stats for a few years.
Looking to migrate them to OH with their zigbee functionality but don’t seem to have all the channels necessary to change the setpoint.
Reason for the migration is we are not super happy with the Stelpro app. Also looking to get some Sinope Zigbee tstats.
Saw @chris mention a couple years ago that the setpoint functions were not implemented in the binding at that time but the posts seem to imply that is has been since then.
Currently running OH 3.0.2 on a raspberri pi 4.
3.0.2 of the Openhab Zigbee binding.
Using a HUSBZB-1 USB stick for Zigbee and ZWave.
(ZigBee Ember EM35x Coordinator)
Looked into installing a newer snapshot, if there is one, but still new to this and wasn’t able to find one.
Some screenshots for info. I’m sure there may be some logs I can enable that may help.
My main suspicion is an improper Zigbee implementation by Stelpro.
Setpoints should be available, but it may depend on exactly what the device implements. I’ve tested this on a few different devices - it was initially implemented for Hilton and tested on 3 different thermostats they were using in their hotels, but sometimes manufacturers do something different
Can you provide the XML file for this device (in the userdata/zigbee folder) and I’ll take a look. That won’t give me the full story, but it will give me some indicators and we can take it from there.
At the top level, this looks like a pretty standard device so I would have expected it to present the thermostat channels.
Can you please log on to the openhab command line and run the following command -:
zigbee fingerprint 36892
Let’s see what that shows.
The next thing we’ll probably try is to get a debug log during initialisation - so enabling debug logging as per the binding docs, then setting the parameter to reinitialise the device in the devices config, and see what that shows.
One other question:
When using the Stelpro app it provides power consumption in kWh.
Their literature states this is only available through the app, not zigbee.
Does what you see corroborate this?
I think eventually I’ll run all the heating circuits in my panel through a current transformer to log power consumption for heating so the function is nice but not required.
Ok, your version might be a bit too old to have this included unfortunately
Probably… There is no electrical measurement cluster showing, so that’s likely to be the case. That said - if it doesn’t read the data through Zigbee, then I don’t know how it gets that information. So, it might be that it is there somewhere, but it’s a non-standard feature that only the manufacturer knows how to read.
I can try to figure out installation of a newer version if the fingerprint command will help.
When not using a generic Zigbee hub the Stelpro Maestro system uses one master thermostat as a hub that connects to the internet via wifi. Must have proprietary communication that the master hub handles.
The app communicates with their servers. One reason why I’d like to migrate to zigbee via openhab.
Thanks for the help so far. I’ll report back when I get the fingerprint info.
Having issues with updating OH to 3.2.0 where all my bindings disappear and no bindings can be reinstalled. The console commands seem to work fine so here are those results.
Working on the upgrade issue. Backed up first so nothing lost.
openhab> zigbee attsupported 36892/25 0x201
Supported attributes for server cluster Thermostat (0201)
AttrId Data Type Name
0 SIGNED_16_BIT_INTEGER Local Temperature
1 SIGNED_16_BIT_INTEGER Outdoor Temperature
2 BITMAP_8_BIT Occupancy
3 SIGNED_16_BIT_INTEGER Abs Min Heat Setpoint Limit
4 SIGNED_16_BIT_INTEGER Abs Max Heat Setpoint Limit
5 SIGNED_16_BIT_INTEGER Abs Min Cool Setpoint Limit
6 SIGNED_16_BIT_INTEGER Abs Max Cool Setpoint Limit
8 UNSIGNED_8_BIT_INTEGER Pi Heating Demand
9 BITMAP_8_BIT Hvac System Type Configuration
65533
cmdsupported looks promising
openhab> zigbee cmdsupported 36892/25 0x201
Supported generated commands for server cluster Thermostat (0201)
CommandId Command
Supported received commands for server cluster Thermostat (0201)
CommandId Command
0 SetpointRaiseLowerCommand
openhab> zigbee read 36892/25 0x201 0x11 0x12 0x13 0x14
Reading endpoint 901C/25, cluster server cluster Thermostat (0201), attributes Occupied Cooling Setpoint, Occupied Heating Setpoint, Unoccupied Cooling Setpoint, Unoccupied Heating Setpoint
Response for cluster 0x0201
Attribute 17, type SIGNED_16_BIT_INTEGER, value: 3500
Attribute 18, type SIGNED_16_BIT_INTEGER, value: 2100
Attribute 19, type SIGNED_16_BIT_INTEGER, value: 4000
Attribute 20, type SIGNED_16_BIT_INTEGER, value: 1700
Thanks. So I think this explains what’s wrong. In the above, the device does not report that it supports the attributes for setting the setpoints - but it does support these as we can read them back.,
The binding does pretty much what you did above - first it reads the list of supported attributes. If that returns a successful list, then it checks to see if the setpoints are supported. Since this command to read the attributes is not supported by all devices, if this request fails, then the binding will attempt to read back the attribute to see if it gets a response.
The reason the binding works this way is getting the supported attributes list is a lot more efficient during initialisation, however it of course requires the device to report this correctly, and it seems this one doesn’t. I might change this around - live with the inefficiency for these channels at least and improve the robustness.
Do you have debug logging enabled - or can you enable it please. Then do this attsupported request again so I can check the low level response(s) that are returned. The list of debugging I need is in the binding docs. I just want to be 100% sure that this is a problem with the device and not the way the binding is requesting this data.
This should be ok so I’m not sure why nothing is being logged.
I also think this is most likely as there has been a lot of testing on this and IIRC it was formally tested as part of a product we had Zigbee certified early last year. I would be keen to see the logs if possible as it would be nice to understand the issue and confirm why this is happening, but it’s not the end of the world.
I’ve now merged the above change, so if you can get the latest binding installed and working it will hopefully resolve the issue. Dependencies need to be updated, so I’m just going to update the binding to create a KAR file which includes everything you need in one place and you should be able to uninstall the old binding, and drop this directly in the addons.
The last build of the ZigBee binding is now at the link below. This is a KAR file, so you should just have to drop this into your addons folder - it includes all the zigbee dependencies as well as the binding itself.
Took a while to figure out how to upgrade without seemingly breaking OH.
Got it done, installed that snapshot, and all the channels show up. On the same day the Zigbee Sinope stats arrived.
Thank you very much for sorting this issue out. I appreciate it very much.
Hi Chris,
Thank you for your help figuring out this thermostat.
I have never added “addons” manually before. Any suggestion on how to proceed, besides copying the .kar into the addons folder?
(my addons folder already contains openhab-addons-3.1.0.kar, I assume I leave that there?
Im using openhabian, OH3, on a Rpi4.
Sorry for the naive question. I am not familiar with the dev environment of OpenHab.
Hmmm - I’m not sure what will happen in this case. Do your really need to have the full addons loaded? You may need to ensure that there is no other zigbee binding loaded using the console - log on to the console and use the list command to list all the loaded/running bundles, then uninstall them (with uninstall followed by the bundle ID).
You might simply be able to uninstall the zigbee binding through the UI - I’m not 100% sure if this works though given you have the addons kar file loaded in this way.
Once you’ve uninstalled the current binding, then yes, just drop the new KAR into the addons folder and it should install and run.