home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
70.54k stars 29.47k forks source link

Tahoma HorizontalAwning not working anymore #24813

Closed pascalsaul closed 5 years ago

pascalsaul commented 5 years ago

Home Assistant release with the issue: 0.95.1

Last working Home Assistant release (if known): 0.94

Operating environment (Hass.io/Docker/Windows/etc.): Docker

Component/platform: https://www.home-assistant.io/components/tahoma/

Description of problem: When the awning is fully open you can't close it anymore since the arrow is greyed out. The open arrow is still available but that doesn't do anything since it is already 100% open. It looks that something with the latest pull request changed the behavior of the HorizontalAwning.

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

Traceback (if applicable):

Probably because off: https://github.com/home-assistant/home-assistant/pull/23257

Additional information: <state cover.awning_back=open; current_position=100, tahoma_device_id=io://xxxx-xxxx-xxxx/xxxxxxxx, rssi_level=52.0, friendly_name=Zonwering achter, supported_features=15, device_class=awning @ 2019-06-28T11:17:19.440718+02:00>

image

Now you can't use the arrow "up" to close the cover anymore.

aidbish commented 5 years ago

If you look at breaking changes for 0.95 it has one for tahoma being now reversed.

Position is reversed for horizontal awnings (@kbickar - #23257) (tahoma docs) (breaking change)

This was the PR https://github.com/home-assistant/home-assistant/pull/23257

pascalsaul commented 5 years ago

Yes, I know but why implement a breaking change if all was good. I don't get it. Now it doesn't work anymore so my suggestion is to revert the PR.

aidbish commented 5 years ago

I would leave a comment in the PR.

Godtoh commented 5 years ago

Check this tread as well: https://github.com/home-assistant/home-assistant/issues/24818

Summary: Open means 0%, blinds or covers are in Closed means 100%, blinds or covers are out

dickesW commented 5 years ago

It's working for me - if I use the slider or the cover.close_cover / cover.open_cover service. The arrows in the UI are not switched properly. If the awning is open, the arrow to close is greyed out. And the other way around.

Godtoh commented 5 years ago

I think in the meantime the vertical blinds are inverted compared to the awnings. Now everything is handled as awning which makes the blinds stop working correctly.

pascalsaul commented 5 years ago

Yes, with 0.95.3 is an even bigger mesh :/ The position of the vertical awnings and shutters are reversed now... I still think the 0.94 code was fine because everything was working.

Only people think the horizontal awning is not correct but that's just from which viewing point you're looking what is open or close. Somfy decided to reverse that so the pre 0.94 code here was also reversed for especially the HorizontalAwning to work correctly with HA.

Godtoh commented 5 years ago

Would love to go back to 0.94 or earlier on this point. Right now I'm adjusting my automations to handle inversion, quite strange as definitions, which are open and closed, should not change.

muller119 commented 5 years ago

my cover is now correct 0% is closed and 100% is open same as on the somfy conexoon app but in HA when i call a service call cover.open_cover then it will now close the cover the same with the arrows in HA aarow up is down and arrow down is up and when i ask google to close the cover its going to open and when i ask to close the cover its going open

now i reset my cover to the service call so now its reverse accoording the somfy app but now when its fully open HA state is closed

now my automations of safety is now gone now if its to much wind the cover will open not a good thing

my opinion if you reverse one with reverse all

p.s. i do not have blinds only a cover coming down

pascalsaul commented 5 years ago

Where it all started: https://github.com/home-assistant/home-assistant/issues/13965

Somfy' view: A shutter (blinds) and a screen (vertical awning) you "close". A sunscreen (horizontal awning) you "open".

That's probably the reason why it's inverted by Somfy.

muller119 commented 5 years ago

@pascalsaul for your info i have a zonnewering at the back and how is youre point of view for open and close cover for me is

deployed = open = 100% retracted = closed = 0 %

like the somfy app

and i know where it all began #13965 ive seen it a while ago

for me the positions are correct only the service calls are not

pascalsaul commented 5 years ago

@pascalsaul for your info i have a zonnewering at the back and how is youre point of view for open and close cover for me is

deployed = open = 100% retracted = closed = 0 %

like the somfy app

For me it is the same but as you can see in https://github.com/home-assistant/home-assistant/issues/13965 we couldn't fix this yet for the Horizontal Awning. This is an exception, Now all other Somfy devices don't work correctly anymore.

You can also see deployed as 100% "closed" when you would rotate the horizontal awning 90 degrees :)

The PR should have fixed only the reversed position status for the horizontal awning not all other devices ;)

My service calls do work with my scenes only you need to reverse it when you use a horizontal awning ;)

Solution: revert PR and create PR to fix status for the horizontal awning

muller119 commented 5 years ago

no i inverted the working of my cover (zonnewering) so when i call google to close and it will close so only on the APIi and somfy app its wrong

pascalsaul commented 5 years ago

no i inverted the working of my cover (zonnewering) so when i call google to close and it will close so only on the APIi and somfy app its wrong

That's probably because you only have 1 device that is the HorizontalAwning...

Anyway, this cover is special... So when you fix one thing it will break lots of other thing now.

muller119 commented 5 years ago

no i inverted the working of my cover (zonnewering) so when i call google to close and it will close so only on the APIi and somfy app its wrong

That's probably because you only have 1 device that is the HorizontalAwning...

Anyway, this cover is special... So when you fix one thing it will break lots of other thing now.

yes thats is correct sadly so somfy is here to blame?? LOL btw i use the conexoon app not tahoma is it possible to make a saperate for tahoma and conexoon? so both services can be fixed properly?

pascalsaul commented 5 years ago

no i inverted the working of my cover (zonnewering) so when i call google to close and it will close so only on the APIi and somfy app its wrong

That's probably because you only have 1 device that is the HorizontalAwning... Anyway, this cover is special... So when you fix one thing it will break lots of other thing now.

yes thats is correct sadly so somfy is here to blame?? LOL btw i use the conexoon app not tahoma is it possible to make a saperate for tahoma and conexoon? so both services can be fixed properly?

You may blame Somfy how they implemented... I'm also using the Conexoon but for the component it is the same so that isn't possible. In the back-end Tahoma and Conexoon are using the same API ;) That's how I discovered that the cheaper Conexoon would work also... I wonder how the integration is with Google... I do see the devices when I link it with Google Home but can't control them...

muller119 commented 5 years ago

no i inverted the working of my cover (zonnewering) so when i call google to close and it will close so only on the APIi and somfy app its wrong

That's probably because you only have 1 device that is the HorizontalAwning... Anyway, this cover is special... So when you fix one thing it will break lots of other thing now.

yes thats is correct sadly so somfy is here to blame?? LOL btw i use the conexoon app not tahoma is it possible to make a saperate for tahoma and conexoon? so both services can be fixed properly?

You may blame Somfy how they implemented... I'm also using the Conexoon but for the component it is the same so that isn't possible. In the back-end Tahoma and Conexoon are using the same API ;) That's how I discovered that the cheaper Conexoon would work also... I wonder how the integration is with Google... I do see the devices when I link it with Google Home but can't control them...

i just tried it its not controlleble by google home only assistant only by voice when you tell google to close using tahomas on google home it will close when tou tell google to close using ha on google home it will open

balloob commented 5 years ago

So instead of reverting the PR completely, I opened PR https://github.com/home-assistant/home-assistant/pull/24879 to revert it partially. From studying the code and the comments, it seems like the problem is that the PR also inverted the calls to open/close, which was wrong.

In the PR I opened, I reverted that part, leaving the position being flipped in place. Please test this PR, and if it works, we can include it in a hotfix release.

muller119 commented 5 years ago

So instead of reverting the PR completely, I opened PR #24879 to revert it partially. From studying the code and the comments, it seems like the problem is that the PR also inverted the calls to open/close, which was wrong.

In the PR I opened, I reverted that part, leaving the position being flipped in place. Please test this PR, and if it works, we can include it in a hotfix release.

Thanks for the quick reply and understranding for the issue

balloob commented 5 years ago

I am still looking for people to help test this. I don't feel comfortable pushing a breaking change in a hot fix without proper testing.

pascalsaul commented 5 years ago

I am still looking for people to help test this. I don't feel comfortable pushing a breaking change in a hot fix without proper testing.

It's still not good since the position and status off all other covers are reversed so 0% is closed but shows as "0% open".

2019-07-01 21:18:08 DEBUG (SyncWorker_0) [custom_components.tahoma.cover] Update shutter_back_right, position: 0
2019-07-01 21:18:09 DEBUG (SyncWorker_5) [custom_components.tahoma.cover] Update shutter_front_right, position: 0
2019-07-01 21:18:21 DEBUG (SyncWorker_3) [custom_components.tahoma.cover] Update shutter_back_left, position: 0
2019-07-01 21:18:22 DEBUG (SyncWorker_9) [custom_components.tahoma.cover] Update shutter_front_left, position: 0
2019-07-01 21:18:22 DEBUG (SyncWorker_2) [custom_components.tahoma.cover] Update shutter_front_right, position: 0
2019-07-01 21:18:22 DEBUG (SyncWorker_6) [custom_components.tahoma.cover] Update shutter_back_right, position: 0
2019-07-01 21:18:23 DEBUG (SyncWorker_1) [custom_components.tahoma.cover] Update screen_front, position: 11
2019-07-01 21:18:23 DEBUG (SyncWorker_4) [custom_components.tahoma.cover] Update awning_back, position: 10

The button and position for the HorizontalAwning is fixed but the working is reversed and that feels so not logical.

Godtoh commented 5 years ago

This entity comes straight from my Tahoma: `

cover.erker_achter closed current_position: 100 tahoma_device_id: io://1203-2650-7541/4284208 rssi_level: 72 friendly_name: Erker achter supported_features: 15 device_class: awning

`

It is activated as a vertical screen in Tahoma.

Godtoh commented 5 years ago

I would like to test, but I have no clue how to do it without getting a new hassio revision.

pascalsaul commented 5 years ago

I would like to test, but I have no clue how to do it without getting a new hassio revision.

Create a folder under your "config" directory: "custom_components/tahoma"

Put all files from the PR in this folder and restart HASS.

Godtoh commented 5 years ago

Will try tomorrow.

hogend commented 5 years ago

I have 2 covers and a a sunscreen with device_class="awning". I could help testing. Most of the confusion seems to stem from "open/close" versus "up/down". The slider represents open/close and the buttons are more like movement direction: up/down (and left/right would be appropriate for sliding gates). In my view, depending on the device_class, open/close should match the "natural" movement direction. Even so, it might be wise to make open/close AND up/down configurable, to cater for different wiring (for instance with the Fibaro R/S switch, it is not at all clear which wire is which.

dennismeng commented 5 years ago

I have the same problem on 95.4 So, I decided to test the files - placed them in "tahoma" folder under "custom_components" and restarted Hass.IO It didn't change anything, all the windows still says "Open", when they in fact are closed etc. More good ideas, or did I miss something here? :)

Godtoh commented 5 years ago

Tried the PR, no success. I did some code checks and I have some questions.... In cover.py:

TAHOMA_DEVICE_CLASSES = {
    'io:ExteriorVenetianBlindIOComponent': DEVICE_CLASS_BLIND,
    HORIZONTAL_AWNING: DEVICE_CLASS_AWNING,
    'io:RollerShutterGenericIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterUnoIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterVeluxIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterWithLowSpeedManagementIOComponent': DEVICE_CLASS_SHUTTER,
    'io:VerticalExteriorAwningIOComponent': DEVICE_CLASS_AWNING,
    'io:WindowOpenerVeluxIOComponent': DEVICE_CLASS_WINDOW,
    'io:GarageOpenerIOComponent': DEVICE_CLASS_GARAGE,
    'rts:BlindRTSComponent': DEVICE_CLASS_BLIND,
    'rts:CurtainRTSComponent': DEVICE_CLASS_CURTAIN,
    'rts:DualCurtainRTSComponent': DEVICE_CLASS_CURTAIN,
    'rts:ExteriorVenetianBlindRTSComponent': DEVICE_CLASS_BLIND,
    'rts:RollerShutterRTSComponent': DEVICE_CLASS_SHUTTER,
    'rts:VenetianBlindRTSComponent': DEVICE_CLASS_BLIND
}

I see for the IO, only device class blind mentioned at the venetian blind. However the Venetian blind uses a Somfy IO Maestria Motor While the Vertical Blinds (mentioned here as verticalexteriorawningiocomponent???) use the Somfy Sunilus motor. And I read that a part of the Horizontal Awning make use of the Somfy Sunea Motor.

I guess the vertical blind option is totally missing.

Edit: Did some more research, I changed the io:VerticalExteriorAwningIOComponent to DEVICE_CLASS_BLIND, my covers / blinds show not the device class blinds in the entity attributes. I really think the horizontal awnings and vertical blinds are handled as the same component.

Godtoh commented 5 years ago

Fixed:

Tried open in Tahoma app Result HASS: position: 0, state open

Set to 24% in Tahoma app Result HASS: position: 24, state open

Set to closed in Tahoma app Result HASS: position: 100, state closed

In cover.py

    # Define current position.
    #   _position: 0 is closed, 100 is fully open.
    #   'core:ClosureState': 100 is closed, 0 is fully open.
    if self._closure is not None:
        self._position = self._closure
        if self.tahoma_device.type == HORIZONTAL_AWNING:
            #self._position = self._closure
            self._closed = self._position == 0
        else:
            #self._position = 100 - self._closure
            self._closed = self._position == 100
        if self._position <= 5:
            self._position = 0
        if self._position >= 95:
            self._position = 100
pascalsaul commented 5 years ago

Fixed:

Tried open in Tahoma app Result HASS: position: 0, state open

Set to 24% in Tahoma app Result HASS: position: 24, state open

Set to closed in Tahoma app Result HASS: position: 100, state closed

In cover.py

    # Define current position.
    #   _position: 0 is closed, 100 is fully open.
    #   'core:ClosureState': 100 is closed, 0 is fully open.
    if self._closure is not None:
        self._position = self._closure
        if self.tahoma_device.type == HORIZONTAL_AWNING:
            #self._position = self._closure
            self._closed = self._position == 0
        else:
            #self._position = 100 - self._closure
            self._closed = self._position == 100
        if self._position <= 5:
            self._position = 0
        if self._position >= 95:
            self._position = 100

Not really... when a cover is closed for 0 they don't get updated or listed anymore now.

Godtoh commented 5 years ago

Ah ok, then I meant, the fix above works for me....

So you actually say, depending on the cover type 0 can be either open or closed. Then there's only one option, make it configurable in the tahoma configuration.

Godtoh commented 5 years ago

Now changed to...

HORIZONTAL_AWNING = 'io:HorizontalAwningIOComponent'
VERTICAL_BLIND = 'io:VerticalExteriorAwningIOComponent'

TAHOMA_DEVICE_CLASSES = {
    'io:ExteriorVenetianBlindIOComponent': DEVICE_CLASS_BLIND,
    HORIZONTAL_AWNING: DEVICE_CLASS_AWNING,
    'io:RollerShutterGenericIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterUnoIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterVeluxIOComponent': DEVICE_CLASS_SHUTTER,
    'io:RollerShutterWithLowSpeedManagementIOComponent': DEVICE_CLASS_SHUTTER,
    VERTICAL_BLIND: DEVICE_CLASS_BLIND,
    'io:WindowOpenerVeluxIOComponent': DEVICE_CLASS_WINDOW,
    'io:GarageOpenerIOComponent': DEVICE_CLASS_GARAGE,
    'rts:BlindRTSComponent': DEVICE_CLASS_BLIND,
    'rts:CurtainRTSComponent': DEVICE_CLASS_CURTAIN,
    'rts:DualCurtainRTSComponent': DEVICE_CLASS_CURTAIN,
    'rts:ExteriorVenetianBlindRTSComponent': DEVICE_CLASS_BLIND,
    'rts:RollerShutterRTSComponent': DEVICE_CLASS_SHUTTER,
    'rts:VenetianBlindRTSComponent': DEVICE_CLASS_BLIND
}
        if self._closure is not None:
            if self.tahoma_device.type == HORIZONTAL_AWNING:
                self._position = self._closure
                self._closed = self._position == 0
            elif self.tahoma_device.type == VERTICAL_BLIND:
                self._position = self._closure
                self._closed = self._position == 100
            else:
                self._position = 100 - self._closure
                self._closed = self._position == 100
            if self._position <= 5:
                self._position = 0
            if self._position >= 95:
                self._position = 100
        else:

Didn't check what happens if you set it to a position of 10%, wonder if it will be 10 or 90... Going to check that later on this week.

Edit: Just checked, if you set it to 10%, it will be 90%, so have to change the set function as well.

Edit2: Position is now in Tahoma the same as Home Assistant. Setpoint is the same in Tahoma as Home Assistant.

For me this works... Can you add this to the branch so people can try? I just made the exception for vertical blinds leaving not affecting anything else...

    def set_cover_position(self, **kwargs):
        """Move the cover to a specific position."""
        if self.tahoma_device.type == HORIZONTAL_AWNING or self.tahoma_device.type == VERTICAL_BLIND:
            self.apply_action('setPosition', kwargs.get(ATTR_POSITION, 0))
        else:
            self.apply_action('setPosition',
                              100 - kwargs.get(ATTR_POSITION, 0))
dennismeng commented 5 years ago

Are Velux windows part of this "fix" ? I assume, this is the line, sorting it out for Velux windows (roof windows): io:WindowOpenerVeluxIOComponent

I would love to test, just don't know how :)

Godtoh commented 5 years ago

No not in this, didn't know there were problems too. Can you discribe what now happens and what should happen?

dennismeng commented 5 years ago

Sure, it's basically the same as everything else. Up until 95.x release, everything was working. Now the skylight windows have state "closed" when in fact open, and the opposite when closed. I tried to put in the the fix from balloob in "custom_components", but it didn't change a thing, at least not related to skylight windows. I have two awnings as well, I haven't done a lot of testing with them - but it seems they also have this problem, the state is "closed" when they are not coverin the windows.

Oh, just tested another thing, when I open the windows half only, the state is still "closed". If I do the same with an awning (closing it half), it state changes to "open".

Godtoh commented 5 years ago

I've just discovered that my arrows in the front end (up and down) are working correctly, but they are grayed out the wrong way....

Godtoh commented 5 years ago

After digging more...

    # For vertical covers
    self._position = self.tahoma_device.active_states.get(
        'core:ClosureState')
    # For horizontal covers
    if self._position is None:
        self._position = self.tahoma_device.active_states.get(
            'core:DeploymentState')

    if self.tahoma_device.active_states['core:OpenClosedState'] == 'closed':
        self._closed = True
    else:
        self._closed = False

Now open / closed is based on the info from the device itself in stead of making it up with code...

dennismeng commented 5 years ago

@Godtoh I'm not a coder unfortunately, can I test this somehow?

Godtoh commented 5 years ago

No, it's not 100% functional yet, the buttons up and down are still grayed out incorrectly. Up and down is correct, only the disabled state not or whatever it is.

dennismeng commented 5 years ago

Alright. I will just keep following this thread. So the fix from @balloob didn't work for you either or?

pascalsaul commented 5 years ago
2019-07-05 21:15:36 DEBUG (SyncWorker_0) [custom_components.tahoma.cover] Update awning_back, position: 100
2019-07-05 21:15:36 DEBUG (SyncWorker_2) [custom_components.tahoma.cover] Update shutter_back_right, position: 0
2019-07-05 21:15:36 DEBUG (SyncWorker_1) [custom_components.tahoma.cover] Update shutter_front_left, position: 0
2019-07-05 21:15:36 DEBUG (SyncWorker_7) [custom_components.tahoma.cover] Update shutter_back_left, position: 0
2019-07-05 21:15:36 DEBUG (SyncWorker_9) [custom_components.tahoma.cover] Update shutter_front_right, position: 0
2019-07-05 21:15:36 DEBUG (SyncWorker_5) [custom_components.tahoma.cover] Update screen_front, position: 100

image

Shutters aren''t correct and should also be 100 (fully closed). As far as I know the only exception is the horizontal awning and the rest can be default.

Godtoh commented 5 years ago

I have the same on my front panel as well. My entities show correctly now. So... For me and I only have blinds, entities and services are good. I'll check the front end some other time. I've seen that reverting the position of the entity works for the front end, but the entity is showing state open with position 100 which makes no sense.

pascalsaul commented 5 years ago

This is what I get from the API. I see nothing reversed here so why are we doing that...

Check it out here for yourself: https://developer.somfy.com/somfy-open-api/apis

curl -X GET --header "Content-Type: application/json" --header "Authorization: Bearer <auth code>" "https://api.somfy.com/api/v1/site/<site-id>/device"
[
  {
    "id": "633f3296-b4ab6b89-839bf73a-95cad01a",
    "type": "exterior_blind_positionable_stateful_generic",
    "parent_id": "<parent-id>",
    "categories": [
      "actuator",
      "exterior_blind"
    ],
    "states": [
      {
        "name": "position",
        "value": 100,
        "type": "integer"
      }
    ],
    "capabilities": [
      {
        "name": "position",
        "parameters": [
          {
            "name": "position",
            "type": "integer"
          }
        ]
      },
      {
        "name": "close",
        "parameters": []
      },
      {
        "name": "identify",
        "parameters": []
      },
      {
        "name": "open",
        "parameters": []
      },
      {
        "name": "stop",
        "parameters": []
      }
    ],
    "site_id": "<site-id>",
    "name": "screen_front",
    "available": true
  },
  {
    "id": "a80fc819-6cc982c1-0930a004-a309e17c",
    "type": "roller_shutter_positionable_stateful_generic",
    "parent_id": "<parent-id>",
    "categories": [
      "actuator",
      "roller_shutter"
    ],
    "states": [
      {
        "name": "position",
        "value": 100,
        "type": "integer"
      }
    ],
    "capabilities": [
      {
        "name": "position",
        "parameters": [
          {
            "name": "position",
            "type": "integer"
          }
        ]
      },
      {
        "name": "close",
        "parameters": []
      },
      {
        "name": "identify",
        "parameters": []
      },
      {
        "name": "open",
        "parameters": []
      },
      {
        "name": "stop",
        "parameters": []
      }
    ],
    "site_id": "<site-id>",
    "name": "shutter_back_left",
    "available": true
  },
  {
    "id": "d313ed89-3b313f13-9977865e-ba02af88",
    "type": "roller_shutter_positionable_stateful_generic",
    "parent_id": "<parent-id>",
    "categories": [
      "actuator",
      "roller_shutter"
    ],
    "states": [
      {
        "name": "position",
        "value": 100,
        "type": "integer"
      }
    ],
    "capabilities": [
      {
        "name": "position",
        "parameters": [
          {
            "name": "position",
            "type": "integer"
          }
        ]
      },
      {
        "name": "close",
        "parameters": []
      },
      {
        "name": "identify",
        "parameters": []
      },
      {
        "name": "open",
        "parameters": []
      },
      {
        "name": "stop",
        "parameters": []
      }
    ],
    "site_id": "<site-id>",
    "name": "shutter_front_left",
    "available": true
  },
  {
    "id": "e6e122ad-825b1e7e-45808700-c489ec1c",
    "type": "roller_shutter_positionable_stateful_generic",
    "parent_id": "<parent-id>",
    "categories": [
      "actuator",
      "roller_shutter"
    ],
    "states": [
      {
        "name": "position",
        "value": 100,
        "type": "integer"
      }
    ],
    "capabilities": [
      {
        "name": "position",
        "parameters": [
          {
            "name": "position",
            "type": "integer"
          }
        ]
      },
      {
        "name": "close",
        "parameters": []
      },
      {
        "name": "identify",
        "parameters": []
      },
      {
        "name": "open",
        "parameters": []
      },
      {
        "name": "stop",
        "parameters": []
      }
    ],
    "site_id": "<site-id>",
    "name": "shutter_front_right",
    "available": true
  },
  {
    "id": "27b3364f-d15a26c3-e39653da-d5db8b10",
    "type": "roller_shutter_positionable_stateful_generic",
    "parent_id": "<parent-id>",
    "categories": [
      "actuator",
      "roller_shutter"
    ],
    "states": [
      {
        "name": "position",
        "value": 100,
        "type": "integer"
      }
    ],
    "capabilities": [
      {
        "name": "position",
        "parameters": [
          {
            "name": "position",
            "type": "integer"
          }
        ]
      },
      {
        "name": "close",
        "parameters": []
      },
      {
        "name": "identify",
        "parameters": []
      },
      {
        "name": "open",
        "parameters": []
      },
      {
        "name": "stop",
        "parameters": []
      }
    ],
    "site_id": "<site-id>",
    "name": "shutter_back_right",
    "available": true
  },
  {
    "id": "<parent-id>",
    "type": "hub_connexoon",
    "categories": [
      "hub"
    ],
    "states": [],
    "capabilities": [],
    "site_id": "<site-id>",
    "available": true,
    "version": "2019.2.4-7"
  }
]
Godtoh commented 5 years ago

A bit more trying... can't get the front end working as I want. Going to try with 0.94 reverted and try to collect the differences.

jeroenvanderschoot commented 4 years ago

This entity comes straight from my Tahoma: `

cover.erker_achter closed current_position: 100 tahoma_device_id: io://1203-2650-7541/4284208 rssi_level: 72 friendly_name: Erker achter supported_features: 15 device_class: awning `

It is activated as a vertical screen in Tahoma.

Hi, can we choose in tahoma if a screen is vertical or a horizontal awning?

I have vertical screens showing as horizontal awnings.