Openhab2 Zwave Philio PSP01 Multi sensor 3 in 1

Hello,

I have been struggling with getting Philio PSP01 work in openhab2 beta 3. Documentation about the sensor is here: 3 in 1 multisensor Philio PSP01 manual (motion, Temperature, lightness) | PPT

Finally discovery found this, but it is saying that my sensor is:

PSM02 Slim Multi-Sensor

In Paper UI it’s also saying that there is a door sensor in this device, but according manufacturer guide there is no door sensor.

At some point I was getting the battery, temperature and luminescence values, but no motion detection. If I touch tamper switch then logs information. See below.

I also include the node12.xml that was created for me (after few tries)

node12.xml (9.0 KB)

So what should I do to get the motion sensor to work with PSP01?

–Ari

ps. I’m also really happy if some cloud say what motion sensor I should invest my money and time. PSP01 at least have been been a disappointment at least for time perspective.


2016-06-06 20:22:52.856 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling…
2016-06-06 20:22:52.858 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:alarm_motion
2016-06-06 20:22:52.860 [DEBUG] [converter.ZWaveBinarySensorConverter] - NODE 12: Generating poll message for SENSOR_BINARY, endpoint 0
2016-06-06 20:22:52.862 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 12: Creating new message for application command SENSOR_BINARY_GET for MOTION
2016-06-06 20:22:52.864 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:alarm_tamper
2016-06-06 20:22:52.865 [DEBUG] [converter.ZWaveBinarySensorConverter] - NODE 12: Generating poll message for SENSOR_BINARY, endpoint 0
2016-06-06 20:22:52.866 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 12: Creating new message for application command SENSOR_BINARY_GET for TAMPER
2016-06-06 20:22:52.868 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:sensor_door
2016-06-06 20:22:52.870 [DEBUG] [converter.ZWaveBinarySensorConverter] - NODE 12: Generating poll message for SENSOR_BINARY, endpoint 0
2016-06-06 20:22:52.871 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 12: Creating new message for application command SENSOR_BINARY_GET for DOORWINDOW
2016-06-06 20:22:52.873 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:sensor_temperature
2016-06-06 20:22:52.875 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 12: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2016-06-06 20:22:52.877 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 12: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-06-06 20:22:52.879 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:sensor_luminance
2016-06-06 20:22:52.880 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 12: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2016-06-06 20:22:52.881 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 12: Creating new message for command SENSOR_MULTI_LEVEL_GET
2016-06-06 20:22:52.883 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Polling zwave:device:94d2ecc2:node12:battery-level
2016-06-06 20:22:52.885 [DEBUG] [rnal.converter.ZWaveBatteryConverter] - NODE 12: Generating poll message for BATTERY endpoint 0
2016-06-06 20:22:52.886 [DEBUG] [ommandclass.ZWaveBatteryCommandClass] - NODE 12: Creating new message for application command BATTERY_GET
2016-06-06 20:22:52.888 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:22:52.890 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:22:52.892 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:22:52.893 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:22:52.895 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:22:52.896 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Putting message SendData in wakeup queue.
2016-06-06 20:23:16.911 [INFO ] [marthome.event.ItemStateChangedEvent] - ntp_ntp_local_dateTime changed from 2016-06-06T20:22:17.162+0000 to 2016-06-06T20:23:16.895+0000
2016-06-06 20:23:16.922 [INFO ] [marthome.event.ItemStateChangedEvent] - CurrentDate changed from 2016-06-06T20:22:17.162+0000 to 2016-06-06T20:23:16.895+0000
2016-06-06 20:23:17.176 [INFO ] [marthome.event.ItemStateChangedEvent] - ntp_ntp_local_dateTime changed from 2016-06-06T20:23:16.895+0000 to 2016-06-06T20:23:17.162+0000
2016-06-06 20:23:17.192 [INFO ] [marthome.event.ItemStateChangedEvent] - CurrentDate changed from 2016-06-06T20:23:16.895+0000 to 2016-06-06T20:23:17.162+0000
2016-06-06 20:23:24.529 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 08 00 04 00 0C 02 84 07 7E
2016-06-06 20:23:24.536 [INFO ] [marthome.event.ItemStateChangedEvent] - zwave_serial_zstick_94d2ecc2_serial_sof changed from 262 to 263
2016-06-06 20:23:24.539 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-06-06 20:23:24.543 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 08 00 04 00 0C 02 84 07 7E
2016-06-06 20:23:24.549 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 08 00 04 00 0C 02 84 07 7E
2016-06-06 20:23:24.552 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 0C 02 84 07
2016-06-06 20:23:24.554 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 12: Application Command Request (ALIVE:DONE)
2016-06-06 20:23:24.556 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 12: Starting initialisation from DONE
2016-06-06 20:23:24.557 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@1e64edf already registered
2016-06-06 20:23:24.559 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 12: Incoming command class WAKE_UP
2016-06-06 20:23:24.561 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Received Wake Up Request
2016-06-06 20:23:24.562 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Received WAKE_UP_NOTIFICATION
2016-06-06 20:23:24.563 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Is awake with 7 messages in the wake-up queue.
2016-06-06 20:23:24.565 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveWakeUpEvent
2016-06-06 20:23:24.567 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Got an event from Z-Wave network: ZWaveWakeUpEvent
2016-06-06 20:23:34.665 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
2016-06-06 20:23:34.668 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Message has Ack Pending: Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=12, callback=91, payload=0C 02 84 08
2016-06-06 20:23:34.668 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘zwave:device:94d2ecc2:node12’ has been updated.
2016-06-06 20:23:34.668 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
2016-06-06 20:23:34.674 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 0C 02 84 08 25 5B 19
2016-06-06 20:23:34.677 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 12: Sending REQUEST Message = 01 09 00 13 0C 02 84 08 25 5B 19
2016-06-06 20:23:34.688 [INFO ] [marthome.event.ItemStateChangedEvent] - zwave_serial_zstick_94d2ecc2_serial_ack changed from 128 to 129
2016-06-06 20:23:34.691 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8
2016-06-06 20:23:34.695 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-06-06 20:23:34.698 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8
2016-06-06 20:23:34.698 [INFO ] [marthome.event.ItemStateChangedEvent] - zwave_serial_zstick_94d2ecc2_serial_sof changed from 263 to 264
2016-06-06 20:23:34.701 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8
2016-06-06 20:23:34.703 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, callback=0, payload=01
2016-06-06 20:23:34.704 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 12: Sent Data successfully placed on stack.
2016-06-06 20:23:34.708 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 5B 00 00 02 B2
2016-06-06 20:23:34.709 [INFO ] [marthome.event.ItemStateChangedEvent] - zwave_serial_zstick_94d2ecc2_serial_sof changed from 264 to 265
2016-06-06 20:23:34.711 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-06-06 20:23:34.713 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 5B 00 00 02 00 00 BC
2016-06-06 20:23:34.715 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 5B 00 00 02 00 00 BC
2016-06-06 20:23:34.717 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=5B 00 00 02
2016-06-06 20:23:34.719 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 12: SendData Request. CallBack ID = 91, Status = Transmission complete and ACK received(0)
2016-06-06 20:23:34.720 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 12: Starting initialisation from DONE
2016-06-06 20:23:34.721 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@1e64edf already registered
2016-06-06 20:23:34.723 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=12, callback=91, payload=0C 02 84 08
2016-06-06 20:23:34.725 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=5B 00 00 02
2016-06-06 20:23:34.726 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, callback id=91, expected=SendData, cancelled=false transaction complete!
2016-06-06 20:23:34.728 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2016-06-06 20:23:34.729 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Went to sleep
2016-06-06 20:23:34.730 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 12: Is sleeping
2016-06-06 20:23:34.732 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 12: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent
2016-06-06 20:23:34.733 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 12: Response processed after 54ms/4305ms.

