My Zwave items are in State=NULL - What am I doing wrong?

  • Platform information:
    • Hardware: Intel 64bit
    • OS: Official openHAB 2.2.0-SNAPSHOT docker container based on Debian
    • Java Runtime Environment: zulu JDK 1.8.0_144
    • openHAB version: 2.2.0 - SNAPSHOT
  • Issue of the topic: ZWave items are in State=NULL

And its me again … I am running my docker container on Synology in privileged mode an I have set the permissions on the /dev/ttyACM0 devives to 777 to make it work inside the container. I configured the zwave section in the openhab.cfg and added the zwave binding to the bindings line in addons.cfg. The USB stick is recognized correctly and gets configured in openHAB.

I attached the Aeontec ZWave Plus Gen5 stick successfully and a Devolo temperature/humidity multi sensor.
I managed to get the USB Stick configured as Zwave bridge device and also to bind the sensor as node2 to the controller. I also managed to configure the things file right so that both devices get initialized during container startup. The I have searched on how to define the items - especially the channel to connect to the sensor tags …
I have found so many different ways to define items but none of them worked. Find below my configuration data and the ZWave related entries in the karaf console and openhab.log to see that I am almost there. Becausethe only missing link is to define the channel correctly to as the items keep staying in the state=NULL.

Things file:

Bridge  zwave:serial_zstick:abcd1234  [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", label="zwave_usbstick", security_networkkey="XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX" ]
Thing   zwave:device:abcd1234:node2   [ zwave_nodeid="2", label="DV_TEMP_HUMI" ]

Karaf console output for things:

openhab> smarthome:things list
zwave:device:abcd1234:node2 (Type=Thing, Status=ONLINE: Node initialising: WAIT, Label=DV_TEMP_HUMI, Bridge=zwave:serial_zstick:abcd1234)
zwave:serial_zstick:abcd1234 (Type=Bridge, Status=ONLINE, Label=zwave_usbstick, Bridge=null)
openhab> 

=> both: USB Stick = Bridge and Sensor = Thing are in Status=ONLINE !!!

openhab.log:

...
18:35:12.706 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: WAIT to ONLINE
18:35:14.760 [INFO ] [ommandclass.ZWaveSecurityCommandClass] - NODE 2: setupNetworkKey useSchemeZero=false
18:35:14.764 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE to ONLINE: Node initialising: PING
18:35:14.790 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: PING to ONLINE: Node initialising: DETAILS
18:35:14.792 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: DETAILS to ONLINE: Node initialising: GET_CONFIGURATION
18:35:14.794 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: GET_CONFIGURATION to ONLINE: Node initialising: DYNAMIC_VALUES
18:35:17.233 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'zwave:device:abcd1234:node2' has been updated.
18:35:17.236 [INFO ] [smarthome.event.ConfigStatusInfoEvent] - ConfigStatusInfo [configStatusMessages=[]]
18:35:17.422 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: DYNAMIC_VALUES to ONLINE: Node initialising: DYNAMIC_END
18:35:17.486 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: DYNAMIC_END to ONLINE: Node initialising: HEAL_START
18:35:17.488 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: HEAL_START to ONLINE: Node initialising: DELETE_ROUTES
18:35:17.592 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: DELETE_ROUTES to ONLINE: Node initialising: RETURN_ROUTES
18:35:17.921 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: RETURN_ROUTES to ONLINE: Node initialising: NEIGHBORS
18:35:17.929 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: NEIGHBORS to ONLINE
18:35:55.235 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE): Controller is offline
18:35:55.237 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from OFFLINE (BRIDGE_OFFLINE): Controller is offline to ONLINE
18:35:55.239 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'zwave:device:abcd1234:node2' has been updated.
...

This is my items file:

Group gZwave // Zwave items

Number ZwaveDVHumi  "Luftfeuchtigkeit [%d %%]"  (gZwave)  {channel="zwave:device:abcd1234:node2:sensor_relhumidity"}
Number ZwaveDVTemp  "Temperatur [%.1f °C]"      (gZwave)  {channel="zwave:device:abcd1234:node2:sensor_temperature"}
Number ZwaveDVBatt  "Batterielevel [%d %%]"     (gZwave)  {channel="zwave:device:abcd1234:node2:battery"}

The items get not recognized by openhab … see karaf console:

openhab> smarthome:items list | grep Zwave
gZwave (Type=GroupItem, Members=3, State=NULL, Label=null, Category=null)
ZwaveWzHumi (Type=NumberItem, State=NULL, Label=Luftfeuchtigkeit, Category=null, Groups=[gZwave])
ZwaveWzTemp (Type=NumberItem, State=NULL, Label=Temperatur, Category=null, Groups=[gZwave])
ZwaveWzBatt (Type=NumberItem, State=NULL, Label=Batterielevel, Category=null, Groups=[gZwave])
openhab> 

But the State is NULL? And also the Category = null? What am I missing or what is wrong with my items syntax???

Eventhough I am working in a container and therefore the configuration via Paper UI is not persistent I have used it to get the things added at the first time. I can read the thing properties from the Paper UI and here they are:

for the USB Stick:

zwave_neighbours 	2
zwave_nodeid  	1

for the Devolo Sensor:

