Fehler in HomeKit-Integration des Aeotec Garage-Door-Controller

Hi @medicus07

Ist schon etwas länger her :see_no_evil:

Der GarageDoorOpener-Service von HomeKit braucht ja zwingend folgende Characteristics:

  • CurrentDoorState
    • Open = 0
    • Closed = 1
    • Opening = 2
    • Closing = 3
    • Stopped = 4
  • TargetDoorState
    • Open = 0
    • Closed = 1
  • ObstructionDetected ← wird bisher nicht verwendet und ist immer auf false

Die Characteristic CurrentDoorState ist dann logischerweise der CV von unserem UpDown-Attribut und das TargetDoorState der TV.

Kannst du da mal weiter ausholen? Wenn du sagst in homee passt es, aber in HomeKit nicht. Werden dann Aktionen von HomeKit aus nicht korrekt ausgeführt oder nach einer Aktion nicht richtig quittiert/dargestellt? Oder werden Statusänderungen ohne vorherige Aktion nicht übernommen?

Hi @Volker, ja ist schon etwas her… :wink:

häufig sind die Stati vertauscht… Tor wird geöffnet, homee zeigt „öffnet“, Homekit aber „schließt“. Oder Tor ist geschlossen, und Homekit zeigt „öffnet“, manchmal auch „schließt“ an. Eine richtige Logik konnte ich bisher auch noch nicht erkennen.

Ich muss heute Abend noch mal testen… Homekit will heute nicht und zeigt nicht verfügbar an. Hab die Verbindung mal gekickt und wenn sie heute Abend steht, berichte ich noch mal.

1 „Gefällt mir“

Bei homee ist aber öffnet 3, schließt 4, gestoppt 2…

So könnte es in etwa bei dir aussehen…

[{"id":"46c8215b.39d0c","type":"mqtt in","z":"f0f6c57f.d842e8","name":"","topic":"garagezu","qos":"2","datatype":"auto","broker":"9ec0115c.8f7488","x":1460,"y":1020,"wires":[["ddda8d81.2c548"]]},{"id":"a7afd92.a063128","type":"mqtt in","z":"f0f6c57f.d842e8","name":"","topic":"garageauf","qos":"2","datatype":"auto","broker":"9ec0115c.8f7488","x":1460,"y":1100,"wires":[["f770243f.d26d08"]]},{"id":"61d05129.dfcc1","type":"function","z":"f0f6c57f.d842e8","name":"","func":"if (msg.payload == '0') //offen\n{return [{payload: {\"attribute\":{ \"id\": 700, \"value\": 0 }}}];}\nif (msg.payload == '1') //schließt\n{return [{payload: {\"attribute\":{ \"id\": 700, \"value\": 4 }}}];}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1820,"y":1100,"wires":[["c1f37aa8.230fd8"]]},{"id":"824b338c.abe8d","type":"function","z":"f0f6c57f.d842e8","name":"","func":"if (msg.payload == 'true') //geschlossen\n{return [{payload: {\"attribute\":{ \"id\": 700, \"value\": 1 }}}];}\nif (msg.payload == 'false') //öffnet\n{return [{payload: {\"attribute\":{ \"id\": 700, \"value\": 3 }}}];}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1820,"y":1020,"wires":[["c1f37aa8.230fd8"]]},{"id":"ddda8d81.2c548","type":"rbe","z":"f0f6c57f.d842e8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1610,"y":1020,"wires":[["824b338c.abe8d"]]},{"id":"f770243f.d26d08","type":"rbe","z":"f0f6c57f.d842e8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1610,"y":1100,"wires":[["61d05129.dfcc1"]]},{"id":"c1f37aa8.230fd8","type":"homeeDevice","z":"f0f6c57f.d842e8","virtual-homee":"","name":"Test Tor","nodeId":"7000","showNodeId":true,"profile":"2012","icon":"nodeicon_garagedoor","attributes":[{"instance":0,"minimum":0,"maximum":4,"current_value":1,"target_value":1,"last_value":1,"unit":"n%2Fa","step_value":1,"editable":1,"state":1,"last_changed":1597522878,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"automations":["toggle"]},"type":135,"id":7000,"node_id":7000},{"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"n%2Fa","step_value":1,"editable":0,"state":1,"last_changed":1597522878,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"history":{"day":182,"week":26,"month":6,"stepped":true}},"type":70,"id":7001,"node_id":7000}],"statusTemplate":"","x":2040,"y":1060,"wires":[[]]},{"id":"9ec0115c.8f7488","type":"mqtt-broker","name":"","broker":"192.168.1.27","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Unbenannt

1 „Gefällt mir“

Wenn ich mich recht erinnere ist da HomeKit etwas eigen. Der CurrentDoorState und TargetDoorState müssen zueinander passen. Heißt du kannst nicht einfach CurrentDoorState auf Opening setzen und TargetDoorState noch auf Closed lassen.

Jo ist klar und wird entsprechend umgerechnet :wink:

A251055D-6612-461E-A0F1-D81FB5826C30_4_5005_c

Bei mir sieht es jetzt so aus nun Stimmen die Statier in der Homee app nicht … Tor ist geschlossen aber status ist schließt bei Homee und auch bei HomeKit.

Merkwürdig irgendwie

@Volker

Hier noch mal ein Beispiel:

Tor geschlossen, CV+TV = 1.
Dann kommt der Öffnungsbefehl (egal, ob über homee App oder als API Command)… in homee App alles korrekt (s. Screenshot, CV + TV = 3). In HomeKit steht dann plötzlich schließen…

{return {payload: "PUT:/nodes/679/attributes/2127?current_value=3"}}

Ja das ist nicht korrekt :wink:

Du kommst von UpDown | CV = Closed, TV = Closed und setzt dann beide auf Opening. Bei dem TargetDoorState gibt es aber kein Opening, weshalb es immer noch auf Closed steht.

Folglich kommst du in genau diesen Status:

Und wie es scheint macht HomeKit die Bewegung anhand des TargetDoorState fest :slightly_smiling_face:

Also gibt es erstmal keine Lösung?

Ich verstehe nicht was du meinst, das Problem liegt doch nicht an homee? :thinking:
Du musst nur den current_value und target_value richtig setzen.

Was macht das hier eigentlich?

Den current_value kann man nicht über die API ändern, dazu musst du den Attribut-JSON mit dem geänderten Wert schicken :wink:

1 „Gefällt mir“

Ok… jetzt hab ich‘s verstanden…:wink:

Wird bei vhih der value-Wert gesetzt, ändert man damit cv und tv gleichermassen auf diesen Wert. Das ist der Unterschied zu homee Original. Es müsste also möglich sein, die Werte unabhängig voneinander zu ändern bzw. zu belassen.

Die API Commands hatte ich als Workaround überlegt, das scheidet aber nach deiner Erklärung aus. :sunglasses:

Muss mal @stfnhmplr fragen, ob er was am Plugin ändern kann.

Danke dir, @Volker!:+1:t2:

2 „Gefällt mir“

Ich habe gestern Abend genau vor dem entsprechenden Code gesessen und überlegt warum es so ist und nicht anderes. Jetzt durch die super Erklärung auch gleich verstanden. Danke :slight_smile:

2 „Gefällt mir“