OH2 Z-Wave refactoring and testing... and SECURITY

Hi Norbert and Chris,

I actually also just migrated my zwave network from the 1.9 binding to the latest development binding (dated 22-04-2018) and ran into the same issue with the Fibaro plugs not reporting power changes immediately.
I had used the “meter_watts” channel. This did not work as expected. Then I have noticed that there is an additional channel “sensor_power” for the Fibaro plugs. This channel works as expected here - power changes are reported immediately :slight_smile:
Maybe you can give this a try as well…

Cheers,
Matt

@mstehle… thanks for the input. tried to change meter_watts to sensor_power but here nothing is sent at all…not a single value, not even after rebooting.

SORRY - my mistake, double “:” in the channel name…not it works. very nice. would never have checked this one but it seems to do exactly what once worked in 1.9. “jippie”.

@chris Any idea what this all means/why this only works with the sensor channel since 2.x binding?
Another question…where in the XML do I find the associations?

Looked here (below) but even if i change to a different NODE and press SAVE i still see 1??? strange

 <associationGroups class="concurrent-hash-map">
<entry>
  <int>1</int>
  <associationGroup>
    <index>1</index>
    <associations>
      <associationMember>
        <node>1</node>
      </associationMember>
    </associations>
  </associationGroup>
</entry>

You seem to show it in your mail :confused: .

You can’t edit the XML - it will not result in any change to the device.

i have installed the development binding of 2018-04-24.
1st i have delete a fibaro FGR222 for rollershutter and add it again. it works fine.
then i have try to delete and add a fibaro fgs223 double switch. when i try to add
the fgs223 it is always shown as unknown device in the inbox.

is this device not in the database of development version?
what can i do to solve this problem?

then i have try to delete and add a fibaro fgs223 double switch. when i try to add

the fgs223 it is always shown as unknown device in the inbox.

is this device not in the database of development version?

In general, the development version should be exactly the same as the master version. It’s always possible a device might get lost while copying between the database and the repository, but it’s uncommon so I doubt there is an issue.

what can i do to solve this problem?

What exactly are the device type/id of your device? Without knowing this it’s not so easy to check if it’s in the database.

after changing the zwave controller config in habmin, I again have the problem that some fibaro devices doesnt change the state when using hardware switch. experience mentioned especially in post 17 in Problems with states/events

so for now I feel that my zwave uzb1 or the zwave binding make some trouble. I didnt test it but I think when I exclude all devices and reinclude them again, that the issue failed updating states is gone…

Nice catch, works for me too, thx :+1:

So this indicates that the problem is not with the association configuration, but either with the database (ie channel configuration) or the device setting.

Based on what I saw in the log from @norbert_jordan this would make sense as the command being used to set the associations is the standard association command that has always been used. It would be interesting to see what the difference in the channel configuration is (@sihui - any chance you could take a look to see if things look ok?).

We have two channels regarding power consumption configured in the database, one multilevel sensor_power which reports state changes immediately and one meter_watts which reports state changes after polling.
This is for the FGWP101 which I have.
For the newer ones (FGWP102 1+2) it looks the same, both channels are configured.
For the US version it’s different, no sensor_power channel configured.

So I just installed the April 2018 Z-Wave binding, coming from the 2.3.0 snapshot installed through Paper UI. My new garage door opener is working thanks to the security classes!! However after installing the new binding a couple of my nodes that were previously being recognized as FirstAlert smoke detectors are now showing up as generic Unknown Device. This also happened for a couple of switches, but I had already written the item configs, and they are still fully operational. I had not gotten around yet to messing with the smoke detectors because I just installed them last weekend. If they were already in the database from the 2.3.0 snapshot installed through PaperUI then shouldn’t they still be in the database in this new manually installed binding installed from the link at the top?

Yes, the database is the same between versions. Probably you need to wake up the devices so they can be discovered again.

Oh, thanks they are battery operated (my first time using battery operated z-wave devices) so I’m sure you are right. I don’t mind waiting, surely they’ll wake up on their own.

Yes, if you’ve had them working previously, then they will probably wake up on their own. Probably this should happen in a few hours.

Thank you and thanks for all of your contributions!

1 Like

So if we remove the meter_watts channel from all three devices we have a breaking change for a lot of users because the sensor_power was created a long time after the initial database entry (I guess).
It seems that the sensor_power is sufficient for functionality, though …

