Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Cover inverted in Alexa #297

Open
2 tasks done
Eddy-89 opened this issue Dec 12, 2024 · 9 comments
Open
2 tasks done

[Bug]: Cover inverted in Alexa #297

Eddy-89 opened this issue Dec 12, 2024 · 9 comments
Labels
bug Something isn't working

Comments

@Eddy-89
Copy link

Eddy-89 commented Dec 12, 2024

Version

3.0.0-alpha.54

Matter Controller

Alexa

Steps to reproduce

I have integrated HomematicIp roller shutter actuators into Homeassistant via the Homematic Local integration. These are displayed correctly in Home Assistant and can be operated correctly. The shutters are closed at 0% and open at 100%. In Alexa, it is inverted. Thus, alexa closes the shutters when I tell her to open them.
Screenshot_20241212_211439_Amazon Alexa
Screenshot_20241212_211423_Home Assistant

State and attributes

current_position: 0
interface_id: RaspberryMatic-HmIP-RF
address: *****************************
model: HmIP-BROLL-2
entity_type: custom
value_state: valid
device_class: shutter
friendly_name: Wohnzimmerrolladen - Balkonfenster
supported_features: 15

Relevant log output

No response

Documentation & Issues

  • I have reviewed the documentation and the linked troubleshooting guide.
  • I have searched the issues for a similar problem.
@Eddy-89 Eddy-89 added the bug Something isn't working label Dec 12, 2024
@t0bst4r
Copy link
Owner

t0bst4r commented Dec 12, 2024

In general Home assistant and matter have different definitions for open and close.
In HA open means 100% and closed means 0%.
In matter this is inverted per definition. That’s the point where we need to convert.

So when you tell Alexa to set the position to 0%, the cover should fully open, the matter position is set to 0 and the HA position is set to 100.

When telling Alexa to close the cover it should set the position to 100% (matter) and 0% (HA).

So maybe you could enable debug logs and test the following commands:

  • "set the position to 20 percent"
  • "set the position to 50 percent"
  • "set the position to 70 percent"
  • "open the cover"
  • "Close the cover"

Esp. For the last two commands it will be interesting what command is executed by Alexa with which parameters.

@Eddy-89
Copy link
Author

Eddy-89 commented Dec 13, 2024

English:

So you're right. If I tell Alexa to set the roller shutter to 0%, it opens fully. And at 100% it closes completely.

“Alexa, roller shutter to ....”

  • 20 percent:
    Alexa: 20 %
    HA: 80 %

  • 50 percent:
    Alexa: 50 %
    HA: 50 %

  • 30 percent:
    Alexa: 70 %
    HA: 30 %

  • Open roller shutters:
    Alexa: 0 %
    HA: 100 %

  • Close roller shutters:
    Alexa: 100 %
    HA: 0 %

  • Raise the roller shutter completely:
    Alexa: 0 %
    HA: 100 %

  • lower the roller shutter completely:
    Alexa: 100 %
    HA: 0 %

So far, everything seems to be working, even if it is confusing that HA and Alexa invert the values.
If you are used to the values from HA, you have to rethink.

Now the strange thing:

  • Shutter up:
    Alexa: changes the value +1 %
    HA: changes the value -1 %
    (i.e. moves 1% down ?)

  • Roller shutter down:
    Alexa: changes the value -1 %
    HA: changes the value +1 %
    (i.e. moves 1% up ?)

Translated with DeepL.com (free version)

Deutsch:

Also du hast Recht. Wenn ich Alexa sage, sie soll den Rolladen auf 0% setzen, dann wird er voll geöffnet. Und bei 100% wird komplett geschlossen.

"Alexa, Rolladen auf ...."

  • 20 Prozent:
    Alexa: 20 %
    HA: 80 %

  • 50 Prozent:
    Alexa: 50 %
    HA: 50 %

  • 30 Prozent:
    Alexa: 70 %
    HA: 30 %

  • Rolladen öffnen:
    Alexa: 0 %
    HA: 100 %

  • Rolladen schließen:
    Alexa: 100 %
    HA: 0 %

  • fahre den Rolladen komplett hoch:
    Alexa: 0 %
    HA: 100 %

  • fahre den Rolladen komplett runter:
    Alexa: 100 %
    HA: 0 %

Soweit scheint alles zu funktionieren, auch wenn es verwirrend ist, dass HA und Alexa die Werte invertieren.
Wenn man die Werte von HA gewohnt ist, muss man umdenken.

Jetzt das seltsame:

  • Rolladen hoch:
    Alexa: ändert den Wert +1 %
    HA: ändert den Wert -1 %
    (fährt also 1% runter ?)

  • Rolladen runter:
    Alexa: ändert den Wert -1 %
    HA: ändert den Wert +1 %
    (fährt also 1% hoch ?)

@Barneybaer84
Copy link

English:

So you're right. If I tell Alexa to set the roller shutter to 0%, it opens fully. And at 100% it closes completely.

“Alexa, roller shutter to ....”

* 20 percent:
  Alexa: 20 %
  HA: 80 %

* 50 percent:
  Alexa: 50 %
  HA: 50 %

* 30 percent:
  Alexa: 70 %
  HA: 30 %

* Open roller shutters:
  Alexa: 0 %
  HA: 100 %

* Close roller shutters:
  Alexa: 100 %
  HA: 0 %

* Raise the roller shutter **completely**:
  Alexa: 0 %
  HA: 100 %

* lower the roller shutter **completely**:
  Alexa: 100 %
  HA: 0 %

