Vom BitShake Tasmota zum ESPHome – Landis+Gyr E220 erfolgreich auslesen (Anleitung)

AZDelivery 3 x 1,8 Zoll SPI TFT Display ST7735 mit 128 x 160 Pixeln kompatibel mit Arduino und Raspberry Pi inklusive E-Book!
AZDelivery 3 x 1,8 Zoll SPI TFT Display ST7735 mit 128 x 160 Pixeln kompatibel mit Arduino und Raspberry Pi inklusive E-Book!
16,99 €

✅ Einleitung

In dieser Anleitung zeige ich dir Schritt für Schritt, wie du deinen BitShake SmartMeterReader (ESP32-C3) mit vorinstallierter Tasmota-Firmware erfolgreich auf ESPHome umstellst, um deinen Landis+Gyr E220 Stromzähler via SML-Protokoll auszulesen – inkl. Integration in Home Assistant.

Diese Anleitung ist für dich geeignet, wenn:

  • du den BitShake IR-Kopf verwendest (z. B. SmartMeterReader Air),
  • dein Zähler das SML-Protokoll spricht (wie der Landis+Gyr E220),
  • du von Tasmota auf ESPHome wechseln willst.

🧰 Was du brauchst


🔄 1. Aktuelle Tasmota-Konfiguration sichern

Falls du noch Tasmota nutzt:

  1. Rufe die Weboberfläche deines BitShake auf.
  2. Gehe zu Konfiguration → Konfiguration sichern
  3. Speichere das Backup lokal

Deine Tasmota-Konfiguration sieht typischerweise so aus:

{"NAME":"ESP32","GPIO":[0,0,0,0,1,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18}

💡 Wichtig: Der IR-Empfänger ist bei BitShake standardmäßig an GPIO5 angeschlossen!


🔌 2. ESPHome per USB-C mit ESPHome-Flasher flashen

Da OTA-Updates auf dem ESP32-C3 oft instabil sind und der Flashspeicher knapp ist, empfehlen wir den einmaligen USB-Flash mit dem ESPHome-Flasher – sicher, einfach, schnell.

📦 Voraussetzungen

  • Ein einfaches USB-C-Kabel
  • Zugriff auf die BOOT-Taste am BitShake-Gerät
  • ESPHome-Flasher für Windows/macOS/Linux

🛠 Schritt-für-Schritt Anleitung

  1. ESPHome-Firmware kompilieren
    • Home Assistant → ESPHome → Gerät bearbeiten → „Installieren“
    • Wähle: Manuell → Legacy Format (.bin)
    • Speichere die Datei (z. B. stromzahler.bin)
  2. Gerät in Flash-Modus versetzen
    • Halte die BOOT-Taste gedrückt
    • Stecke das USB-C-Kabel an deinen Computer
    • Nach wenigen Sekunden loslassen
  3. ESPHome-Flasher starten
    • Öffne das Tool
    • Wähle den angezeigten Port (z. B. COM4 oder /dev/ttyUSB0)
    • Wähle die .bin-Datei
    • Klicke auf „Flash ESP“
  4. Verbindung erfolgreich
    • Nach dem Neustart erscheint das Gerät in Home Assistant → ESPHome

⚙️ 3. ESPHome YAML-Konfiguration für Landis+Gyr E220

Hier die vollständige Konfiguration für deinen BitShake SmartMeterReader + E220 Zähler:

esphome:
name: stromzahler
friendly_name: Stromzähler

esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf

logger:
level: INFO
logs:
sml: DEBUG

api:

ota:

wifi:
ssid: "DEIN_SSID"
password: "DEIN_PASSWORT"
manual_ip:
static_ip: 192.168.178.128
gateway: 192.168.178.1
subnet: 255.255.255.0

ap:
ssid: "Stromzähler Setup"
password: "setup1234"

captive_portal:

uart:
id: uart_bus
rx_pin: GPIO5 # BitShake verwendet GPIO5
baud_rate: 9600

sml:
id: mysml
uart_id: uart_bus

sensor:
- platform: sml
name: "Gesamtverbrauch"
icon: mdi:meter-electric
sml_id: mysml
obis_code: "1-0:1.8.0"
server_id: "0a014c475a0004e7b605"
unit_of_measurement: kWh
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001

- platform: sml
name: "Eingespeist"
icon: mdi:meter-electric
sml_id: mysml
obis_code: "1-0:2.8.0"
server_id: "0a014c475a0004e7b605"
unit_of_measurement: kWh
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001

- platform: sml
name: "Leistung aktuell"
sml_id: mysml
obis_code: "1-0:16.7.0"
server_id: "0a014c475a0004e7b605"
unit_of_measurement: W
accuracy_decimals: 0
device_class: power
state_class: measurement

- platform: internal_temperature
name: "ESP Temperatur"

- platform: wifi_signal
name: "WLAN Signal"
update_interval: 60s

- platform: uptime
name: "Betriebszeit"

text_sensor:
- platform: sml
name: "Zählernummer"
sml_id: mysml
obis_code: "1-0:96.1.0"
format: hex

binary_sensor:
- platform: gpio
pin: GPIO9
name: "SmartMeter Taste"
device_class: power
on_press:
- logger.log: "Button wurde gedrückt – Neustart"
- delay: 2s
- button.press: restart_button

button:
- platform: restart
name: "Neustart"
id: restart_button

🧪 4. Live-Daten prüfen

Nach dem Flash:

  1. Öffne die Logs des Projekts im ESPHome Addon oder öffne das Projekt im Browser: http://stromzahler.local oder IP
[D][sensor:104]: 'Gesamtverbrauch': Sending state 51.16360 kWh
[D][sensor:104]: 'Eingespeist': Sending state 12.34560 kWh
[D][sml:084]: (0a014c475a0004e7b605) 1-0:96.1.0

Falls du keine Daten siehst: Zähler prüfen, IR-Kopf sitzt fest? Warte bis zu 1 Minute.


🏠 5. Integration in Home Assistant Energy Dashboard

  1. Gehe zu Einstellungen → Energie
  2. Wähle:
    • Gesamtverbrauch → als Strombezug
    • Eingespeist → als Rückspeisung
  3. Fertig – das Gerät ist eingebunden! 🎉

🧠 FAQ

Warum sehe ich bei der Zählernummer ein 0x davor?
→ Das liegt an format: hex. Wenn du das 0x entfernen willst, nutze einen zusätzlichen template-Textsensor.

OTA funktioniert nicht?
→ Kompiliere eine kleinere Firmware (ohne Webserver), oder verwende erneut den USB-Flash.

Der Zähler liefert keine Daten?
→ Prüfe:

  • Ist GPIO5 korrekt eingestellt?
  • IR-Kopf sauber auf dem Zählerkopf?
  • SML-Protokoll aktiv (beim E220 standardmäßig vorhanden)?

✅ Fazit

Mit dieser Anleitung kannst du deinen BitShake SmartMeterReader Air schnell und zuverlässig von Tasmota auf ESPHome umstellen – und den Landis+Gyr E220 vollständig in Home Assistant integrieren.