openhab / openhab-google-assistant

openHAB Google Assistant: Actions on Google for openHAB
Eclipse Public License 2.0
174 stars 85 forks source link

Add Rollershutter #59

Closed fab33 closed 5 years ago

fab33 commented 5 years ago

Hi, Please can you add Rollershutter tag to have : UP DOWN PERCENTAGE. Thank you

BernRos commented 5 years ago

I have some issues with my Rollershutters. Google Assistant finds them now, although I'm not sure if everything is OK as there is still a small gear in the icon. When I tell Google Assistant to open or close the blinds, it confirms the command, but nothing happens. This is my item and the belonging rule:

Item:
Rollershutter Jalousien_OG_Bad   "Rollo Bad" (gBAD, gRollo_OG) [ "Blinds" ]

Rule:
rule "Jalousien Bad"
when
    Item Jalousien_OG_Bad received command
then
    if (receivedCommand==UP) sendHttpGetRequest("http://192.168.0.200/goform/ReadWrite?variable=Jal_BAD_Up_Web&value=1&write=Write")
    if (receivedCommand==STOP) sendHttpGetRequest("http://192.168.0.200/goform/ReadWrite?variable=Jal_BAD_Up_Web&value=0&variable1=Jal_BAD_Down_Web&value=0&write=Write")
    if (receivedCommand==DOWN) sendHttpGetRequest("http://192.168.0.200/goform/ReadWrite?variable=Jal_BAD_Down_Web&value=1&write=Write")
end

With the OpenHAB app or the BasicUI everything works fine. Don't know what I'm doing wrong here...

This is because your implementation does not support percent commands. This is being addressed by @pythen in this new issue #82 that @ozirissp opened.

Thanks a lot, this lead me to the solution: (receivedCommand==UP || receivedCommand==100)

Now it's working! The only nice thing would be now a "Touchable item" in Goggle Home, but I guess that's now a Google issue and not one from OpenHab.

marziman commented 5 years ago

@simoneluconi

interesting, and I think you better take care how you behave.

marziman commented 5 years ago

@simoneluconi

I will keep this easy, as I am used to stupid comments from people like you. I think you ignore the fact, that I am not your private developer: If you pay the maintainers, you will get it quicker next time. You cant be serious. This is really disrespectful to all contributors. Do you pay for the openhab-google-assistant integration? No! To you contribute (beside stupid comments) anyhow? No!

So I would say either learn to respect that people invest their free time and have many other duties beside making you happy, or think before writing such comments.

Instead of moaning, help and support testing.

2019: Still we have people like you in the community. Unbelievable.

marziman commented 5 years ago

@pythen,

for me this worked. I used basicUI to test. Should I touch it or do you gonna provide a fix?

I was really in the thinking you tested this many times with real device?

mvalla commented 5 years ago

@marziman, @pythen Consider this comment in the other issue: https://github.com/openhab/openhab-google-assistant/issues/82#issuecomment-493581606 Semantics of translation for opens/close between Google Assistant <-> openHAB should be clear and correctly implemented , no need to have any “invert” parameter that can only confuse users. If any invert parameter would be needed should be at the binding level for a specific rollershutter device to help users with their device/thing configuration , and not with this IO addon. I do not see any invert parameter for rollershutter translation for Alexa, for example.

simoneluconi commented 5 years ago

Hey hey! Calm everyone. As i wrote i had no intention to offend anyone. My comment was ironic. I also spent a lot of my free time to develop for other for free, and answer to a lot of People that don't understand the effort and the time you put on it, and I always had a laugh. Now i also work as a developer as a full time job.

marziman commented 5 years ago

@mvalla, I agree. I am not on it today, but I can check it later tomorrow. We should not bring confusion. The thing is, we dont have here a normal binding. The only place where this could be corrected is in the function code itself. In my opinion, the way how to tag and use it for blinds must be in harmony with existing ways. So we might need to correct it in the function code, nit on item tagging level.

