I am having issues with a Fortrezz Water & Temperature Sensor (WWA02AA). It is used to detect water leaks among other things. The water alarm emits a Alarm Command Class V2 report (Event = Water Leak Detected, Uknown Location with Alarm Level = 0xFF). It then emits an Alarm Command Class V2 report (Unknown Event, 0xFE) with Alarm Level = 0x00. However, the alarm level is never reset to 0.
Data Sent On Alarm
[HOME ID] 21 41 01 14 01 71 05 00 FF 00 FF 05 02 00 00 DE
Data Sent On Clear
[HOME ID] 21 41 01 14 01 71 05 00 00 00 FF 05 FE 00 00 DD
I am trying to bind on the water alarm event, but I cannot detect the clear event. I have two problems.
1. I have no way to bind to the alarm class when the sensor is added to the network. I am using ZWaveAPI/Run/devices[34].instances[0].commandClasses[113].data[5][2].status to detect a change in alarm level. However, that status does not exist until the first time the water sensor is set off. Is there a way to force that structure into the zway object when the device is added to the network? If not, what is the best way to detect when that child is added to the network and then bind to it? It seems like that could take quite a bit of time to work out.
2. Once the sensor clears, the ZWaveAPI/Run/devices[34].instances[0].commandClasses[113].data[5][2].status still reads 0xFF. I can't find any other value in the alarm command class that clears either. We need to fix this or find a work around.
I have attached the user manual for the sensor. The technical appendix on the last page is very handy. I have also attached the zway structure for the alarm command class after adding it to the network, after a water alarm, and after the water alarm clears. If there is any more information that would be helpful, I would be happy to provide it for you.
Fortrezz WWA02AA
Fortrezz WWA02AA
- Attachments
-
- Fortrezz WWA02AA.zip
- Fortrezz WWA02AA
- (227.67 KiB) Downloaded 612 times
Re: Fortrezz WWA02AA
Not looked to the manual, but I see the status is 0xFF for both your packets:
Since v1 event is 0, it is ignored, so v1 status is also ignored. v2 status is 0xFF for both events, so I don't see any reason for it to become 0x00. Probably this is a bug in device firmware.
Even more, these are two different events of water alarm, and they're not even connected to each other. So the second packet doesn't alter state of the first alarm at all.
Also alarm v2 doesn't support event masks to indicate possible events (it was introduced in alarm v3), so it is impossible to create all possible data values right after interview.
Code: Select all
[HOME ID] 21 41 01 14 01 71 05 00 FF 00 FF 05 02 00 00 DE
[HOME ID] 21 41 01 14 01 71 05 00 00 00 FF 05 FE 00 00 DD
alarm -^ ^ ^ ^ ^ ^ ^
report ⌋ | | | | ⌊ v2 event
v1 event ⌋ | | ⌊--- v2 alarm type
v1 status –––⌋ ⌊–––--- v2 status
Even more, these are two different events of water alarm, and they're not even connected to each other. So the second packet doesn't alter state of the first alarm at all.
Also alarm v2 doesn't support event masks to indicate possible events (it was introduced in alarm v3), so it is impossible to create all possible data values right after interview.
Re: Fortrezz WWA02AA
Manufacturer has no FW updates for products. Is there any way to receive and interpret the v1 status even though it does not specify an event? It seems to me that it should still report the v1 status. The JSON object does not indicate any events. Is it perhaps because the V1support is false?
"V1supported": {
"name": "V1supported",
"type": "bool",
"value": false,
"updateTime": 1402607148,
"invalidateTime": 1402607144
},
"V1event": {
"name": "V1event",
"type": "NoneType",
"value": null,
"updateTime": 1402607145,
"invalidateTime": 1402607144,
"level": {
"name": "level",
"type": "NoneType",
"value": null,
"updateTime": 1402607145,
"invalidateTime": 1402607144
}
}
"V1supported": {
"name": "V1supported",
"type": "bool",
"value": false,
"updateTime": 1402607148,
"invalidateTime": 1402607144
},
"V1event": {
"name": "V1event",
"type": "NoneType",
"value": null,
"updateTime": 1402607145,
"invalidateTime": 1402607144,
"level": {
"name": "level",
"type": "NoneType",
"value": null,
"updateTime": 1402607145,
"invalidateTime": 1402607144
}
}
Re: Fortrezz WWA02AA
1. Listen for child creation on parent dataholder and create listener for all children
2. Some sensors do not send clearing packet. Check the log. If you see clearing packet - check the difference with alarm packet. If not - nothing to catch
But you can always set a timeout. Or clear it manually. After all, you are mostly interested in Alarm event, not clear.
As stated by @pofs, the device claims to support V2, but reports in different event types. So, as a workaround, catch different types as Alarm/Clear.
2. Some sensors do not send clearing packet. Check the log. If you see clearing packet - check the difference with alarm packet. If not - nothing to catch

But you can always set a timeout. Or clear it manually. After all, you are mostly interested in Alarm event, not clear.
As stated by @pofs, the device claims to support V2, but reports in different event types. So, as a workaround, catch different types as Alarm/Clear.
Re: Fortrezz WWA02AA
When you say "clear it manually", can I physically edit the ZWay js object via javascript in a way that it would persist through a reboot?
Re: Fortrezz WWA02AA
yes 
like zway.devices[3].SwitchBinary.data.level = false

like zway.devices[3].SwitchBinary.data.level = false
Re: Fortrezz WWA02AA
I tried to execute the command
devices[2].instances[0].commandClasses[113].data[5][2].status.value = 0
but when I check the value via the API, the value is still 255.
http://[ip_address]:8083/ZWaveAPI/Run/devices[2].instances[0].commandClasses[113].data[5][2].status.value
Are these two objects not the same? Is the a way to set the level back to 0 using the API? It seems that I would use
http://[ip_address]:8083/ZWaveAPI/Run/devices[2].instances[0].commandClasses[113].Set(...)
but I do not know the proper arguments.
devices[2].instances[0].commandClasses[113].data[5][2].status.value = 0
but when I check the value via the API, the value is still 255.
http://[ip_address]:8083/ZWaveAPI/Run/devices[2].instances[0].commandClasses[113].data[5][2].status.value
Are these two objects not the same? Is the a way to set the level back to 0 using the API? It seems that I would use
http://[ip_address]:8083/ZWaveAPI/Run/devices[2].instances[0].commandClasses[113].Set(...)
but I do not know the proper arguments.
Re: Fortrezz WWA02AA
remove .value in the assignment!
Re: Fortrezz WWA02AA
The ZDDX record for this device indicates that it does not have any configurations. However, the device has a low (parameter 1, 1 byte) and high (parameter 2, 1 byte) setpoint triggers according to the manual. How can I modify the ZDDX. How can I modify the ZDDX record to indicate that these configurations exist? Can I add custom ZDDX records along with the default ones?