... bin ein Stückchen weiter und versuche die Door-API aus dem Webinterface zu beschreiben. Welche Rolle die alte door-api noch spielt, ist für mich unklar. Das
erzeugt zwar tatsächlich einen Delay, aber nicht den, der im WebIF eingestellt wird, sondern einen offenbar oben drauf, bevor der Mäher startet. Aber ohne einen release startet der Mäher eben nicht (dazu gleich mehr).
Nun zur Anleitung der Door-API aus dem Web-IF (arbeite mit json, falls es wichtig ist):
cmd=door liefert vor dem Start folgendes:
Code: Alles auswählen
{"door": {"enabled": true, "state": {"open": false, "close": true}, "pending": {"open": false, "close": false}, "arrested": false}, "successful": true}
... mit folgender Bedeutung:
state open true = das Tor ist bestätigt offen
state close true = das Tor ist bestätigt geschlossen
pending open true = das Tor soll geöffnet werden und das System wartet, um "state" entsprechend umzuschalten
pending close true = das Tor soll geschlossen werden und das System wartet, um "state" entsprechend umzuschalten
Arreste true = das könnte sich hinter dem Delay aus der alten Door-API gem dieser Anleitung sein :
viewtopic.php?f=10&t=1663 - da bin ich mir aber nicht sicher.
Jetzt kommt es: das System erwartet nach jeder "Tor-Bewegung" nun eine Bestätigung mit
,
um dann bestätigt die state-Attribute entsprechend zu schalten. (open oder close = true).
Während der im Web-IF eingestellten Verzögerung sind alle stat- und pending-Attribute false.
Somit sieht der Ablauf wie folgt aus:
Code: Alles auswählen
Vor Starten eines Mähvorganges mit geschlossenem Tor:
{"door": {"enabled": true, "state": {"open": false, "close": true}, "pending": {"open": false, "close": false}, "arrested": false}, "successful": true}
Nach dem Start des Vorganges(Türöffnung wird mit "pending - open - true" angefordert:
{"door": {"enabled": true, "state": {"open": false, "close": true}, "pending": {"open": true, "close": false}, "arrested": true}, "successful": true}
nach Öffnung und Senden des cmd=door&release (während des Ablauf der Verzögerung aus dem Web-IF):
{"door": {"enabled": true, "state": {"open": false, "close": false}, "pending": {"open": false, "close": false}, "arrested": true}, "successful": true}
nach Ablauf der Verzögerung (Tor ist bestätigt offen):
{"door": {"enabled": true, "state": {"open": true, "close": false}, "pending": {"open": false, "close": false}, "arrested": true}, "successful": true}
Rückwärts:
Mäher ist gestartet (Torschließung wird mit pending-close-true angefordert):
{„door": {"enabled": true, "state": {"open": true, "close": false}, "pending": {"open": false, "close": true}, "arrested": false}, "successful": true}
release nach Schließung gesendet - Verzögerung gestartet:
{"door": {"enabled": true, "state": {"open": false, "close": false}, "pending": {"open": false, "close": false}, "arrested": false}, "successful": true}
Verzögerung abgelaufen - Tor bestätigt geschlossen:
{"door": {"enabled": true, "state": {"open": false, "close": true}, "pending": {"open": false, "close": false}, "arrested": false}, "successful": true}
Also Unklar ist die Arbeitsweise der alten API - denn irgendetwas passiert da noch - das delay=xyz funktioniert aber nicht mehr wie beschrieben.
Weiter wäre es gut, wenn der Mäher mit der Heimfahrt solange wartet, bis das Tor bestätigt offen ist. Das ist nämlich derzeit nicht so. Das Öffnen wird mit pending - open - true angefordert, aber der Mäher versucht trotzdem in die Station zu fahren, auch wenn stat-open noch nicht "true" ist.
Vielleicht kann jemandem meine Ausführung helfen; oder vielleicht sollte sie auch in den Anleitungen irgendwo verlinkt werden.
Beste Grüße
Michel