Sensibo widget for openHAB 3

No the Key is you authentication.

You shouldent need to enter anything else in.

You have a working bridge

Goto image

Click on image in the bottom right corner

Then select the sensibo binding

Click image

It should show up under discovered things that you can click on and add as a new thing

1 Like

Perfect! Found it. Thanks James, excellent outcome. Looking at the code, the scan found it and used the MAC address all in upper case as the last characters in the UID and in the macAddress field.

Funny - small differences but it works really well now.

Here’s what the scan code looks like:

UID: sensibo:sensibosky:sensibobridge:[Redacted the MAC address all in upper with no colons]
label: Sensibo skyplus Living Room
thingTypeUID: sensibo:sensibosky
configuration:
->(i.e. indent by two spaces) macAddress: [Redacted the MAC address all in upper with no colons]
bridgeUID: sensibo:account:sensibobridge
location: Lounge Room

1 Like

thanks for the widget,
But only these work in a widget
1

I checked the thing and the items, everything is fine

no one can help me?

Did you Create equipment from thing This way it sets all the item names correctly.
Or it did when I did it last year.

Can you send me a list of your item names

i did Create equipment from thing

1

Thanks for posting pic I see the problem as I created the items in 3.0.0 version of binding.

I just made the widget I didn’t develop the binding. The binding has been updated so now its TargetTemperature not targetTemperature this is what broke the widget as I assume you are running 3.0.2.

Change the code to reflect this change.

uid: Sensibo_ACcontroller
tags: []
props:
  parameters:
    - description: The Label at the top of the card
      label: Friendly name of your aircon eg. Lounge
      name: title
      required: false
      type: TEXT
    - description: The index of your items aircon foo_TargetTemperature = foo
      label: The index name of your aircon
      name: airconditioner
      required: true
      type: TEXT
  parameterGroups: []
timestamp: Dec 5, 2020, 12:03:56 PM
component: f7-block
config:
  style:
    --f7-button-text-color: var(--f7-text-color)
    --f7-button-bg-color: var(--f7-card-bg-color)
    --f7-theme-color-rgb: var(--f7-color-blue-rgb)
  class:
    - no-padding
