Inhaltsverzeichnis:

Omnik Wechselrichter aus der Cloud und auf meinem MQTT - Gunook
Omnik Wechselrichter aus der Cloud und auf meinem MQTT - Gunook

Video: Omnik Wechselrichter aus der Cloud und auf meinem MQTT - Gunook

Video: Omnik Wechselrichter aus der Cloud und auf meinem MQTT - Gunook
Video: Kaco New Energy | Güç Sınırlandırması (Power limitation) 2024, November
Anonim
Omnik Wechselrichter aus der Cloud und auf My MQTT
Omnik Wechselrichter aus der Cloud und auf My MQTT
Omnik Wechselrichter aus der Cloud und auf My MQTT
Omnik Wechselrichter aus der Cloud und auf My MQTT

Ich habe eine Solarstromanlage mit einem Omnik String-Wechselrichter. Omnik ist ein in China ansässiger Hersteller von PV-Wechselrichtern und stellt äußerst effiziente Geräte her. Optional können Sie ein WiFi-Modul installieren, um es "verbunden" zu machen. Ich bin mit dem Gerät bis auf zwei bemerkenswerte Ausnahmen sehr zufrieden.

  1. Es "telefoniert nach Hause" mit einem in China ansässigen Cloud-Dienst und solange das Gerät mit dem Internet verbunden ist, kann dieser nicht ausgeschaltet werden. Ich mag das nicht.
  2. Der Wechselrichter hat keine anständige dokumentierte API (auch kein Cloud-Service). Da Heimautomatisierungs- und IoT-Geräte von MQTT-Nachrichten angezogen werden, wollte ich, dass sie MQTT-Nachrichten senden.

Für dieses Projekt, das beide Probleme löst, wenden wir uns an unseren wählerischen, aber zuverlässigen Freund, den ESP8266. Ich habe einen Wemos D1 verwendet, aber jede beliebige Inkarnation kann verwendet werden. Geplant ist:

  1. Geben Sie dem WLAN-Modul des Wechselrichters keine Zugangsdaten zum WLAN-Heimnetzwerk. Damit ist Problem 1 gelöst.
  2. Lassen Sie Wemos sich regelmäßig mit dem Access Point des Wechselrichters verbinden, um die gewünschten Daten zu erfassen. Dafür können wir das Reverse-Engineering-Nicht-Web-Protokoll verwenden. Ich habe diesen Code als Ausgangspunkt verwendet.
  3. Trennen Sie dann die Verbindung, verbinden Sie sich mit dem Heimnetzwerk und veröffentlichen Sie diese Daten als MQTT-Nachricht.

Unsere Stückliste ist denkbar einfach:

  • Ein Wemos D1, zum Kauf über die Wemos-Website oder Ihre bevorzugte Auktionsseite;
  • Ein USB-Netzteil mit einem USB-Mini-Kabel.

Es ist überhaupt keine Verkabelung erforderlich. Die Kosten liegen unter 10 EURO.

Ich nehme an, du hast es schon

  • ein Omnik-Wechselrichter mit installiertem WiFi-Modul;
  • eine MQTT-Infrastruktur (Broker, Dashboard);
  • eine aktuelle Version der Arduino IDE mit Unterstützung für den ESP8266-Prozessor installiert.
  • einige Vertrautheit mit dem oben genannten.

Es gibt einige Anleitungen zu MQTT und der Verwendung der Arduino IDE für einen ESP8266-Prozessor, aber fragen Sie gerne im Kommentarbereich nach.

Schritt 1: Den Omnik dauerhaft vom Internet trennen

Den Omnik dauerhaft vom Internet trennen
Den Omnik dauerhaft vom Internet trennen

Wenn Sie wie ich den Wechselrichter mit Ihrem WLAN-Netzwerk verbunden hatten, ist es überraschend schwer, ihn zu trennen. Jede Änderung, die Sie an den WLAN-Einstellungen vornehmen, wird überprüft, bevor sie übernommen wird. Anstatt durch die Reifen zu springen, wie zum Beispiel das Verschlüsselungspasswort des Routers und des Wechselrichters zu ändern und dann den Router wieder zu ändern, entschied ich mich für einen saubereren Ansatz und fange von vorne an.

Gehen Sie zum Wechselrichter und führen Sie die folgenden Aktionen aus:

  • Drücken Sie die Down-Taste, bis Set blinkt, und drücken Sie dann die Eingabetaste
  • Drücken Sie die Abwärtstaste, bis WLAN blinkt, und drücken Sie dann die Eingabetaste
  • Drücken Sie die Up-Taste, bis Yes blinkt, und drücken Sie dann die Eingabetaste

Mit dem Wechselrichter verbinden

Öffnen Sie Ihren Computer und suchen Sie ein WiFi-Netzwerk namens AP_xxxxxxxx, die Ziffern des x. Verbinden Sie sich damit. Je nach Betriebssystem müssen Sie dieses Netzwerk möglicherweise zuerst "vergessen", wenn Sie sich zuvor damit verbunden haben, da jetzt ein möglicherweise gespeichertes WLAN-Passwort weg ist.

Zugangspunkt des Wechselrichters sichern

Sobald die Verbindung hergestellt ist, öffnen Sie Ihren Browser, geben Sie 10.10.100.254 ein und drücken Sie die Eingabetaste. Es erscheint ein Login-Popup. Geben Sie admin in beide Felder ein, um sich anzumelden. Folgen Sie NICHT dem Assistenten und konfigurieren Sie den Zugangspunkt. Klicken Sie im linken Menü auf Erweitert, dann auf das Untermenü Drahtloser Punkt.

Nehmen Sie die folgenden Änderungen vor:

  • Verschlüsselungsmethode zu WPA2PSK
  • Verschlüsselungstyp zu TKIP
  • Geben Sie ein WLAN-Passwort ein. Notieren Sie sich das Passwort, Sie benötigen es, um sich demnächst mit dem Wechselrichter zu verbinden.

Klicken Sie auf Speichern und das WLAN-Modul wird neu gestartet. Sie verlieren die Verbindung, da jetzt das Kennwort erforderlich ist. Verbinden Sie sich erneut und geben Sie das WLAN-Passwort ein. Auch hier müssen Sie Ihren PC möglicherweise zuerst das Netzwerk AP_xxxxxxxx "vergessen". Sie sollten nun wieder über eine sichere WLAN-Verbindung mit dem Wechselrichter verbunden sein.

Sichern Sie die Konfigurationsseiten des Wechselrichters

Öffnen Sie Ihren Browser, geben Sie 10.10.100.254 ein und drücken Sie erneut die Eingabetaste. Es erscheint ein Login-Popup. Geben Sie erneut admin in beide Felder ein, um sich anzumelden. Klicken Sie im linken Menü auf Konto. Ändern Sie den Benutzernamen und das Kennwort in zwei eindeutige, nicht triviale Zeichenfolgen. Sie müssen beides zweimal eingeben. Schreib sie auf. Klicken Sie auf Speichern und das WLAN-Modul wird neu gestartet. Warten Sie einige Sekunden und laden Sie die Seite neu. Stellen Sie sicher, dass Sie jetzt den neuen Benutzernamen und das neue Kennwort benötigen, um die Konfigurationsseiten zu öffnen. Ihr Wechselrichter verfügt jetzt über eine zusätzliche Sicherheitsebene gegen Änderungen durch Außenstehende.

Damit sind alle Arbeiten am Wechselrichter abgeschlossen. Es ist jetzt vom Internet getrennt, einigermaßen gesichert, aber es fungiert immer noch als WLAN-Zugangspunkt, mit dem wir ihn abfragen können.

Schritt 2: Laden Sie die Software für das Wemos D1 herunter und konfigurieren Sie sie

Laden Sie die Software für das Wemos D1 herunter und konfigurieren Sie sie
Laden Sie die Software für das Wemos D1 herunter und konfigurieren Sie sie

Laden Sie die Software für das Wemos herunter. Den Code finden Sie hier. Sie müssen einige Änderungen vornehmen, um es für Ihr Heimnetzwerk und Ihren Wechselrichter zu konfigurieren

  • homeSsid: der Name Ihres WLAN-Heimnetzwerks
  • homePassword: das Passwort Ihres WLAN-Heimnetzwerks
  • omnikSsid: der Name Ihres Omnik-WLAN-Netzwerks. Es sollte aussehen wie AP_xxxxxxxxx
  • omnikPassword: das Passwort Ihres Omnik-WLAN-Netzwerks, das Sie im vorherigen Schritt zugewiesen haben
  • omnikIP: die IP-Adresse des Wechselrichters. Dies ist immer {10, 10, 100, 254}
  • omnikCommand: der erforderliche Byte-String zur Abfrage Ihres Wechselrichters, siehe unten.
  • mqtt_server: der Hostname Ihres MQTT-Brokers
  • mqtt_port: die TCP-Portnummer, normalerweise 1883 für unsichere oder 8883 für sichere (SSL) Verbindungen
  • mqtt_username und mqtt_password: die Zugangsdaten für Ihren MQTT-Broker
  • mqtt_clientID: Geben Sie hier einige zufällige Ziffern ein
  • mqtt_outTopic: das Thema der MQTT-Nachrichten.

