NEWS
Yahka Adapter - Garagentor steuern
-
Guten Tag zusammen,
ich bin leider noch ein ioBroker Neuling und daher gerade etwas überfordert. Durch Zufall hatte ich gesehen, dass nun ein MyQ-Adapter unter ioBroker verfügbar ist. Diesen habe ich installiert und das läuft auch alles wunderbar. Der Status meines Chamberlain Garagentorantriebes wird abgerufen und dargestellt. Ebenso kann ich das Tor darüber steuern.
Nun kommen wir zum Problem. Ich möchte das Garagentor gerne in meiner Home-App unter Apple einbinden. Dafür nutze ich bereits den Yahka Adapter. Nur leider bekomme ich es nicht so richtig hin, dass ich das Garagentor auch steuern kann. Der Status (geschlossen oder geöffnet) wird mir bereits angezeigt. Aber ansteuern lässt sich das Garagentor damit nicht.Daher nun meine eigentliche Frage: Wie kann ich einen "Push-the-button" Befehl von Yahka an ioBroker "übersetzen?
Unter Objekte sieht es wie folgt aus:
Dort habe ich die beiden Buttons "Close" und "Open". Wie kann ich diese aber nun in meinem Yahka Adapter ansprechen, sodass ich über die Apple Home App das Garagentor auch steuern kann, sprich öffnen und schließen. Ich habe alles mögliche ausprobiert, komme aber nicht weiter.
So ist das Gerät aktuell konfiguriert:
Unter CurrentDoorState habe ich eine Systemvariable von Homematic genommen und schreibe dort per Blockly Skript den Status true oder false je nach geöffnet oder geschlossen rein. Das funktioniert erstmal soweit. Meine Vermutung zur Steuerung war nun, dass ich unter TargetDoorState etwas eintragen muss, ich weiß aber nicht wie. Bisher wurden die Geräte einfach immer mit true und false geschaltet, das funktioniert hier aber ja nicht, da ich ja einmal open und einmal close als Objekt habe.
Kann mir da jemand helfen?
Ich bin mir sicher, dass es eine Möglichkeit gibt. Es gibt ja etliche Einstellungen und Auswahlmöglichkeiten. Aber ich finde nicht die richtigen Einstellungen.
Vielen Dank schon einmal für eure Hilfe!
Wenn mehr Daten/Screenshots benötigt werden, bitte kurze Info!Gruß
Torben -
Hi,
Yahka bzw. HomeKit gleich Current mit Target ab. Du musst 2 Variablen erstellen, eben current und Target.
Der Rest wird in Blockly erledigt. Du nimmst Target als Trigger und setzt diesen State auf die Variable. Wenn du nun in HomeKit diesen Schalter betätigst, siehst du wie er von 0 auf 1 springt.
Damit teiggerst du die Öffnung des Tores.
Wenn Target 1 dann Tor öffnen und current auch auf 1.
Wenn Target 0 dann Tor schließen und current auch auf 0
0 und 1 kann auch umgekehrt sein, hab gerade nur mein Smartphone in der Hand und kann nicht nachschauen.
Viel Spaß beim probieren.
Ich hab bei mir noch n Timeout mit der Laufzeit des Tores, dann prüfe ich nochmals ob auch geschlossen ist und setze dann erst den Current auf den passenden Wert.
-
@leonracer Hi, leider bin ich noch nicht so fit was das hier angeht.
Besteht die. Möglichkeit, dass du hierzu 1-2 Bilder als Beispiel einfügst?
Das würde mir eventuell weiterhelfen. Eventuell auch ein Bild vom Script.Danke schon mal für deine Hilfe.
-
der letzte Post ist fas 3 Jahre her.
Was für ein System / Schalter hast du. Zeige auch mal die Datenpunkte, die zur Verfügung stehen, dann kann dir auch geholfen werden. -
Mal ein Beispiel wie es bei mir läuft:
- Script erkennt Garage auf oder zu per Homematik Kontakt:
var timeout; on({id: 'hm-rpc.0.OEQ0678431.1.STATE', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { if (getState("hm-rpc.0.OEQ0678431.1.STATE").val == false) { // Definiere Tor für HK als geschlossen setState("0_userdata.0.LageGaragentor_links_HK"/*LageGaragentor_HK*/, 1, true); setState("0_userdata.0.SchalterGaragentor_links_HK"/*schalteGaragentor_HK*/, 1, true); } else { // Definiere Tor für HK als offen setState("0_userdata.0.LageGaragentor_links_HK"/*LageGaragentor_HK*/, 0, true); setState("0_userdata.0.SchalterGaragentor_links_HK"/*schalteGaragentor_HK*/, 0, true); } }, 1000); });
- Skript für die Steuerung des Garagentores per HM Aktor
on({id: 'hm-rpc.0.NEQ1263062.1.STATE', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("0_userdata.0.LageGaragentor_links_HK").val == 1) { // Tor geschlossen if (getState("hm-rpc.0.NEQ1263062.1.STATE").val == true) { // Öffne das Tor setState("0_userdata.0.SchalterGaragentor_links_HK"/*schalteGaragentor_HK*/, 0, true); } } else if (getState("0_userdata.0.LageGaragentor_links_HK").val == 0) { // Tor offen if (getState("hm-rpc.0.NEQ1263062.1.STATE").val == true) { // Schließe das Tor setState("0_userdata.0.SchalterGaragentor_links_HK"/*schalteGaragentor_HK*/, 1, true); // Tor wird geschlossen } } }); on({id: '0_userdata.0.SchalterGaragentor_links_HK', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("0_userdata.0.LageGaragentor_links_HK").val == 1) { // Tor geschlossen if (getState("0_userdata.0.SchalterGaragentor_links_HK").val == 0) { // Öffne das Tor setState("hm-rpc.0.NEQ1263062.1.STATE"/*Switch*/, true); setStateDelayed("hm-rpc.0.NEQ1263062.1.STATE"/*Garagentor Öffner.STATE*/, false, 1000, false); } } else if (getState("0_userdata.0.LageGaragentor_links_HK").val == 0) { // Tor offen if (getState("0_userdata.0.SchalterGaragentor_links_HK").val == 1) { // Schließe das Tor setState("hm-rpc.0.NEQ1263062.1.STATE"/*Switch*/, true); setStateDelayed("hm-rpc.0.NEQ1263062.1.STATE"/*Garagentor Öffner.STATE*/, false, 1000, false); } } });
Dann gibt es dazu diese Objekte: (rechts kannst du ignorieren, ich habe halt zwei Garagen am Haus.
In Yahka dann so:
-
Hatten wir alles schon - bin aber ehrlich gesagt zu faul, dass nochmal alles nachzuvollziehen: https://forum.iobroker.net/topic/45039/garagentor-mit-homekit-steuern
-
@mickym Ich war zu faul den Link/Beitrag zu suchen
-
Grüße...
möchte mein Tor auch gern via Homematic / YAHKA ins Homekit bringen,
kann es schalten (auf / zu), aber der Status wird immer als geöffnet angezeigt...bei CurrentDoorState habe ich einen Kontaktsensor ausgewählt, dieser gibt als Werte im ioBroker CLOSED und OPEN aus...
habe auch MAP mit CLOSED = (simple) 1 und OPEN = (simple) 0 angegeben, aber leider funktioniert es nicht...
Tor ist zu, Status steht im Homekit auf geöffnet...kann mir jemand helfen? DANKE!
-
@superbraz sagte in Yahka Adapter - Garagentor steuern:
dieser gibt als Werte im ioBroker CLOSED und OPEN aus
Sicher?
Vielleicht ist das aber auch nur die Anzeige. Stehen da Zahlen in Klammern dahinter? -
ja stehen zahlen dahinter
CLOSED(0)
wenn ich als Map 0 = 1 und 1 = 0 wähle, steht im Homekit (wird geöffnet), obwohl es geschlossen ist -
@superbraz Ich meine die Werte von CurrentDoorState und TargetDoorState müssen nachher identisch sein.
Ich hab's gerade nicht ganz im Kopf (bin unterwegs) aber ungefähr so:Also wenn z.B. das Tor offen ist (Status 1) dann müssen beide auf 1 sein.
Tor geschlossen (Status 0) müssen beide Datenpunkte auf 0 sein.
Steht CurrentDoorState auf 1 (offen) und TargetDoorState wird auf 0 (schließen) gesetzt, damit zeigt Homekit "wird geschlossen" an bis das beide wieder den gleichen Status haben. Beim öffnen dann genauso -
@black-falcon87 said in Yahka Adapter - Garagentor steuern:
@superbraz Ich meine die Werte von CurrentDoorState und TargetDoorState müssen nachher identisch sein.
Ich hab's gerade nicht ganz im Kopf (bin unterwegs) aber ungefähr so:Also wenn z.B. das Tor offen ist (Status 1) dann müssen beide auf 1 sein.
Tor geschlossen (Status 0) müssen beide Datenpunkte auf 0 sein.
Steht CurrentDoorState auf 1 (offen) und TargetDoorState wird auf 0 (schließen) gesetzt, damit zeigt Homekit "wird geschlossen" an bis das beide wieder den gleichen Status haben. Beim öffnen dann genausodas ist ja mist...
ich steuere es mit einer PCBS Platine...
das heisst die steht auf "false" und springt für 1 sek auf "true", danach wieder auf false...
weil sie nur 1 sek schaltet...
und der HMIP SCI gibt den status für offen (1) und geschlossen (0)Edit:
das steht noch im protokoll vom iobroker:
State value to set for "hm-rpc.1.000458A98C9505.3.STATE" has to be type "boolean" but received type "string" -
@superbraz
ja glaub da musst dir in 0_userdata selbst ne Variable anlegen und dort umschalten.
Wenn ich dran denke schau ich heute Abend zuhause mal wie ich das gelöst habe dann poste ich dir paar Screenshots von den Blocklys.
Ich hab die gleichen Geräte. HmIP-SCI und PCBS -
@black-falcon87 said in Yahka Adapter - Garagentor steuern:
@superbraz
ja glaub da musst dir in 0_userdata selbst ne Variable anlegen und dort umschalten.
Wenn ich dran denke schau ich heute Abend zuhause mal wie ich das gelöst habe dann poste ich dir paar Screenshots von den Blocklys.
Ich hab die gleichen Geräte. HmIP-SCI und PCBSoh das wäre mega!
blockly hab ich erst seit 3 tagen und noch nicht so die ahnung davon...
also in "o_userdata" ne Variable anlegen,...kein plan was du meinst dort dann bitte auch etwas genauer erklären
Edit 2: hab gefunden, was du meinst...aber haut noch nicht hin -
Der yahka Adapter braucht beim Garagentor ja zwei Datenpunkte. Einmal CurrentDoorState (= wie der aktuelle Status vom Tor ist) und TargetDoorState (= was mit dem Tor passieren soll --> es geöffnet oder geschlossen werden)
Diese beiden Datenpunkte habe ich mir im Objektbaum im Ordner 0_userdata angelegt.
Der Ordner ist eben dafür da wenn du dir selbst Datenpunkte -für was auch immer- anlegen möchtest. Die kannst du dir mit dem "+" Button ja schon mal anlegt. Alles weitere dann später -
@black-falcon87 achja: Als Typ nimmst du "Number" (nicht boolean)
-
glaube ich habs hinbekommen - VIELEN DANK!
falls du noch einen "verbesserungsvorschlag" hast, nehm ich den gern an... -
@superbraz ja sieht doch gut aus. Ich habs auch so in der Art nur ein klein wenig anders
Im ersten Schritt trigger ich auch auf TargetDoorState, da dieser ja in der Home App verändert wird.
Bei mir braucht das Tor etwa 22 Sekunden zum hoch fahren und 20 Sekunden zum runter fahren (Schwerkraft hilft runter ja, daher gehts da wohl schneller )
Durch den Timer hab ich in der Home App nicht direkt den Wechsel von "offen" zu "geschlossen" sondern der Status geht von "offen" zu "wird geschlossen" und erst wenn es zu ist ist der Status dann "geschlossen"Weiterhin musst du nur aufpassen: Du hast den Kanal 3 jetzt nur eingeschaltet oder? Der sollte ja nur 1 Sekunden eingeschaltet werden und sich dann direkt wieder ausschalten. Dafür hab ich mir in der CCU eine Direktverknüpfung angelegt zwischen einem virtuellen Taster und dem Aktor PCBS. Dadurch muss ich im Blockly nur meinen Datenpunkt "Garagentor fahren" auf true setzen, aber die CCU schickt ein Funktelegram an den PCBS mit einer Einschaltdauer von 1 Sekunden, damit der definitiv wieder ausgeht
-
Parallel dazu hab ich mir aber noch ein zweites Blockly gemacht wo ich nur den HmIP-SCI überwache.
Hier warte ich dann 24 Sekunden um den Status zu setzen.Warum dieses zweite Blockly? Naja das erste setzt den Status in der Home App ja nur dann richtig wenn das Garagentor über den PCBS gesteuert wird. Aber ich hab auch noch einen normalen -nicht smarten- Taster in der Garage sowie eine Fernbedienung von Hörmann um den Antrieb direkt zu steuern.
Damit dann der Status auch passt eben dieses zweite Blockly mit einem Timeout der etwas größer ist als die Dauer vom Tor hoch bzw. runter fahren
-
in der CCU habe ich ein Programm, welches die PCBS nach 1 Sek wieder ausschaltet,
das hatte ich schon für die Homebridge angelegtFür Gäste will ich nun ein 2. Zuhause mit iobroker anlegen, daher der ganze Aufwand...
dein 2. Blockly ist clever - das hab ich noch gar nicht versucht.
Die Homebridge ist da etwas intelligenter und fragt wohl nur den Sensor-Status ab...
Reagiert also auch auf den Wandtaster...Aber du hast mir schon mal sehr geholfen...
jetzt kämpfe ich mit Nuki + Yahka...
und was ich noch noch nicht hinbekommen habe ich der Samsung TV mit Yahka...
sowie eine Leuchte von VOCOlinc...aber da gibts scheinbar nix für iobroker