I don’t understand the xml-thing?!?
I used a Philio Multi sensor 4 in 1.
It worked well in OH1 but is listed as Unknown Device in OH2.

Can someone help me to understand the idea of xml/database for zwave?

Where should I start to look if there’s already a ?definition? for my zwave-component?
Do I have to import a devicespecific xml?
If not - can I write one by myself?

I have a PSP01 sensor as well. Also recognised as PSM02. I think the supplier used the same deviceId for multiple sensors. But that doesn’t really matter. The same sensors are defined (motion, temp, illumination, etc.).
The sensor worked fine in OH1. But in OH2 it seems the zwave binding doesn’t handle the NOMOTION (OFF) signal that the sensor is sending.

I see the item being switched on:

2017-06-17 14:37:48.413 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_BINARY, value = 255
2017-06-17 14:37:48.418 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Updating channel state zwave:device:controller:node6:alarm_motion to ON [OnOffType]

But the OFF signal is not handled:

2017-06-17 14:38:27.015 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 0

–> no update for node6.

I have a rule that switches a light on or off, depending on the motion. That got a little mixed up by the missing OFF signal. But I fixed that with an Expire binding.

Would be nice though if the binding could also handle the OFF signal, coming from the sensor.

-David

It seems that the device uses the SENSOR_BINARY to report the ON, but then the BASIC class to report the OFF which is a bit annoying. Is there anything else sent at the OFF time?

