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.