Mein erstes Script: Leistungsüberwachung für Shelly Plus 2PM mit Auto-Abschaltfunktion

  • Mein Ziel war es, ein Script für meinen Shelly Plus 2PM zu erstellen, das den Energieverbrauch eines angeschlossenen Geräts überwacht. Ich wollte eine Funktion implementieren, die sich merkt, wenn der Verbrauch des Geräts einmal über 10 Watt steigt und es dann automatisch ausschaltet, sobald der Verbrauch unter 8 Watt fällt. Dies soll dazu beitragen, Energie zu sparen und den Betrieb meiner Geräte zu optimieren.

    Ich habe dazu ein Shelly-Script entwickelt, welches den Zustand des Outputs fortlaufend überwacht. Mit dem Befehl Shelly.getComponentStatus erfasse ich den aktuellen Leistungswert des Outputs. Ich benutze eine Variable, um zu verfolgen, ob die Leistung die 10-Watt-Grenze überschritten hat. Sobald der Verbrauch dann unter 8 Watt sinkt, sorgt mein Script dafür, dass der Output ausgeschaltet wird. Anschließend wird die Zustandsvariable zurückgesetzt, damit der Überwachungsprozess von neuem beginnen kann. Dies wird durch ein Event-Handling-System umgesetzt, das auf Änderungen in der Leistung reagiert, anstelle einer ständigen Überprüfung in einer Endlosschleife, was die Effizienz und Reaktionsfähigkeit meines Systems wesentlich verbessert.

    Als nächstes möchte ich noch eine kleine Verzögerung einbauen, damit der Switch nicht sofort geschaltet wird. Hier der Code Stand heute:

    Ich hoffe, das hilft jemand.

    Eine Frage habe ich auch noch: Ich kann eigentlich ein wenig Programmieren, aber ich komme mit der Dokumentation auf der Shelly-Seite nicht klar. Gibt es eine Dokumentation mit vernünftigen Beispielen? Danke vorab!

  • Hallo @Smartscha,

    Nein, leider nicht, es gibt glaub ein paar Tutorials mit guten Beispielen, aber die kosten Geld. In der Editor Lib sind zumindest ein paar Code Stücke als Beispiel.

  • Das ist eben das schöne mit den übergeordneten Systemen. Da schwirren dann nicht auf allen Komponenten verteilt irgend welche Scripte herum, die dann über die Cloud die seltsamsten Dinge tun müssen.

    Sondern alles auf einem zentralen System. Etwa HA. So etwas fehlt bei Shelly tatsächlich immer noch. Ein kleines Zentralchen, wo alles beisammen ist. Kein Mensch braucht den 27.ten 123PM Plus Minus Pro der 5. Generation und alle 3 Wochen eine neue Firmware für jedes Bauteil. Sondern vielleicht mal eine Beschreibung für irgend was und eventuell mal eine Lebensdauer oder EOL von mehr als 3 Jahren. Und man nicht alles unbedingt nachbauen, was dann nur halbherzig funktioniert. Mal eigene Innovationen bringen, das wäre ein Alleinstellungsmerkmal. Nicht ein Premiumabo. Vorher haben noch alle über IFTTT gemeckert. Mal sehen, wann die Anzahl der Shellys one Abo noch möglich ist. Gelt für das Wetter bezahlen, ist ja wohl ein Witz. Macht jedes System kostenlos.

    Kann doch nicht sein, das man für so simple Funktionalitäten 50 Programmzeilen schreiben muss. Wer soll denn da auf 100 Geräten verteilte Funktionen, wie Scripte, IO-Aktionen, oder jetzt Webhooks genannte Sachen noch irgend wie überblicken können. Nun läuft es und Zack, wird die alte App deaktiviert, die 5. BETA-Firmware angeboten und nix geht mehr. Will nicht immer nur meckern. Aber so langsam ist die Shelly-Physiologie nicht mehr durchschaubar.

    Automation 1: Wenn Leistung Gerät X über 10W und Variable1 ist Off, dann Variable1 = ON.

    Automation 2: Wenn Leistung Gerät X unter 8W und Variable1 ist ON, Dann Gerät X Power OFF und Variable1 = OFF

    Mit besten Grüßen

    Martin

    Falls sich Jemand von mir persönlich angegriffen fühlt, dann bitte ich um eine kurze Info. Es lässt sich alles klären. Ich bin, wie ich bin.

    Einen 3EM kann man übrigens in 1728 Varianten einbauen und verdrahten .Es sind nun noch weitere Möglichkeiten dazu gekommen.

    In den meisten Einbauanleitungen sind die Wandler in der falschen Richtung eingezeichnet.

  • Danke, @De kat, dann werde ich mich wohl durchwurschteln müssen. Hier derweil meine verbesserte Version mit Timer. Das Script gibt mir jetzt fünf Minuten Zeit, doch noch einmal einzuschalten. Das läuft bei mir für den AV-Reciever und mein Lautsprechersystem. Wenn ich zB das TV ausschalte, habe ich 5 Minuten Zeit, um mir einen Podcast oder Musik auszuwählen, ohne das der Reciever abschaltet. Jetzt bin ich, glaube ich, erst einmal zufrieden damit.

  • Etwa HA. So etwas fehlt bei Shelly tatsächlich immer noch. Ein kleines Zentralchen, wo alles beisammen ist.

    Danke. Du sprichst wichtige und interessante Punkte an. Ich bin ja noch ganz am Anfang und vieles verwirrt mich noch. Vielleicht verfolge ich auch (noch) die falsche Philosophie?! Ich fand Shelly erst einmal attraktiv, weil ich keinen Hub dafür brauche, wie zB bei Hue. Da ich nicht alleine bin, hat mich die Realität schnell eingeholt. Also zog hier ein HomePod ein und ich habe HA auf dem NAS installiert nebst HomeBridge, damit die Frau™ die Home-App nutzen kann. 🙄 Mir ist klar, dass ich das, was ich hier mit dem Script gebaut habe, ebenso und einfacher in Home Assistant hätte abbilden können, aber ich verfolge derzeit noch den Ansatz, dass die Entität nach Möglichkeit wissen soll, was sie zu tun hat - ähnlich der objektorientierten Programmierung. Sollte mir mein NAS abrauchen, weiß der Shelly sich weiterhin zu benehmen. Ich finde das Scripting eigentlich ganz sexy, weil man damit echt viel machen kann. Nur die Doku ist echt schwach. Da würde ich mir sowas wünschen, wie php.net - mehr Beispiele als man jemals braucht. Aber Du hast natürlich Recht: Wenn man nicht verdammt gut aufpasst, mit all den Möglichkeiten (Webhooks und Co.) erreicht das Ganze sehr schnell einen Komplexitätsgrad, den kein Mensch mehr blickt. Es ist wirklich leicht, mit einer Hand voll Shellys etwas zu bauen, das ins totale Chaos führt und es wäre wirklich gut, eine Zentrale zu haben, die abbildet, was wie/ wo/ wann passiert, weil man sonst nicht mehr durchblickt und sehr leicht Konflikte bastelt, die sich nicht mehr verstehen lassen. Aber ja, man kriegt auch nichts gemalt. Im Moment bin ich noch geflashed von all den Möglichkeiten. 🤷🏻‍♂️

  • Dieses Thema enthält 14 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.