pythen commented 5 years ago

@marziman Of course, I test this feature with my zwave devices since december. I have no problems. ;-) I provide a fix at weekend. I was missing a real beta phase with more devices.

@mvalla I can understand your concerns. I suggest the following:

The Connector don't need additional configuration. The solution is simple.

Example: Google send value -> OpenHab recieves 100 -> DOWN 0 -> UP 1 .. 99 -> 1..99 or 99 .. 1 (I have to test)

Other directions Google supports will be implemented later. (Left/Right, In/Out)

magd1978 commented 5 years ago

Hi, @pyten. Would you allow me a suggestion?

Google send value --> OpenHab receives command 0 --> DOWN 100 --> UP [1 .. 99] --> 100-[1 .. 99] = [99 .. 1]

OpenHab sends status --> Google receives value [0 .. 100] --> 100-[0 .. 100] = [100 .. 0]

pythen commented 5 years ago

@magd1978 Yes, I changed my last comment.

I will change that tomorrow. At this time, my neighbor would make trouble if the shutter is constantly moving up and down. ;-)

magd1978 commented 5 years ago

I changed my last commented too. I noticed it was erroneous.

simoneluconi commented 5 years ago

@pythen If i understand correctly I don't know if this is a good solution. Basically now i can control blinds directly via items objects because the blinds expect a value from 0 to 100. With that solution either you change the behavior of your blind to expect also value such as "UP" and "DOWN" (for me is not such a big deal, but for other people who know) or you have to implements additional rules to control them correctly.

For me makes more sense if google send 100 and openhab receive 100, but this is just a suggestion.

Tihmann commented 5 years ago

I just updated to the latest snapshot and tried it with my installation. Blinds are discovered by Google Home Assistant after adding [blinds] tag to the item. I am using Loxone. Just tried it with the German version of Google Home. With this translation I have to ask "OPEN" for closing my shutters and vice versa for CLOSE

magd1978 commented 5 years ago

Hello, @simoneluconi. I understand your point of view, and I respect it, but I do not think the same. Translation is something normal and necessary to maintain a single data model and a coherent semantics throughout the whole system. In this case, the problem is that that percentage means different things for Google and openHAB. For Google it's an opening percentage, and for openHAB it's a closing percentage. That's why it actually works inverted. The translation proposal does not intend to modify the value that is received from Google, but to translate it to the semantics of openHAB.

magd1978 commented 5 years ago

I understand that translating values ​​0 and 100 to UP / DOWN commands, will solve the problems for handling blinds with bindings that do not support percentages and will cause problems for those that do not support UP / DOWN. Hence my suggestion to be able to parameterize this behavior at least. If not, we must always be using rules and duplicating items to solve problems.

magd1978 commented 5 years ago

On the other hand, if what is involved is to simplify so as not to complicate things for the user, we should look for the solution that satisfies the majority, and use rules to deal with exceptions. For that matter I think that translating the values ​​to closing percentages and converting edges to UP / DOWN commands would be the most useful. In the fact, I know many control systems, and all of them support the UP / DOWN / STOP commands, and most of them support percentages. I suppose there will be some who only admit a percentage, but I think they are the exception.

Tihmann commented 5 years ago

The Loxone Binding automatically tags blinds/rollershutters with the tag [Rollershutter] not [Blinds]. Any chance to export [Rollershutter] items to Google Assistant als well ?

magd1978 commented 5 years ago

Hello, @Tihmann. I suppose you can add both tags [ "Rollershutter", "Blinds" ] to the item.

pythen commented 5 years ago

@magd1978 I'm confuse now. Where can I find the data model for the roller shutter.

In my test environment, I changed the following.

Function: G.A. send -> OpenHab receive open: 100 -> UP close: 0 -> DOWN position: 1..99 -> 99..1

For correct function, I had to invert the percent channel on my zwave devices, now.