Hi,

I’m having some trouble configuring things using the textual file format. I hope this is not something that has been answered elsewhere, couldn’t find anything similar.

// UZB1 as the zwave controller. Network key below censored
// secret key generated with python3.6: import secrets; secrets.token_hex(16).upper()
Bridge zwave:serial_zstick:controller [         port="/dev/ttyACM0",         controller_master=true,         controller_suc=true,         security_inclusionmode=1,         security_networkkey="B127961121631D9094A0F9A34071BC4F" ]

// Fibaro FGMS001 sensor

// Z-Wave Node 006: FGMS001 Motion Sensor
// FGMS001 Motion Sensor
// Motion Sensor
// Status: ONLINE
// zwave_class_basic 	BASIC_TYPE_ROUTING_SLAVE
// zwave_class_generic 	GENERIC_TYPE_SENSOR_BINARY
// zwave_frequent 	false
// zwave_neighbours 	1
// zwave_version 	2.6
// zwave_listening 	false
// zwave_deviceid 	4097
// zwave_nodeid 	6
// zwave_routing 	true
// zwave_beaming 	true
// zwave_secure 	false
// zwave_class_specific 	SPECIFIC_TYPE_ROUTING_SENSOR_BINARY
// zwave_manufacturer 	271
// zwave_devicetype 	2048

// 14: (unused but UI default -1 is incorrect) BASIC ON
// 60: Temperature Report Threshold -> 0.1C
// 62: Interval of Temperature Measuring, seconds
// 64: Temperature Reports Interval, seconds
// group_1: status updates to node 1. node_NODEID_ENDPOINT_ID
// group_3: controller updates to node 1.
Thing zwave:fibaro_fgms001_00_000:controller:sensor_a (zwave:serial_zstick:controller) [     node_id=6,    config_14_1=255,    config_60_1=1,    config_62_2=300,    config_64_2=300,    wakeup=300,    binding_pollperiod=3600,    group_1="node_1_0",    group_3="node_1_0",    nodename_name="Sensor A" ]

The sensor appears to come ONLINE actually even transmitting the data. However, it looks like the configuration does not go through.

When querying the thing configuration, using REST API
(http://myhost:8080/rest/things/zwave:fibaro_fgms001_00_000:controller:sensor_a), I have the following

  "statusInfo": {
    "status": "OFFLINE",
    "statusDetail": "COMMUNICATION_ERROR",
    "description": "Node is not communicating with controller"
  },
  "editable": false,
  "label": "FGMS001 Motion Sensor",
  "bridgeUID": "zwave:serial_zstick:controller",
  "configuration": {
    "group_1": [],
    "group_3": [],
    "group_2": [],
    "nodename_name": "Sensor A",
    "config_16_1": 0,
    "wakeup_node": 1,
    "config_12_1": 0,
    "config_14_1": -1,
    "config_64_2": 0,
    "config_20_1": 15,
    "config_40_2": 200,
    "config_87_1": 28,
    "config_62_2": 900,
    "config_86_1": 18,
    "config_42_2": 0,
    "config_83_2": 1000,
    "config_82_2": 100,
    "wakeup": 300,
    "config_60_1": 10,
    "config_81_1": 50,
    "config_80_1": 10,
    "wakeup_interval": 7200,
    "binding_pollperiod": 3600,
    "config_1_1": 10,
    "config_2_1": 15,
    "config_6_2": 30,
    "config_8_1": 0,
    "config_9_2": 200,
    "config_3_1": 1,
    "config_22_2": 30,
    "config_4_1": 2,
    "config_24_1": 0,
    "config_66_2": 0,
    "node_id": 6,
    "config_26_1": 0,
    "config_89_1": 1
  },
  "properties": {
    "zwave_class_basic": "BASIC_TYPE_ROUTING_SLAVE",
    "zwave_class_generic": "GENERIC_TYPE_SENSOR_BINARY",
    "zwave_neighbours": "1",
    "zwave_frequent": "false",
    "versionMax": "2.8",
    "modelId": "FGMS001",
    "zwave_version": "2.6",
    "zwave_listening": "false",
    "manufacturerId": "010F",
    "manufacturerRef": "0800:1001,0800:2001,0800:3001,0801:1001,0801:2001",
    "dbReference": "115",
    "zwave_deviceid": "4097",
    "zwave_nodeid": "6",
    "vendor": "Fibargroup",
    "defaultAssociations": "3",
    "zwave_routing": "true",
    "zwave_beaming": "true",
    "zwave_secure": "false",
    "zwave_class_specific": "SPECIFIC_TYPE_ROUTING_SENSOR_BINARY",
    "zwave_manufacturer": "271",
    "zwave_devicetype": "2048"
  },
  "UID": "zwave:fibaro_fgms001_00_000:controller:sensor_a",
  "thingTypeUID": "zwave:fibaro_fgms001_00_000",
  "channels": [
    {
      "linkedItems": [],
      "uid": "zwave:fibaro_fgms001_00_000:controller:sensor_a:alarm_motion",
      "id": "alarm_motion",
      "channelTypeUID": "zwave:alarm_motion",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Motion Alarm",
      "description": "Indicates if a motion alarm is triggered",
      "defaultTags": [],
      "properties": {
        "binding:*:OnOffType": "COMMAND_CLASS_SENSOR_BINARY"
      },
      "configuration": {}
    },
    {
      "linkedItems": [
        "Temperature_Sensor_A"
      ],
      "uid": "zwave:fibaro_fgms001_00_000:controller:sensor_a:sensor_temperature",
      "id": "sensor_temperature",
      "channelTypeUID": "zwave:sensor_temperature",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Sensor (temperature)",
      "description": "Indicates the current temperature",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_SENSOR_MULTILEVEL;type\\u003dTEMPERATURE"
      },
      "configuration": {
        "config_scale": "0"
      }
    },
    {
      "linkedItems": [],
      "uid": "zwave:fibaro_fgms001_00_000:controller:sensor_a:sensor_luminance",
      "id": "sensor_luminance",
      "channelTypeUID": "zwave:sensor_luminance",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Sensor (luminance)",
      "description": "Indicates the current light reading",
      "defaultTags": [],
      "properties": {
        "binding:*:DecimalType": "COMMAND_CLASS_SENSOR_MULTILEVEL;type\\u003dLUMINANCE"
      },
      "configuration": {}
    },
    {
      "linkedItems": [
        "Battery_Sensor_A"
      ],
      "uid": "zwave:fibaro_fgms001_00_000:controller:sensor_a:battery-level",
      "id": "battery-level",
      "channelTypeUID": "system:battery-level",
      "itemType": "Number",
      "kind": "STATE",
      "label": "Battery Level",
      "defaultTags": [],
      "properties": {
        "binding:*:PercentType": "COMMAND_CLASS_BATTERY"
      },
      "configuration": {}
    },
    {
      "linkedItems": [],
      "uid": "zwave:fibaro_fgms001_00_000:controller:sensor_a:alarm_tamper",
      "id": "alarm_tamper",
      "channelTypeUID": "zwave:alarm_tamper",
      "itemType": "Switch",
      "kind": "STATE",
      "label": "Tamper Alarm",
      "description": "Indicates if the tamper alarm is triggered",
      "defaultTags": [],
      "properties": {
        "binding:*:OnOffType": "COMMAND_CLASS_SENSOR_ALARM,COMMAND_CLASS_BASIC;type\\u003dGENERAL"
      },
      "configuration": {}
    }
  ]
}

(sometimes the node is offline, sometimes online. Presumably because it is battery powered. This is not an issue)

You can see that the configuration parameters in things (e.g. config_62_2=300, config_64_2=300), are not there.

What am I doing wrong?

Best,
Sami

It is currently not possible to configure the device if you are using textual thing configuration - sorry. This is something that is (slowly!) being added to ESH, but at the moment it’s blocked and there’s not really anything I can do to provide this.

Thanks for the very quick reply! OK so configuration must happen via UI – got it, although things can be “declared” in config file?

Is there a github issue that I can follow progress on this?

Best,
Sami

Correct…

Correct…

But (and here’s the killer)… You can’t use the UI to configure things that are defined in a config file.

Mainly this one - there have been many discussions in the past, but this is the issue to try and resolve the problem -:

You can also find some background here -:

1 Like

Any chance you could recompile with the latest database? I’m champing at the bit to get my Conexis L1 lock working :slight_smile: