Shelly Plus Plug S - leistungsabhängige LED-Beleuchtung mit Animationen

Die Verwendung von Skripten liegt im eigenen Ermessen des Benutzers. Unterstützung für Skripte wird vom Autor des Skripts bereitgestellt.
  • 1. Grundgedanke für dieses Script:

    Eine automatische Tauchpumpe in einem Schacht zieht Wasser aus dem Boden, das bei starkem Regen von der Ringdrainage des Hauses abgeführt wird. Diese Pumpe hört und sieht man nicht! Und dass sie nicht arbeitet erkennt man daran, dass der Kellerboden eine Wasserschicht führt ... so wie zuletzt Weihnachten 2023 als die alte Pumpe kaputt war. Die neue Pumpe ist an Everhome angeschlossen und meldet per Nachricht aufs Handy wann sie läuft. Dazu hängt sie an einer Shelly Plus Plug. Gleichzeitig soll aber die LED auch leuchten wenn sie arbeitet (Strom zieht) zur optischen Kontrolle.

    2. Das große Problem:

    Die Shelly kennt nur zwei Zustände: ON und OFF. Für die Realisierung benötigen wir aber einen dritten Zustand: POWER. In der Regel ist die Dose ja eingeschaltet (ON), sie soll aber eine dritte Lichtfarbe zeigen, wenn die Pumpe läuft und Strom zieht. Dieser muss definiert werden als POWER = ON + (Energieverbrauch > Schwellwert). Der Schwellwert ist wichtig, da solche Geräte ja im Standby auch ein paar Watt ziehen. Ohne Schwellwert würde die LED immer POWER zeigen sobald man ein Gerät mit Stand-By-Verbrauch anschließt.

    3. Versionen

    • In der 1. Version habe ich genau das realisiert, aber irgendwie fand ich die fixe Farbe ein bisschen öde. Meistens ist die Dose ja ON, POWER ist nur selten und dann für vielleicht 30 Sekunden. OFF sollte nicht vorkommen, sonst besteht Überschwemmungsgefahr. Der Zustand soll also deutlich wahrnehmbar sein. Warum also nicht eine Möglichkeit einbauen eine Lichtanimation für jeden Zustand ablaufen zu lassen. Das habe ich
    • in der 2. Version realisiert. Es stellte sich dann aber heraus, dass es hier einen grundlegenden Denkfehler gab. Es funktionierte zwar, aber nicht mit kurzen und sehr langen Leuchtphasen in einer Animation. Den habe ich dann
    • in der 3. Version eliminiert, die ihr hier runterladen könnt.

    4. Wie funktioniert das Script:

    • Ihr müsst drei Arrays definieren: "onanimation", "offanimation" und "poweranimation". Dort legt ihr einzelne Lichtelemente hinein in der Form: [r, g, b, hell, dauer]. Bitte beachten: die drei Farben gehen von 0-100, nicht 255 wie üblich (API-Vorgabe). Die Helligkeit ist in %, die Dauer gibt an wie oft das Lichtelement wiederholt wird! Also 0 = 1x anzeigen, 99 = 99x wiederholen = 100x anzeigen! Ihr könnt ein einzelnes Lichtelement reinlegen, dann leuchtet die LED fix ("dauer" wird quasi ignoriert) oder eine ganze Lightshow programmieren, die so oft gespielt wird bis sich der Zustand der Dose ändert.
    • Anschließend müsst ihr mit "timerinterval" einen Timer setzen. Ich habe festgestellt, dass 100 = 100ms das schnellste ist was der LED-Controller abkann. Die CPU rechnet viel schneller! Wenn ihr den Timer noch kürzer setzt besteht die Gefahr, dass die Lightshow unrhythmisch wird, weil der LED-Controller nicht mit dem Schalten der von der CPU angewiesenen Lichtfarbe nachkommt.
    • Ausserdem müsst ihr noch den "threshold" (Schwellwert) in Watt setzen, oberhalb dessen der Zustand POWER geschaltet wird.

    5. Was kann man noch damit machen?

    Ich habe eine zweite Shelly so geschaltet, dass sie bei einem Solarüberschuss über 130W grün leuchtet und wenn man einen Verbraucher (Ladegerät Fahrradakku) anschließt pulsiert sie grün.

    Ansonsten: denkt euch was aus, postet es hier. Ebenso eure goilen Lichtanimationen.

    Viel Spaß

  • Ansonsten: denkt euch was aus, postet es hier. Ebenso eure goilen Lichtanimationen

    Eine meine Lösungen mit dem Plus Plug S bildet aus unten angeführten externe MQTT-Daten eine "Ampel" Anzeige mit wechselnden Helligkeitswerte bzw. farbiges Blinken.

    • HeartBeat (WLAN, Internet und Home Assistant Verfügbar/Betriebsbereit)
    • KESSELStatus
    • KESSELStatusInfo
    • KESSELTemperatur
    • PUFFERTemperaturoben
    • PUFFERLadezustand

    4 Mal editiert, zuletzt von HighFive (1. Oktober 2024 um 21:52) aus folgendem Grund: Kosmetik

  • Zitat

    Eine meine Lösungen mit dem Plus Plug S bildet aus unten angeführten Eckdaten eine "Ampel" Anzeige mit wechselnden Helligkeitswerte bzw. Farbiges Blinken.

    Wärmepumpe? Thermische Solaranlage? Warp-Antrieb?

  • Kleines P.S.:

    Ich beherrsche (qua Studium) mehrere Programmiersprachen, jedoch kein Javascript! Gecodet hat unter meiner Anleitung der im Header genannte Co-Autor.

    Allein ein Bericht über diese Reise würde ein Buch füllen. Aber es war schlussendlich erfolgreich. Inzwischen kann ich Javascript einigermaßen lesen (zumindest den von mir benutzten Teilabschnitt), bin aber weit davon entfernt selbst zu coden.

    Wenn sich jemand berufen fühlt den Code zu verbessern … go for it!

    Grundsätzliche Kritik am Code bitte ich bei ChatGPT abzuladen.

  • Danke für den Impuls und das Script, wusste nicht, dass sowas so einfach möglich ist.

    Habe auch gleich mal etwas herumgespielt und jetzt für meinen Gefrierschrank die optische Info, ob er komplett aus ist oder sich im Stand-by-, Betriebs- oder Überlast-Zustand befindet.

    Viele Grüße,

    Markus

    Shelly’s: 1xPro3 EM, 1xDimmer2, 1xPlus1, 4xPlus1PM, 4xPlus2PM, 2x Plus AddOn und viele Plus Plug S
    Fritz!Box 7490, FRITZ!Repeater 2400
    Proxmox mit ioBroker, Home Assistant, InfluxDB & Grafana
    NAS: Synology DS415+

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