Beiträge von Seven of Nine

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.

    Nicht alle Geräte-Infos werden über MQTT Events gemeldet. der Ursprung des Events (MQTT, Cloud, Schalter..) z.B. lässt sich (bei Bedarf) nur über die REST-API abfragen. http://<ip>/status, da dann unter relays im jeweiligen Relay die source:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Ist es etwas so das der I4 eigentlich nicht als reiner Eingangsblock gebaut wurde sondern als Controller?

    grundästzlich hat der I4 insgesamt 4 Eingänge (inputs) und diese lassen sich problemlos per MQTT auswerten.

    Alternativ kann man auch die Eingangssignale per Script abfangen und dann z.B. abhängig vom Event ein MQTT.publish oder ein HTTP.GET bzw. HTTP.POST request an ein anderes Endgerät schicken.

    MQTT (getestet mit dem Mosquitto unter Linux) grundlegend funktioniert auf jeden Fall mit dem I4 und aktueller Firmware, gerade getestet. da siehst du im Log die jeweiligen Taster-Events btn_down, btn_up und das daraus abgeleitete Single_push.

    Code
    shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643183.49,"events":[{"component":"input:3", "id":3, "event":"btn_down", "ts":1643643183.49}]}}
    shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643185.45,"events":[{"component":"input:3", "id":3, "event":"btn_up", "ts":1643643185.45}]}}
    shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643185.45,"events":[{"component":"input:3", "id":3, "event":"single_push", "ts":1643643185.45}]}}

    Was ich auch noch nicht wusste, wenn man einen Shelly 1PM Plus rebootet und danach innerhalb 1 min 5x schaltet (script ist ja auf dobblepush also schnell erreicht) ist er auch im Werkszustand X/

    das lässt sich über einen zur Zeit noch versteckten API-Befehl abschalten:

    curl -X POST -d '{"id": 1, "method": "Input.SetConfig", "params": {"id": 0, "config": {"factory_reset": false}}}' http://192.168.178.145/rpc

    Wird demnächst bestimmt auch über die grafische Oberfläche machbar sein.

    hier mache ich das mit mehreren Rollladen-Shellies..

    https://github.com/shelly-tools/s…utter_switch.js
    Da gibt es ein Array mit mehreren IP-Adressen.

    Code
    let shutters = [
        '192.168.178.204', // Shutter Living room back door
        '192.168.178.206', // Shutter Living room back window
    ];

    weiter unten gehe ich die einfach mit einer for-Schleife nacheinander durch:

    Code
    for (let i=0; i<shutters.length; i++) {
       controlShutter(shutters[i], direction);
    }

    die 3 Teile der for-Schleife (je durch Semikolon getrennt) kurz erklärt:

    - Die Schleife startet mit dem neu definierten Wert let i=0 (erster Wert im Array, der Buchstabe i wird häufig als Variablen-Name für "inkrement", also hochzählend benutzt.)

    - Sie durchläuft das Array solange Wert für Wert, bis dessen Länge erreicht ist. Die Länge im Beispiel ist 2 (für die beiden IP), das Array startet aber von 0. Also muss der Wert von i um 1 kleiner sein. deshalb i kleiner Länge.

    - i++ erhöht den internen Zähler jeweils um 1. Startet bei 0,1,2 usw. hier im Beispiel aber nur 0 und 1, denn es hat ja nur zwei Werte. Man könte auch das auch mit einer anderen Syntsx i = i +1 schreiben.

    im Aufruf innerhalb der Schleife dann shutters[0] im ersten lauf (also die erste IP), shutters[1] im zweiten Durchlauf usw.


    Guck mal, ob du selbst damit klar kommst .. wenn nicht einfach fragen ;)

    kurze Rückmeldung..

    ich hab da gestern schon eine Weile mit rumgespielt.. aktuell ist es ziemlich umständlich, da die Sunset-Zeit nicht über die API vom Shelly direkt abrufbar ist. Es würde zwar trotzdem klappen (über externen Anbieter wie openweathermap.org hab ich experimentiert), allerdings ist dann zwingend eine Internet-Verbindung erforderlich und das finde ich etwas unglücklich.

    Hab deshalb einen Feature-Request gestellt (interne sunset/sunrise -Daten über Shelly.GetStatus API Aufruf) und will mal zunächst 2-3 Tage abwarten, ob sich die Entwickler dazu äußern.

    Ich kenne den Adapter nicht, bin aber vergleichsweise sicher, dass man die Notifications im Shelly Plus I4 aktivieren muss.. ob RPC status oder Generic Status müsstest du ggf. testen.

    Wichtig: bei Änderungen bezüglich MQTT muss der Shelly generell neu gestartet werden, daher auch das "restart_required": true in deiner JSON-Ausgabe.


    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Moin Thomas,

    ich werde in den nächsten 2-3 Wochen mein Bad renovieren, da ist noch einer von den alten Shelly 2 verbaut. Den werde ich mit dem Umbau gegen andere Shellies tauschen.

    Falls du bis dahin keinen gefunden haben solltest kannst du den gerne haben, denn deine extrem detaillierten Beschreibungen zum Innenleben der Shellies sind eine absolute Bereicherung für die Community. Daher würde ich den gerne "spenden" ;)

    Ziel: Carport-Beleuchtung schalten mit BWM und zusätzlich zeigesteuertes Dauerlicht, wo dann der BWM natürlich nicht reinpfuscht. Es gibt keinen Schalter/Taster.

    mit den einfachen Shelly 1 geht das nicht, möglicherweise mit einem 2.5er (siehe Beitrag von @Muetze ).

    Definitv gehen müsste es mit dem Shelly Plus 1 und einem Script, sofern der BWM mit dem Shelly Plus 1 kompatibel ist.

    was das Script dafür tun muss:

    Sunset Daten holen, wenn aktuelle Zeit (Stunde + Minute) erreicht ist, den Eingang vom BWM auf Detached stellen und das Relay anschalten. Zu definierter Zeit (Bsp. 23 Uhr) den Eingang wieder auf "Switch" setzen und das Relay vorsorglich abschalten, damit der BWM wieder das Kommando hat.

    Kann das Script dazu gerne schreiben, ich bin immer froh wenn ich Praxis-Beispiele finde, die auch für andere von Nutzen sind :)

    probier's mal hiermit:

    Voraussetzungen:

    - Taster angeschlossen (kein Schalter!)

    - Taster auf Detached konfiguriert.

    Was würdet ihr dagegen tun?

    ich würde das per Debug überwachen.. hab mal eben einen Debugger (für Windows) gebaut , die im ZIP enthaltene UDPDebugger.exe unter angabe eines Ports starten (Windows Kommandozeile). Beispiel (mit Port 3000)

    Code
    USBDebugger.exe 3000

    Anschließend im Shelly das Debugging aktivieren, IP-Adresse des Windows-PC + Port dort angeben

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Danach schreibt der Shelly seine Debug-Informationen in die Konsole vom UDPDebugger. Sieht dann etwa so aus..

    Eventuell lässt sich darüber die Ursache rauskriegen.

    Falls du den für Darwin (MacOS) oder Linux brauchst bitte Bescheid geben, dann kompiliere ich den für das passende System.