Shelly 4 schaltet Shelly 1 zusätzlich zum Bluetooth Motion

  • Hi, das Thema wurde gelöst. Vielen Dank dafür.

    Ich würde gern mittels Taster der an einem Shelly 4 angeschlossen ist den Shelly 1 ein und ausschalten.
    Zusätzlich ist am Shelly 1 ein Schalter verbaut der auch zum ein / ausschalten genutzt werden kann.

    Weiterhin sind 3 Bewegungsmelder per Bluetooth verbunden. Sollte das Licht per Schalter oder Taster eingeschaltet werden, dann sollen die Bewegungsmelder das Licht nicht selbst ausschalten.


    Action auf dem Shelly 4: (auf dem Shelly 1 ist auch eine solche Action dem Schalter zugeordnet)

    Code
    http://192.168.0.107/rpc/script.eval?id=2&code="handeinschaltungsFunktion()"

    192.168.0.107 ist die IP vom Shelly 1. Der Script steht auf Position 2 (id=2)

    kompletter script auf dem Shelly 1 Gen 3:

    2 Mal editiert, zuletzt von Hangkuro (20. Juni 2024 um 10:28)

  • Weil die Bewegungsmelder das Licht dann beim nächsten mal nicht richtig schalten/ Bewegungen melden.

    Ohne Zähl-Variable:

    Kam öfter vor, das ich das Licht mit Taster ausgemacht hab und es nach ein paar Sekunden wieder an ging.

    Oder ich Licht einschalte und es aus geht, nachdem der Flur zum zweiten Mal innerhalb kurzer Zeit betreten wird.


    ___

    Gibt es denn ein Event oder eine subscribtion mit der ich ein Signal oder ähnliches vom Shelly 4 bekommen / abfragen kann (sobald der Taster gedrückt wird)?

  • Ich habe es nun teilweiße geschafft:
    Wenn ich das Licht vorher schon einschalte, dann ist es egal, was die Bewegungsmelder machen und das Licht bleibt an bis ich es wieder ausschalte.

    Was ich nun gern noch hätte, wäre eine Möglichkeit, das Licht in Abhängigkeit mit den Bewegungsmeldern auszuschalten ( statt komplett aus, weil ein Schalter sich in der Mitte des Raumes befindet)

    Zitat

    if Licht bereits an und Schalter/ Taster / Cloud... Ausschaltung {
    zähler auf bewegungsmelder zählwert setzen}

    Nur weiß ich nicht, wie ich abfragen kann, ob der Shelly 4 Taster oder die Cloud ausschaltung bedient wird. Falls es mit Cloud überhaupt geht.


    am script Anfang habe ich eine Funktion hinzugefügt

    und die motionHandler funktion so geändert:

  • Ich habe noch nicht komplett erfasst, was deine Ziele sind. Aber auf diese Fragen kann ich zumindest eingehen.

    Allerdings gelingt dies nur, wenn dein "Shelly 1" keiner der ersten Generation ist. Dies hast du nicht sorgfältig geklärt. Da du aber ein Skript verwendest, muss dieser Shelly zumindest der Generation 2 angehören ...

    Nur weiß ich nicht, wie ich abfragen kann, ob der Shelly 4 Taster oder die Cloud ausschaltung bedient wird. Falls es mit Cloud überhaupt geht.

    Der Shelly i4 kann per Action (oder per Skript) dem Shelly Plus 1 etwas per Methode "Script.Eval" oder per HTTPServer Endpoint (im Skript des Plus 1) mitteilen. Die Methode "Script.Eval" ist leichter in seiner Verwendung.

    Hierfür sendet der i4 an den Plus 1 eine Nachricht per folgendem URL.

    Code
    http://<IP Adresse des Plus 1>/rpc/script.eval?id=<Skript Id auf dem Plus 1>&code="<Funktionsname(optionale Parameter)>"

    Vielleicht ist diese Nachricht nicht ganz syntaxgerecht, dazu müsste ich ein wenig experimentieren - siehe API Dokumentation.

    In deinem Skript kannst du die Quelle des Schaltens per Event Handler herausfinden. Im event Parameter steckt auch die Information über die auslösende Quelle - per Cloud steht in der src Komponente der Wert "SHC".

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist.