Send SensorMultilevel unsolicited from controller

Discussions about Z-Way software and Z-Wave technology in general
User avatar
PoltoS
Posts: 7565
Joined: 26 Jan 2011 19:36

Re: Send SensorMultilevel unsolicited from controller

Post by PoltoS »

Pitty to hear this. Would it be possible to know what have you used in your installation? Interesting to know what leads to those crashes.
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

What I have for now is mqtt to event emitter interface and virtual device module that reads value from mqtt (or any other source that can handle EE events). Just finished first draft, in the next days will try to make it send z-wave commands.

It would be really helpful, if you explain your zway.SendData(SpiritID, [0x31, 0x03, 0x01, 0x02, 0x00, 0xC1]). It was partially described above, but digging for a lot of doc to understand it would take a lot of time.

P.S. I decided to go mqtt2ee way to spread the logic between modules and write better event handler to improve MQTT interface which I use a lot. There will be another module that would make it possible. It is almost ready (still have to clue it to mqtt2ee for incoming messages and add unsubscribe logic to client that we all use now)

Image
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

BTW, I can go by another route and make a pure virtual device that can replicate the value using ValueOverTaker, for instance, and send corresponding commands. For my personal task I can give it mqtt visibility with my own mqtt module and achieve the same result (current module doesn't allow to modify sensorMultivalue which is correct for real devices but can be omitted for the virtual one). That way we will get a virtual device with virtual "associations" using unsolicited updates. This is the only logical way I see now.

P.S. Checked ValueOverTaker. It doesn't do sensorMultilevel. So we need to choose which device to replicate when creating our device. That's easy.
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

Here is the code: https://github.com/alex-parkhomenko/SensorMirrorExt

A virtual device that completely mirrors a sensorMultilevel. Need to choose the device when adding.

The code is very basic. The only thing that I still need to do is to add zwave.send with proper parameters and add corresponding UI
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

Tried to send spirits reports from controller. Report sent, acknowledged, but nothing happens.
Returned to direct thermostat associations for now.

Here is code, took parameters from my termostat reports to controller.

0x31 is the command class
0x05 is the report
0x01 is the response (?)
0x22 is the bytemask. That the main question, quick look at Sigma code didn't give me a clue
byteH/L is the reported temperature, accordingly

Code: Select all

zway.SendData(46, [0x31, 0x05, 0x01, 0x22, byteH, byteL])
zway.SendData(47, [0x31, 0x05, 0x01, 0x22, byteH, byteL])
zway.SendData(53, [0x31, 0x05, 0x01, 0x22, byteH, byteL])
Here is the log

Code: Select all

[2018-12-13 11:28:07.568] [I] [core] Notification: device-info (device-status): {"dev":"Bedroom Temp Mirror","l":"24.4 °C","location":4}
[2018-12-13 11:28:07.613] [I] [core] [SME] 2440 9 88
[2018-12-13 11:28:07.614] [I] [zway] Adding job: SensorMultilevel
[2018-12-13 11:28:07.614] [I] [zway] Adding job: SensorMultilevel
[2018-12-13 11:28:07.614] [I] [zway] Adding job: SensorMultilevel
[2018-12-13 11:28:07.624] [D] [zway] SENDING (cb 0xec): ( 01 0D 00 13 2E 06 31 05 01 22 09 88 05 EC B6 )
[2018-12-13 11:28:07.627] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:07.630] [D] [zway] RECEIVED: ( 01 04 01 13 01 E8 )
[2018-12-13 11:28:07.630] [D] [zway] SENT ACK
[2018-12-13 11:28:07.631] [D] [zway] Delivered to Z-Wave stack
[2018-12-13 11:28:07.679] [I] [core] [BaseModule-17] Set lastLevel to 24.4 for ZWayVDev_zway_43-0-49-1 (was 24.5)
[2018-12-13 11:28:07.738] [I] [core] [BaseModule-17] Set lastLevel to 24.4 for SensorMirrorExt_12 (was 24.5)
[2018-12-13 11:28:07.802] [I] [core] [MLS] recieved wifi/sensorMultilevel/bedroom-temp 24.4
[2018-12-13 11:28:07.804] [I] [core] Notification: device-info (device-status): {"dev":"Ext Bedroom Temp","l":"24.4 °C","location":""}
[2018-12-13 11:28:07.855] [I] [core] [BaseModule-17] Set lastLevel to 24.4 for mqtt_sensorMultilevel_10 (was 24.5)
[2018-12-13 11:28:09.249] [D] [zway] RECEIVED: ( 01 18 00 13 EC 00 00 A1 02 C6 7F 7F 7F 7F 00 01 03 15 02 00 00 02 02 02 2E 44 )
[2018-12-13 11:28:09.249] [D] [zway] SENT ACK
[2018-12-13 11:28:09.249] [I] [zway] Job 0x13 (SensorMultilevel): Delivered
[2018-12-13 11:28:09.249] [D] [zway] SendData Response with callback 0xec received: received by recipient
[2018-12-13 11:28:09.249] [D] [zway] SETDATA devices.46.data.lastSendInternal = **********
[2018-12-13 11:28:09.249] [D] [zway] SETDATA devices.46.data.lastSend = 6578682 (0x006461fa)
[2018-12-13 11:28:09.250] [D] [zway] Job 0x13 (SensorMultilevel): success
[2018-12-13 11:28:09.250] [I] [zway] Removing job: SensorMultilevel
[2018-12-13 11:28:09.250] [D] [zway] SENDING (cb 0xed): ( 01 0D 00 13 2F 06 31 05 01 22 09 88 05 ED B6 )
[2018-12-13 11:28:09.259] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:09.259] [D] [zway] RECEIVED: ( 01 04 01 13 01 E8 )
[2018-12-13 11:28:09.259] [D] [zway] SENT ACK
[2018-12-13 11:28:09.260] [D] [zway] Delivered to Z-Wave stack
[2018-12-13 11:28:09.790] [D] [zway] Job 0x3b: deleted from queue
[2018-12-13 11:28:10.841] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C4 00 8B )
[2018-12-13 11:28:10.841] [D] [zway] SENT ACK
[2018-12-13 11:28:10.842] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:10.842] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:10.842] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:10.842] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:10.844] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:10.844] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:10.844] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:10.851] [D] [zway] RECEIVED: ( 01 0E 00 04 00 02 06 31 05 01 22 01 40 BB 00 1C )
[2018-12-13 11:28:10.852] [D] [zway] SENT ACK
[2018-12-13 11:28:10.852] [D] [zway] SETDATA devices.2.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:10.852] [D] [zway] SETDATA devices.2.instances.0.commandClasses.49.data.1.deviceScale = 0 (0x00000000)
[2018-12-13 11:28:10.854] [D] [zway] SETDATA devices.2.instances.0.commandClasses.49.data.1.scaleString = "°C"
[2018-12-13 11:28:10.854] [D] [zway] SETDATA devices.2.instances.0.commandClasses.49.data.1.val = 32.000000
[2018-12-13 11:28:10.854] [D] [zway] SETDATA devices.2.instances.0.commandClasses.49.data.1 = Empty
[2018-12-13 11:28:10.902] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C4 00 8B )
[2018-12-13 11:28:10.902] [D] [zway] SENT ACK
[2018-12-13 11:28:10.902] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:10.902] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:10.903] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:10.903] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:10.904] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:10.904] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:10.905] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:10.919] [I] [core] Notification: device-info (device-temperature): {"dev":"Bathroom Thermostat Temp","l":"32 °C","location":""}
[2018-12-13 11:28:10.975] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C4 00 8B )
[2018-12-13 11:28:10.975] [D] [zway] SENT ACK
[2018-12-13 11:28:10.976] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:10.976] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:10.976] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:10.976] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:10.978] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:10.978] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:10.978] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:11.035] [I] [core] [BaseModule-17] Set lastLevel to 32 for ZWayVDev_zway_2-0-49-1 (was 33)
[2018-12-13 11:28:11.048] [D] [zway] RECEIVED: ( 01 18 00 13 ED 00 00 B4 02 C6 7F 7F 7F 7F 00 01 03 18 02 00 00 02 02 02 2F 5C )
[2018-12-13 11:28:11.048] [D] [zway] SENT ACK
[2018-12-13 11:28:11.048] [I] [zway] Job 0x13 (SensorMultilevel): Delivered
[2018-12-13 11:28:11.049] [D] [zway] SendData Response with callback 0xed received: received by recipient
[2018-12-13 11:28:11.049] [D] [zway] SETDATA devices.47.data.lastSendInternal = **********
[2018-12-13 11:28:11.049] [D] [zway] SETDATA devices.47.data.lastSend = 6578858 (0x006462aa)
[2018-12-13 11:28:11.049] [D] [zway] Job 0x13 (SensorMultilevel): success
[2018-12-13 11:28:11.049] [I] [zway] Removing job: SensorMultilevel
[2018-12-13 11:28:11.050] [D] [zway] SENDING (cb 0xee): ( 01 0D 00 13 35 06 31 05 01 22 09 88 05 EE AF )
[2018-12-13 11:28:11.058] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:11.058] [D] [zway] RECEIVED: ( 01 04 01 13 01 E8 )
[2018-12-13 11:28:11.058] [D] [zway] SENT ACK
[2018-12-13 11:28:11.058] [D] [zway] Delivered to Z-Wave stack
[2018-12-13 11:28:11.100] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C4 00 DF )
[2018-12-13 11:28:11.101] [D] [zway] SENT ACK
[2018-12-13 11:28:11.101] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:11.101] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:11.101] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:11.152] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C6 00 DD )
[2018-12-13 11:28:11.152] [D] [zway] SENT ACK
[2018-12-13 11:28:11.152] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:11.152] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:11.152] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:12.497] [D] [zway] RECEIVED: ( 01 18 00 13 EE 00 00 8F 01 C9 7F 7F 7F 7F 00 01 03 20 00 00 00 02 02 20 35 6A )
[2018-12-13 11:28:12.497] [D] [zway] SENT ACK
[2018-12-13 11:28:12.497] [I] [zway] Job 0x13 (SensorMultilevel): Delivered
[2018-12-13 11:28:12.497] [D] [zway] SendData Response with callback 0xee received: received by recipient
[2018-12-13 11:28:12.497] [D] [zway] SETDATA devices.53.data.lastSendInternal = **********
[2018-12-13 11:28:12.498] [D] [zway] SETDATA devices.53.data.lastSend = 6579000 (0x00646338)
[2018-12-13 11:28:12.498] [D] [zway] Job 0x13 (SensorMultilevel): success
[2018-12-13 11:28:12.498] [I] [zway] Removing job: SensorMultilevel
[2018-12-13 11:28:12.548] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C6 00 DD )
[2018-12-13 11:28:12.548] [D] [zway] SENT ACK
[2018-12-13 11:28:12.549] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:12.549] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:12.549] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:15.266] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:17.064] [D] [zway] SETDATA devices.47.data.lastNonceGet = 6579443 (0x006464f3)
[2018-12-13 11:28:19.187] [I] [zway] Adding job: Get background noise level
[2018-12-13 11:28:19.188] [D] [zway] SENDING: ( 01 03 00 3B C7 )
[2018-12-13 11:28:19.190] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:19.190] [D] [zway] RECEIVED: ( 01 05 01 3B AB AE C5 )
[2018-12-13 11:28:19.190] [D] [zway] SENT ACK
[2018-12-13 11:28:19.190] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel1 = 171 (0x000000ab)
[2018-12-13 11:28:19.191] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel2 = 174 (0x000000ae)
[2018-12-13 11:28:19.191] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel3 = 127 (0x0000007f)
[2018-12-13 11:28:19.191] [I] [zway] Job 0x3b (Get background noise level): RSSI Ch#1: -82 dBm, Ch#2: -82 dBm, Ch#3: invalid
[2018-12-13 11:28:19.191] [D] [zway] Job 0x3b (Get background noise level): success
[2018-12-13 11:28:19.191] [I] [zway] Removing job: Get background noise level
[2018-12-13 11:28:24.819] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:27.286] [D] [zway] SETDATA devices.47.data.lastNonceGet = 6580443 (0x006468db)
[2018-12-13 11:28:28.410] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C7 00 88 )
[2018-12-13 11:28:28.410] [D] [zway] SENT ACK
[2018-12-13 11:28:28.411] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:28.411] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:28.411] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:28.411] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:28.413] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:28.413] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:28.413] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:28.464] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C7 00 DC )
[2018-12-13 11:28:28.464] [D] [zway] SENT ACK
[2018-12-13 11:28:28.465] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:28.465] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:28.465] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:29.799] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:31.526] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:32.445] [D] [zway] RECEIVED: ( 01 0E 00 04 00 2F 06 31 05 01 42 09 71 C6 00 15 )
[2018-12-13 11:28:32.446] [D] [zway] SENT ACK
[2018-12-13 11:28:32.446] [D] [zway] SETDATA devices.47.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:32.446] [D] [zway] SETDATA devices.47.instances.0.commandClasses.49.data.1.deviceScale = 0 (0x00000000)
[2018-12-13 11:28:32.448] [D] [zway] SETDATA devices.47.instances.0.commandClasses.49.data.1.scaleString = "°C"
[2018-12-13 11:28:32.448] [D] [zway] SETDATA devices.47.instances.0.commandClasses.49.data.1.val = 24.170000
[2018-12-13 11:28:32.448] [D] [zway] SETDATA devices.47.instances.0.commandClasses.49.data.1 = Empty
[2018-12-13 11:28:32.467] [I] [core] Notification: device-info (device-temperature): {"dev":"Bedroom 47 Temperature","l":"24.2 °C","location":4}
[2018-12-13 11:28:32.537] [I] [core] [BaseModule-17] Set lastLevel to 24.17 for ZWayVDev_zway_47-0-49-1 (was 24.26)
[2018-12-13 11:28:32.958] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:35.610] [D] [zway] RECEIVED: ( 01 0E 00 04 00 30 06 31 05 01 22 01 06 C1 00 12 )
[2018-12-13 11:28:35.611] [D] [zway] SENT ACK
[2018-12-13 11:28:35.611] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:35.611] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.1.deviceScale = 0 (0x00000000)
[2018-12-13 11:28:35.613] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.1.scaleString = "°C"
[2018-12-13 11:28:35.613] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.1.val = 26.200001
[2018-12-13 11:28:35.613] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.1 = Empty
[2018-12-13 11:28:35.746] [D] [zway] RECEIVED: ( 01 0D 00 04 00 30 05 31 05 05 01 17 C1 00 25 )
[2018-12-13 11:28:35.746] [D] [zway] SENT ACK
[2018-12-13 11:28:35.747] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:35.747] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.5.deviceScale = 0 (0x00000000)
[2018-12-13 11:28:35.747] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.5.scale = 0 (0x00000000)
[2018-12-13 11:28:35.749] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.5.scaleString = "%"
[2018-12-13 11:28:35.749] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.5.val = 23.000000
[2018-12-13 11:28:35.749] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.5 = Empty
[2018-12-13 11:28:36.533] [D] [zway] RECEIVED: ( 01 0B 00 04 00 30 03 80 03 64 C1 00 E5 )
[2018-12-13 11:28:36.533] [D] [zway] SENT ACK
[2018-12-13 11:28:36.533] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:36.534] [D] [zway] SETDATA devices.48.instances.0.commandClasses.128.data.history.100 = 1544689716 (0x5c121834)
[2018-12-13 11:28:36.534] [D] [zway] SETDATA devices.48.instances.0.commandClasses.128.data.last = 100 (0x00000064)
[2018-12-13 11:28:36.586] [D] [zway] RECEIVED: ( 01 0E 00 04 00 30 06 31 05 03 0A 00 17 C1 00 28 )
[2018-12-13 11:28:36.589] [D] [zway] SENT ACK
[2018-12-13 11:28:36.589] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:36.589] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.3.deviceScale = 1 (0x00000001)
[2018-12-13 11:28:36.589] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.3.scale = 1 (0x00000001)
[2018-12-13 11:28:36.592] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.3.scaleString = "Lux"
[2018-12-13 11:28:36.592] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.3.val = 23.000000
[2018-12-13 11:28:36.592] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.3 = Empty
[2018-12-13 11:28:36.689] [D] [zway] RECEIVED: ( 01 0D 00 04 00 30 05 31 05 1B 01 00 C1 00 2C )
[2018-12-13 11:28:36.689] [D] [zway] SENT ACK
[2018-12-13 11:28:36.689] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:36.689] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.27.deviceScale = 0 (0x00000000)
[2018-12-13 11:28:36.689] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.27.scale = 0 (0x00000000)
[2018-12-13 11:28:36.691] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.27.scaleString = "UV index"
[2018-12-13 11:28:36.692] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.27.val = 0.000000
[2018-12-13 11:28:36.692] [D] [zway] SETDATA devices.48.instances.0.commandClasses.49.data.27 = Empty
[2018-12-13 11:28:36.710] [D] [zway] RECEIVED: ( 01 0A 00 04 00 30 02 84 07 C3 00 83 )
[2018-12-13 11:28:36.710] [D] [zway] SENT ACK
[2018-12-13 11:28:36.710] [D] [zway] SETDATA devices.48.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:36.710] [I] [zway] Node 48:0 CC Wakeup: Wakeup notification
[2018-12-13 11:28:36.710] [D] [zway] SETDATA devices.48.instances.0.commandClasses.132.data.lastWakeup = 1544689716 (0x5c121834)
[2018-12-13 11:28:36.710] [D] [zway] SETDATA devices.48.data.isAwake = True
[2018-12-13 11:28:36.711] [D] [zway] SETDATA devices.48.data.lastSendInternal = **********
[2018-12-13 11:28:36.711] [D] [zway] SETDATA devices.48.data.lastNonceGet = 6580366 (0x0064688e)
[2018-12-13 11:28:36.711] [D] [zway] Running wakeup handler for node 48
[2018-12-13 11:28:36.711] [D] [zway] SETDATA devices.48.instances.0.commandClasses.132.data.lastSleep = 1544689716 (0x5c121834)
[2018-12-13 11:28:36.711] [I] [zway] Node 48:0 CC Wakeup: Send node to sleep
[2018-12-13 11:28:36.711] [I] [zway] Adding job: Wakeup Sleep
[2018-12-13 11:28:36.711] [D] [zway] SENDING (cb 0xef): ( 01 09 00 13 30 02 84 08 05 EF B1 )
[2018-12-13 11:28:36.720] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:36.720] [D] [zway] RECEIVED: ( 01 04 01 13 01 E8 )
[2018-12-13 11:28:36.720] [D] [zway] SENT ACK
[2018-12-13 11:28:36.720] [D] [zway] Delivered to Z-Wave stack
[2018-12-13 11:28:36.741] [D] [zway] RECEIVED: ( 01 18 00 13 EF 00 00 01 00 C1 7F 7F 7F 7F 00 00 03 00 00 00 00 03 01 00 00 DA )
[2018-12-13 11:28:36.741] [D] [zway] SENT ACK
[2018-12-13 11:28:36.741] [I] [zway] Job 0x13 (Wakeup Sleep): Delivered
[2018-12-13 11:28:36.742] [D] [zway] SendData Response with callback 0xef received: received by recipient
[2018-12-13 11:28:36.742] [D] [zway] SETDATA devices.48.data.lastSendInternal = **********
[2018-12-13 11:28:36.742] [D] [zway] SETDATA devices.48.data.lastSend = 6581369 (0x00646c79)
[2018-12-13 11:28:36.742] [D] [zway] Job 0x13 (Wakeup Sleep): success
[2018-12-13 11:28:36.742] [D] [zway] SETDATA devices.48.data.isAwake = False
[2018-12-13 11:28:36.742] [D] [zway] Sending the queue for node 48 into sleep
[2018-12-13 11:28:36.742] [I] [zway] Removing job: Wakeup Sleep
[2018-12-13 11:28:37.502] [D] [zway] SETDATA devices.47.data.lastNonceGet = 6581443 (0x00646cc3)
[2018-12-13 11:28:39.700] [D] [zway] Job 0x3b: deleted from queue
[2018-12-13 11:28:44.306] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C6 00 89 )
[2018-12-13 11:28:44.306] [D] [zway] SENT ACK
[2018-12-13 11:28:44.307] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:44.307] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:44.307] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:44.307] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:44.309] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:44.309] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:44.309] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:44.368] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C6 00 DD )
[2018-12-13 11:28:44.368] [D] [zway] SENT ACK
[2018-12-13 11:28:44.368] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:44.368] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:44.369] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:47.720] [D] [zway] SETDATA devices.47.data.lastNonceGet = 6582443 (0x006470ab)
[2018-12-13 11:28:49.207] [I] [zway] Adding job: Get background noise level
[2018-12-13 11:28:49.211] [D] [zway] SENDING: ( 01 03 00 3B C7 )
[2018-12-13 11:28:49.213] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:49.213] [D] [zway] RECEIVED: ( 01 05 01 3B B3 A8 DB )
[2018-12-13 11:28:49.214] [D] [zway] SENT ACK
[2018-12-13 11:28:49.214] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel1 = 179 (0x000000b3)
[2018-12-13 11:28:49.214] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel2 = 168 (0x000000a8)
[2018-12-13 11:28:49.214] [D] [zway] SETDATA controller.data.statistics.backgroundRSSI.channel3 = 127 (0x0000007f)
[2018-12-13 11:28:49.214] [I] [zway] Job 0x3b (Get background noise level): RSSI Ch#1: -88 dBm, Ch#2: -88 dBm, Ch#3: invalid
[2018-12-13 11:28:49.214] [D] [zway] Job 0x3b (Get background noise level): success
[2018-12-13 11:28:49.214] [I] [zway] Removing job: Get background noise level
[2018-12-13 11:28:54.494] [D] [zway] RECEIVED: ( 01 16 00 04 00 21 0E 60 0D 01 00 32 02 21 34 00 00 00 00 00 00 C7 00 4C )
[2018-12-13 11:28:54.494] [D] [zway] SENT ACK
[2018-12-13 11:28:54.500] [D] [zway] SETDATA devices.33.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:54.500] [D] [zway] SETDATA devices.33.instances.1.commandClasses.50.data.2.val = 0.000000
[2018-12-13 11:28:54.500] [D] [zway] SETDATA devices.33.instances.1.commandClasses.50.data.2.delta = 0 (0x00000000)
[2018-12-13 11:28:54.500] [D] [zway] SETDATA devices.33.instances.1.commandClasses.50.data.2.ratetype = 1 (0x00000001)
[2018-12-13 11:28:54.500] [D] [zway] SETDATA devices.33.instances.1.commandClasses.50.data.2 = Empty
[2018-12-13 11:28:55.047] [D] [zway] RECEIVED: ( 01 11 00 04 00 28 09 71 05 00 00 00 FF 07 08 00 C6 00 89 )
[2018-12-13 11:28:55.048] [D] [zway] SENT ACK
[2018-12-13 11:28:55.048] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:55.048] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventParameters = byte[0]
[2018-12-13 11:28:55.048] [D] [zway]   ( zero-length buffer )
[2018-12-13 11:28:55.048] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.event = 8 (0x00000008)
[2018-12-13 11:28:55.050] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.eventString = "Motion detected, location unknown"
[2018-12-13 11:28:55.050] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7.status = 255 (0x000000ff)
[2018-12-13 11:28:55.050] [D] [zway] SETDATA devices.40.instances.0.commandClasses.113.data.7 = Empty
[2018-12-13 11:28:55.109] [D] [zway] RECEIVED: ( 01 0C 00 04 00 28 04 30 03 FF 0C C6 00 DD )
[2018-12-13 11:28:55.109] [D] [zway] SENT ACK
[2018-12-13 11:28:55.110] [D] [zway] SETDATA devices.40.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:55.110] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12.level = True
[2018-12-13 11:28:55.110] [D] [zway] SETDATA devices.40.instances.0.commandClasses.48.data.12 = Empty
[2018-12-13 11:28:55.499] [D] [zway] RECEIVED: ( 01 16 00 04 00 21 0E 60 0D 02 00 32 02 21 34 00 00 00 00 00 00 C7 00 4F )
[2018-12-13 11:28:55.499] [D] [zway] SENT ACK
[2018-12-13 11:28:55.499] [D] [zway] SETDATA devices.33.data.lastReceived = 0 (0x00000000)
[2018-12-13 11:28:55.499] [D] [zway] SETDATA devices.33.instances.2.commandClasses.50.data.2.val = 0.000000
[2018-12-13 11:28:55.499] [D] [zway] SETDATA devices.33.instances.2.commandClasses.50.data.2.delta = 0 (0x00000000)
[2018-12-13 11:28:55.500] [D] [zway] SETDATA devices.33.instances.2.commandClasses.50.data.2.ratetype = 1 (0x00000001)
[2018-12-13 11:28:55.500] [D] [zway] SETDATA devices.33.instances.2.commandClasses.50.data.2 = Empty
[2018-12-13 11:28:57.227] [D] [zway] Job 0x13: deleted from queue
[2018-12-13 11:28:57.943] [D] [zway] SETDATA devices.47.data.lastNonceGet = 6583443 (0x00647493)
steverock
Posts: 8
Joined: 14 Nov 2018 09:12

Re: Send SensorMultilevel unsolicited from controller

Post by steverock »

Hi guys:
I'll explain you.

0x01 is the sensor type; in this case "Temperature"
0x22 is the bytemask, made this way: PRECISION | SCALE | SIZE

PRECISION is 3 byte
SCALE is 2 byte
SIZE is 3 byte

so 0x22 in binary is: 0010 0010
PRECISION = 001 -> 1 decimal
SCALE = 00 -> Celsius
SIZE = 010 -> 2 byte

For eurotronic this is wrong because, accordingly to documentation, eurotronic spirit accepts a report with precion of 2 decimal.
So you have to use 0x42 instead of 0x22

as i wrote in my past post you have to send this command: zway.SendDataSecure(SpiritID,[0x31,0x05,0x01,0x42,0x0A,0xF0])
where 0x0A and 0xF0 are the temperature values made this way:
high byte for integer part
low byte for decimals

so 0AF0 = 2800, then 28.00 °C

try to set precision to 0x42 and you will see that valve will respond.
Ensure that your valve parameter 8 is set to 128 to user an external sensor.
Also ensure to use zway.sendDataSecure if your valve is included in secure mode; otherwise it will not work

than try to send a big temperature value (28.00°C max) and check that valve fully close. Wait some seconds because the valve use an algorithm to calculate the open/close percentage.
than try to send a lower value and check that valve is opening (wait the algorithm time)

Let me now if it works.

EDIT: I was looking into eurotronic documentation and I noticed that valve accepts precision of 0,1 and 2.
So it will work with 0x22 too but I did not test it.

Noticed this in your output: RECEIVED: ( 01 04 01 13 01 E8 )
if you compare received values with sending values you will notice that the received part is wrong.
You send 31, 05, 01, 22, byteH, byteL
and received 01 04 01 13 01 E8.
There is a problem converting from hex. In my past test i send commands via browser, with hex values and the conversion was made correctly.
maybe with zway.sendDataSecure you have to use decimal values instead? I dont know, you can try
steverock
Posts: 8
Joined: 14 Nov 2018 09:12

Re: Send SensorMultilevel unsolicited from controller

Post by steverock »

PoltoS wrote:
09 Dec 2018 19:00
Pitty to hear this. Would it be possible to know what have you used in your installation? Interesting to know what leads to those crashes.
I used a raspberry pi 3.
Than i tried with another pc (an i5 intel with ssd and 16gb of ram) and no crashes at all...

Another problem is that when I try to open Google Home plugin, an error appears.
Same error if i try to open advanced settings menu...

So i decided to use home assistant that never crash on raspberry
enbemokel
Posts: 482
Joined: 08 Aug 2016 17:36

Re: Send SensorMultilevel unsolicited from controller

Post by enbemokel »

Hi steverock, thanks for your detailed information!!!
Normaly I would expect this from z-way support.
Then this could be a helpful forum for users.
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

steverock wrote:
13 Dec 2018 13:14
Noticed this in your output: RECEIVED: ( 01 04 01 13 01 E8 )
if you compare received values with sending values you will notice that the received part is wrong.
You send 31, 05, 01, 22, byteH, byteL
and received 01 04 01 13 01 E8.
There is a problem converting from hex. In my past test i send commands via browser, with hex values and the conversion was made correctly.
maybe with zway.sendDataSecure you have to use decimal values instead? I dont know, you can try
Thank you for a good explanation of the bitmask part. I do checked, and Spirits accept any precision, but my old SRT supports only .x, so it was 22.

I'm pretty sure in my hex part, i use variables inside, so it doesn't matter, it sends bytes. You can see debug from the module in the log, I checked twice, it really works: 24.4 celsius, 09 88 in .xx precision.

Code: Select all

[2018-12-13 11:28:07.613] [I] [core] [SME] 2440 9 88
[2018-12-13 11:28:07.624] [D] [zway] SENDING (cb 0xec): ( 01 0D 00 13 2E 06 31 05 01 22 09 88 05 EC B6 )
[2018-12-13 11:28:07.627] [D] [zway] RECEIVED ACK
[2018-12-13 11:28:07.630] [D] [zway] RECEIVED: ( 01 04 01 13 01 E8 )
[2018-12-13 11:28:07.630] [D] [zway] SENT ACK
I wonder what should be in RECIEVED? The same value? I thought this is some ACK codes, with information relevant but not copied from the request.

EDIT: My bad. Wrote it and discovered that I use .xx precision, but sent it with .x flag. Will try. Thank you very much!
Last edited by John Smith on 13 Dec 2018 21:17, edited 1 time in total.
John Smith
Posts: 13
Joined: 23 Sep 2018 17:52

Re: Send SensorMultilevel unsolicited from controller

Post by John Smith »

dupe. sorry.
Post Reply