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 (Product Command 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.