wave_class_basic 	ROUTING_SLAVE
zwave_class_generic 	MULTILEVEL_SENSOR
zwave_neighbours 	1
zwave_frequent 	false
zwave_version 	1.14
zwave_listening 	false
zwave_plus_devicetype 	AIR_TEMPERATURE_SENSOR
zwave_deviceid 	32
zwave_nodeid 	2
zwave_routing 	true
zwave_wakeup_time 	2017-11-11T12:42:35Z
zwave_beaming 	true
zwave_class_specific 	ROUTING_SENSOR_MULTILEVEL
zwave_manufacturer 	373
zwave_devicetype 	2

I kindly appreciate any advice and hint what to do to get the sensor activated!

Thanks a lot
Justus

It seems something is happening … there are some errors in the openhab.log. Obviously the connection between controller and sensor seems not to be established but I do not understand what is happening. I am starting to google these errors. Probably this helps to find the culprit:

19:32:53.264 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE to ONLINE: Node initialising: DELETE_ROUTES
19:32:53.273 [INFO ] [smarthome.event.BindingEvent         ] - org.openhab.binding.zwave.event.BindingEvent@47fe5ad1
19:32:53.275 [INFO ] [smarthome.event.BindingEvent         ] - org.openhab.binding.zwave.event.BindingEvent@5f471b3b
19:32:53.300 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: DELETE_ROUTES to ONLINE: Node initialising: EMPTYNODE
19:32:53.303 [ERROR] [est.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:abcd1234:node2/config' for thing 'zwave:device:abcd1234:node2': java.math.BigDecimal cannot be cast to java.lang.Integer
19:32:53.315 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: EMPTYNODE to ONLINE: Node initialising: PROTOINFO
19:32:53.570 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: PROTOINFO to ONLINE: Node initialising: RETURN_ROUTES
19:32:53.574 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: RETURN_ROUTES to ONLINE: Node initialising: INIT_NEIGHBORS
19:32:53.703 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: INIT_NEIGHBORS to ONLINE: Node initialising: NEIGHBORS
19:32:53.709 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: NEIGHBORS to ONLINE
19:32:53.723 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE to ONLINE: Node initialising: FAILED_CHECK
19:32:53.730 [WARN ] [erialmessage.IsFailedNodeMessageClass] - NODE 2: Is currently marked as failed by the controller!
19:32:53.731 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from ONLINE: Node initialising: FAILED_CHECK to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
19:32:53.732 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'zwave:device:abcd1234:node2' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE: Node initialising: WAIT
19:33:19.952 [WARN ] [ol.serialmessage.SendDataMessageClass] - NODE 2: Already processed another send data request for this callback Id, ignoring.
19:33:29.982 [WARN ] [ol.serialmessage.SendDataMessageClass] - NODE 2: Already processed another send data request for this callback Id, ignoring.
19:33:40.043 [WARN ] [ol.serialmessage.SendDataMessageClass] - NODE 2: Already processed another send data request for this callback Id, ignoring.
19:33:50.002 [WARN ] [ol.serialmessage.SendDataMessageClass] - NODE 2: Already processed another send data request for this callback Id, ignoring.
19:34:11.905 [ERROR] [est.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:abcd1234:node2/config' for thing 'zwave:device:abcd1234:node2': null
19:34:12.094 [ERROR] [ave.internal.protocol.ZWaveController] - Exception during ZWave thread: Input 2. {}
java.lang.IllegalArgumentException: Illegal status REMOVED. The thing was in state ONLINE and not in REMOVING
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.ensureValidStatus(ThingManager.java:185) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.statusUpdated(ThingManager.java:150) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:384) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:413) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1208) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.serialmessage.RemoveFailedNodeMessageClass.handleRequest(RemoveFailedNodeMessageClass.java:136) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324) [197:org.openhab.binding.zwave:2.2.0.201711101750]
19:34:16.907 [INFO ] [smarthome.event.BindingEvent         ] - org.openhab.binding.zwave.event.BindingEvent@5180fea3
19:34:30.724 [ERROR] [est.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:abcd1234:node2/config' for thing 'zwave:device:abcd1234:node2': null
19:34:33.536 [ERROR] [ave.internal.protocol.ZWaveController] - Exception during ZWave thread: Input 2. {}
java.lang.IllegalArgumentException: Illegal status REMOVED. The thing was in state ONLINE and not in REMOVING
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.ensureValidStatus(ThingManager.java:185) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.statusUpdated(ThingManager.java:150) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:384) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:413) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1208) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.serialmessage.RemoveFailedNodeMessageClass.handleRequest(RemoveFailedNodeMessageClass.java:136) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208) [197:org.openhab.binding.zwave:2.2.0.201711101750]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324) [197:org.openhab.binding.zwave:2.2.0.201711101750]
19:34:39.913 [INFO ] [smarthome.event.BindingEvent         ] - org.openhab.binding.zwave.event.BindingEvent@55bf704b


Good News. I restarted the container as I found that the configuration via Paper UI conflicted with the configuration through the things and items files.

After reboot it works for temperature and humidity!!! Batterie-level still has State=NULL but I think can figure that out now as I know that it is working for the other two!!!

Sometimes documenting helps already to bring everything together :slight_smile:

Sorry for creating this post but the good news is, I solved it myself :slight_smile:

1 Like