Beiträge von eiche

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Szenen sind mir nur per Cloud bekannt.

    1. Du willst wirklich so etwas per Cloud lösen?
    2. Welchen Shelly setzt du gegenwärtig dafür ein oder willst du einsetzen?

    Mit einem Shelly der zweiten Generation und Skriptfähigkeit gelingt so etwas locker.

    Über Messwerte kann ich mangels solchem Gerätes leider nichts sagen.

    higgy

    Ich kenne insbesondere die Zeitpläne (= Schedule Jobs) von Shelly der zweiten Generation - mit dem Plus im Namen.

    Diese Schedule Jobs arbeiten nach meinen Erfahrungen sehr verlässlich und sie sind sehr flexibel nutzbar.

    Zu Zeitplänen der ersten Generation kann ich derzeit leider wenig mitteilen.

    Wenn dir diese Funktionalität wichtig ist, könntest du über einen Wechsel zu einem Plus 1 PM nachdenken.

    Das sind 500ms bis 2000ms und gelingt per Timer in einem Skript. Somit gelingt dies mit skriptfähigen Shelly.

    Ein sog. HTTP Endpoint ist ein Name, welcher einer Funktion zugeordnet ist.

    Aufruf: http://<IP Adresse des Schalt-Shelly>/script/<Skript Id>/<selbst gewählter Name>?<optionale Parameterliste>

    Bsp: http://<IP Adresse des Schalt-Shelly>/script/1/ein?700

    Der Skriptcode:

    Du kannst vermutlich erkennen, dass die Dauer parametrierbar ist und evtl. dass die Dauer auf 2s begrenzt ist.

    Nachgereicht:

    Ich habe die Dauer auch nach unten, zu kleineren Werten, begrenzt.

    Ich habe das über Action gelöst.

    Was hast du über solche Actions gelöst?

    Hast du den Thread gelesen?

    Hier ist erheblich mehr gewünscht als das, was du per Actions lösen könntest.

    Mit diesen URL wird das Gewünschte jedenfalls (noch) nicht gelingen.

    Wenn solches gelesen und nicht geprüft wird, stellen sich völlig falsche Vorstellungen ein.

    Ich lasse mich gerne überraschen.

    Das Skript sollte so arbeiten und tut dies bei mir auch.

    Wenn der Motion das Licht einschalten lässt und während der Einschaltdauer die zugeordnete Taste am i4 gedrückt wird, wird der Timer zum ausschalten gelöscht.

    Damit bleibt das Licht solange an, bis es von einem nicht Motion Gerät, also bspw. dem i4 per Taste, ausgeschaltet wird.

    Überprüfe das Bitte!

    Das gelingt selbstverständlich nur dann, wenn der URL stimmt und die Taste gedrückt wird, die diesem URL zugeordnet ist (Action ...).

    Falls dies nicht gelingen sollte, experimentiere bitte mit den Einstellung am Eingang des i4 zu dieser Taste!

    egal ob Bewegung erkannt wird

    Das könnte an den Einstellungen am Motion liegen. Wenn im Skript Retrigger auf true steht, dann muss mit jeder Nachricht vom Motion die Einschaltdauer von vorne beginnen, weil dann der Timer neu gestartet wird.

    ich habe eure Geduld genug strapaziert

    Nein! Ich bin davon überzeugt, dass alles genau so funktioniert, wie ich es beschrieb und dies afaik von dir gewünscht ist.

    Ich gebe nicht eher Ruhe, bis es gelingt. 8)

    ... ähm ... oder es dich zu sehr nervt. ;)

    Es ließ mir keine Ruhe. Hier die verbesserte Version des Skripts.

    Was habe ich verbessert?

    1. Das Skript ist besser strukturiert.
    2. Die Methode Script.Eval habe ich durch einen zweiten HTTP Endpoint ersetzt.
      Solange in den remote Geräten solche Endpoints verwendet werden - und kein Script.Eval - wird das Skript nicht abgebrochen, auch wenn der Endpoint Name nicht passen sollte.
    3. Die Protokollausgaben sind verständlicher und lassen den Ablauf leichter verfolgen.
    4. Der Ausgang, also dessen Id, kann per Variable out festgelegt werden.

    Was bleibt wie es war?

    Der Action URL in den Bewegungsmeldern, also nicht ändern! Endpoint Name lautet "on".
    http://<IP Adresse des Schalt-Shelly>/script/<Skript Id>/on?<Dauer in Sekunden>

    Was muss geändert werden?

    Der Action URL in den Geräten, die remote umschalten, also ändern! Endpoint Name lautet "toggle".

    http://<IP Adresse des Schalt-Shelly>/script/<Skript Id>/toggle

    Beide Informationen werden bei Skriptstart im Protokollfenster mit aktuellen Werten ausgegeben.

    Das gleiche Skript mit der nach ostfriese kleiner Änderung für die anwenderfreundliche Ausgabe nach Skriptstart.

    Dafür ist nichts an den anderen Geräten zu ändern.

    Neue Erkenntnis meinerseits.

    Nach Tests mit der Firmware 1.2.3 stellte ich fest, dass diese offensichtlich nach Erhalt der IP Adresse per DHCP diese Adresse nicht im nichtflüchtigen Konfigurationsspeicher ablegt.

    Somit findet man bei DHCP in der Antwort auf Methode Shelly.GetConfig keine IP Adresse, d.h. dass dort null steht.

    Ob dies auch in älteren Firmwareversionen so ist, kann ich derzeit nicht prüfen.

    Vielleicht werde ich gelegentlich das Skript so ändern, dass ein fehlerhafter URL das Skript nicht abbricht.

    Dazu muss ich statt der RPC Methode Script.Eval einen HTTP Endpoint verwenden, wie ich seit gerade eben feststellen konnte.

    Für die Motions habe ich im Skript einen solchen Endpoint verwendet.

    Der Unterschied:

    Methode Script.Eval: http://<IP Zieladresse>/rpc/script.eval?id=<script id>&code="<Funktionsaufruf>"

    HTTP Endpoint: http://<IP Zieladresse>/script/<script id>/<Endpointname> ...

    Wenn es mich packt, könnte ich das Skript entsprechend anpassen. Dann würde das Skript bei nicht existentem Endpointnamen selbstverständlich nicht reagieren aber auch nicht abgebrochen werden.

    Vielleicht wird ein Skript bei falschem Script.Eval Funktionsaufruf in einer späteren Firmware-Version nicht mehr abgebrochen - in Version 5.9.x vielleicht. ;)

    tomsta13

    Sorry, ich vergaß mitzuteilen, dass die alten URL nicht mehr passen. Du musst somit in allen hier beteiligten Geräten, bis auf Motions, den URL ändern.

    Er lautet jetzt am Ende ...&code="remoteButton()".

    Ich weiß derzeit nicht, wie ich einen solchen von extern verursachten Fehler (falscher URL) per Ausnahmebehandlung auffangen könnte. Vielleicht wäre dies mit dem Framework von @De kat möglich. Damit beschäftige ich mich aber jetzt nicht auch noch.

    Um die Wirkung eines solchen Fehlers deutlich zu verringern, kann man einen Schedule Job (Zeitplan) anlegen, der das Skript alle 5 Minuten (oder so) startet. Das gelingt aber nur per URL und nicht per Web UI, App oder Cloud.

    Zu deiner off topic Frage: ;)

    würde mich interessieren wofür du sie überall einsetzt beim WoMo

    Ich setze bisher im WoMo keinen einzigen Shelly ein. Den zusätzlichen Verbrauch scheue ich.

    Meine 12V Versorgung inkl. Gleichspannungswandler für

    • USB Ladeteil,
    • Notebooks,
    • FRITZ!Box 4020,
    • NAS (arbeitet zur Zeit nicht im WoMo)

    können wir per "Cockpit" Schalterchen inkl. Dioden-Logik und starken Solid State Relais ein- und ausschalten. Somit wird fast kein Strömchen für diese Geräte im ausgeschalteten Zustand verbraucht.

    Nur eine Stelle kann mich für den Einsatz eines Shelly + 12V Magnetventil NC reizen: Öffnen und Schließen des Grauwasserabflusses.

    Vermutlich lasse ich aber auch das sein.

    Aber einen kleinen Ama... Echo Input mit kleinem externen Bluetooth fähigen Lautsprecher führe ich mit und setze diesen gelegentlich zum hören von interessanten Radio-Programmen ein (fast ausschließlich WDR 5, die meisten anderen Programme sind imho großer Mist). Manchmal lasse ich darüber remote auch eine Lampe zu Hause schalten. :)