NEWS
[Gelöst] Garagentor Status Unterstützung
-
@firefrog sagte in Garagentor Status Unterstützung:
Vielleicht zeigst du uns mal die drei Datenpunkte im Detail.
Wenn ich es recht im Sinn habe kann Homekit auch ein Tor in Bewegung darstellen mit der 2
-
Meinst du das so?
Ich danke dir jetzt schon mal, dass du so Unterstützt! -
@firefrog Ich meinte eher den Inhalt des Datenpunktes. So:
Speziell den Datenpunkt input100, da muss ja irgendwas faul sein.
Hattest du es mal so umgebaut wie ich es dir gezeigt hatte ? oben den input100 rein !?
Du sagst ja der currentState verändert sich nach 20 sekunden wieder auf 1 obwohl der input100 wahr ist und bleibt? verhält sich der targetState auch so ? geht der auch zurück auf 1 ?
-
input100 ist kein selbst erstellter Datenpunkt. Das ist direkt der Datempunkt vom Shelly bzw. der vom Magnetschalter/Kontakt
Ne hatte ich nicht getestet.
Hier würde ich doch aber gar nicht den Schalter vom Shelly auslösen, wenn ich oben input100 einsetze.ich habe aber gerade noch was gesehen, als ich dir die Datenpunkte geschickt hatte. Die standen auf "state" habe es jetzt mal auf "value" geändert. kann das aber erst heute Nachmittag testen, wenn ich wieder zu hause bin.
-
@firefrog sagte in Garagentor Status Unterstützung:
input100 ist kein selbst erstellter Datenpunkt. Das ist direkt der Datempunkt vom Shelly bzw. der vom Magnetschalter/Kontakt
Zeig doch trotzdem mal den Inhalt bitte. Musst du den Expertenmodus einschalten
Ne hatte ich nicht getestet.
Hier würde ich doch aber gar nicht den Schalter vom Shelly auslösen, wenn ich oben input100 einsetze.Das soll nur den unteren teil ersetzen. Den oberen Trigger so lassen!
ich habe aber gerade noch was gesehen, als ich dir die Datenpunkte geschickt hatte. Die standen auf "state" habe es jetzt mal auf "value" geändert. kann das aber erst heute Nachmittag testen, wenn ich wieder zu hause bin.
State geht schon klar!
Du sagst ja der currentState verändert sich nach 20 Sekunden wieder auf 1 obwohl der input100 "wahr" ist und bleibt (hast du das beobachtet?) ? verhält sich der targetState auch so ? geht der auch zurück auf 1 ?
-
Es läuft wie folgt ab
Tor ist geschlossen
CurrentState = 1
TargetState = 1
ich öffne
TargetState geht sofort auf =0
Input100 geht sobald Tor komplett offen ist auf true, dadurch geht dann auch Current auf 0
nach 20 sek geht current aber wieder auf 1
Input100 bleibt permant auf true -
@firefrog ist ja echt verrückt, vor allem weil da genau deine 20 Sekunden Verzögerung das Auslöser ist. Wenn du den auf 10 Sekunden änderst passiert das auch nach 10 Sekunden ja ? Was denn du die Verzögerung mal ganz weg machst?
Den Inhalt von Input100 würd ich gern mal sehen noch, wenn du es einrichten kannst. (Expertenmodus einschalten)
Bau den unteren Teil mal so um mit dem TimeoutBlock statt der Verzögerung:
-
war doppelt
-
habe gestern Abend noch etwas getestet.
Die Verzögerung hatte ich vorher auch schon mal getestet. Wenn ich dort beispielsweise 10 Sekunden eintrage, passiert genau alles nach 10 Sekunden.Ich habe jetzt mal deinen Vorschlage getestet
Das funktioniert soweit.
Ich habe hier noch eine Vergzögerung eingebaut, damit soll das Tor erst "geschlossen" anzeigen wenn es nach 20 sekunden zugefahren ist
Das klappt allerdings gar nicht. Die Werte Current/TargetState ändern sich sofort wenn der Magnetkontakt unterbrochen wird.
Ich muss mal noch mit deinem Timeout veruschen.
Ich weiß aber nicht warum du ein "stop Timout" eingebaut hast? Was macht das an dieser Stelle?Kannst du mir noch erklären was an dieser Stelle passiert?
Was wird in dem Objekt "Wert" gemacht?Und noch mal, Tausend Dank schon mal!
-
Der Block "wert" gehört zu dem Trigger und beinhaltet den wert der Trigger Datenpunktes.
Ist der Trigger Datenpunkt True, ist es der "Wert Block" auch, und anders herum.Die "falls-abfrage" braucht immer ein "true" als Rückmeldung/bzw. als Ergebnis um die Aktion auszuführen.
In deinem Beispiel hier ist das Ergebnis deiner Auswertung auch "true":
falls wert von input100=wahr (Ergebnis stimmt/true!)Dort könnte auch beispielsweise ne größer oder kleiner abfrage sein. (Bspw. falls wert von xx größer ist als 10), und das ergebnis bei der abfrage ist dann richtig/true wenn der wert halt größer als 10 ist.
In dem vorgeschlagenen Skrip von mir bekommt er halt auf direktem weg vom Trigger ein "true". Da der Input100 ja nur true/false kann, ist das Ergebnis eben true zum ausführen des oberen Part´s und wenn es nicht true ist läuft das "sonst" durch.
Ich hoffe es ist halbwegs verständlich.
Der Stop Timeout soll den Timeout halt stoppen, falls er noch läuft, ist in deinem fall nicht sehr relevant, sollte man zur Fehlervermeidung aber immer an einbauen.
Wenn du jetzt schnelle Änderungen hättest, angenommen der input100 ist auf false gegangen, und innerhalb der 20 Sekunden aber wieder true wird der timeout abgebrochen. Hast du den nicht läuft dein timeout einfach weiter und führt die Aktion trotzdem aus, auch wenn input100 bereits wieder true ist.
Je nach dem wie oft und schnell diese Änderungen erfolgen oder auch längere Timer hat, hat man unter umständen mehrfach den selben timeout gleichzeitig am laufen und sucht dann aber den Fehler.Versuch es mal damit! Ich hatte auch schon mal Ärger mit den Verzögerungen, seither nutze ich die gar nicht mehr.
-
hast es gut erklärt. Gaaanz unwissend bin ich auch nicht Hab halt nur wenig Erfahrung direkt mit Blockly.
Aber summa summarum mit dem Timeout funktioniert es jetzt genau wie es soll.
Vielen Vielen Dank!!
-
@firefrog na endlich
Gern