magd1978 commented 5 years ago

@pythen It is quite simple. For Google, opening the shutter is to adjust it to 100%, and for openHAB, opening the shutter is to adjust it to 0%. Then, if Google says 100%, we should say openHAB 0% = UP. Similarly, if Google says 0%, we must say openHAB 100% = DOWN. And any other translated percentage is calculated by subtracting it from 100.

I suppose that you will have to activate some parameter so that the zwave binding inverts its current behavior. To make sure, send the UP / DOWN commands to the item (for example, from a control type rolleshutter in ClassicUI) and check that the blind behaves as it should.

pythen commented 5 years ago

Ok, that's the way it is now. I'm releasing a bug fix soon

pythen commented 5 years ago

@marziman The new version -> https://github.com/openhab/openhab-google-assistant/pull/84

martinmatias commented 5 years ago

Hi Guy's, thanks for all this great job. I've implemented it with a home made curtain usgin MQTT. I was using as a light and had the problem when I ask google to turn off all lights, it open the courtain. Using [Blinds] tag I can only open and close the courtain, but can't open half of it (50% for example). Is that possible with this tag? Also, how do I check the current status of the blind? Finally, I'm having the reverse problem, but hope that soon will be solved. Regards Martin

fmalfatto commented 5 years ago

I go on reading with interest this thread, but I continue not to understand how I can try/test/use this code. Today my Google Home started suddenly to show blinds but I have no way to use them. In the same time the thermostats stopped to respond ... I'm not a developer so I do not know what to do to reset my installation. I cannot find in any doc the right way to install/update/logging/go_back_to_prevoius_code in this package. I neither know which version is running in my system. I'm a system engineer and it's my use to manage systems without going inside the packages. But I'm sure I would be able to do that if I can read a document and follow a method. You all go on suggesting things that most people is not able to do, so we cannot test anything. At each new day I try if something strange is happening in my system. It's not a good way to proceed, in my opinion. I begin to fear to shutdown/restart each piece of my domotics because I cannot know what will happen after the restart. Please help me to find something about documentation!

mvalla commented 5 years ago

@fmalfatto I suggest you first discuss your issues in the openHAB community thread dedicated to Google Assistant, and not here. The code here is for developers who are able to setup a self installed cloud component to integrate with Google and uses this code. This code is not for regular users.. If you are just using openHAB and the standard cloud connector than this code does not affect you and you cannot test it: you have to wait it is deployed in the cloud. Regarding your issues:

This thread is about rollershutter support development so you are off topic here

fmalfatto commented 5 years ago

I'm really sorry I have confused the threads. Please excuse me the misunderstanding due to my fault to subscribe different threads. TY for clering it.

pythen commented 5 years ago

@All I hope it will be deployed soon. I'm a little embarrassed that your blinds work inverted.

Stefan300381 commented 5 years ago

hey guys, and now the most stupid question: Im on 2.5M1 and how do I get to this new functionality? high level instructions will be enough for me. thanks

robin-thoni commented 5 years ago

Worked OOTB for me with docker image openhab/openhab:2.4.0-snapshot-debian, after setting the Blinds tag.

BTW, they are NOT inverted for me...

Stefan300381 commented 5 years ago

@robin-thoni this is very interessting, because as far as I experienced and read in the community forum, OH 2.4 does contain a bug that prevents using 'rollershutter' items (with three commands like up, stop, down). could you post your item definition? thanks

robin-thoni commented 5 years ago

Not sure how to get them. I've been lazy with openHAB and made some tests through HABmin and PaperUI, now conf/items folder is empty...

robin-thoni commented 5 years ago

Ok, found this:

org.eclipse.smarthome.core.items.Item.json:

