Viele User suchen nach einer einfachen Lösung um den Volkszähler …
… mit Daten zu füttern.
Mit Hilfe von ESPeasy ist es möglich einen kleinen Chip mit WLAN in sein eigenes Heimnetz zu integrieren und Daten an den eigenen Volkszähler zu senden.
Hierfür sind wenige bis keine Programmierkenntnisse erforderlich. Zudem benötigt man kaum Hardware um zum Beispiel Temperaturen zu erfassen.
ESPeasy stellt für den ESP8266-Chip und den ESP8285-Chip eine Weboberfläche zur Verfügung, mit der es ganz einfach ist diesen Chip über WLAN anzusprechen und die GPIO Ports zu verwalten.
Dank des Frameworks können über 40 verschiedene Sensoren erfasst werden.
Einige als Beispiel:
Zusätzlich können die GPIO´s des Chips einfach über die im Heimnetz hinterlegte IP Adresse angesprochen werden.
Beispiel: Man hängt an einen GPIO-Port ein Relais und kann dieses wie folgt schalten:
AUS schalten:
http:<ESP IP addresse>/control?cmd=GPIO,<pin>,0
AN schalten:
http:<ESP IP addresse>/control?cmd=GPIO,<pin>,1
Das ESPeasy-Projekt wurde vom Hersteller Names letscontrolit ins Leben gerufen. Aktuell gibt es verschiedene Versionen z.B. auch ESPeasyMega. Hierbei handelt es sich um eine aktuell noch in Entwicklung befindliche Version, welche in aktuellen Tests mit dem Volkszähler funktioniert. Weiteres hierzu im Bereich Einrichten.
Das Projekt hat eine eigene Dokumentation. Zudem gibt es auch unter Github eine entsprechende Source: ESPeasy
Hierbei handelt es sich um einen WLAN-Chip, welcher Standardmäßig schon GPIO-Ports mit bringt.
Der ESP8266 ist sehr klein und wird meistens auf kleinen Entwicklungsboards verbaut, etwa dem NodeMCU V2.
Es können Programme in der Arduino-Umgebung programmiert werden und dann auf den Chip geflasht werden.
ESPeasy ist nichts anderes wie ein solches Programm, welches aber schon von Haus aus alle benötigten Funktionen mit sich bringt.
Charakteristisch für den ESP8266 sind sein Gehäuse und die WLAN-Antenne, welche links vom Chip montiert ist.
Der NodeMCU V2 zeichnet sich durch folgende Eigenschaften aus:
Wie man sieht ist der kleinere ESP8266-Chip auf der Grundplatine montiert, welche nebst noch über einen Micro-USB Anschluss verfügt:
Es gibt viele Möglichkeiten ESPeasy zu verwenden. Nur ein mögliches Szenario ist die Verwendung der NodeMCU V2-Platine, welche z.B. über Amazon zu erhalten ist.
Im folgenden Beispiel soll die Temperatur mittels 1-Wire Sensor DS18B20 an den Volkszähler übermittelt werden.
Somit kann später für unter 5 Euro eine Temperatur erfasst werden.
zusätzlich für eine Testschaltung:
Wenn man sich eine Testschaltung mit Breadboard aufbaut, Schätzungsweise ca. 1 Stunde mit einbinden des ESP8266 ins WLAN.
Wenn man sich eine kleine Platine lötet, ca. 2 Stunden bis zum fertigen „Produkt“.
Nun muss der ESP8266 geflasht werden. Hierfür bitte von folgender Seite ESPeasyMega (aktuell noch in der Beta Version) herunterladen: ESPEasy_v2.0.0-dev12.zip.
In der heruntergeladenen .zip-Datei befindet sich die Datei „ESPEasy_v2.0.0-dev12_normal_4096.bin“.
Dies ist die binary, welche wir auf den ESP8266 flashen müssen. Dies machen wir über die Komandozeile mit der Datei „esptool.exe“, welche sich ebenso in der .zip-Datei befindet!
Wir legen uns diese zwei Dateien also auf unserem PC bereit und schließen den NodeMCU via USB an unseren PC an.
Über den Hardware-Manager überprüfen wir nun den COM-Port, an dem wir den NodeMCU an den PC angeschlossen haben.
Start - Ausführen - „cmd“ - als Administrator ausführen.
Nun flashen wir den NodeMCU mit dem folgenden Befehl:
esptool.exe -vv -cd nodemcu -cb 115200 -cp COM<dein_comport> -ca 0x00000 -cf ESPEasy_v2.0.0-dev12_normal_4096.bin
Bitte nicht vergessen in dem obigen Code den Comport einzusetzen. Das flashen kann bis zu einer Minute dauern.
Im Download-Paket z.B. von „ESPEasy_v2.0.0-dev12“ ist der GUI-Flasher FlashESP8266.exe enthalten. Diese Datei ausführen und dort nur den COM-Port und die passende Firmware-Datei auswählen und den Flash-Button drücken - fertig!
Der NodeMCU ist jetzt bereit und kann von einem WLAN fähigen Gerät als AccessPoint erkannt werden.
Also jetzt WLAN auf dem Notebook oder Handy einschalten und nach einer SSID Namens „ESP_0“ oder „ESP_easy_0“ suchen.
Wenn die SSID in der Liste erscheint mit dieser Verbinden. Das richtige Passwort zum verbinden lautet: „configesp“.
Die Verbindung wird aufgebaut und es sollte sich automatisch in deinem Standartbrowser ein Fenster öffnen.
Jetzt wählst du die SSID von deinem Heimnetzwerk aus und trägst das Passwort deines WLAN-Netzwerkes ein.
Mit dem klick auf „verbinden“ startet das ESP jetzt eine Verbindung mit deinem Netzwerk.
Jetzt läuft eine Zeit von 20 Sekunden auf 0 herunter. Am Ende solltest du jetzt die neue IP deines ESPs in deinem Netzwerk angezeigt bekommen. Du kannst jetzt die WLAN-Verbindung zu deinem ESP trennen und dich wieder mit deinem Heimnetzwerk verbinden. Dort kannst du dich jetzt mit der vorhin angeigten IP zu deinem ESP verbinden und es parametrieren.
Nachdem du nun deinen ESP im Netzwerk über den Browser aufgerufen hast, kannst du diesen über das Webinterface parametrieren. Nachfolgend werden nur die benötigten Einstellungen erwähnt.
Main Settings
Unit Name: Name deines ESP´s im Netzwerk
Unit Number: Wenn du mehrere ESP´s verwendest muss hier jedes ESP eine eigene Nummer haben!
Admin Password: Passwort um das Webinterface zu sperren
Wifi Settings
SSID: Name deines WLAN-Netzwerkes
WPA Key: Passwort deines WLAN-Netzwerkes
IP Settings
Solltest du statische IP-Adressen in deinem Netzwerk vergeben, so kannst duhier deinem ESP eine feste IP vergeben!
Bitte Controller Nr. 1 mit dem „Edit“ Button öffnen.
Controller Settings
Protocol: „Generic HTTP“ auswählen
Locate Controller: „Use IP adress“ auswählen
Controller IP: Bitte die IP deiner Volkszählerinstallation angeben
Controller Publish: middleware.php/data/%valname%.json?operation=add&value=%value% in das Feld eintragen
Enabled: Haken auf „true“ setzen
Bitte Device Nr. 1 mit dem „Edit“ Button öffnen.
Task Settings
Device: „Environment - DS18b20“ auswählen. Hier siehst du übrigens auch, welche Sensoren alle ausgelesen werden können!
Name: Beliebiger Name deines Temp.-Sensors, idealerweise z.B. die UUID deines Channels im VZ.
Enabled: Haken auf „true“ setzen
Sensor
1st GPIO: „GPIO-2 (D4)“ auswählen, weil wir den Temperatursensor in der Schaltung dort angeschlossen haben.
Device Address: Hier sollte nach dem ersten speichern die ID deines DS18B20 auswählbar sein!
Device Resolution: „12 Bit“ auswählen
Data Acquisition
Send to Controller ❶: Haken auf „true“ setzen
Delay: Hier stellst du ein, wie oft das ESP Temperaturwerte an deine VZ-Instalallation sendet.
Values
Name: hier muss die UUID deines Channels in deiner Volkszählerinstallation eingetragen werden. Bitte mit Bindestrichen!
Decimals: „3“ einstellen
Submit
!! Achtung es kommt in den neuen ESPeasy Version zu einer Fehlermeldung „Ungültige Zeichen“ diese kann ignoriert werden die UUID wird trotzdem verwendet
Solltest du alle Schritte richtig ausgeführt haben, kannst du nun über „Devices“ die gemessene Temperatur in einem grünen Feld angezeigt bekommen und die Werte sollten an deinen VZ übermittelt werden!
5V Netzteil = D1mini (Eigenversorgung)
5V Netzteil = s0 = D1mini= Pin D7 (ggf einen Spannungsteiler oder einen Pull-down Widerstand nutzen)
Laut Herstellerdatenblatt ist der ESP nicht für 5V freigegeben, aber in vielen Foren ist bereits bekannt das der ESP 5V mittelfristig ohne Schaden aushält an den GPIO Eingängen.
Bei der Eigenversorgung ist aber definitiv die 3V zu wählen ( der D1mini hat dafür eine 5V zu 3V Converter).
Im Frontend Kanal Anlegen Zählerstand und/oder S0.
Wie im oberen Beispiel unter „Devices“ ein neuen Sennsor anlegen „Generic - Pulse counter“
Häkchen bei Enable setzen
GPIO Festlegen = Bsp D7
Typ = Delta/Total
Debounce Time „Entprellzeit“ hier den wert des Zählerdefinierte s0 Impulsdauer minus einiger Millisekunde verwenden
Bsp: Orno 1 TE 45A Zähler mit 90ms = Debounce Time 85ms
falls der Wert nicht angeben ist die Norm fordert minimal 30ms
Mode Type =Rising
Send to Controller setzen
Intervall festlegen = minimal 1sek ( Bsp 30sek)
UUID für Delta = S0 Frontend
UUID für Total = Zählerstand Frontend
eintragen
SUBMIT