OpenHab2 and Linear NGD00Z-4 Garage Door Controller

I just looked at the XML in the binding and see BARRIER_STATE and all the other channels you are seeing. I didnt realize the device database was updated back in April. I haven’t deleted (or reinitialized) the Things for my garage openers, which would have picked up these changes!

So, I reinitialized them and am in the same state as you (I’m also on 2.2.0 snapshot). I swapped my items from barrier_operator to barrier_state and everything is behaving as before. I tried the other channels and nothing came through. Which I’m not surprised about, since the device does not use the ALARM CC (http://products.z-wavealliance.org/products/1298/classes).

The items for one of my garage doors:

Switch	    GarageAttached_Door	            "Garage Door (Attached) [MAP(garagedoor.map):%s]"	        <garagedoor>	(gGarageAttached,gLock,gGarageDoor,gSleep_Security)
Number	    GarageAttached_Door_Position	"Garage Door (Attached) [MAP(garagedoor.map):%s]"           <garagedoor>	(gGarageAttached,gGarageDoor,gSleep_Security)     {channel="zwave:device:07cb40a2:node177:barrier_state"}

garagedoor.map:

0=CLOSED
ON=CLOSED
252=CLOSING
253=STOPPED
254=OPENING
255=OPEN
OFF=OPEN
-=Unknown
NULL=Unknown

This rule sends a 255 or 0 to open and close the door, based on the switch state:

rule "Lock: Update garage door barrier_state after switch state change events (GarageAttached_Door)"
when
	Item GarageAttached_Door changed
then
    if (GarageAttached_Door.state == ON) {//closed
		GarageAttached_Door_Position.sendCommand("0")
        logDebug("Rules", "Lock: Update garage door barrier_state after switch state change events (GarageAttached_Door_Position) [{}]",GarageAttached_Door_Position.state)
    }
    else if (GarageAttached_Door.state == OFF) {
		GarageAttached_Door_Position.sendCommand("255")
        logDebug("Rules", "Lock: Update garage door barrier_state after switch state change events (GarageAttached_Door_Position) [{}]",GarageAttached_Door_Position.state)
	}
end

The number items change if the remote for the garage doors are used, so this rule keeps the state of the switch correct:

rule "Lock: Update garage door states after barrier_state events (GarageAttached_Door_Position)"
when
	Item GarageAttached_Door_Position received update
then
    if (GarageAttached_Door_Position.state == 255 && GarageAttached_Door.state == ON) {
		GarageAttached_Door.postUpdate(OFF)
        logDebug("Rules", "Lock: Update garage door states after barrier_state events (GarageAttached_Door) [{}]",GarageAttached_Door.state)
    }
    else if (GarageAttached_Door_Position.state == 0 && GarageAttached_Door.state == OFF) {
		GarageAttached_Door.postUpdate(ON)
        logDebug("Rules", "Lock: Update garage door states after barrier_state events (GarageAttached_Door) [{}]",GarageAttached_Door.state)
	}
end

EDIT: Here is an updated version that uses a lambda to avoid duplication of code when more than one NGD00Z is being used.