The Multisensor PST02A got detected by Openhab as PST02A Slim Multi-Sensor (PIR/Door/Temperature/Illumination). The items are linked, but are not updated apart from the temperature sensor.
The most important sensor information for me would be the door/window sensor, but in Paper UI no update is shown although when opening the door events are written in the events.log file:
2017-08-04 05:31:37.186 [ItemStateChangedEvent ] - zwave_serial_zstick_63e729d1_serial_sof changed from 7019 to 7020
2017-08-04 05:31:37.210 [ItemStateChangedEvent ] - zwave_serial_zstick_63e729d1_serial_sof changed from 7020 to 7021
dpkg --list | grep openhab -> shows version 2.1.0-1
(it was installed with:
a) echo âdeb https://dl.bintray.com/openhab/apt-repo2 stable mainâ | sudo tee /etc/apt/sources.list.d/openhab2.list
b) sudo apt-get install openhab2
In the Openhab console the command: bundle:list -s |grep -i zwave -> shows version 2.1.0 for the Z-Wave binding.
I enabled debugging of Z-Wave and in the log files I can see many exceptions and that the sensor reports valuesâŠ
a) I can see many exceptions in the log file: Probably a few of them are because I tried to delete the items in Paper UI, which was not possible. I am not using the simple mode. After I included the sensor and it was not working I deleted the items and created them again. I realized that I need to delete the link between the thing and the item in order to be able to delete the item afterwards. (probably this caused an exception) After I deleted all items of the sensor I created them new⊠Shall I upload the log file somehow?
The database is currently configured to use the SENSOR_BINARY command class, and your device is using the NOTIFICATION command class. Either the database is wrongly configured, or there is likely a configuration setting in the device configuration to change this.
Ideally, I would prefer to use the NOTIFICATION class since this is the more âmodernâ class, but at the moment it would be better not to change the database if possible.
In default the device will using Notification Report to represent the
trigger event, it can be changed to Sensor Binary Report by setting the
configuration NO. 7 Bit 4 to 1.
The manual of the sensor is really good and as @sihui said, configuration 7 Bit 4 needs to be changed. In HABmin under Configuration > Things > Z-Wave Node X> PST02A Slim Multi-Sensor > Configuration Parameters > 7: Customer Function
The default Value of â7: Customer Functionâ was 4 and needs to be changed to 20. Here is the explanation:
The default value 4 means that bit 2 is set (counting bits starts with 0 therefore the binary code of 4 is 100)
Therefore setting bit 4 to 1 requires a binary value of 10100 and this value converted to the decimal results in a value of 20
To convert between binary and decimal under Linux execute the following in the terminal:
from decimal to binary: echo 'obase=2;20' | bc
from binary to decimal: echo 'ibase=2;10100' | bc
After changing the configuration I had the problem that the parameter was not sent to the device as battery devices sleep most of the time to save battery. In order to wake up the sensor you need to press the tamper key on the back side of the device. After pressing the tamper key the new configuration setting was set correctly and the device started to work as expectedâŠ
I have also some problems with this sensor.
Sensor data is received, but a missing callback exception is thrown afterwardsâŠ
I already set the customer function to 20 in habmin.
And I have the same openhanded version as @Harald (2.1.0)
017-10-01 14:15:41.711 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-10-01 14:15:41.714 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0C 00 04 00 0A 06 31 05 01 0A 00 4B 8F
2017-10-01 14:15:41.717 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0C 00 04 00 0A 06 31 05 01 0A 00 4B 8F
2017-10-01 14:15:41.721 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 0A 06 31 05 01 0A 00 4B
2017-10-01 14:15:41.723 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 10: Application Command Request (ALIVE:DONE)
2017-10-01 14:15:41.725 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 10: Starting initialisation from DONE
2017-10-01 14:15:41.727 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@1d4b448 already registered
2017-10-01 14:15:41.738 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 10: Incoming command class SENSOR_MULTILEVEL
2017-10-01 14:15:41.740 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 10: Received COMMAND_CLASS_SENSOR_MULTILEVEL command V5
2017-10-01 14:15:41.742 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 10: Sensor Multi Level REPORT received
2017-10-01 14:15:41.757 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 10: Sensor Type = Temperature(1), Scale = 1
2017-10-01 14:15:41.759 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 10: Sensor Value = 75
2017-10-01 14:15:41.760 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveMultiLevelSensorValueEvent
2017-10-01 14:15:41.761 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 10: Got an event from Z-Wave network: ZWaveMultiLevelSensorValueEvent
2017-10-01 14:15:41.763 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 10: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 75
2017-10-01 14:15:41.764 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 10: Sensor is reporting scale 1, requiring conversion to 0. Value is now 75.
2017-10-01 14:15:41.766 [DEBUG] [converter.ZWaveCommandClassConverter] - Converted temperature from 75F to 23.9C
2017-10-01 14:15:41.767 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 10: Updating channel state zwave:device:15a670b08a0:node10:sensor_temperature to 23.9 [DecimalType]
2017-10-01 14:15:41.768 [ERROR] [ve.internal.protocol.ZWaveController] - Exception during ZWave thread: Input 2. {}
java.lang.IllegalStateException: Could not update state, because callback is missing
at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateState(BaseThingHandler.java:267)[105:org.eclipse.smarthome.core.thing:0.9.0.b5]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1104)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveMultiLevelSensorCommandClass.handleApplicationCommandRequest(ZWaveMultiLevelSensorCommandClass.java:150)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.serialmessage.ApplicationCommandMessageClass.handleRequest(ApplicationCommandMessageClass.java:119)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208)[189:org.openhab.binding.zwave:2.1.0]
at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324)[189:org.openhab.binding.zwave:2.1.0]