So far, everything seems to be working, even if it is confusing that HA and Alexa invert the values. If you are used to the values from HA, you have to rethink.

Now the strange thing:

* Shutter **up**:
  Alexa: changes the value +1 %
  HA: changes the value -1 %
  (i.e. moves 1% **down** ?)

* Roller shutter **down**:
  Alexa: changes the value -1 %
  HA: changes the value +1 %
  (i.e. moves 1% **up** ?)

Translated with DeepL.com (free version)

Deutsch:

Also du hast Recht. Wenn ich Alexa sage, sie soll den Rolladen auf 0% setzen, dann wird er voll geöffnet. Und bei 100% wird komplett geschlossen.

"Alexa, Rolladen auf ...."

* 20 Prozent:
  Alexa: 20 %
  HA: 80 %

* 50 Prozent:
  Alexa: 50 %
  HA: 50 %

* 30 Prozent:
  Alexa: 70 %
  HA: 30 %

* Rolladen öffnen:
  Alexa: 0 %
  HA: 100 %

* Rolladen schließen:
  Alexa: 100 %
  HA: 0 %

* fahre den Rolladen **komplett** hoch:
  Alexa: 0 %
  HA: 100 %

* fahre den Rolladen **komplett** runter:
  Alexa: 100 %
  HA: 0 %

Soweit scheint alles zu funktionieren, auch wenn es verwirrend ist, dass HA und Alexa die Werte invertieren. Wenn man die Werte von HA gewohnt ist, muss man umdenken.

Jetzt das seltsame:

* Rolladen **hoch**:
  Alexa: ändert den Wert +1 %
  HA: ändert den Wert -1 %
  (fährt also 1% **runter** ?)

* Rolladen **runter**:
  Alexa: ändert den Wert -1 %
  HA: ändert den Wert +1 %
  (fährt also 1% **hoch** ?)

Du hast Recht. Ich habe mich da erstmal mit einer Routine für Auf/Zu Hoch/Runter beholfen.

@t0bst4r
Copy link
Owner

t0bst4r commented Dec 17, 2024

Ja gut… also leider muss ich damit dann sagen, dass es ja dann so funktioniert, wie es spezifiziert ist.

Aber echt blöd, dass „runter“ dann den Wert verringert und nicht den Rolladen semantisch „nach unten“ steuert.
Das ist dann aber ein Problem von Alexa. Keine Ahnung, ob man dort einfach Probleme melden kann.

@t0bst4r t0bst4r closed this as completed Dec 17, 2024
@Barneybaer84
Copy link

Es scheint nicht an Alexa zu liegen, denn bei Alexa heißt es ja Öffnungsgrad. Und und wenn der Öffnungsgrad bei 20% liegt kann er in HA nicht bei 80 sein. Das Problem tritt nur bei der Matter_Bridge auf. Über andere Wege HA mit Alexa zu verbinden wird auch 20% Öffnung korrekt an HA übergeben. Dann ist das Rollo auch nur 20% auf. Sonst würde es Schließungsgrad heißen :)

@t0bst4r
Copy link
Owner

t0bst4r commented Dec 17, 2024

Ja sehe ich ein, aber die matter specification beschreibt "offen" als 0% und "geschlossen" als 100%.

HA beschreibt es genau anders herum.

Des weiteren passiert beim Kommando "öffne die Rollos vollständig" ja genau das richtige: Alexa setzt die Position auf 0%. Eben ganz matter-konform.

Im Vorgänger addon hatte ich einen workaround, der so krumme Dinger gemacht hat, wie

  • Nutze die Prozentangaben von HA und nicht die von matter. Damit waren dann die Prozente gleich, aber "Open" und "close" vertauscht
  • vertausche 0% (Open) und 100% (closed).

Mit beiden workarounds hat es sich dann so verhalten, wie du es gerade erwartest. Das ist aber sehr weit entfernt vom Standard.

WENN ich das einbaue, dann definitiv hinter einem "Feature flag" - man muss es dann explizit aktivieren.

@t0bst4r t0bst4r reopened this Dec 17, 2024
@thezeus123
Copy link

thezeus123 commented Dec 17, 2024

Als ein dirty workaround:

cover:
  - platform: template
    covers:
      rolladen_homematic_invertiert:
        unique_id: "rolladen_homematic_invertiert_001"  # Einzigartige ID
        friendly_name: "Invertierter Rolladen Homematic"  # Name des Geräts
        position_template: >
          {% if state_attr('cover.rolladen_homematic', 'current_position') is not none %}
            {{ 100 - state_attr('cover.rolladen_homematic', 'current_position') }}
          {% else %}
            0
          {% endif %}
        set_cover_position:
          service: cover.set_cover_position
          data:
            entity_id: cover.rolladen_homematic
            position: >
              {{ 100 - position }}
        open_cover:
          service: cover.open_cover
          data:
            entity_id: cover.rolladen_homematic
        close_cover:
          service: cover.close_cover
          data:
            entity_id: cover.rolladen_homematic
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.rolladen_homematic

damit kann jeder für seinen Rolladen ein eigene entinität anlegen die den Status invertiert.

@waynieack
Copy link

Is there a way to change the Alexa state from "Opening" to the actual state like open or closed using the state from HA?

Worst case change it to "closed" or "closed percent" if its not dynamic because if you ask what the state is, she says "opening 100%" which sounds like its open. At least if its "closed percent" she would say "The garage door is closed 100%"

@germanikus666
Copy link

That would definitely be very cool if you could implement the feature flag so that the roller shutter control via Alexa works as usual again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants