Binding for Sensibo Sky available

Good morning,

I have not seen anything in the API specification that allows this unfortunately.

https://sensibo.github.io/

Arne

Hello I need help, I’m trying to validate the temperature in order to perform an action but I can’t get the temperature value from the line below, the problem appears to be the format because when I do a mouse over I get “25.3 °C”

    if (sensibo_sensibosky_fxxx_bxxx_currentTemperature.state >= 25)

This is a generic question about UoM; the solution is here; [SOLVED] Using UoM / QuantityType in rules where used DecimalType Previously

Regards

Hi, I thought I answered your question, if not I’ll try again:

Please post your item and sitemap description along with a capture of the log between your openhab and sensibo servers. You can obtain this by setting the log level to DEBUG for this binding. Make sure you remove the API-key from the log before posting it.

You can also post it in a private message to me if you prefer this.

Regards Arne, binding author.

Ok, thank you for checking, if anyone know how this can be added, it would be greatly appreciated as the display LED come back on as soon as a command is sent to the unit and they are very bright in the dark.

I’m using the default item and sitemap generated by PaperUI. I have tried the item and sitemap settings on the addon’s github page, but I got the same result. It appears the binding is assuming the API is returning the “Current Temperature” in Fahrenheit. When I changed the Measurement System to “Metric”, it showed “-6.3°C”. The “Target Temperature” is correct, however.

Edit: Figured out how to get a debug log. Here it is, with API key and other sensitive information removed.

20:55:43.752 [DEBUG] [nternal.handler.SensiboAccountHandler] - Initializing Sensibo Account bridge using config SensiboAccountConfiguration [apiKey=<not showing>, refreshInterval=120]
20:55:44.697 [DEBUG] [sensibo.internal.client.RequestLogger] - Request fa4009a9-1
fa4009a9-1 > GET https://home.sensibo.com/api/v2/users/me/pods?apiKey=<redacted>
fa4009a9-1 > Accept-Encoding: gzip
fa4009a9-1 > User-Agent: Jetty/9.4.20.v20190813
fa4009a9-1 > Host: home.sensibo.com

20:55:44.941 [DEBUG] [sensibo.internal.client.RequestLogger] - Response fa4009a9-1
fa4009a9-1 < HTTP/1.1 200 OK
fa4009a9-1 < Content-Type: application/json
fa4009a9-1 < Date: Fri, 22 May 2020 01:55:44 GMT
fa4009a9-1 < Server: nginx
fa4009a9-1 < Strict-Transport-Security: max-age=63072000
fa4009a9-1 < X-Frame-Options: SAMEORIGIN
fa4009a9-1 < Content-Length: 53
fa4009a9-1 < Connection: keep-alive

{
  "status": "success",
  "result": [
    {
      "id": "<redacted>"
    }
  ]
}
20:55:45.026 [DEBUG] [sensibo.internal.client.RequestLogger] - Request fa4009a9-2
fa4009a9-2 > GET https://home.sensibo.com/api/v2/pods/<redacted>?apiKey=<redacted>&fields=*
fa4009a9-2 > Accept-Encoding: gzip
fa4009a9-2 > User-Agent: Jetty/9.4.20.v20190813
fa4009a9-2 > Host: home.sensibo.com

20:55:45.384 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'java.io.EOFException: End of input at line 1 column 4017 path $.result.remoteCapabilities.modes.cool.temperatures.C.values[5]'
20:55:45.412 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 4 path $'
20:55:45.430 [DEBUG] [sensibo.internal.client.RequestLogger] - Response fa4009a9-2
fa4009a9-2 < HTTP/1.1 200 OK
fa4009a9-2 < Content-Type: application/json
fa4009a9-2 < Date: Fri, 22 May 2020 01:55:45 GMT
fa4009a9-2 < Server: nginx
fa4009a9-2 < Strict-Transport-Security: max-age=63072000
fa4009a9-2 < X-Frame-Options: SAMEORIGIN
fa4009a9-2 < Transfer-Encoding: chunked
fa4009a9-2 < Connection: keep-alive

