Unable to edit parameters on one thing Qubino Weather Station

I have the Qubino weather station installed on my OH setup. I previously had it working properly but ran into some issues which made me remove it. I added the device back and while it seems to be getting data properly, it doesn’t let me change its parameters. For instance I would like to change from Celsius to Fahrenheit on the temperature sensors. PaperUI is giving me an Error 500 internal server error each time I try to make a change to it. It’s as if the thing is in read only mode. I have tried removing it and adding it back but nothing works. Is there something that could be preventing this from working?

I am running openHAB 2.3.0 Build #1265 but it has not worked for a few builds now.

Yes. You can’t edit parameters via any GUI if your device thing is defined by text file.

Edit: actually in this case it should give an “Error 409- conflict”, and not a 500 error … not sure what is happening in your case.

This was all created via paper UI. I am wondering if it could be something lingering from my original install of it that is not allowing me to update. What could I check? I have tried deleting all things as well as items related and included it again but nothing seems to work. It will allow me to delete the thing and items with no problem.

You could check the thing db org.eclipse.smarthome.core.thing.Thing.json in userdata/jsondb , it’s a plain text file that you can even edit.
Possibly something went wrong that corrupted part of that file.

I opened the file and found the weather station in there. I don’t see anything obvious but I will try removing the weather station tonight and see if there is anything straggling in there after I do that. I imagine I could do the same with the Items file.

I noticed this in my log as I deleted the Weather station from HABmin. Could this have anything to do with it?

==> openhab.log <==
2018-05-02 07:38:44.325 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-02 07:38:45.559 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.

Every time I click on a thing in HABmin I get this now. I’m not sure if that was happening before as I wasn’t really looking for it.

==> openhab.log <==
2018-05-02 07:40:35.309 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.

You are not alone:

I’ve not notced this - I’d be very surprised if it’s related to HABmin - presumably the same happens with PaperUI?

I can guess that something might have changed and it doesn’t now allow collections of data in configurations, but that’s a total guess. I’ll try and have a look at this in the next day.

Just tested it: no, nothing in the logs, not from showing things, not from editing things … :sunglasses:

Strange - then I guess HABmin is using a different REST endpoint to PaperUI which in itself is a bit surprising. Can you take a look in the browser debug console to see what the REST call is that’s causing the error?

I’m not familiar with the browsers debug console, but I tried:

Showing a node via HABmin gives me this in the console:

angular.js:12011 GET http://192.168.2.237:8080/rest/config-descriptions/channel:zwave:device:15ca6a108b9:node3:alarm_motion 404 (Not Found)
(anonymous) @ angular.js:12011
sendReq @ angular.js:11776
serverRequest @ angular.js:11571
processQueue @ angular.js:16383
(anonymous) @ angular.js:16399
$eval @ angular.js:17682
$digest @ angular.js:17495
$apply @ angular.js:17790
(anonymous) @ angular.js:25890
dispatch @ jquery.js:4435
elemData.handle @ jquery.js:4121
angular.js:12011 GET http://192.168.2.237:8080/rest/things/zwave:device:15ca6a108b9:node3/config/status 500 (Internal Server Error)
(anonymous) @ angular.js:12011
sendReq @ angular.js:11776
serverRequest @ angular.js:11571
processQueue @ angular.js:16383
(anonymous) @ angular.js:16399
$eval @ angular.js:17682
$digest @ angular.js:17495
$apply @ angular.js:17790
(anonymous) @ angular.js:25890
dispatch @ jquery.js:4435
elemData.handle @ jquery.js:4121
angular.js:12011 GET http://192.168.2.237:8080/rest/config-descriptions/channel:zwave:device:15ca6a108b9:node3:sensor_luminance 404 (Not Found)
(anonymous) @ angular.js:12011
sendReq @ angular.js:11776
serverRequest @ angular.js:11571
processQueue @ angular.js:16383
(anonymous) @ angular.js:16399
$eval @ angular.js:17682
$digest @ angular.js:17495
$apply @ angular.js:17790
(anonymous) @ angular.js:25890
dispatch @ jquery.js:4435
elemData.handle @ jquery.js:4121
angular.js:12011 GET http://192.168.2.237:8080/rest/config-descriptions/channel:zwave:device:15ca6a108b9:node3:battery-level 404 (Not Found)
(anonymous) @ angular.js:12011
sendReq @ angular.js:11776
serverRequest @ angular.js:11571
processQueue @ angular.js:16383
(anonymous) @ angular.js:16399
$eval @ angular.js:17682
$digest @ angular.js:17495
$apply @ angular.js:17790
(anonymous) @ angular.js:25890
dispatch @ jquery.js:4435
elemData.handle @ jquery.js:4121
angular.js:12011 GET http://192.168.2.237:8080/rest/config-descriptions/channel:zwave:device:15ca6a108b9:node3:alarm_tamper 404 (Not Found)
(anonymous) @ angular.js:12011
sendReq @ angular.js:11776
serverRequest @ angular.js:11571
processQueue @ angular.js:16383
(anonymous) @ angular.js:16399
$eval @ angular.js:17682
$digest @ angular.js:17495
$apply @ angular.js:17790
(anonymous) @ angular.js:25890
dispatch @ jquery.js:4435
elemData.handle @ jquery.js:4121
eventModel.js:21 message

Showing the same node in PaperUI does not even show me the rest call :sunglasses:

Going directly to the REST Api via browser (GET /config-descriptions/{uri}) and feeding with one of the above errors gives me for channel:zwave:device:15ca6a108b9:node3:alarm_motion:

curl -X GET --header "Accept: application/json" "http://192.168.2.237:8080/rest/config-descriptions/channel%3Azwave%3Adevice%3A15ca6a108b9%3Anode3%3Aalarm_motion"

http://192.168.2.237:8080/rest/config-descriptions/channel%3Azwave%3Adevice%3A15ca6a108b9%3Anode3%3Aalarm_motion

{
  "error": {
    "message": "Configuration not found: channel:zwave:device:15ca6a108b9:node3:alarm_motion",
    "http-code": 404
  }
}

Sorry if this is not the right way to do it :kissing_heart:

Thanks @sihui - so do you mean that the error in the log (MessageBodyWriter not found…) happens when you request the channel configuration? Maybe this is an ESH bug.

I remember a long time ago I fixed a bug in ESH which was throwing an error when requesting configuration for a thing that had no configuration - clearly this is a normal case…

Strange thing is, the error in the openhab.log only appears when I request (=show a thing) it from HABmin, not when I call it directly through the REST Api or from PaperUI.
Does not make a lot of sense, I know …

What does this exactly mean? That node I was calling does have a valid configuration (parameters?), is online and works fine.
BTW, that error message in the log seems to have no impact at all on the functionality, everything is running fine :+1:

When you display the thing, the system requests the configuration of the thing. It doesn’t at that point know if the device has any configuration defined, and in the past, if there was no configuration available, then there was an error. However as I say, some things will not have any configuration, so this is perfectly normal (not so much for ZWave as there’s nearly always configuration at thing level, but other bindings this is probably common).

Thx for your patience and explanation.
I checked “showing things via HABmin” for other bindings (Astro, Xiaomi, Amazon Dash, Hue, Harmony, …), I always get that error message.
Still nothing in the logs doing the same via PaperUI … and still everything works as expected, so don’t worry too much :rofl:

1 Like

I’ll try and have a look when I get a chance - my guess is that it’s a bug, or mis-reported error in ESH, but I’ll see if I can replicate this over the next couple of days.

Thanks for the investigation @sihui

1 Like

I removed the thing in habmin which stated it had also removed the items. Turns out the items lagged behind so I went back and cleared them using paper UI. I have now removed the qubino weather station thing and all the associated items. Made sure nothing appears in PaperUI or Habmin. I looked in both the thing and items file as indicated in the jsondb folder and do not see anything there straggling behind. I then tried to add the thing back via paper UI and just one item to test. Again I still can’t edit. Any clue as to what else I can try?

I completely removed the thing from my z-wave network, checked the jsondb thing and item files and found nothing. I re-added the thing and I am still having the same issue. @chris could this be an issue with the latest z-wave binding? Before I moved on to the one with security I had this device functioning with no issue ( meaning I could edit it). The device is getting telemetry from it’s sensors. Also I noticed it’s not working with security not sure if that means anything…

When editing the jsondb entries, did you stop openhab2 service prior?
Editing jsondb means: stop openHAB, edit, start openHAB.

I think it’s unlikely - there have been no significant changes to the ZWave binding for a long time. Unless the database has been changed for this device, actual code changes are next to none for about 5 months.

The binding doesn’t work with security - you need to use the development binding if you want to use security.