Vor einiger Zeit habe ich ein Skript geschrieben, welches ermöglicht, den Zendure-Speicher mithilfe der lokalen API des Gerätes vom Shelly aus zu steuern. Die ist hier erklärt. Da die Einrichtung für Laien aber vielleicht etwas zu umständlich und kompliziert ist bzw. ich selber wenig Lust habe, jedes Mal das gesamte Skript bei einer Änderung zu kopieren und alle Variablen wieder einzufügen, habe ich dieses Skript als eine Art „Automatisierung“ in meine eigene Solar-App integriert. Somit ist es relativ einfach, mit wenigen Schritten die automatische Leistungsstreuung einzurichten.
Wie genau das Ganze abläuft, habe ich im Folgenden mit Bildern beschrieben.
Vorwort
Einige Voraussetzungen für die Einrichtung der Automatisierung müssen im Voraus gegeben sein:
- Meine selbst geschriebene App muss von GitHub installiert werden. Release hier.
- Die Automatisierung funktioniert nur, wenn der Speicher nicht mehr im HEMS-System des Herstellers gesteuert wird.
- Shelly und Speicher müssen bereits mit dem Heim-WLAN verbunden sein.
- Shelly und Speicher müssen sich gegenseitig im Netzwerk erreichen können (z. B. Gast-WLAN funktioniert nicht!). Auch mit Repeatern hatte ich schon meine Problemchen.
- Das Gerät, auf dem die App läuft, muss selbstverständlich im selben Netzwerk sein wie der Speicher und der Shelly.
Weitere Vorteile der Einrichtung mit der App und des Skripts:
- Updates für Automatisierung (wenn ich Fehler finde oder Verbesserungen implementiere)
- Volle Kontrolle (keine automatischen Updates, die irgendetwas kaputt machen)
- Das Skript muss nicht manuell angepasst werden (Quellcode).
- Bei Updates werden die letzten Einstellungen gespeichert
- Steuerung lokal und daher völlig unabhängig von Internet oder der Hersteller-Cloud
- Entrichtung am Laptop oder PC möglich (Windows und Linux)
Abschließend: Ich weiß, dass die Automatisierung noch nicht perfekt ist und noch einige Features fehlen (z. B. vollständiges Laden des Speichers nach einigen Tagen ohne Laden auf 100 %). Ich hoffe, ich komme noch dazu, dies demnächst zu implementieren, und bei weiteren Vorschlägen gern hier ein Issue auf GitHub erstellen.
Anleitung
So, jetzt aber zur Anleitung!
Als Erstes müssen wir die beiden Geräte im Netzwerk finden. Dazu starten wir natürlich erst mal die App.
Als Nächstes wechseln in der Geräte hinzufügen-Ansicht auf den Netzwerk-Tab.
Wenn hier die beiden Geräte gefunden wurden, können wir den Speichern-Button drücken, um sie in der App hinzuzufügen.
Sollten die Geräte hier nicht gefunden werden, stimmt entweder etwas mit eurem Netzwerk nicht (siehe Vorwort oben). Oder euer Netzwerk ist sehr langsam. In diesem Fall einfach noch mal versuchen oder mal die Einstellungen oben öffnen. Dort kann der Timeout erhöht oder auch der Ping-Test vorher ausgeschaltet werden (wenn euer Netzwerk Ping blockt). Zudem können die Netzwerkinterfaces manuell konfiguriert werden (falls ihr z. B. eine USB-Dockingstation verwendet).
Sollte der Zendure-Speicher hier nicht angezeigt werden, aber der Shelly schon, kann es in seltenen Fällen sein, dass die Firmware des Speichers zu alt ist und die lokale Zugriffsschnittstelle noch nicht existiert. Hier hilft es nur, die App des Herstellers zu installieren, sich zu registrieren und die Firmware des Speichers zu aktualisieren. (Die lohnt sich sowieso, die ersten Firmwares waren etwas verbuggt!)
Hat das geklappt, können wir bei dem Shelly auf „Verbinden“ drücken. Nach einigen Sekunden Laden werden die Statuswerte des Shelly angezeigt. Nun können wir oben im Menü auf das Symbol mit den Kacheln und dem Stift drücken und ein Menü mit verschiedenen Einstellungen öffnet sich. Hier scrollen wir ganz nach unten und klicken auf Automatisierung.
In der folgenden Ansicht werden alle Skripte, die bereits auf dem Shelly installiert sind, angezeigt und auch unsere Automatisierungen. Im Grunde sind diese ja auch nicht anders als normale Skripte, welche durch ihre Benennung als Automatisierung erkannt werden.
Nun können wir den Button unten rechts verwenden, um unsere erste Automatisierung anzulegen. In der folgenden Ansicht werden alle Skripte angezeigt, welche für den Shelly zur Verfügung stehen.
Sollte es sich um eine neue Version des Shelly handeln, die die App noch nicht kennt, kann über den Filter oben auch eingestellt werden, dass „inkompatible“ Automatisierungen angezeigt werden. Aber keine Garantie, dass diese dort funktionieren, aber das wird sich dann beim Starten zeigen.
Als Automatisierung empfehle ich die Auto-Discovery-Variante. Diese ermittelt die IP-Adresse des Speichers im Netzwerk automatisch (es wird das gesamte Netzwerk abgescannt). Dies ist sehr praktisch, falls sich die IP-Adresse des Speichers aus irgendeinem Grund mal ändern sollte. Alternativ gibt es die Variante mit IP- oder MAC-Adresse. Letzteres ist für den Betrieb, wenn der Speicher mit dem Access-Point des Shelly direkt verbunden wird (z. B. Gartenlaube ohne Internet und WLAN, aber auch Auto-Discover-Skript funktioniert hier).
Im nächsten Schritt können verschiedene Parameter für die Automatisierung eingestellt werden. Dazu lest bitte die Anleitung hier. Die Standardeinstellungen sollten aber in den meisten Fällen schon passend sein.
Wird die Seriennummer (oder die IP-Adresse in der IP-Variante) nicht automatisch ausgefüllt, liegt es daran, dass der Speicher nicht in der App hinterlegt ist (siehe erster Schritt der Anleitung). Ist dies der Fall, zu Schritt eins zurück oder die Nummer manuell eintragen.
Dann können wir jetzt auf „Installieren“ drücken. Daraufhin sollte das Skript mit den eingestellten Parametern installiert werden.
Sollte hierbei ein Fehler auftreten, hat vermutlich etwas mit der Verbindung nicht geklappt. In diesem Fall die Automatisierung noch mal löschen und erneut versuchen. Klappt dies auch nach wiederholtem Mal nicht, kann es sein, dass die aktuelle Automatisierung kaputt ist (ups, wohl mein Fehler) oder der Shelly diese nicht unterstützt. Du kannst es mit einer älteren Version versuchen (auszuwählen beim Hinzufügen einer Automatisierung). Hilft alles nicht: Ticket auf Github mit Beschreibung öffnen oder selber prüfen, warum das Skript nicht geht (Webseite des Shelly im Netzwerk).
Hat das Installieren geklappt, können wir mit den zwei Statusanzeigen (oben im Screenshot markiert) prüfen, ob die Automatisierung läuft. Am besten mal einige Zeit offen lassen und prüfen, ob die Automatisierung aktiv bleibt.
Die Startzeit der Automatisierung kann mitunter einige Zeit dauern, da der Speicher erst im Netzwerk gefunden werden muss. Also etwas Geduld.
Funktion prüfen
Hat alles geklappt, können wir an zwei Stellen prüfen, ob die Automatisierung läuft. Entweder auf dem Speicher oder Shelly.
Zum Prüfen auf dem Shelly verbinden wir uns mit diesem (zurück zur Übersicht) und prüfen, ob der Stromverbrauch auf etwas Null ist.
Die andere Möglichkeit ist, auf dem Speicher zu prüfen, ob sich die Einspeisung ins Netz ändert. Auch hier wieder zurück zur Übersicht und mit dem Speicher verbinden und aktuelle Werte einsehen.
Alternativ kann auch der Graph auf Shelly oder Speicher eingesehen werden (Menü oben). Dort kann man die Änderung der Leistung gut verfolgen.
Fehlersuche
Sollte sich hier nichts verändern, obwohl die Automatisierung läuft, kann das verschiedene Gründe haben:
- Die Automatisierung hat den Speicher noch nicht gefunden (direkt nach der Installation).
- Der Shelly kann den Speicher nicht erreichen (siehe Gründe Vorwort).
- Der Speicher ist entladen und kann keinen Strom abgeben.
- Der Speicher ist komplett voll und gibt überflüssigen Strom ab.
- Der Speicher steckt nicht am Strom oder ist nicht am selben Stromnetz wie der Shelly (Installationsfehler)
- Die Automatisierung ist abgestürzt (Automatisierung auf dem Shelly prüfen, siehe oben).
Sollte auch nach all dieser Fehlersuche die Automatisierung immer noch nicht funktionieren, hilft nur noch, selber auf dem Shelly nachzusehen, was nicht geht. Dafür mal direkt mit der IP-Adresse des Shelly verbinden, das Skript auswählen und mal in die Meldungen schauen, die dort unten angezeigt werden. Sind dort keine, kann es sein, dass dort aber eine Meldung ist, um diese zu aktivieren. Oder das Skript läuft gar nicht.
Sind dort Fehler oder gibt das Skript Fehler, gern hier ein Issue auf GitHub erstellen.
Weiteres Nützliches
Zu den hier beschriebenen Steuerungsautomatisierungen gibt es in der App noch zwei weitere.
Online Monitoring
Die Monitoring-Automatisierung schickt die aktuellen Werte zur Anzeige an einen Remote-Server (Github-Projekt hier). Eine Instanz der Anwendung läuft hier. Eine Beschreibung gibt es hier.
Watchdog
Diese Automatisierung prüft, ob die anderen Automatisierungen noch laufen, und startet diese neu, falls es zu einem Fehler kam. Falls also mein Skript nicht fehlerfrei laufen sollte und nach einigen Tagen/Wochen/Jahren abstürzt, wird es zumindest neu gestartet.
Abschließende Gedanken
Jetzt läuft die Automatisierung schon lokal, aber der Speicher hat vermutlich immer noch Internetzugriff und könnte vom Hersteller absichtlich oder bei einem Hackerangriff ferngesteuert, abgeschaltet oder vielleicht sogar beschädigt oder zerstört werden. Dies kann aber unterbunden werden, indem dem Speicher im Router der Zugriff auf das Internet verboten wird.
Falls es ein Update gibt, muss dies natürlich temporär wieder erlaubt werden und danach wieder gesperrt werden. Die Möglichkeit, Updates manuell zu installieren, gibt es leider (hoffentlich noch) nicht.