slots:
  default:
    - component: Label
      config:
        class:
          - margin
          - no-padding
        text: =props.title
        style:
          text-align: center
          height: auto
          font-size: 16px
          --f7-button-text-color: var(--f7-text-color)
          --f7-button-bg-color: var(--f7-card-bg-color)
          --f7-theme-color-rgb: var(--f7-color-blue-rgb)
    - component: f7-row
      config:
        class:
          - margin
      slots:
        default:
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    action: toggle
                    actionItem: =(props.airconditioner + "_MasterSwitch")
                    actionCommand: ON
                    actionCommandAlt: OFF
                    icon-f7: power
                    iconSize: 28
                    iconColor: '=(items[props.airconditioner + "_MasterSwitch"].state === "OFF") ? "red" : "green"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      height: auto
                      font-size: 12px
          - component: f7-col
            config:
              style:
                text-align: right
            slots:
              default:
                - component: Label
                  config:
                    text: =items[props.airconditioner + "_CurrentTemperature"].state.displayState || items[props.airconditioner + "_CurrentTemperature"].state
                    style:
                      white-space: nowrap
                      text-overflow: elipsis
                      heigh: auto
                      font-size: 12px
                - component: Label
                  config:
                    text: =items[props.airconditioner + "_CurrentHumidity"].displayState || items[props.airconditioner + "_CurrentHumidity"].state
                    style:
                      white-space: nowrap
                      text-overflow: elipsis
                      heigh: auto
                      font-size: 12px
    - component: f7-row
      config:
        class:
          - justify-content-center
      slots:
        default:
          - component: oh-knob
            config:
              min: 18
              max: 30
              stepSize: 1
              size: 270
              item: =[props.airconditioner + '_TargetTemperature']
    - component: f7-row
      config:
        class:
          - margin
      slots:
        default:
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    action: command
                    actionItem: =(props.airconditioner + '_Mode')
                    actionCommand: ="auto"
                    icon-f7: arrow_2_circlepath
                    iconColor: '=(items[props.airconditioner + "_Mode"].state === "auto") ? "red" : "gray"'
                    text: AUTO
                    textColor: '=(items[props.airconditioner + "_Mode"].state === "auto") ? "red" : "gray"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    action: command
                    actionItem: =(props.airconditioner + '_Mode')
                    actionCommand: ="heat"
                    icon-f7: thermometer_sun
                    iconColor: '=(items[props.airconditioner + "_Mode"].state === "heat") ? "orange" : "gray"'
                    text: HEAT
                    textColor: '=(items[props.airconditioner + "_Mode"].state === "heat") ? "black" : "gray"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    action: command
                    actionItem: =(props.airconditioner + '_Mode')
                    actionCommand: ="dry"
                    icon-f7: drop
                    iconColor: '=(items[props.airconditioner + "_Mode"].state === "dry") ? "yellow" : "gray"'
                    text: DRY
                    textColor: '=(items[props.airconditioner + "_Mode"].state === "dry") ? "black" : "gray"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    action: command
                    actionItem: =(props.airconditioner + '_Mode')
                    actionCommand: ="fan"
                    icon-f7: wind
                    iconColor: '=(items[props.airconditioner + "_Mode"].state === "fan") ? "white" : "gray"'
                    text: FAN
                    textColor: '=(items[props.airconditioner + "_Mode"].state === "fan") ? "black" : "gray"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    action: command
                    actionItem: =(props.airconditioner + '_Mode')
                    actionCommand: ="cpp;"
                    icon-f7: thermometer_snowflake
                    iconColor: '=(items[props.airconditioner + "_Mode"].state === "cool") ? "blue" : "gray"'
                    text: COOL
                    textColor: '=(items[props.airconditioner + "_Mode"].state === "cool") ? "blue" : "gray"'
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
    - component: f7-row
      config: {}
      slots:
        default:
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    action: options
                    actionItem: =(props.airconditioner + '_FanLevel')
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    icon-f7: chart_bar
                    iconColor: yellow
                    size: 20
                    text: =items[props.airconditioner + '_FanLevel'].state
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      font-size: 12px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    action: options
                    actionItem: =(props.airconditioner + '_SwingMode')
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    icon-f7: arrow_up_down_circle
                    iconColor: green
                    size: 20
                    text: =items[props.airconditioner + '_SwingMode'].state
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 12px
                      height: auto
1 Like

Thank you, it works smoothly

Hi there, I’m progressing to HABPanel and page setup. I’ve successfully added your widget to my openHAB developed widgets (thank you, it’s pretty cool) but have a noob question, sorry.

How is this widget added to HABPanel?

Sorry I don’t use HABPanel and the widgets are not compatible

Yep, fair enough.

Hi, is this for the V1 Pods, or V2 sky? I’ve got 3 old V1 Pods laying around which I love to get working again. :slight_smile:

Thanks

I think they interface with the api the same.

They do use the same API key, but the binding requires a MAC, which the old V1 pods don’t have. The newer pods use Wifi, while the V1 pods use a hub through which they connect to the internet. I’ve managed to get the pod’s identities, but cannot add them to the binding because of the lack of forementioned MAC.
Is there a way to modify the binding so that the old V1’s can be reused? I imagine there’s a lot of them just laying around doing nothing :wink:
I’m not a developer but have good technical IT knowledge and am more than willing in participating making this work!

To be honest, it wont be on top of my TODO-list, but someone can create a PR I can certainly find some time to contribute to a review.

There is a feature request for support for Sensibo Air, and I think that will take priority over the old devices :slight_smile:

2 Likes

Thanks, but what is a PR??

PR = Pull request. Someone makes necessary changes to the code, and binding owner and someone from the OpenHab team do code review.

I found a Sensibo API Integration - Based on Rules Sensibo API Integration - Based on Rules
According to its maker it works on the v1 Pods, but is for OH2. Wouldnt that be a good startingpoint?
I bumped that 2 years old discussion, maybe it’ll lead to a working solution :slight_smile:

You will see that I did post in that tread and had mine working with rules for a long time. OH2 and 3 rule engine is the same so you can try and get them working. You may run into permission issue when running command line operations. Most people don’t have the hardware to be able to test to make sure their code is correct. I know you are a beginner however you need to start somewhere and getting it running in the rules would be a good start.

You could also try your luck on

https://app.bountysource.com/teams/openhab

Thanks, will give it a go and report my succes here :smiley: