NEWS
Garagentor mit Homekit steuern
-
@benjaminbuch Man kann nur vielleicht was machen, wenn Du einen Datenpunkt hast, der immer den aktuellen Zustand liefert, egal mit was das Tor geöffnet wird. Wenn das Homematic IP Garage Door Module das nicht erkennt, dann hast schlechte Karten - aber wie soll denn der Adapter irgendwas erkennen, wenn es keine Information darüber in Deinem ganzen System gibt. Du könntest versuchen über Kontaktsensoren zusätzlich den Status des Tors zu ermitteln.
-
@mickym Kann ich bei den Mapping links auch statt zahlen Wörter eintragen.
Es gibt nämlich eine Info die immer „CLOSED“ oder „OPEN“ sagt
-
@benjaminbuch Ja das geht bedingt, wenn DU noch mit einem Script den target Datenpunkt zusätzlich über ein Script setzt, falls der nicht automatisch upgedated wird.. Allerdings darfst Du das nur beim CurrentDoorState eintragen, da Du ja weiterhin über Homematic ebenfalls steuern willst.
Allerdings nur WENN Du über Deine Logikmaschine (Blockly, NodeRed oder JS) den TargetStatus nachziehst - bzw. wenn Du mal beobachtest, dass der ursprüngliche Datenpunkt als mit dem Du bislang im Homematic steuerst automatisch auf 0 oder 2 springt.
Wenn nicht müsstest Du unabhängig davon, ob Du mit Homekit oder manuell den Targetstatus auf 0 oder 2 setzen.
Also Du schließt manuell auf - Datenpunkt zeigt OPEN an, dann musst Du auch Dein Steuerungspunkt auf 0 setzen.
Die Konfig müsste so aussehen:
sieht dann quasi so aus -
Wenn Du manuell aufschließt springt ja der Zustand (door-state) (in meinem Beispiel auf OPEN), dann musst Du den target State (door) - also Dein bisheriger Homematic Datenpunkt mit Deiner Logikmaschine auf 0 setzen und umgekehrt.
Wenn ich es mir Recht überlege brauchst auch gar nichts am YAHKA ändern, sondern musst halt über Deine Logikmaschine beide Punkte ändern. Also Du wirst nicht drum rumkommen, da der target State immer mit dem current State synchronisiert werden muss, sonst steht das ewig auf schließen ... oder öffnen ..., wenn die Punkt nicht irgendwann den gleichen Zustand annehmen.
Du kommst deshalb nicht drum rum Deine Logikmaschine zu benutzen, weil Du 2 Datenpunkte hast und Du kannst mit mapping oder einem Alias nur immer den selben Datenpunkt übersetzen - wenn Du verstehst, was ich meine.Prüf einfach mal, ob wenn in dem EINEN Datenpunkt CLOSED steht, in dem bisherigen Datenpunkt automatisch eine 2 drin steht und umgekehrt wenn in dem EINEN Datenpunkt OPEN steht, in dem bisherigen Datenpunkt 0 steht.
-
@mickym @BenjaminBuch
habt ihr schon erfolgt gehabt?
Lese immer brav mit und spiele auch rum, aber ich bin immer noch am verzweifeln. -
Nun es wurde ja nicht mehr weiterverfolgt. Im Prinzip hat es ja anfangs funktioniert und auf mein letzten Post, ob das mit dem Mapping bei CurrentState funktioniert kam dann keine Rückmeldung mehr.
-
Ich steuere meine Tore mit YAHKA und HM Komponenten bzw. Raspi GPIO
Vielleicht hilft das: https://forum.iobroker.net/topic/42518/gelöst-status-garagentor
Status wird über die Hilfsobjekten in jede Richtung übertragen.
Objekte:
Beispiel Garage links auf_zu:
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); });
Konvertiere Schaltwert Garage links aus Homekit
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); } } });
In Yahka:
-
@mickym
Wie ist das bei meinem Garagentor .
Hab auch Homeatic ip und bei meinem garagentor beim öffnen steht Position unknow und wenn offen OPEN .
Wie funkt das bei mir ? -
@mike-eg6 Nun ich sehe nur den Door State - der bei Dir ebenfalls OPEN, CLOSED oder wie Du sagst vielleicht unknown ist.
Damit kannst Du den CurrentDoor State füttern.
https://nrchkb.github.io/wiki/characteristic/current-door-state/
Da ich nicht weiß wie Du das Teil steuerst und selbst wahrscheinlich nicht in den DoorState selbst reinschreiben darfst, würde ich halt eigene Datenpunkte für Current und Target Stellen und den Rest mit Deiner Logikmaschine steuern.
https://nrchkb.github.io/wiki/characteristic/target-door-state/
Target kennt nur 0 und 1 - Current ist der gleiche wie Target nur dass Du hier noch öffnen und schließen hast. Das kannst in meinen Augen nur mit Deiner Logikmaschine übersetzen.
-
@mickym
Ja genau ich finde keine Punkt den ich aktiviren / setzten kann damit ich das Tor selber auf oder zufahren lassen kann in den Objekten.
Momentan läuft das schon nur über die Homatic app und ich möchte das es auch im Homekit läuft .
Jetzt sieht das bei mir so aus , da ich noch ziehmlich ein Newbie in sachen IO Broker bin meine Frage wie sieht das mit den Eigenen Datenpunkten für current und Target stellen aus ? Bzw. Der Logikmaschine?Lg mike
-
@mike-eg6 Ich hab hier mal bisschen im Internet geschaut:
https://github.com/thkl/homebridge-homematic/issues/394In Deinem vorigen Screenshot hast Du ja zum Glück Deine Datenpunkte des Adapters gepostet.
Aus den GitHub Thread
könntest Du ja mal schauen, ob Du mit 1 oder 3 im doorCommand Datenpunkt Dein Garagentor steuern kannst. Oder mit anderen Werten (0-4) schauen, was passiert.
Also einfach 1 oder 3 in den Datenpunkt schreiben und beobachten, ob Du damit das Garagentor öffnen oder schließen kannst.
-
@mickym ah ja die Idee war nicht schlecht aber wenn ichs mach wie du sagst ändert sich der Punkt von Null auf 3 oder 1 aber das Tor bewegt sich leider nicht .
Hier ein Bilder von den zuständen wenn das Tor über den Taster auffährtUnd hier das zweite wenn es offen steht
-
@mike-eg6 Nun ja das mit doorState OPEN, CLOSED oder zwischendrin POSITION_UNKNOWN ist gut zu wissen, als Rückmeldung. Aber Du willst ja das Tor auch steuern. Hast Du es schon mal mit den Werten 0,2 und 4 versucht. Wie gesagt, wenn Du über den doorCommand Datenpunkt nicht weißt, wie Du das Tor steuerst bringt Dir das ja nichts oder probier es mit "Close" oder "open". Und wichtig ist, dass Du die Werte unbestätigt da rein schreibst.
-
@mickym
Ahh so jetzt hat sich was getan .
Aber nur weil ich per Funktaster das Garagentor geöffnet haben als es auf Open Stand wählte ich den Punkt CLOSE. Und das Tor fur komischerweise fast ganz zu , genauer in die Lüftungsstellung.
Aber öffnen lässt es sich mit keinen Befehl.
Ich deaktivir morgen Nachmittag nochmal die Homekit Logik und probiers nochmal vl. Spielt mir die da drein? -
@mike-eg6 Ok - das sieht so aus, also ob da schon jemand die Werte übersetzt hat. Kannst Du mal die Definitionen unter common des doorCommands und des doorStates in codeTags hier posten? Mit diesen 4 Werten, die Dir da aber angeboten werden, solltest Du aber das Tor steuern können. Wie gesagt sonst hat das keinen Wert.
-
@mickym okay danke
Also jetzt sieht es so aus aktuell
-
@mike-eg6 Das YAHKA ist unwichtig - erst mal ist wichtig, dass Du über den Datenpunkt im iobroker direkt Dein Garagentor steuerst. Das Homekit kommt erst zum Schluß, wenn klar ist wie Du das steuert.
Also direkt mit den geposteten Werten das Tor über die doorCommand - Datenpunkt steuern, in dem Du den Wert direkt unbestätigt da rein schreibst.
Und wie gesagt von beiden Datenpunkten die Definition hier in CodeTags posten.
{ "common": { "name": "testType2", "desc": "Manuell erzeugt", "role": "state", "type": "array", "read": true, "write": true }, "type": "state", "_id": "0_userdata.0.testType2", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1641558505574 }
Also das extrahieren aus dem Screenshot unter Objektdaten:
Also einfach mal die Werte im iobroker direkt setzen.
-
@mickym ah okay du meintest dies hier
-
@mike-eg6 OK - Ich habs gerade noch mal simuliert in der App.
Nun warst Du erfolgreich in dem Du den Wert im doorCommand direkt im iobroker gesetzt hast. Also OPEN und CLOSE und das unbestätigt?Und bitte auch nochmal die Objektdaten des DoorStatus Commandos posten.
Ansonsten müsste es mit den Daten, die Du gepostet hast - so direkt funktionieren:
Du musst halt den Pfad zu doorState und doorCommand entsprechend anpassen
Wobei ich nun erst mal davon ausgehe, dass OPEN und CLOSE identisch sind - da fehlt mir halt noch Deine Objektdaten des doorState Datenpunktes.
-
@mickym Hallo mickym, ich häng mich hier mal dran. Ich habe das gleiche Problem. Wenn ich in den Datenpunkt door_command direkt
2 oder CLOSED eingebe fährt das Tor zu,
bei 3 in die VENTILATION_POSITION.
Bei 0 1 oder 4 passiert nichts. Auch 5 6 7 habe ich schon probiert, ohne Wirkung.
Hast Du noch eine Idee? -
Hier ein kurzes Video wie ich es setzte und es nur in die Ventilationsöffnung fährt