Das omnikCommand Byte-Array ist spezifisch für Ihren individuellen Wechselrichter. Ich habe ein kleines Tool als Google-Tabelle veröffentlicht, um den String zu berechnen. Sie müssen die Seriennummer (ca. 10 Dezimalstellen) in Zelle B1 eingeben und die in Zelle B4 berechnete Zeichenfolge in Ihrer Skizze verwenden.

Um den Code erfolgreich zu kompilieren, benötigen Sie außerdem die Bibliothek PubSubClient.h. Stellen Sie sicher, dass das richtige Board (Wemos D1) und der richtige Port ausgewählt sind, und laden Sie dann die Skizze auf das Board hoch. Sie können das kleine Wemos-Board zum Schutz in einen kleinen Plastikbehälter legen und mit dem USB-Netzteil verbinden. Stellen Sie es irgendwo nicht zu weit vom Wechselrichter und Ihrem WLAN-Router entfernt und Sie sind fertig!

Die Hauptschleife in der Software verbindet sich mit dem WLAN des Wechselrichters, stellt dann eine TCP-Verbindung zu diesem her, liest die Daten, trennt die Verbindung, verbindet sich mit dem Heim-WLAN-Netzwerk, dann mit dem MQTT-Broker und veröffentlicht die neu formatierten Daten dort. Es dauert knapp 15 Sekunden, um all dies zu verbinden und zu trennen. Danach gibt es eine Verzögerung von 20 Sekunden, sodass die Daten ungefähr alle 35 Sekunden veröffentlicht werden sollten.

Schritt 3: Ein paar Worte zu den Nachrichten, dem Broker und dem Testen

Ein paar Worte zu den Nachrichten, dem Broker und dem Testen
Ein paar Worte zu den Nachrichten, dem Broker und dem Testen
Ein paar Worte zu den Nachrichten, dem Broker und dem Testen
Ein paar Worte zu den Nachrichten, dem Broker und dem Testen
Ein paar Worte zu den Nachrichten, dem Broker und dem Testen
Ein paar Worte zu den Nachrichten, dem Broker und dem Testen

Der Code gibt ein wenig Debugging-Daten aus. Wenn also etwas nicht funktioniert, schließen Sie das WeMos einfach wieder an Ihren PC an, starten Sie die Arduino IDE und drücken Sie STRG+UMSCHALT+M, um eine serielle Konsole zu starten. Stellen Sie sicher, dass die Geschwindigkeit auf 115200 eingestellt ist.

Sie können entweder Ihren eigenen Broker verwenden oder einen Cloud-basierten Dienst nutzen. Ich betreibe mein eigenes, auf meinem Synology NAS installiertes Mosquitto. Wenn Sie mit einem Cloud-Service einverstanden sind, können Sie Adafruit oder Amazon AWS oder einen anderen verwenden.

Die Nachrichten sind JSON-Strings, die wie folgt formatiert sind:

Beim Booten wird die folgende Nachricht veröffentlicht:

Dies kann verwendet werden, um unerwartete Neustarts zu erkennen.

Normale Nachrichten sehen so aus:

Leistung in Watt, Spannungen in Volt, Ströme in Ampere, Frequenz in Hertz, Energie in Kilowattstunden und Temperatur in Grad Celsius.

Ich benutze mosquitto_sub, um die Nachrichten zu überprüfen.

mosquitto_sub -h Hostname -t "Solar/Omnik" -u Benutzer -P Passwort -p 1883 -v

Die Ergebnisse finden Sie im Screenshot. Alle Nachrichten werden mit auf "true" gesetztem Retain-Flag veröffentlicht.

Auf meinem Telefon verwende ich eine App namens MQTT Dash und ich habe einen Bildschirmausdruck eingefügt und was ich eingeben muss, um das grüne Einschaltknopf anzuzeigen.

Empfohlen: