Skip to content

nischram/EMD_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

E3DC-Modbus-Display-1

Stand: V1.10 22.05.2024

Hier beschreibe ich, wie du die Daten eines S10 Hauskraftwerk von E3DC auf einem Display anzeigen kannst.

Es wird ein ESP32 und ein 2,8" Touch-Display verwendet.

Daten per Modbus vom E3DC-S10 Speicher abfragen
Daten vom S10 auf dem Display darstellen
Daten vom E3DC zur Homematic Hausautomation senden
Daten der E3DC Wallbox anzeigen
Wetterinformationen von "OpenWeatherMap"
Temperatursensor für Raumtemperatur
Update per SD-Karte
Update fia OTA

Display_E3DC

Diese Kombination bietet eine sehr gute Möglichkeit, um das S10 einfach und schnell mit einem eigenem Display zu überwachen.

Ich nutze diese Applikation auf einem ESP32, mit dem 2,8“ Touchdisplay. Auf das Material und die Installation gehe ich in dieser Anleitung ein. Die Applikation und Anleitung ist für ArduinoIDE erstellt.

Display

E3DC aktuelle Werte

menuLM

Auf dem Display kannst du dir die Aktuellen Werte deine S10 Hauskraftwerk anzeigen lassen.

E3DC_Aktuell

Die Werte werden je nach Einstellung z.B. im Sekunden-Rhythmus oder langsamer aktualisiert. Wenn OpenWeatherMap konfiguriert oder/und ein DHT Sensor verbaut wurden, dann werden diese Werte auf Schirm angezeigt.

Aktuell-DHT-Wetter

Um diese Ansicht der aktuellen Werte zu verlassen gibt es drei Touch-Bereiche:

Aktuell-Touch

Unten der Pfeil bringt dich ins Hauptmenü. Oben links direkt auf der Sonne geklickt, bringt dich in die Solar-Ansicht und wenn die Wetterdaten aktiv sind, kannst du auf dem Wettersymbol klicken und direkt zu den Wetterdaten wechseln. Wichtig zu wissen, die Modbusabfrage dauert fast die Sekunde bis zum nächsten Intervall und so muss der Touch ggf. über einen Abfrageintervall hinaus gedrückt werden.

Wetterdaten von OpenWeatherMap

Sym_Wetter

