Steuerung Garagentor mit Sensor (Homekit)

Hallo liebe IPS-Gemeinde,
ich kämpfe mal wieder mit einem Problem und bräuchte mal einen kurzen Denkanstoß:

Ich habe hier mit Tasmota (ESP8266+Relais und Sensoreingang) eine Garagentorsteuerung aufgebaut.
Die übliche Version: einmal schalten, Tor geht auf, das 2. Mal Tor stoppt, wieder schalten: Tor geht zu.
Zusätzlich habe ich einen „Tor geschlossen“ Sensor, der mir eine 1 liefert, wenn das Tor geschlossen ist.
Die Variable zur Torerkennung und Tasmota gehen über MQTT und sind vorhanden.

So weit, so gut.
Nun habe ich eine Integer angelegt ( mit ~ShutterMoveStop), um das Ganze zum Homekit hinzuzufügen. Jetzt benötigt diese Integer noch ein Actionscript, um die 0, 2 und 4 abzubilden und zu verändern, und daran scheitere ich zur Zeit.
Gibt es da etwas „fertiges“? Oder kann mir jemand mal auf die Sprünge helfen?

Mein Problem sind die vielen Auslösemöglichkeiten, um das Tor zu betätigen. Funkfernbedienung (wird vom IPS nur durch Änderung von „Tor geschlossen“ erkannt), Steuerung aus dem Webfront oder Bedienung über Homekit. Diese ganzen Varianten und die Integration der „Tor geschlossen“-Erkennung geht über meinen Kopf hinaus.

Ich sage schon mal vielen Dank für Eure Mühe.

Viele Grüße
Thilo

Ich hab es zwar mit Zigbee gemacht, meine Anforderung ist sehr ähnlich deiner. Eventuell hilft das schon mal weiter.
Meine Konfiguration ist auch ein Relais und zwei Sensoren die mir ganz offen oder ganz zu liefern. Das Stop hab ich im Skript „deaktiviert“.

Hallo @hfichtinger , besten Dank für Deine Unterstützung,
ich werde mir Deine Scripte mal anschauen, obwohl da sicherlich viel zu viel „Inhalt“ drin steckt.

Vielleicht hat jemand noch eine simple Lösung für mein Problem, ich möchte einfach nur das Tor vom Homekit und IPS aus bedienen und den Status Öffnen und Schliessen haben.

Besten Dank

Zu viel? Kommt drauf an. Ich wollte auch den Fehlerfall abbilden bzw. kenne ich in IPS ja nicht die nächste mögliche Fahrrichtung.
Ein Beispiel
Das Tor wird manuell geöffnet und angehalten. Wenn ich jetzt in IPS das Signal schicke zum öffnen, würde mir der Motor zuerst einmal das Tor zu machen, weil er vorher manuell geöffnet wurde. Also bekomme ich in IPS vom Sensor „ganz zu“ zurück, obwohl mein Wunsch eigentlich war, das Tor zu öffnen. Also schickt IPS in so einem Fall noch ein Signal an den Motor und dann geht das Tor auch entsprechend meiner Auswahl in IPS auf . Deswegen ist es etwas kompliziert. Wenn dir das egal ist, dann kannst du einfach zwei Sensoren für offen und zu verwenden. Dann brauchst eigentlich keine Zustandsüberwachung.

Es ist sehr schön, wenn man in der Lage ist, solch einen Fehlerfall abzufangen. Ich bin leider nicht so der Software-Typ (bin Elektroniker), so dass ich solche Vorgänge nur Kopieren und an meine Bedürfnisse anpassen kann. Ich versuche mich mal durch Deine Gedanken im Script durchzuarbeiten. Vielleicht wird es ja was … schön wäre es schon.
Also nochmal besten Dank und wenn ich Fragen zum Script habe, komme ich nochmal vertrauensvoll auf Dich zu.

Dann wünsche ich dir gutes Gelingen. Und jetzt ganz im Vertrauen, ich kopiere auch und passe an ;-). Meine PHP Kenntnisse sind eher bescheiden, aber es reicht für meine Zwecke. Und was ich nicht weiß, wissen die Kollegen hier oder Google.

Hallo,
ich muss doch noch mal eine Frage in die Runde werfen, da ich hier irgendwie ein Brett vor dem Kopf habe:
Ich habe für die Übergabe an HomeKit eine Integer-Variable erstellt, die das ShutterMoveStop-Profil und ein Actionscript hat. Im Actionscript wird je nach Zustand der Variable (0,2,4) ein Befehl zum Öffnen/Schliessen des Tores ausgegeben. Nach Ausführung diese Befehls wollte ich den Torzustand einlesen und diese Variable entsprechend (offen/geschlossen) neu setzen.
Wenn ich diesen Befehl im Actionscript unterbringe, wird nicht der Wert der Variable geändert, sondern wieder das Actionscript ausgeführt. Das passiert ebenso, wenn ich einen zusätzlichen Ablaufplan starte, der nach Fertigstellung des Verfahren des Tores den Zustand neu auf diese Variable schreiben will.
Ich bin hier etwas am Verzweifeln…
Vielleicht kann mir mal jemand einen kurzen Anstoß geben, wie ich das hier lösen könnte.

@hfichtinger
Ich habe versucht, Deine Scripte durchzuarbeiten und zu verstehen, aber das hat nicht wie gewollt geklappt. Ich würde doch nur die grundlegenden Optionen aus deiner Programmierung benötigen, kriege diese aber nicht extrahiert.

Viele Grüße und allerbesten Dank im voraus.

Vielleicht dient das hier der Verständlichkeit:

Ich gehe davon aus, du verwendest requestaction. In diesem Fall wird das Actionskript ausgeführt. Wenn du es mit setvalue machst, nicht.
Wobei das im Actionskript meiner Meinung nach nichts zu suchen hat. Was passiert, wenn das Tor manuell oder aus einer anderen Quelle geöffnet wird. Dann bekommt das das Aktionsript nicht mit. Ich würde die Änderung des Variablenwertes mit einem Ereignis machen, welches die Sensoren der Start- und Endpostion abfragt.

Die Grundlegenden Dinge sind eigentlich nur ein Aktionskript bei der Öffnen/Schließen Variable und eben die Ereignisse zum Abfragen der Position.

Besten Dank für den „Setvalue“-Tip.
Ich habe jetzt das Actionscript, welches die Variable setzt (offen/geschlossen), wenn der Befehl von einer Steuerung kommt, und zusätzlich noch 2 Ereignisse, die den Zustand nach dem Sensor (offen/geschlossen) setzen. Damit sollte die Bedienung mit der Funkfernbedienung abgefangen werden.
Mal sehen, ob ich heute Abend oder am Wochenende zum Testen und Bauen komme, vielleicht hat das das Problem ja schon geklärt.

Vielen Dank