[RELEASE] Device driver for Stelpro Maestro Thermostat (ZigBee)

Ok, seeing the 'Last Activity' column of the device list looks like it has some recent info.

Configure definitely worked.
Cheers,

Hello, since we are all in lock-down, any chance of revisiting the humidity sensor on the thermostat?

Isolation cheers!!

Phil

1 Like

I (finally!) took the time to update this project. I've added the humidity sensor. You can find the updated code here:

As before, this is untested. Please let me know how it works. From what I can make of Stelpro's code, the way humidity is handled is very much non-standard, but since I've used their code, it should be working.

To test:
1- Update the driver code.
2- In the device's preferences, enable "debug logging".
3- Open up the logs in a new tab/window (to see if any errors pops-up).
4- In the device, click the "configure" button.

If all works, a new humidity state should show up, and in the logs a line that looks like "humidity: ##%" should be visible.

YES!! Merci!

I'll try this tomorrow. I'll let you know how it went.

Hi Philippe, doesn't appear to be functioning. :frowning:

What can I do on my end to facilitate?

SPM2 SPM

Hmmm, strange... So the "Enable debug logging" preference option is checked.

After a refresh or configure command is issued, the device is supposed to respond. The logs should show something like this:

For the humidity value, I would expect something like:

Parse description humidity: 23%
DEVICE HUMIDITY

From your logs, it seems the device doesn't respond.... At all. I've had trouble with devices not responding in the past. Maybe re-paring the device might help?

If that doesn't work, I'll have to get back to the drawing board. I'd suggest then to roll back to the previous version of the driver.

Ok, I will try to remove the device and re-add it. I'll get back with the results.

Cheers,

Sorry. Tried removing and re-adding. No dice. Here are the logs and the device screen shot.

SPM

I'm gonna need a bit more than that. While the log window is open, could you hit "Refresh" on the device? I'd like to see the complete response.

Hi Philippe, couldn't take a screenshot because it was too big, so I copy pasted the text. This is when I hit refresh on the thermostat.

Cheers,

dev:4192020-04-15 10:46:23.467 debugParse returned [:]

dev:4192020-04-15 10:46:23.464 debugDesc Map: [raw:177E1902040A01003001, dni:177E, endpoint:19, cluster:0204, size:0A, attrId:0001, encoding:30, command:01, value:01, clusterInt:516, attrInt:1]

dev:4192020-04-15 10:46:23.458 debugParse description read attr - raw: 177E1902040A01003001, dni: 177E, endpoint: 19, cluster: 0204, size: 0A, attrId: 0001, encoding: 30, command: 01, value: 01

dev:4192020-04-15 10:46:22.163 debugParse returned [:]

dev:4192020-04-15 10:46:22.159 debugDesc Map: [raw:177E1902040A01003001, dni:177E, endpoint:19, cluster:0204, size:0A, attrId:0001, encoding:30, command:01, value:01, clusterInt:516, attrInt:1]

dev:4192020-04-15 10:46:22.154 debugParse description read attr - raw: 177E1902040A01003001, dni: 177E, endpoint: 19, cluster: 0204, size: 0A, attrId: 0001, encoding: 30, command: 01, value: 01

dev:4192020-04-15 10:46:21.437 debugParse returned [:]

dev:4192020-04-15 10:46:21.433 debugDesc Map: [raw:177E1902040A00003000, dni:177E, endpoint:19, cluster:0204, size:0A, attrId:0000, encoding:30, command:01, value:00, clusterInt:516, attrInt:0]

dev:4192020-04-15 10:46:21.428 debugParse description read attr - raw: 177E1902040A00003000, dni: 177E, endpoint: 19, cluster: 0204, size: 0A, attrId: 0000, encoding: 30, command: 01, value: 00

dev:4192020-04-15 10:46:20.094 debugParse returned [:]

dev:4192020-04-15 10:46:20.090 debugDesc Map: [raw:177E1902040A00003000, dni:177E, endpoint:19, cluster:0204, size:0A, attrId:0000, encoding:30, command:01, value:00, clusterInt:516, attrInt:0]

dev:4192020-04-15 10:46:20.085 debugParse description read attr - raw: 177E1902040A00003000, dni: 177E, endpoint: 19, cluster: 0204, size: 0A, attrId: 0000, encoding: 30, command: 01, value: 00

dev:4192020-04-15 10:46:19.428 debugParse returned [:]

dev:4192020-04-15 10:46:19.425 debugDesc Map: [raw:177E1904050C000021AC0D, dni:177E, endpoint:19, cluster:0405, size:0C, attrId:0000, encoding:21, command:01, value:0DAC, clusterInt:1029, attrInt:0]

dev:4192020-04-15 10:46:19.419 debugParse description read attr - raw: 177E1904050C000021AC0D, dni: 177E, endpoint: 19, cluster: 0405, size: 0C, attrId: 0000, encoding: 21, command: 01, value: AC0D

dev:4192020-04-15 10:46:18.123 debugParse returned [:]

dev:4192020-04-15 10:46:18.120 debugDesc Map: [raw:177E1904050C000021AC0D, dni:177E, endpoint:19, cluster:0405, size:0C, attrId:0000, encoding:21, command:01, value:0DAC, clusterInt:1029, attrInt:0]

dev:4192020-04-15 10:46:18.114 debugParse description read attr - raw: 177E1904050C000021AC0D, dni: 177E, endpoint: 19, cluster: 0405, size: 0C, attrId: 0000, encoding: 21, command: 01, value: AC0D

dev:4192020-04-15 10:46:17.408 debugParse returned [name:heatingSetpoint, value:10]

dev:4192020-04-15 10:46:17.404 debuggetTemperature: value 03E8

dev:4192020-04-15 10:46:17.400 debugHEATING SETPOINT

dev:4192020-04-15 10:46:17.397 debugDesc Map: [raw:177E1902010C120029E803, dni:177E, endpoint:19, cluster:0201, size:0C, attrId:0012, encoding:29, command:01, value:03E8, clusterInt:513, attrInt:18]

dev:4192020-04-15 10:46:17.392 debugParse description read attr - raw: 177E1902010C120029E803, dni: 177E, endpoint: 19, cluster: 0201, size: 0C, attrId: 0012, encoding: 29, command: 01, value: E803

dev:4192020-04-15 10:46:16.063 debugParse returned [name:heatingSetpoint, value:10]

dev:4192020-04-15 10:46:16.055 debuggetTemperature: value 03E8

dev:4192020-04-15 10:46:16.047 debugHEATING SETPOINT

dev:4192020-04-15 10:46:16.044 debugDesc Map: [raw:177E1902010C120029E803, dni:177E, endpoint:19, cluster:0201, size:0C, attrId:0012, encoding:29, command:01, value:03E8, clusterInt:513, attrInt:18]

dev:4192020-04-15 10:46:16.039 debugParse description read attr - raw: 177E1902010C120029E803, dni: 177E, endpoint: 19, cluster: 0201, size: 0C, attrId: 0012, encoding: 29, command: 01, value: E803

dev:4192020-04-15 10:46:15.397 debugParse returned [name:thermostatOperatingState, value:idle]

dev:4192020-04-15 10:46:15.393 debugHEAT DEMAND

dev:4192020-04-15 10:46:15.386 debugDesc Map: [raw:177E1902010A08002000, dni:177E, endpoint:19, cluster:0201, size:0A, attrId:0008, encoding:20, command:01, value:00, clusterInt:513, attrInt:8]

dev:4192020-04-15 10:46:15.381 debugParse description read attr - raw: 177E1902010A08002000, dni: 177E, endpoint: 19, cluster: 0201, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00

dev:4192020-04-15 10:46:14.014 debugParse returned [name:thermostatOperatingState, value:idle]

dev:4192020-04-15 10:46:14.010 debugHEAT DEMAND

dev:4192020-04-15 10:46:14.007 debugDesc Map: [raw:177E1902010A08002000, dni:177E, endpoint:19, cluster:0201, size:0A, attrId:0008, encoding:20, command:01, value:00, clusterInt:513, attrInt:8]

dev:4192020-04-15 10:46:14.003 debugParse description read attr - raw: 177E1902010A08002000, dni: 177E, endpoint: 19, cluster: 0201, size: 0A, attrId: 0008, encoding: 20, command: 01, value: 00

dev:4192020-04-15 10:46:13.354 debugParse returned [name:temperature, value:18]

dev:4192020-04-15 10:46:13.351 debuggetTemperature: value 0708

dev:4192020-04-15 10:46:13.330 debugDesc Map: [raw:177E1902010C0000290807, dni:177E, endpoint:19, cluster:0201, size:0C, attrId:0000, encoding:29, command:01, value:0708, clusterInt:513, attrInt:0]

dev:4192020-04-15 10:46:13.325 debugParse description read attr - raw: 177E1902010C0000290807, dni: 177E, endpoint: 19, cluster: 0201, size: 0C, attrId: 0000, encoding: 29, command: 01, value: 0807

dev:4192020-04-15 10:46:13.235 debugrefresh

dev:4192020-04-15 10:46:13.018 debugParse returned [name:temperature, value:18]

dev:4192020-04-15 10:46:13.012 debuggetTemperature: value 0708

dev:4192020-04-15 10:46:13.008 debugDesc Map: [raw:177E1902010A0000290807, dni:177E, endpoint:19, cluster:0201, size:0A, attrId:0000, encoding:29, command:0A, value:0708, clusterInt:513, attrInt:0]

dev:4192020-04-15 10:46:13.002 debugParse description read attr - raw: 177E1902010A0000290807, dni: 177E, endpoint: 19, cluster: 0201, size: 0A, attrId: 0000, encoding: 29, command: 0A, value: 0807

dev:4192020-04-15 10:46:12.047 debugParse returned [name:temperature, value:18]

dev:4192020-04-15 10:46:12.043 debuggetTemperature: value 0708

dev:4192020-04-15 10:46:12.039 debugDesc Map: [raw:177E1902010C0000290807, dni:177E, endpoint:19, cluster:0201, size:0C, attrId:0000, encoding:29, command:01, value:0708, clusterInt:513, attrInt:0]

dev:4192020-04-15 10:46:12.029 debugParse description read attr - raw: 177E1902010C0000290807, dni: 177E, endpoint: 19, cluster: 0201, size: 0C, attrId: 0000, encoding: 29, command: 01, value: 0807

dev:4192020-04-15 10:46:09.997 debugParse returned [:]

dev:4192020-04-15 10:46:09.993 debugDesc Map: [raw:catchall: 0104 0204 19 01 0040 00 177E 00 00 0000 04 01 00, profileId:0104, clusterId:0204, clusterInt:516, sourceEndpoint:19, destinationEndpoint:01, options:0040, messageType:00, dni:177E, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]

dev:4192020-04-15 10:46:09.979 debugParse description catchall: 0104 0204 19 01 0040 00 177E 00 00 0000 04 01 00

dev:4192020-04-15 10:46:09.863 debugrefresh

dev:4192020-04-15 10:46:09.832 infolock valid

dev:4192020-04-15 10:46:09.825 infolock : Yes

Bingo! So the device does respond in the standard way... I'm a bit baffled by Stelpro's Smarthing driver then. Anyways, this is good news.

What is the humidity level reported on the device? Is it 35% by any chance?

YES! It is 35%. :slight_smile:

Great! I have the information I need. I'll update the driver soon, hopefully tonight, but no promises! :stuck_out_tongue:

Awesome.

By the way, had to look up the 0DAC, but I got it now.

Thanks!!

1 Like

I've updated the driver on github (same link as above). Try this new version and let me know if it works.

Sorry Philippe, no dice.

SPm2

I hit configure prior to this as well. I can try removing the device and re-adding again. We'll see if that works.

I'll get back.

Ok, trying to remove and re-add one of the thermostats and now it won't hold on to the hub.

I am able to add the device, but them the thermostat (for whatever reason) turns off it's Zigbee Radio.

I'm going to try to power cycle the thermostat.

Again, just for the record, in case anyone from Stelpro is listening.... I have not had this kind of problem with ANY OTHER DEVICE!!!

Ok, I will power cycle and try again.

Sorry. Tried power cycling, removing and adding. Doesn't seem to want to show the humidity.

:sweat_smile: I think I made a typo on line 94 of the driver:
else if (descMap.cluster == "0405" && descMap.attrId == "0000") {
.cluster should be with a lowercase c.

Hopefully this clears the problem. Fingers crossed.
I've also updated the driver on github.

SPM

BOOM!!!!

We have HUMIDITY!!!!!

YAY!!!

Thank you