{"status": "success", "result": {"configGroup": "stable", "macAddress": "<redacted>", "isGeofenceOnExitEnabled": false, "currentlyAvailableFirmwareVersion": "IN010056", "cleanFiltersNotificationEnabled": true, "connectionStatus": {"isAlive": true, "lastSeen": {"secondsAgo": 46, "time": "2020-05-22T01:54:58.481416Z"}}, "acState": {"on": false, "targetTemperature": 69, "temperatureUnit": "F", "mode": "dry", "fanLevel": "low"}, "motionSensors": [], "id": "<redacted>", "qrId": "ZSFHYQKYOB", "roomIsOccupied": null, "firmwareType": "cc3100_stm32f0", "motionConfig": null, "measurements": {"batteryVoltage": null, "temperature": 21.3, "humidity": 69.4, "time": {"secondsAgo": 46, "time": "2020-05-22T01:54:58.481416Z"}, "rssi": -59, "piezo": [null, null]}, "smartMode": {"deviceUid": "<redacted>", "highTemperatureWebhook": null, "highTemperatureThreshold": 26.6666666666667, "lowTemperatureWebhook": null, "type": "temperature", "lowTemperatureState": {"on": true, "fanLevel": "high", "temperatureUnit": "F", "targetTemperature": 75, "mode": "fan"}, "enabled": false, "highTemperatureState": {"on": true, "fanLevel": "high", "temperatureUnit": "F", "targetTemperature": 72, "mode": "cool"}, "lowTemperatureThreshold": 24.4444444444444}, "shouldShowFilterCleaningNotification": false, "firmwareVersion": "IN010056", "sensorsCalibration": {"temperature": -1.1, "humidity": 0.0}, "location": {"latLon": [<redacted>], "updateTime": {"secondsAgo": 60898560, "time": "2018-06-17T05:39:45Z"}, "features": [], "country": "USA", "createTime": {"secondsAgo": 62123087, "time": "2018-06-03T01:30:58Z"}, "address": ["<redacted>", "<redacted>", "<redacted>"], "geofenceTriggerRadius": 508, "id": "<redacted>", "name": "home"}, "tags": [], "productModel": "skyv2", "schedules": [{"nextTime": "2020-05-22T12:00:00", "podUid": "<redacted>", "recurringDays": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "createTimeSecondsAgo": 27178471, "isEnabled": false, "createTime": "2019-07-12T12:21:14", "acState": {"on": false}, "targetTimeLocal": "07:00", "timezone": "America/Chicago", "nextTimeSecondsFromNow": 36254, "causedBy": {"username": "samuikon", "firstName": "Samui", "lastName": "Shiiba", "email": "<redacted>"}, "id": "<redacted>"}, {"nextTime": "2020-05-22T21:00:00", "podUid": "<redacted>", "recurringDays": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "createTimeSecondsAgo": 27510231, "isEnabled": false, "createTime": "2019-07-08T16:11:54", "acState": {"extra": {"scheduler": {"climate_react": null, "on": true}}, "on": true, "fanLevel": "auto", "temperatureUnit": "F", "targetTemperature": 69, "mode": "auto"}, "targetTimeLocal": "16:00", "timezone": "America/Chicago", "nextTimeSecondsFromNow": 68654, "causedBy": {"username": "samuikon", "firstName": "Samui", "lastName": "Shiiba", "email": "<redacted>"}, "id": "<redacted>"}], "isClimateReactGeofenceOnExitEnabled": false, "remoteCapabilities": {"modes": {"dry": {"temperatures": {"C": {"isNative": false, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]}, "F": {"isNative": true, "values": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]}}, "fanLevels": ["low"]}, "auto": {"temperatures": {"C": {"isNative": false, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]}, "F": {"isNative": true, "values": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]}}, "fanLevels": ["auto"]}, "fan": {"temperatures": {"C": {"isNative": false, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]}, "F": {"isNative": true, "values": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]}}, "fanLevels": ["low", "medium", "high", "auto"]}, "cool": {"temperatures": {"C": {"isNative": false, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]}, "F": {"isNative": true, "values": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]}}, "fanLevels": ["low", "medium", "high", "auto"]}}}, "serial": "<redacted>", "remote": {"window": true, "toggle": true}, "room": {"name": "main ac", "icon": "bedroom"}, "temperatureUnit": "F", "timer": null, "remoteFlavor": "Mustachioed Dove", "isMotionGeofenceOnExitEnabled": false, "remoteAlternatives": ["_danby1_with_heat", "danby1", "_danby1_4modes_starts_on_energy_saver", "danby1c", "_danby1c3", "_danby1c2"]}}
20:55:45.499 [DEBUG] [nternal.handler.SensiboAccountHandler] - Initialization of Sensibo account completed successfully for SensiboAccountConfiguration [apiKey=<not showing>, refreshInterval=120]

Edit 2: If I switch to Celsius in the Sensibo app, the “Current Temperature” displays correctly. I’m sure you’re already aware of this, but the current temperature returned from the API is always Celsius - even if “temperatureUnit” is Fahrenheit.

Thanks @icekitsune for pinpointing the problem. I was not aware that temperature measurements always are reported in celsius.

Updated binding; https://github.com/seime/openhab2-addons/releases/download/2.5.5-measurement/org.openhab.binding.sensibo-2.5.6-SNAPSHOT.jar

Hopefully it will be part of the next maintenance release as well.

You’re welcome. I installed the updated add-on, and the “Current Temperature” now displays correctly. Thanks!

Hi,

I installed the Sensibo binding 2 days ago. Basically it works fine but in the events.log I see the following error almost every 2 minutes:

2020-08-21 15:31:06.781 [hingStatusInfoChangedEvent] - 'sensibo:account:399e48f8' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
2020-08-21 15:32:08.729 [hingStatusInfoChangedEvent] - 'sensibo:account:399e48f8' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE

And another thing: In my sitemap looks like:

Frame label="Aircon" 
{
    Text item=gSensibo label="Office" icon="fan" {
            Frame label="Office" {
                Switch item=AC_Office_MasterSwitch
                Selection item=AC_Office_Mode 
                Setpoint item=AC_Office_Target_Temperature
                Selection item=AC_Office_Fan_Level
                Selection item=AC_Office_Swing_Mode
                Text item=AC_Office_Current_Temperature  
                Text item=AC_Office_Current_Humidity
            }
    }
}

But I can’t select any “Selection”-item in BasicUI…

Does someone have the same issues or any solution for this?

Hi Flip,

to your question

  1. I have not seen this. Could you set the log level to DEBUG for this binding, capture a few minutes and post it here? NB: Be sure to remove the API key in the URL !
  2. I have noticed that the selections works after a restart, but after a while gets empty. I found a thread that mentions similar issues; I am ATM assuming it is the same issue, but I have not tested against OH3. Dynamic state options not showing up

Hi Arne,

thanks for your quick reply. Here we go:

When the Thing switches from ONLINE to OFFLINE the debug.log shows:

22:57:04.516 [DEBUG] [sensibo.internal.client.RequestLogger] - Request 399e48f8-1583
399e48f8-1583 > GET https://home.sensibo.com/api/v2/users/me/pods?apiKey=**************************************
399e48f8-1583 > Accept-Encoding: gzip
399e48f8-1583 > User-Agent: Jetty/9.4.20.v20190813
399e48f8-1583 > Host: home.sensibo.com

22:57:04.615 [DEBUG] [internal.handler.SensiboAccountHandler] - Error updating Sensibo model do to Error sending request to Sensibo server: java.io.EOFException: HttpConnectionOverHTTP@101fce0::DecryptedEndPoint@1b422b6{home.sensibo.com/52.211.44.202:443<->/192.168.100.3:52888,OPEN,fill=-,flush=-,to=60149/0}
22:57:04.630 [INFO ] [home.event.ThingStatusInfoChangedEvent] - 'sensibo:account:399e48f8' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
22:57:04.636 [INFO ] [home.event.ThingStatusInfoChangedEvent] - 'sensibo:sensibosky:399e48f8:BCDDC2B3F9FA' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
22:57:04.643 [INFO ] [home.event.ThingStatusInfoChangedEvent] - 'sensibo:sensibosky:399e48f8:2CF4321218A4' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
22:57:04.650 [INFO ] [home.event.ThingStatusInfoChangedEvent] - 'sensibo:sensibosky:399e48f8:500291B65E98' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)

And when it switch back to ONLINE:

22:58:05.379 [DEBUG] [sensibo.internal.client.RequestLogger] - Request 399e48f8-1584
399e48f8-1584 > GET https://home.sensibo.com/api/v2/users/me/pods?apiKey=**************************************
399e48f8-1584 > Accept-Encoding: gzip
399e48f8-1584 > User-Agent: Jetty/9.4.20.v20190813
399e48f8-1584 > Host: home.sensibo.com

22:58:05.613 [DEBUG] [sensibo.internal.client.RequestLogger] - Response 399e48f8-1584
399e48f8-1584 < HTTP/1.1 200 OK
399e48f8-1584 < Content-Type: application/json
399e48f8-1584 < Date: Fri, 21 Aug 2020 15:58:05 GMT
399e48f8-1584 < Server: nginx
399e48f8-1584 < Strict-Transport-Security: max-age=63072000
399e48f8-1584 < X-Frame-Options: SAMEORIGIN
399e48f8-1584 < Content-Length: 93
399e48f8-1584 < Connection: keep-alive

{
  "status": "success",
  "result": [
    {
      "id": "jfXdbsNf"
    },
    {
      "id": "PcJDvJN5"
    },
    {
      "id": "5s5fWvgP"
    }
  ]
}
22:58:05.633 [DEBUG] [sensibo.internal.client.RequestLogger] - Request 399e48f8-1585
399e48f8-1585 > GET https://home.sensibo.com/api/v2/pods/jfXdbsNf?apiKey=**************************************&fields=*
399e48f8-1585 > Accept-Encoding: gzip
399e48f8-1585 > User-Agent: Jetty/9.4.20.v20190813
399e48f8-1585 > Host: home.sensibo.com

22:58:05.897 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 4017 path $.result.remoteCapabilities.modes.fan.fanLevels[0]'
22:58:05.909 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 8 path $'
22:58:05.920 [DEBUG] [sensibo.internal.client.RequestLogger] - Response 399e48f8-1585
399e48f8-1585 < HTTP/1.1 200 OK
399e48f8-1585 < Content-Type: application/json
399e48f8-1585 < Date: Fri, 21 Aug 2020 15:58:05 GMT
399e48f8-1585 < Server: nginx
399e48f8-1585 < Strict-Transport-Security: max-age=63072000
399e48f8-1585 < X-Frame-Options: SAMEORIGIN
399e48f8-1585 < Transfer-Encoding: chunked
399e48f8-1585 < Connection: keep-alive

{"status": "success", "result": {"configGroup": "stable", "macAddress": "**:**:**:**:**:98", "isGeofenceOnExitEnabled": true, "currentlyAvailableFirmwareVersion": "SKY30044", "cleanFiltersNotificationEnabled": false, "connectionStatus": {"isAlive": true, "lastSeen": {"secondsAgo": 73, "time": "2020-08-21T15:56:51.556033Z"}}, "filtersCleaning": null, "acState": {"on": false, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 24, "mode": "cool", "swing": "fixedTop"}, "mainMeasurementsSensor": null, "motionSensors": [], "id": "jfXdbsNf", "qrId": "CJIPXYENFL", "roomIsOccupied": null, "firmwareType": "esp8266ex", "motionConfig": null, "measurements": {"batteryVoltage": null, "temperature": 26.2, "humidity": 49.5, "time": {"secondsAgo": 73, "time": "2020-08-21T15:56:51.556033Z"}, "rssi": -43, "piezo": [null, null]}, "smartMode": {"deviceUid": "jfXdbsNf", "highTemperatureWebhook": null, "highTemperatureThreshold": 70.0, "lowTemperatureWebhook": null, "type": "humidity", "lowTemperatureState": {"on": false, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 25, "mode": "dry", "swing": "rangeFull"}, "enabled": false, "highTemperatureState": {"on": true, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 25, "mode": "dry", "swing": "rangeFull"}, "lowTemperatureThreshold": 50.0}, "shouldShowFilterCleaningNotification": false, "firmwareVersion": "SKY30044", "sensorsCalibration": {"temperature": 0.0, "humidity": 0.0}, "location": {"latLon": [7.79072841677012, 98.3239620923996], "updateTime": {"secondsAgo": 4106129, "time": "2020-07-05T03:22:36Z"}, "features": [], "country": " ", "createTime": {"secondsAgo": 25552273, "time": "2019-10-30T22:06:52Z"}, "address": [" ", " ", " "], "geofenceTriggerRadius": 100, "subscription": null, "id": "nQhphTV2KZ", "name": "Home"}, "tags": [], "productModel": "skyv2", "schedules": [], "isClimateReactGeofenceOnExitEnabled": false, "remoteCapabilities": {"modes": {"dry": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "auto": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "heat": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [50, 61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "fan": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "cool": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}}}, "serial": "461912200", "accessPoint": {"password": null, "ssid": "SENSIBO-I-56565"}, "remote": {"window": false, "toggle": false}, "room": {"name": "Bedroom", "icon": "Bedroom"}, "temperatureUnit": "C", "timer": null, "remoteFlavor": "Enthusiastic Triceratops", "isMotionGeofenceOnExitEnabled": false, "remoteAlternatives": ["_mitsubishi1fa", "_mitsubishi1_for_ben_ho", "_mitsubishi1_plasma_on", "_mitsubishi1_plasma_on_clean_on", "mitsubishi1f", "_mitsubishi1f"]}}
22:58:05.954 [DEBUG] [sensibo.internal.client.RequestLogger] - Request 399e48f8-1586
399e48f8-1586 > GET https://home.sensibo.com/api/v2/pods/PcJDvJN5?apiKey=**************************************&fields=*
399e48f8-1586 > Accept-Encoding: gzip
399e48f8-1586 > User-Agent: Jetty/9.4.20.v20190813
399e48f8-1586 > Host: home.sensibo.com

22:58:06.208 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'java.io.EOFException: End of input at line 1 column 4017 path $.result.remoteCapabilities.modes.fan.fanLevels[1]'
22:58:06.212 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 8 path $'
22:58:06.217 [DEBUG] [sensibo.internal.client.RequestLogger] - Response 399e48f8-1586
399e48f8-1586 < HTTP/1.1 200 OK
399e48f8-1586 < Content-Type: application/json
399e48f8-1586 < Date: Fri, 21 Aug 2020 15:58:06 GMT
399e48f8-1586 < Server: nginx
399e48f8-1586 < Strict-Transport-Security: max-age=63072000
399e48f8-1586 < X-Frame-Options: SAMEORIGIN
399e48f8-1586 < Transfer-Encoding: chunked
399e48f8-1586 < Connection: keep-alive

{"status": "success", "result": {"configGroup": "stable", "macAddress": "**:**:**:**:**:A4", "isGeofenceOnExitEnabled": false, "currentlyAvailableFirmwareVersion": "SKY30044", "cleanFiltersNotificationEnabled": false, "connectionStatus": {"isAlive": true, "lastSeen": {"secondsAgo": 73, "time": "2020-08-21T15:56:52.808759Z"}}, "filtersCleaning": null, "acState": {"on": true, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 24, "mode": "cool", "swing": "fixedTop"}, "mainMeasurementsSensor": null, "motionSensors": [], "id": "PcJDvJN5", "qrId": "ZOXHGGCDRZ", "roomIsOccupied": null, "firmwareType": "esp8266ex", "motionConfig": null, "measurements": {"batteryVoltage": null, "temperature": 23.8, "humidity": 49.1, "time": {"secondsAgo": 73, "time": "2020-08-21T15:56:52.808759Z"}, "rssi": -32, "piezo": [null, null]}, "smartMode": {"deviceUid": "PcJDvJN5", "highTemperatureWebhook": null, "highTemperatureThreshold": 70.0, "lowTemperatureWebhook": null, "type": "humidity", "lowTemperatureState": {"on": false, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "stopped", "targetTemperature": 25, "mode": "cool", "swing": "rangeFull"}, "enabled": false, "highTemperatureState": {"on": true, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "stopped", "targetTemperature": 25, "mode": "dry", "swing": "rangeFull"}, "lowTemperatureThreshold": 50.0}, "shouldShowFilterCleaningNotification": false, "firmwareVersion": "SKY30044", "sensorsCalibration": {"temperature": 0.0, "humidity": 0.0}, "location": {"latLon": [7.79072841677012, 98.3239620923996], "updateTime": {"secondsAgo": 4106130, "time": "2020-07-05T03:22:36Z"}, "features": [], "country": " ", "createTime": {"secondsAgo": 25552274, "time": "2019-10-30T22:06:52Z"}, "address": [" ", " ", " "], "geofenceTriggerRadius": 100, "subscription": null, "id": "nQhphTV2KZ", "name": "Home"}, "tags": [], "productModel": "skyv2", "schedules": [], "isClimateReactGeofenceOnExitEnabled": false, "remoteCapabilities": {"modes": {"dry": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "auto": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "heat": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [50, 61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "fan": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "cool": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}}}, "serial": "301907135", "accessPoint": {"password": null, "ssid": "SENSIBO-I-83047"}, "remote": {"window": false, "toggle": false}, "room": {"name": "Office", "icon": "Office"}, "temperatureUnit": "C", "timer": null, "remoteFlavor": "Enthusiastic Triceratops", "isMotionGeofenceOnExitEnabled": false, "remoteAlternatives": ["_mitsubishi1fa", "_mitsubishi1_for_ben_ho", "_mitsubishi1_plasma_on", "_mitsubishi1_plasma_on_clean_on", "mitsubishi1f", "_mitsubishi1f"]}}
22:58:06.229 [DEBUG] [sensibo.internal.client.RequestLogger] - Request 399e48f8-1587
399e48f8-1587 > GET https://home.sensibo.com/api/v2/pods/5s5fWvgP?apiKey=**************************************&fields=*
399e48f8-1587 > Accept-Encoding: gzip
399e48f8-1587 > User-Agent: Jetty/9.4.20.v20190813
399e48f8-1587 > Host: home.sensibo.com

