✅ 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
- ✅ BitShake SmartMeterReader (ESP32-C3 mit USB-C)
- ✅ USB-C-Kabel
- ✅ Home Assistant (empfohlen)
- ✅ ESPHome Dashboard (z. B. als Add-on in Home Assistant)
- ✅ ESPHome-Flasher
🔄 1. Aktuelle Tasmota-Konfiguration sichern
Falls du noch Tasmota nutzt:
- Rufe die Weboberfläche deines BitShake auf.
- Gehe zu Konfiguration → Konfiguration sichern
- 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
- ESPHome-Firmware kompilieren
- Home Assistant → ESPHome → Gerät bearbeiten → „Installieren“
- Wähle: Manuell → Legacy Format (.bin)
- Speichere die Datei (z. B.
stromzahler.bin
)
- Gerät in Flash-Modus versetzen
- Halte die BOOT-Taste gedrückt
- Stecke das USB-C-Kabel an deinen Computer
- Nach wenigen Sekunden loslassen
- 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“
- 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:
- Ö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
- Gehe zu Einstellungen → Energie
- Wähle:
Gesamtverbrauch
→ als StrombezugEingespeist
→ als Rückspeisung
- 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.