{
  "CuisineVoletPorte_BlindsControl": {
    "class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
    "value": {
      "groupNames": [],
      "itemType": "Rollershutter",
      "tags": [
        "Blinds"
      ],
      "label": "Blinds Control",
      "category": "Blinds"
    }
  },
  "VoletPorte_ShutterPosition": {
    "class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
    "value": {
      "groupNames": [],
      "itemType": "Dimmer",
      "tags": [],
      "label": "Shutter position",
      "category": "Blinds"
    }
  },
  "PorteGarage_AlarmGeneral": {
    "class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
    "value": {
      "groupNames": [],
      "itemType": "Switch",
      "tags": [],
      "label": "Alarm (general)",
      "category": "Alarm"
    }
  },
  "PorteGarage_BatteryLevel": {
    "class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
    "value": {
      "groupNames": [],
      "itemType": "Number",
      "tags": [],
      "label": "Battery Level",
      "category": "Battery"
    }
  },
  "garage_door": {
    "class": "org.eclipse.smarthome.core.items.ManagedItemProvider$PersistedItem",
    "value": {
      "groupNames": [],
      "itemType": "Contact",
      "tags": [
        "Switchable"
      ],
      "label": "Porte Garage",
      "category": "Door"
    }
  }
}

org.eclipse.smarthome.core.thing.Thing.json:

{
  "zwave:device:8c6d4392:node4": {
    "class": "org.eclipse.smarthome.core.thing.internal.ThingImpl",
    "value": {
      "label": "Volet porte",
      "bridgeUID": {
        "segments": [
          "zwave",
          "serial_zstick",
          "8c6d4392"
        ]
      },
      "channels": [
        {
          "acceptedItemType": "Switch",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "switch_binary"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "switch_binary"
            ]
          },
          "label": "Switch",
          "description": "Switch the power on and off",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:OnOffType": "COMMAND_CLASS_SWITCH_BINARY"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Rollershutter",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "blinds_control"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "blinds_control"
            ]
          },
          "label": "Blinds Control",
          "description": "Provides start / stop control of blinds",
          "configuration": {
            "properties": {
              "config_invert_control": false,
              "config_invert_percent": false,
              "config_duration": 255
            }
          },
          "properties": {
            "binding:Command:StopMoveType": "COMMAND_CLASS_SWITCH_MULTILEVEL",
            "binding:Command:UpDownType": "COMMAND_CLASS_SWITCH_MULTILEVEL",
            "binding:*:PercentType": "COMMAND_CLASS_SWITCH_MULTILEVEL"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "scene_number"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "scene_number"
            ]
          },
          "label": "Scene Number",
          "description": "Triggers when a scene button is pressed",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:DecimalType": "COMMAND_CLASS_SCENE_ACTIVATION"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "sensor_power"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "sensor_power"
            ]
          },
          "label": "Sensor (power)",
          "description": "Indicates the energy consumption (kWh)",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:DecimalType": "COMMAND_CLASS_SENSOR_MULTILEVEL;type\u003dPOWER"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "meter_watts"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "meter_watts"
            ]
          },
          "label": "Electric meter (watts)",
          "description": "Indicates the instantaneous power consumption",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:DecimalType": "COMMAND_CLASS_METER;type\u003dE_W"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "meter_kwh"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "meter_kwh"
            ]
          },
          "label": "Electric meter (kWh)",
          "description": "Indicates the energy consumption (kWh)",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:DecimalType": "COMMAND_CLASS_METER;type\u003dE_KWh"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Dimmer",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "blinds_shutter"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "blinds_shutter"
            ]
          },
          "label": "Shutter position",
          "description": "Sets the blinds shutter position",
          "configuration": {
            "properties": {
              "config_invert_percent": false
            }
          },
          "properties": {
            "binding:*:PercentType": "COMMAND_CLASS_MANUFACTURER_PROPRIETARY"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Dimmer",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node4",
              "blinds_lamella"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "blinds_lamella"
            ]
          },
          "label": "Lamella position",
          "description": "Sets the blinds lamella position",
          "configuration": {
            "properties": {
              "config_invert_percent": false
            }
          },
          "properties": {
            "binding:*:PercentType": "COMMAND_CLASS_MANUFACTURER_PROPRIETARY"
          },
          "defaultTags": []
        }
      ],
      "configuration": {
        "properties": {
          "config_30_1": 2,
          "config_31_1": 0,
          "config_32_1": 1,
          "binding_cmdrepollperiod": 1500,
          "config_33_1": 1,
          "config_10_1": 1,
          "config_50_1": 0,
          "group_1": [],
          "group_3": [],
          "group_2": [],
          "action_reinit": false,
          "config_17_1": 10,
          "config_12_2": 150,
          "config_18_1": 10,
          "config_13_1": 2,
          "config_35_1": 1,
          "config_14_1": 1,
          "config_44_1": 0,
          "config_42_2": 3600,
          "config_43_1": 10,
          "config_40_1": 10,
          "action_failed": false,
          "action_remove": false,
          "binding_pollperiod": 86400,
          "action_heal": false,
          "config_1_1": 0,
          "config_2_1": 0,
          "config_29_1": 0,
          "config_3_1": 0,
          "config_22_2": 10,
          "node_id": 4
        }
      },
      "properties": {
        "zwave_class_basic": "BASIC_TYPE_ROUTING_SLAVE",
        "zwave_class_generic": "GENERIC_TYPE_SWITCH_MULTILEVEL",
        "zwave_frequent": "false",
        "zwave_neighbours": "1",
        "modelId": "FGR222",
        "zwave_version": "25.25",
        "zwave_listening": "true",
        "manufacturerId": "010F",
        "manufacturerRef": "0301:1001,0302:1000,0302:3000",
        "dbReference": "413",
        "versionMin": "24.24",
        "zwave_deviceid": "4096",
        "zwave_nodeid": "4",
        "vendor": "Fibargroup",
        "defaultAssociations": "3",
        "zwave_routing": "true",
        "commandClass:COMMAND_CLASS_SWITCH_MULTILEVEL": "ccAdd",
        "zwave_beaming": "true",
        "zwave_secure": "false",
        "zwave_class_specific": "SPECIFIC_TYPE_CLASS_B_MOTOR_CONTROL",
        "zwave_manufacturer": "271",
        "zwave_devicetype": "770",
        "zwave_lastheal": "2019-05-24T02:31:27Z"
      },
      "uid": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node4"
        ]
      },
      "thingTypeUID": {
        "segments": [
          "zwave",
          "fibaro_fgr222_24_024"
        ]
      },
      "location": "Cuisine"
    }
  },
  "zwave:device:8c6d4392:node3": {
    "class": "org.eclipse.smarthome.core.thing.internal.ThingImpl",
    "value": {
      "label": "Porte Garage",
      "bridgeUID": {
        "segments": [
          "zwave",
          "serial_zstick",
          "8c6d4392"
        ]
      },
      "channels": [
        {
          "acceptedItemType": "Contact",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node3",
              "sensor_door"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "sensor_door"
            ]
          },
          "label": "Door Sensor",
          "description": "Indicates if the door/window is open or closed",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:OpenClosedType": "COMMAND_CLASS_SENSOR_BINARY,COMMAND_CLASS_BASIC"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Switch",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node3",
              "alarm_general"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "alarm_general"
            ]
          },
          "label": "Alarm (general)",
          "description": "Indicates if an alarm is triggered",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:OnOffType": "COMMAND_CLASS_ALARM;type\u003dGENERAL"
          },
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "device",
              "8c6d4392",
              "node3",
              "battery-level"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "system",
              "battery-level"
            ]
          },
          "label": "Battery Level",
          "configuration": {
            "properties": {}
          },
          "properties": {
            "binding:*:PercentType": "COMMAND_CLASS_BATTERY"
          },
          "defaultTags": []
        }
      ],
      "configuration": {
        "properties": {
          "binding_cmdrepollperiod": 1500,
          "config_255_4": 0,
          "action_failed": false,
          "wakeup_interval": 0,
          "action_remove": false,
          "group_1": [
            "node_1"
          ],
          "binding_pollperiod": 86400,
          "action_heal": false,
          "config_1_1": 1,
          "config_2_1": 1,
          "wakeup_node": 1,
          "config_39_1": 10,
          "config_121_4": 1,
          "config_111_4": 0,
          "config_3_1": 1,
          "node_id": 3
        }
      },
      "properties": {
        "zwave_class_basic": "BASIC_TYPE_ROUTING_SLAVE",
        "zwave_class_generic": "GENERIC_TYPE_SENSOR_NOTIFICATION",
        "zwave_frequent": "false",
        "zwave_neighbours": "",
        "modelId": "ZW120",
        "zwave_version": "1.5",
        "zwave_listening": "false",
        "manufacturerId": "0086",
        "manufacturerRef": "0002:0078,0102:0078,0202:0078",
        "dbReference": "405",
        "zwave_deviceid": "120",
        "zwave_nodeid": "3",
        "vendor": "AEON Labs",
        "defaultAssociations": "1",
        "zwave_routing": "true",
        "zwave_beaming": "true",
        "zwave_secure": "false",
        "zwave_class_specific": "SPECIFIC_TYPE_NOTIFICATION_SENSOR",
        "zwave_manufacturer": "134",
        "zwave_devicetype": "2",
        "zwave_lastwakeup": "2019-04-17T07:29:10Z",
        "zwave_plus_devicetype": "NODE_TYPE_ZWAVEPLUS_NODE",
        "zwave_plus_roletype": "ROLE_TYPE_SLAVE_SLEEPING_REPORTING"
      },
      "uid": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node3"
        ]
      },
      "thingTypeUID": {
        "segments": [
          "zwave",
          "aeon_zw120_00_000"
        ]
      },
      "location": "Garage"
    }
  },
  "zwave:serial_zstick:8c6d4392": {
    "class": "org.eclipse.smarthome.core.thing.internal.BridgeImpl",
    "value": {
      "label": "Z-Wave Serial Controller",
      "channels": [
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_sof"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_sof"
            ]
          },
          "label": "Start Frames",
          "description": "Counter tracking the number of SOF bytes received",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_ack"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_ack"
            ]
          },
          "label": "Frames Acknowledged",
          "description": "Counter tracking the number of frames acknowledged by the controller",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_nak"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_nak"
            ]
          },
          "label": "Frames Rejected",
          "description": "Counter tracking the number of frames rejected by the controller",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_can"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_can"
            ]
          },
          "label": "Frames Cancelled",
          "description": "Counter tracking the number of frames cancelled by the controller",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_oof"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_oof"
            ]
          },
          "label": "OOF Bytes Received",
          "description": "Counter tracking the number of out of flow bytes received",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        },
        {
          "acceptedItemType": "Number",
          "kind": "STATE",
          "uid": {
            "segments": [
              "zwave",
              "serial_zstick",
              "8c6d4392",
              "serial_cse"
            ]
          },
          "channelTypeUID": {
            "segments": [
              "zwave",
              "serial_cse"
            ]
          },
          "label": "Received Checksum Errors",
          "description": "Counter tracking the number of frames received with checksum errors",
          "configuration": {
            "properties": {}
          },
          "properties": {},
          "defaultTags": []
        }
      ],
      "configuration": {
        "properties": {
          "controller_softreset": false,
          "security_inclusionmode": 0,
          "controller_sisnode": 1,
          "controller_sync": false,
          "port": "/dev/ttyACM0",
          "controller_master": true,
          "inclusion_mode": 2,
          "controller_wakeupperiod": 3600,
          "heal_time": 2,
          "controller_exclude": false,
          "controller_inclusiontimeout": 30,
          "controller_hardreset": false
        }
      },
      "properties": {},
      "uid": {
        "segments": [
          "zwave",
          "serial_zstick",
          "8c6d4392"
        ]
      },
      "thingTypeUID": {
        "segments": [
          "zwave",
          "serial_zstick"
        ]
      }
    }
  }
}