22:58:06.491 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 4017 path $.result.remoteCapabilities.modes.fan.fanLevels[0]'
22:58:06.496 [DEBUG] [sensibo.internal.client.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 5 path $'
22:58:06.501 [DEBUG] [sensibo.internal.client.RequestLogger] - Response 399e48f8-1587
399e48f8-1587 < HTTP/1.1 200 OK
399e48f8-1587 < Content-Type: application/json
399e48f8-1587 < Date: Fri, 21 Aug 2020 15:58:06 GMT
399e48f8-1587 < Server: nginx
399e48f8-1587 < Strict-Transport-Security: max-age=63072000
399e48f8-1587 < X-Frame-Options: SAMEORIGIN
399e48f8-1587 < Transfer-Encoding: chunked
399e48f8-1587 < Connection: keep-alive

{"status": "success", "result": {"configGroup": "stable", "macAddress": "**:**:**:**:**:FA", "isGeofenceOnExitEnabled": false, "currentlyAvailableFirmwareVersion": "SKY30044", "cleanFiltersNotificationEnabled": false, "connectionStatus": {"isAlive": true, "lastSeen": {"secondsAgo": 68, "time": "2020-08-21T15:56:57.824248Z"}}, "filtersCleaning": null, "acState": {"on": true, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 24, "mode": "cool", "swing": "stopped"}, "mainMeasurementsSensor": null, "motionSensors": [], "id": "5s5fWvgP", "qrId": "KFZXWRPIWW", "roomIsOccupied": null, "firmwareType": "esp8266ex", "motionConfig": null, "measurements": {"batteryVoltage": null, "temperature": 24.2, "humidity": 51.6, "time": {"secondsAgo": 68, "time": "2020-08-21T15:56:57.824248Z"}, "rssi": -46, "piezo": [null, null]}, "smartMode": {"deviceUid": "5s5fWvgP", "highTemperatureWebhook": null, "highTemperatureThreshold": 70.0, "lowTemperatureWebhook": null, "type": "humidity", "lowTemperatureState": {"on": false, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 25, "mode": "dry", "swing": "stopped"}, "enabled": false, "highTemperatureState": {"on": true, "fanLevel": "auto", "temperatureUnit": "C", "horizontalSwing": "fixedCenter", "targetTemperature": 25, "mode": "dry", "swing": "rangeFull"}, "lowTemperatureThreshold": 50.0}, "shouldShowFilterCleaningNotification": false, "firmwareVersion": "SKY30044", "sensorsCalibration": {"temperature": 0.0, "humidity": 0.0}, "location": {"latLon": [7.79072841677012, 98.3239620923996], "updateTime": {"secondsAgo": 4106130, "time": "2020-07-05T03:22:36Z"}, "features": [], "country": " ", "createTime": {"secondsAgo": 25552274, "time": "2019-10-30T22:06:52Z"}, "address": [" ", " ", " "], "geofenceTriggerRadius": 100, "subscription": null, "id": "nQhphTV2KZ", "name": "Home"}, "tags": [], "productModel": "skyv2", "schedules": [], "isClimateReactGeofenceOnExitEnabled": false, "remoteCapabilities": {"modes": {"dry": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "auto": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "heat": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [50, 61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "fan": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}, "cool": {"horizontalSwing": ["fixedCenter", "fixedCenterLeft", "fixedCenterRight", "fixedLeft", "fixedRight", "stopped"], "swing": ["stopped", "fixedTop", "fixedMiddleTop", "fixedMiddle", "fixedMiddleBottom", "fixedBottom", "rangeFull"], "temperatures": {"C": {"isNative": true, "values": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]}, "F": {"isNative": false, "values": [61, 63, 64, 66, 68, 70, 72, 73, 75, 77, 79, 81, 82, 84, 86, 88]}}, "fanLevels": ["quiet", "low", "medium", "medium_high", "high", "auto", "strong"]}}}, "serial": "461910304", "accessPoint": {"password": null, "ssid": "SENSIBO-I-95596"}, "remote": {"window": false, "toggle": false}, "room": {"name": "Living", "icon": "Den"}, "temperatureUnit": "C", "timer": null, "remoteFlavor": "Enthusiastic Triceratops", "isMotionGeofenceOnExitEnabled": false, "remoteAlternatives": ["_mitsubishi1fa", "_mitsubishi1_for_ben_ho", "_mitsubishi1_plasma_on", "_mitsubishi1_plasma_on_clean_on", "mitsubishi1f", "_mitsubishi1f"]}}
22:58:06.519 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'sensibo:sensibosky:399e48f8:BCDDC2B3F9FA' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
22:58:06.561 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'sensibo:sensibosky:399e48f8:500291B65E98' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE

BTW: The reformat error appears even on every successful call…

Regarding the other problem… For me the selection only worked for the first time after editing the sitemap. Now, even after a restart (with cache cleanup) it doesn’t work.

I am really not sure here. A theory is that since the HTTP client is being reused across several bindings, some erranous usage in another binding may cause this.

Could you try to remove all bindings (that do HTTP connections) except this one? If it helps, try to re-enable binding by binding to see if any of them causes the problem.

Arne

Thanks for looking into it… Actually this is a fresh installation of openhabian and beside the sensibo binding I only have the hue-binding installed… But to be sure, I just setup another instance of openhabian on another raspberry - same result :frowning:

Hi again,

I just made an interesting observation regarding the selection item… 1 Pod is working absolutely fine whilst I am not able to do a selection in BasicUI for the other 2. So I went to Paper-UI Control and I can see:

So only Sensibo Sky Bedroom shows the selection whilst Office and Living don’t… Could it be a problem when having more than 1 device?

Good theory, I will take a look in a few days (sorry, very busy at work atm).

Regards
Arne

1 Like

I did some changes to ensure that the channels are added every time the Sensibo sky comes back online. At least for now my the selections still show after about 20 hours runtime. The same goes for the sitemap items on my phone.

Feel free to give the new version a spin; https://github.com/seime/openhab2-addons/releases/download/2.5.9-SNAPSHOT/org.openhab.binding.sensibo-2.5.9-SNAPSHOT.jar

Be aware that simply adding the jar to the addons folder and disable the original bundle did not solve the issue; I had to remove the originally installed bundle fully - and then do a full restart of openhab.

Hi Arne

thanks for your effort - really appricated! I just removed all the old items and deinstalled the old binding, installed the new binding and started up (with a cache cleanup before)… Now, no one of the pods is showing the “selection”-channels anymore. But on the other hand, the OFFLINE/ONLINE issue seems to be gone… No disconnects so far…

Regards,
Flip

Correction: After about 30 minutes the “selection”-channels appeared!
So everything is working perfect now!

Thanks again for your help Arne!

Ping

I creating a widget its a work in progress

Please post your widget under a new topic, makes it easier to find latet