I’m not really sure how this was well handled in OH1 either. We can set the BASIC to be interpreted as the SENSOR_BINARY class, but since the BASIC doesn’t say which SENSOR_BINARY message the report is related to, it will disable all alarms (ie motion, door and tamper). I guess this is also how OH1 would have handled it and this is probably a reasonable option.

Can you provide the OH1 item config so I can confirm this and we can update the database.

Hi Chris,

Thanks for your reply. I switched on my OH1 instance to see the logging. The same principle: ON with SENSOR_BINARY of with BASIC.

ON (OH1)

2017-06-17 12:05:36 DEBUG o.o.b.z.i.p.c.ZWaveBinarySensorCommandClass[:102]- NODE 6: Sensor Binary report, type=Motion, value=255
2017-06-17 12:05:36 DEBUG o.o.b.z.i.p.ZWaveController[:635]- Notifying event listeners: ZWaveBinarySensorValueEvent
2017-06-17 12:05:36 DEBUG o.o.b.z.i.ZWaveActiveBinding[:433]- ZwaveIncomingEvent
2017-06-17 12:05:36 DEBUG o.o.b.z.i.ZWaveActiveBinding[:450]- NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_BINARY, value = 255

OFF (OH1)

2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.s.ApplicationCommandMessageClass[:38]- NODE 6: Application Command Request (ALIVE:PING)
2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.s.ApplicationCommandMessageClass[:56]- NODE 6: Incoming command class BASIC
2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.c.ZWaveBasicCommandClass[:74]- NODE 6: Received Basic Request
2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.c.ZWaveBasicCommandClass[:78]- NODE 6: Basic Set sent to the controller will be processed as Basic Report
2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.c.ZWaveBasicCommandClass[:107]- NODE 6: Basic report, value = 0x00
2017-06-17 12:06:50 DEBUG o.o.b.z.i.p.ZWaveController[:635]- Notifying event listeners: ZWaveCommandClassValueEvent
2017-06-17 12:06:50 DEBUG o.o.b.z.i.ZWaveActiveBinding[:433]- ZwaveIncomingEvent
2017-06-17 12:06:50 DEBUG o.o.b.z.i.ZWaveActiveBinding[:450]- NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 0

My OH1 item config for this node:

Contact		cSideKitchen    		"Bijkeuken [MAP(nl_contact.map):%s]"  	<_motion>   		(gZWave, gPhilio, gSidekitchen, gContact) 	
			{ zwave="6:command=basic" }  //sensor_binary,respond_to_basic=true
Number		nSideKitchen_temp 		"Temperatuur bijkeuken [%.1f °C]"   	<temperature>		(gZWave, gPhilio, gSidekitchen)    			
			{ zwave="6:command=sensor_multilevel,sensor_type=1" }
Number		nSideKitchen_light 		"Lichtsterkte bijkeuken [%.0f Lux]" 	<_illumination>		(gZWave, gPhilio, gSidekitchen)    			
			{ zwave="6:command=sensor_multilevel,sensor_type=3" }
Number		nSideKitchen_battery    "Batterij niveau bijkeuken [%s %%]"  	<_battery>			(gZWave, gPhilio, gSidekitchen, gBattery)	
			{ zwave="6:command=battery" }

I will switch on the debug log to test if there are additional lines when the OFF message is send.

-David

Ok, so OH1 didn’t process the sensor then - you just used the basic command class instead. Let’s see what the latest version does when it’s updated.