404 error when updating zwave device properties

Unfortunately not. I updated openhab2 yesterday, but the problem still persists.

If you are defining data in the text files, then you can’t use the UI to configure certain things and you will get this error - I suspect this is likely to be the cause here?

I was trying to update the config of my Qubino 2way relay so that he would reopen after 1 second. So really the options in the device itself.

So I guess this isn’t data in text files. I think you mean something else here then the items and sitemaps?

No - I mean items and things. If you use text files for configuration, then there are limitations…

OH currently doesn’t officially support device configuration - the current expectation is that other software should be used to configure devices. I know that’s not what people want, and I only found out that this was the official concept long after I’d implemented it, but it means the functions I use to configure devices are only meant to be used for configuring the runtime.

Officially, if you configure the runtime using text files, then you can’t use it to configure the UI…

In my case I wanted to update a device setting, namely the “Motion Sensor Sensitivity”. This setting is stored in the device itself, since it directly influences the motion detection. I don’t know whether openHAB2 tries to store the device settings also locally, but I assume that this should not conflict with my configuration files, since the whole thing definition of my motion sensor is not stored in a configuration file. Is it even possible to configure things via configuration files? I thought this works only for items, sitemaps and rules. Anyway, so far I could always configure things in the paper UI. This is the first paper UI configuration error I get.

OK, So if I understand you correctly, we can’t update the options of the zwave nodes by paperUI (yet)?
So we should do it fe over habmin?

I’ll try to get habmin to work then. I’m having some trouble with it (Habmin rights)…

No - both HABmin and PaperUI will do the same thing as they both send the same commands to OH.

I’m not sure that this is the problem - I’m just trying to outline that using text files might be an issue - I don’t know if that’s what people here are doing or not…

Yes, it does and this is the cause of the problem.

As above, this might not be the reason - it’s just one possible cause. As I don’t know your system, I’m just offering suggestions / limitations of the system…

I’m just using flat text files for items, sitemaps and rules (mostly copies of OH1).

Thanks, chris. I appreciate any help.

In the end, I guess we have to file a bug report.

I installed RC1 and I have this issue, but only in Paper UI (Habmin works fine)

To be clear:

  1. I have no text config files.
  2. If I use Paper UI to change properties on Zwave device, as described above I get the Thing Updated followed shortly by ERROR: 404 - Not Found, and the property does not save.
  3. Habmin has no issue modifying the same property, which is then visible in both Paper and Habmin

@xylo did you end up opening a bug?
@chris I assume this is a Paper UI bug? ie if Habmin has no issue, the binding and other backend stuff is working fine.

If you can isolate exactly what you changed it would be useful. I know habmin saves things in a slightly different way than paper ui (unless it’s changed) but if you can work out what change doesn’t work it would be good.

Ok, I have done some more testing…

In Paper UI, if I edit any Thing and then apply I get the error.
Eg if I edit my LED bulb, and edit the Colour Change Speed.

Using WireShark, I can see it actually seems to send all parameters (as opposed to Habmin which only sends modified value)

Request URI: /rest/things/zwave:device:1ac5c271:node3/config

JavaScript Object Notation: application/json
    Object
        Member Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@1f123a01
            Array
            Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@1f123a01
        Member Key: config_38_4_000000FF
            Number value: 33
            Key: config_38_4_000000FF
        Member Key: config_32_1
            Number value: 1
            Key: config_32_1
        Member Key: config_38_4_00FF0000
            Number value: 101
            Key: config_38_4_00FF0000
        Member Key: config_252_1
            Number value: 0
            Key: config_252_1
        Member Key: config_80_1
            Number value: 2
            Key: config_80_1
        Member Key: powerlevel_level
            Number value: 7
            Key: powerlevel_level
        Member Key: config_37_4_0000FF00
            Number value: 15
            Key: config_37_4_0000FF00
        Member Key: group_1
            Array
            Key: group_1
        Member Key: config_38_4_7F000000
            Number value: 7
            Key: config_38_4_7F000000
        Member Key: group_2
            Array
            Key: group_2
        Member Key: config_37_4_00FF0000
            Number value: 10
            Key: config_37_4_00FF0000
        Member Key: config_37_4_7F000000
            Number value: 0
            Key: config_37_4_7F000000
        Member Key: switchall_mode
            String value: SWITCH_ALL_INCLUDE_ON_OFF
            Key: switchall_mode
        Member Key: config_36_1_wo
            Number value: 0
            Key: config_36_1_wo
        Member Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@af47994
            Array
            Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@af47994
        Member Key: powerlevel_timeout
            Number value: 0
            Key: powerlevel_timeout
        Member Key: config_38_4_0000FF00
            Number value: 67
            Key: config_38_4_0000FF00
        Member Key: config_34_1
            Number value: 0
            Key: config_34_1
        Member Key: config_35_1
            Number value: 1
            Key: config_35_1
        Member Key: config_37_4_000000FF
            Number value: 0
            Key: config_37_4_000000FF

The response is:

Status Code: 404

JavaScript Object Notation: application/json
    Object
        Member Key: error
            Object
                Member Key: message
                    String value: Thing zwave:device:1ac5c271:node3 does not exist!
                    Key: message
                Member Key: http-code
                    Number value: 404
                    Key: http-code
            Key: error

As Opposed to Habmin which sends the following:

Request URI: /rest/things/zwave:device:1ac5c271:node3/config

JavaScript Object Notation: application/json
    Object
        Member Key: config_37_4_0000FF00
            Number value: 14
            Key: config_37_4_0000FF00

Which gets the response:

Status Code: 200

JavaScript Object Notation: application/json
    Object
        Member Key: statusInfo
            Object
                Member Key: status
                    String value: ONLINE
                    Key: status
                Member Key: statusDetail
                    String value: NONE
                    Key: statusDetail
            Key: statusInfo
        Member Key: label
            String value: Light_LivingRoom
            Key: label
        Member Key: bridgeUID
            String value: zwave:serial_zstick:1ac5c271
            Key: bridgeUID
        Member Key: configuration
            Object
                Member Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@1f123a01
                    Array
                    Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@1f123a01
                Member Key: config_38_4_000000FF
                    Number value: 33
                    Key: config_38_4_000000FF
                Member Key: config_32_1
                    Number value: 1
                    Key: config_32_1
                Member Key: config_38_4_00FF0000
                    Number value: 101
                    Key: config_38_4_00FF0000
                Member Key: config_252_1
                    Number value: 0
                    Key: config_252_1
                Member Key: config_80_1
                    Number value: 2
                    Key: config_80_1
                Member Key: powerlevel_level
                    Number value: 7
                    Key: powerlevel_level
                Member Key: config_37_4_0000FF00
                    Number value: 14
                    Key: config_37_4_0000FF00
                Member Key: group_1
                    Array
                    Key: group_1
                Member Key: config_38_4_7F000000
                    Number value: 7
                    Key: config_38_4_7F000000
                Member Key: group_2
                    Array
                    Key: group_2
                Member Key: config_37_4_00FF0000
                    Number value: 10
                    Key: config_37_4_00FF0000
                Member Key: config_37_4_7F000000
                    Number value: 0
                    Key: config_37_4_7F000000
                Member Key: switchall_mode
                    String value: SWITCH_ALL_INCLUDE_ON_OFF
                    Key: switchall_mode
                Member Key: config_36_1_wo
                    Number value: 0
                    Key: config_36_1_wo
                Member Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@af47994
                    Array
                    Key: group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@af47994
                Member Key: powerlevel_timeout
                    Number value: 0
                    Key: powerlevel_timeout
                Member Key: config_38_4_0000FF00
                    Number value: 67
                    Key: config_38_4_0000FF00
                Member Key: config_34_1
                    Number value: 0
                    Key: config_34_1
                Member Key: config_35_1
                    Number value: 1
                    Key: config_35_1
                Member Key: config_37_4_000000FF
                    Number value: 0
                    Key: config_37_4_000000FF
            Key: configuration
        Member Key: properties
            Object
                Member Key: zwave_class_basic
                    String value: ROUTING_SLAVE
                    Key: zwave_class_basic
                Member Key: zwave_class_generic
                    String value: MULTILEVEL_SWITCH
                    Key: zwave_class_generic
                Member Key: zwave_frequent
                    String value: false
                    Key: zwave_frequent
                Member Key: zwave_neighbours
                    String value: 1,2
                    Key: zwave_neighbours
                Member Key: zwave_version
                    String value: 1.4
                    Key: zwave_version
                Member Key: zwave_listening
                    String value: true
                    Key: zwave_listening
                Member Key: zwave_plus_devicetype
                    String value: LIGHT_DIMMER_SWITCH
                    Key: zwave_plus_devicetype
                Member Key: zwave_deviceid
                    String value: 98
                    Key: zwave_deviceid
                Member Key: zwave_nodeid
                    String value: 3
                    Key: zwave_nodeid
                Member Key: zwave_routing
                    String value: true
                    Key: zwave_routing
                Member Key: zwave_beaming
                    String value: true
                    Key: zwave_beaming
                Member Key: zwave_class_specific
                    String value: POWER_SWITCH_MULTILEVEL
                    Key: zwave_class_specific
                Member Key: zwave_manufacturer
                    String value: 134
                    Key: zwave_manufacturer
                Member Key: zwave_devicetype
                    String value: 515
                    Key: zwave_devicetype
            Key: properties
        Member Key: UID
            String value: zwave:device:1ac5c271:node3
            Key: UID
        Member Key: thingTypeUID
            String value: zwave:aeon_zw098_00_000
            Key: thingTypeUID
        Member Key: channels
            Array
            Key: channels
        Member Key: location
            String value: Living Room
            Key: location

I have same issue after updating openhab. Can´t edit any things in paperui, but habmin works fine

There’s two possibilities - one is that PaperUI is doing something wrong - the other is I’m aware of a bug in the zwave binding that incorrectly saves associations. This is fixed in some versions, but I’m not sure if it’s fixed in the master branch, and even if it is, these parameters remain in the configuration. Can I suggest if you are game @peter to look in the json database (in the userdata/jsondb folder), look in the things file (I forget the exact name and delete the entry that has this “group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@1f123a01”. If you want to provide the jsondb file I can be a bit clearer. We can see if removing this solves the issue.

@jamsven
Thanks for the tip. It really works with habmin!

I’m having the same problem, and I’m also using Z-Wave. If I attempt to update device properties through the PaperUI, I also get the 404 error. I have had the same problem with both the release candidate and the final release. I discovered the problem before I had any textual configurations and was just playing around with the Inbox / Discovery features. Manually editing the JSON files in /userdata/jsondb, as well as using HABMIN also works for me so I suspect this is a bug with the PaperUI.

Also same issue with DSB09 Home Energy Meter…404 error when editing device properties via Paper UI. Suspicious DEBUG entries here…

09:28:08.253 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 11: Configuration update received
09:28:08.333 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 11: Configuration update group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@103b4c0 to []
09:28:08.336 [INFO ] [ome.io.rest.core.thing.ThingResource] - Received HTTP PUT request for update config at 'things/zwave:device:6bc1c726:node11/config' for the unknown thing 'zwave:device:6bc1c726:node11'.

I was having the same issue and I noticed that when I tried to use the API I got this error

{
  "error": {
    "message": "Duplicate channels zwave:device:500632da:node4:scene_number",
    "http-code": 500,
    "exception": {
      "class": "java.lang.IllegalArgumentException",
      "message": "Duplicate channels zwave:device:500632da:node4:scene_number",
      "localized-message": "Duplicate channels zwave:device:500632da:node4:scene_number"
    }
  }
}

When I look at these switches they do have two channels with the same name, all my HomeSeer switches have two scene_number channels but I’m not sure why. This seems to be causing my issues, maybe it’s related to others? I basically can’t update anything on these nodes, I get the same error in the logs when I try to do it from the UI.

2017-02-27 08:19:31.705 [INFO ] [ome.io.rest.core.thing.ThingResource] - Received HTTP PUT request for update config at 'things/zwave:device:500632da:node4/config' for the unknown thing 'zwave:device:500632da:

As I have the same problem, I was wondering if you heard if this worked? I have two similar lines in the Things.json file right above the configurations that won’t change in PaperUI (get the same messages as described in this thread)
“group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@bbffd”: [
“node_1_0”
],
“group_org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@240f23”: [
“node_1_0”

Removing the bogus lines from my config file fixed the 404s. Here’s a small script I wrote to help: https://gist.github.com/jvolkman/1068504ca686182dd38e62f036daaf30