In einem weiterem Fenster bekommst du Wetterinformationen angezeigt. Hierfür ist es aber erforderlich, dass du dir einen Account bei [openweathermap.org](https://openweathermap.org) einrichtest. Mit diesem Zugang kannst du dir einen API-Key erstellen. Deine City-ID oder deine Geokoordinaten noch eintragen und dann bekommst du folgende Grafik auf dem Display:

Display_Wetter

Unten im Fenster ist ein Zähler für die Anzahl der Abfragen, der Monatlich zurückgesetzt wird.

Solarinformation vom Wechselrichter

menuPV

Mit einer Solaranzeige kannst du dir die zwei Tracker deines Wechselrichters anzeigen lassen.

Display_Solar

Update des Display

menuUpdate

Ein Menü habe ich erstellt mit man per SD-Karte den ESP32 updaten kann. Das Update per SD-Karte ist unten im Bereich [Update per SD-Karte](https://github.com/nischram/EMD_1#software) beschrieben.

Refresh Menü

menuRefresh

In einen Menü kannst du verschiedene Dinge neu starten: - den ESP32 - die W-LAN Verbindung - die Modbus Schnittstelle - die SD-Karte

Menü für Einstellungen

menuEinst

Ein Paar einstellungen kannst du vornehmen. - Display drehen damit ggf. der Temperatur-Sensor oder der PIR nach unten kommt - Sommer- Winterzeit - Bewegungsmelder aktivieren (schaltet den Bildschirmschoner aus) - Zeit bis der Bildschirmschoner startet - DHT11/22 anzeige auf Hauptschirm ein- ausblenden

Aufbau

Material

Als Kostengünstig und Einfach habe ich für mich das Display von AZ-Delivery entdeckt. Die neue Version dieses Sets wird jetzt mit einem 2,8" Display geliefert es kann aber auch als 2,4" bestellt werden, die ältere Version des Sets wurde nur mit einem 2,4" geliefert. Dieses Set kann mit einem ESP32 NodeMCU ausgestattet werden. Um den ESP32 herum, habe ich die Software aufgesetzt.

ESP32 einlöten

Ich habe mir den ESP32 "unverlötet" bestellt. So konnte ich die Stiftleiste nicht komplett eingeschoben verlöten. Hier im Foto zu sehen:
Stiftleiste
Die gelbe Abstandshalter habe ich dann nach dem einlöten an die Platine geschoben. Der Vorteil darin liegt im einstecken in den Pinheader auf der Haupt-Platine. Dieser Pinheader ist ein Header zum durchstecken und so wird für einen guten Kontakt etwas mehr Länge bei der Stiftleiste benötigt.

SD-Kartenleser anschließen

Die Display-Einheit hat im Standard einen SD-Kartenslot verbaut. Die Haupt-Platine wird aber ohne Anschlüsse für den SD-Kartenleser ausgeliefert. Der Kartenleser wird auch per SPI-Bus angesteuert. Um die SD-Karte zu nutzen habe ich auf der Hauptplatine einen zusätzlichen Pinheader eingelötet.
SD-Pinheader
Auf der Rückseite müssen dann einige Adern verlegt werden.
SD-Verdrahtung
Hier en Foto mit Beschreibung der Pinbelegung:
SD-Pinbelegung

PIR Sensor verbauen

Es kann ein PIR Sensor angeschlossen werden, dieser beendet dann den Bildschirmschoner. Ich verwende einen AMR312 PIR Bewegungsmelder. Für diesen muss ein Loch in den Gehäusedeckel bohren, bei meinem Sensor ein 9mm Loch.
Gehäuse_Loch
Ich habe den PIR-Sensor in der Platine nur angesetzt, alles im Gehäuse montiert und dann erst auf der Gegenseite verlötet. So sitzt dann der Sensor in der Platine:
PIR-Montage
Die Verdrahtung habe ich wieder mit verlacktem Kupferdraht gemacht.
PIR-Verdrahtung
Folgende Pinbelegung habe ich verwendet:
PIR-Pinbelegung

DHT Temperatursensor

Es kann entweder ein DHT11 oder ein DHT22 Temperatur und Luftfeuchtigkeits-Sensor verbaut werden. Ich habe einen DHT11 eingebaut, damit dieser möglichst Nahe an den Öffnungen im Gehäuse sitzt habe ich diese Schräg eingesetzt.
DHT-Montage
PIR-DHT-Montage
Hier wieder Verdrahtung und die Pinbelegung dazu:
DHT-Verdrahtung
DHT-Pinbelegung
Das Geschlossene Gehäuse mit PIR im Loch und DHT-Sensor hinter der Öffnung:
PIR-DHT-Gehäuse

Einrichtung

Arduine-IDE

Meine Software muss auf den ESP32 installiert werden. Die Software Arduino-IDE ist hierfür geeignet. Die Einrichtung der Software und die Verbindung zum ESP32 erkläre ich nicht näher, denn auch zum ESP gibt es ein eBook mit wichtigen Informationen: eBook ESP32 NodeMCU
Sollte es trotzdem Probleme oder Fragen geben, helfe ich gerne wenn du einen Issue erstellst.

Parameter für ESP32

Wichtig sind die Einstellungen für den ESP32. Mein Program ist durch die Grafiken recht umfangreich geworden, so weichen meine Einstellungen vom Standard ab. Wichtig ist folgender Parameter:

Partition Scheme: "Minimal SPIFFS (1,9MB App with OTA/190KB SPIFFS)"

Hier noch ein Screenshot von meinen Einstellungen:
image

Library

Es müssen für die Software einige Libraries installiert werden, in der Bibliothek-Verwaltung kann man diese suchen und installieren. Folgende sind erforderlich:

  • XPT2046_Touchscreen
  • Adafruit_GFX
  • Adafruit_ILI9341
  • modbus-esp8266
  • ArduinoOTA
  • Time
  • Adafruit_BusIO
  • DHT sensors library
  • OpenWeatherOneCall
  • ArduinoJson

Parameter der Software

Im Code / Download stelle ich für die Parameter eine Datei zur Verfügung die als Grundlage dient. Die Datei parameter_temp.h musst du umbenennen nach parameter.h. Durch das umbenennen der Datei wir bei einem Update nicht versehentlich deine Einstellung überschrieben. Wenn du jetzt die Software mit Arduino-IDE öffnest, kannst du in der parameter.h deine Einstellung vornehmen.

Modbus

Die Funktion Modbus musst du einmalig am Display deines Speichers aktivieren. In der parameter.h musst du dann die IP-Adresse deines Speichers eintragen.

W-LAN Zugangsdaten

In der parameter.h müssen auch die Zugangsdaten für W-LAN eingetragen werden. Ich habe drei mögliche Zugangspunkte vorbereitet, so kann das Display an verschiedenen W-LAN Zugangspunkten betrieben werden. Aber wichtig ist, dass die W-LAN-Zugangspunkte alle Verbindung zum Speicher haben.

Homematic

Wie auch schon von anderer Software von mir bekannt, ist es auch mit dieser Software möglich die aktuellen Werte des Speichers zur Homematic zu senden. Es sind die jeweiligen ISE-ID der Systemvariablen nötig und müssen in der parameter.h eingetragen werden.

Weitere Einstellungen

Es gibt noch einige weitere Einstellungen die möglich sind, aber zum größten Teil sollte der eingetragene default Wert funktionieren.
Folgendes ist möglich:

Definition Beschreibung
PIR_PIN für den Bewegungsmelder der den Bildschirmschoner abschaltet.
DHT_PIN für DHT11/22 Temperatur-Sensor.
DHT_TYPE als Auswahl für DHT11 oder DHT22.
NTP_SERVER_1 Parameter für den Zeitserver der Abgefragt wird um die Uhrzeit anzuzeigen.
OTA_HOSTNAME Name für den ESP32 damit man diesen OverTheAir updaten kann.
WEATHER_KEY und weitere Einstellungen für die Wetteranzeige.
SERIALSPEED Einstellung für die Geschwindigkeit der Serialen Schnittstelle.

Software

Projekt

Die Software und das Projekt hat viele parallelen zu meinem anderen Projekt: nischram/E3dcGui

Update fia Arduino-IDE

Das Update mit der Software Arduino-IDE ist der Standard, hierfür muss aber eine USB-Verbindung mit dem ESP32 geschaffen werden. Bei der ersten Installation muss dieser Weg genommen werden.

Update per SD-Karte

Eine weitere Möglichkeit, ist das Update per SD-Karte. Hierzu musst du in der Software Arduino-IDE den Sketch nur als Binärdatei kompilieren. Die Binärdatei muss umbenannt werden in EMD_1.bin, diese Datei muss auf einer SD-Karte in einem Ordner update gespeichert werden. Wenn Update-Menü die SD-Karte erkannt und die Datei gefunden wurde, kann das Update mit dem Bestätigungs-Button gestartet werden. Nach dem Update startet der ESP32 neu.

Update fia OTA

Die Einfachste Option für ein Update ist die Over-The-Air Variante. In der Arduino-IDE wird dann der ESP32 mit dem OTA-Namen angezeigt. Für die OTA-Funktion muss zuvor der Computer vorbereitet werden. Hier ein schöner Beitrag zum OTA - Over the Air - ESP Programmieren.
Wenn alles Vorbereitet ist in der Arduino-IDE die richtige Einstellung für den ESP32 gesetzt sind, kann der Upload beginnen. Sobald die Verbindung aufgebaut ist, erscheint auf dem Display die eine Anzeige mit dem Fortschritt.
OTA-Update

Versionen

V1.10 22.05.2024 Issue #8 + Issue #9 + Probleme nach Bildschirmschoner

  • Hinweis auf ArduinoIDE weil PlattformIO nicht unterstützt wird
  • Nach Bildschirmschoner kam zum Teil W-LAN oder Modbus nicht wieder

V1.09 01.05.2023 Issue #7 Absturz durch unterschiedliche excludes in der Wetterdarstellung

  • Issue #7 excludes in der weatherGui für "Aktuell" und "Wetter" gleich gesetzt
  • Darstellung der Ausgaben angepasst

V1.08 23.03.2023 Issue #6, Issue #7 + Diverse kleine Anpassungen

  • Issue #6 bei fehlender Verbindung endlosschleife
  • Issue #7 Abbruch der Anzeige wenn OpenWeather einen Fehler zurückgibt
  • Anpssung in der Wallboxdarstellung Verriegelung etc. wurde falsch angezeigt
  • Wallbox Solarstrom es wurde der letzte Wert nicht ausgeblendet
  • Darstellung der Ausgaben angepasst

V1.07 02.01.2023 Fehler bei Verwendung "#define EXT_LM_USE" behoben

  • Fehler in modbus.h bei Verwendung "#define EXT_LM_USE" behoben

V1.06 15.04.2022 Issue #5 Nachtrag übernommen

  • Issue #5 Nachtrag für die Initialisierung der DoubleRegister übernommen

V1.05 13.04.2022 Issue #5 Vorschlag übernommen

  • Issue #5 Vorschlag für die Nutzung der DoubleRegister übernommen
  • Anpassung im ModbusTimeout, dieser hat zu lange gedauert

V1.04 12.04.2022 Issue #5 Fehler in der Darstellung der Doppelregister

  • Issue #5 Doppelregister nochmal umgebaut
  • Softwareversion umgezogen von parameter.h (parameter.temp.h) nach EMD_1.ino
  • Fehler für Warnung in der update.h behoben

V1.03 08.04.2022 Issue #5 Modbus-Port wird in der neuen Version von "modbus-esp8266" anders benannt

  • Issue #5 "MODBUSIP_PORT" geändert in "MODBUSTCP_PORT"

V1.02 08.04.2022 Issue #5 Änderung der Modbusabfragen für Doppelregister

  • Issue #5 Doppelregister werden jetzt ohne delay abgefragt
  • Kleine Anpassungen um Warnungen beim kompilieren zu vermeiden
  • Fehlerbehebung in der Darstellung im Homescreen nach dem Screensaver

V1.01 05.08.2021 Issue #3 Anpassung der Schriftgröße

  • Issue #3 Neue Schriftart und Anpassungen für die Schrift

V1.00 12.06.2021 Repository neu erstellt

  • erster Upload der Daten und der Anleitung

About

E3DC-Modbus-Display-1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published