org.eclipse.smarthome.core.thing.link.ItemChannelLink.json:

{
  "CuisineVoletPorte_BlindsControl -\u003e zwave:device:8c6d4392:node4:blinds_control": {
    "class": "org.eclipse.smarthome.core.thing.link.ItemChannelLink",
    "value": {
      "channelUID": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node4",
          "blinds_control"
        ]
      },
      "configuration": {
        "properties": {
          "profile": "system:default"
        }
      },
      "itemName": "CuisineVoletPorte_BlindsControl"
    }
  },
  "garage_door -\u003e zwave:device:8c6d4392:node3:sensor_door": {
    "class": "org.eclipse.smarthome.core.thing.link.ItemChannelLink",
    "value": {
      "channelUID": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node3",
          "sensor_door"
        ]
      },
      "configuration": {
        "properties": {
          "profile": "system:default"
        }
      },
      "itemName": "garage_door"
    }
  },
  "VoletPorte_ShutterPosition -\u003e zwave:device:8c6d4392:node4:blinds_shutter": {
    "class": "org.eclipse.smarthome.core.thing.link.ItemChannelLink",
    "value": {
      "channelUID": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node4",
          "blinds_shutter"
        ]
      },
      "configuration": {
        "properties": {
          "profile": "system:default"
        }
      },
      "itemName": "VoletPorte_ShutterPosition"
    }
  },
  "PorteGarage_AlarmGeneral -\u003e zwave:device:8c6d4392:node3:alarm_general": {
    "class": "org.eclipse.smarthome.core.thing.link.ItemChannelLink",
    "value": {
      "channelUID": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node3",
          "alarm_general"
        ]
      },
      "configuration": {
        "properties": {
          "profile": "system:default"
        }
      },
      "itemName": "PorteGarage_AlarmGeneral"
    }
  },
  "PorteGarage_BatteryLevel -\u003e zwave:device:8c6d4392:node3:battery-level": {
    "class": "org.eclipse.smarthome.core.thing.link.ItemChannelLink",
    "value": {
      "channelUID": {
        "segments": [
          "zwave",
          "device",
          "8c6d4392",
          "node3",
          "battery-level"
        ]
      },
      "configuration": {
        "properties": {
          "profile": "system:default"
        }
      },
      "itemName": "PorteGarage_BatteryLevel"
    }
  }
}
BernRos commented 5 years ago

I use also OpenHAB 2.4 and my blinds are working fine with rollershutter item now (Up/Stop/Down). I only had to add also the percentage in my rules. But since the last update of the Google Assistant my Thermostats are not working anymore. Don't know why, I didn't change anything in the code.

chris400 commented 5 years ago

After adding the appropriated tag in .items and initiating a sync ("hey Google sync my devices") they appeared. I am running current stable of openHAB and add-ons, no nightlies or similar.

But I am affected by the reverse bug :-/

magd1978 commented 5 years ago

Hello! I have seen that the pull request #84 by @pythen has already been merged. Do you know when this new corrected version would be deployed on myopenhab.org? Thank you all for your great work.

ozirissp commented 5 years ago

Since Yesterday, it's seems to be Ok for OPEN/CLOSE it's not inverted anymore. Thx for the fix

magd1978 commented 5 years ago

Confirmed. Bug is fixed. Thank you very much!!

Interstellar0verdrive commented 5 years ago

I confirm it’s fixed also for me (using 2.5M2 and the bticino openwebnet binding). Thanx!

marziman commented 5 years ago

Closing this issue.