# 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 ###################

// ===================== Energiemessung =======================


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

// SmartMeterReader
String tasmota_smr_ip = "192.168.178.236";
String tasmota_smr_json_prefix_power = "Power";


// ================== Register-Einstellungen ==================

// ------------- 1.8.0 -------------
// Überschrift im Display, wenn das 1.8.0 Register angezeigt wird (LCD Display Zeile 1)
String tasmota_smr_json_prefix_1_8_0_lcd_text = "1.8.0 (HT+NT):";
// Tasmota Script JSON Prefix für das 1.8.0 Register (Wert in Zeile 2)
String tasmota_smr_json_prefix_1_8_0 = "E_in_180";

// ------------- 1.8.1 -------------
// Überschrift im Display, wenn das 1.8.1 Register angezeigt wird (LCD Display Zeile 1)
String tasmota_smr_json_prefix_1_8_1_lcd_text = "1.8.1 (HT):";
// Tasmota Script JSON Prefix für das 1.8.1 Register (Wert in Zeile 2)
String tasmota_smr_json_prefix_1_8_1 = "E_in_181";

// ------------- 1.8.2 -------------
// Überschrift im Display, wenn das 1.8.2 Register angezeigt wird (LCD Display Zeile 1)
String tasmota_smr_json_prefix_1_8_2_lcd_text = "1.8.2 (NT):";
// Tasmota Script JSON Prefix für das 1.8.2 Register (Wert in Zeile 2)
String tasmota_smr_json_prefix_1_8_2 = "E_in_182";

// ------------- 2.8.0 -------------

// Überschrift im Display, wenn das 2.8.0 Register angezeigt wird (LCD Display Zeile 1)
String tasmota_smr_json_prefix_2_8_0_lcd_text = "2.8.0 (Einsp.):";
// Tasmota Script JSON Prefix für das 2.8.0 Register (Wert in Zeile 2)
String tasmota_smr_json_prefix_2_8_0 = "E_out_280";


// ------- Nachkommastellen --------
// 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 = 3000;

// 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.