# ESP8266 LCD Energymeter

Ein Projekt zur Visualisierung von Energiedaten von **Tasmota-Messgeräten** mit einem **ESP8266** und einem 1602 LCD.  
Das Script fragt periodisch zwei Tasmota-Geräte nach ihrer gemessenen Leistung und zeigt diese auf dem Display an.  
Ein einfacher Energie-Monitor.

<img src="https://git.gofel.net/Thorsten/esp8266_lcd_energymeter/raw/branch/master/images/image_1.jpg" alt="Projektbild" width="300">

## Funktionen
- **Taster** zum Ändern der der Anzeigemodi

- **Anzeige des Netzbezugs** (gemessen am Stromzähler)
- **Anzeige der Erzeugung** (gemessen am Balkonkraftwerk)

- **Anzeige von 1.8.0** (gemessen am Stromzähler)

- **Anzeige von 1.8.1** (gemessen am Stromzähler)

- **Anzeige von 1.8.2** (gemessen am Stromzähler)

- **Anzeige von 2.8.0** (gemessen am Stromzähler)


## Konfiguration

Passe die `settings.h` auf deine Bedürfnisse an
```cpp
// ######################## WLAN-Daten ########################

const char* hostname = "ESP8266_Energiemeter";

const char* ssidList[] = {
  "SSID_1",     // Netzwerk 1
  "SSID_2",     // Netzwerk 2
  "SSID_3"      // Netzwerk 3
  // Weitere SSID hier hinzufügen
};

const char* passwordList[] = {
  "Passwort_1",  // Passwort für SSID 1
  "Passwort_2",  // Passwort für SSID 2
  "Passwort_3"   // Passwort für SSID 3
  // Weitere Passwörter hier hinzufügen
};

// ################## Tasmota Einstellungen ###################

// Zwischenstecker am Balkonkraftwerk
String tasmota_plug_ip = "192.168.178.222";
String tasmota_plug_json_prefix_power = "Power";

// SmartMeterReader
String tasmota_smr_ip = "192.168.178.236";
String tasmota_smr_json_prefix_power = "Power";
String tasmota_smr_json_prefix_1_8_0 = "E_in_180";
String tasmota_smr_json_prefix_1_8_1 = "E_in_181";
String tasmota_smr_json_prefix_1_8_2 = "E_in_182";
String tasmota_smr_json_prefix_2_8_0 = "E_in_280";

// Anzahl Nachkommastellen bei den ausgelesenen Tasmota Werten
// -1 = Alle / 0 = Keine / 2 = 2 Nachkommastellen
int tasmota_decimalplaces = 2;

// ################# Allgemeine Einstellungen #################

// Aktualisierungsrate im Bildschirm aktuelle Leistung (in Millisekunden)
unsigned long refreshrate_power = 2500;

// Aktualisierungsrate in den Bildschirmen der Verbrauchsdaten (in Millisekunden)
unsigned long refreshrate_consumption = 15000;


// ############################################################
```




## Schaltplan

<img src="https://git.gofel.net/Thorsten/esp8266_lcd_energymeter/raw/branch/master/images/image_2.png" alt="Schaltplan" width="600">

#### Hinweise:
- Der **MT3608** (Step-Up-Wandler) ist optional. Er sorgt für eine stabile Spannung von 5V für das LCD, selbst wenn die Batterie schwächer wird.
- Der **ESP8266** muss nicht zwingend hinter dem MT3608 geschaltet sein, da er weniger empfindlich auf Spannungsschwankungen reagiert als das Display.