Alternative Firmware mit ESPHome

Nach den Bugs in der offiziellen Firmware habe ich mich entschieden den Gasleser stattdessen mit ESPHome zu flashen.

Hier die config für ESPHome, weiter unten eine kurze Anleitung auf deutsch:

wurde von Gemini 3.0 pro erzeugt und scheint zuverlässig zu funktionieren.

Kurzanleitung

1. Vorbereitung (Datei anpassen)

Kopiere den obigen Code. Ändere ganz oben im Bereich substitutions folgende Werte:

  • wifi_ssid & wifi_password: Deine WLAN-Daten.
  • api_key: Generiere einen Key (z.B. hier) und füge ihn ein. Das ist wichtig für die Verschlüsselung mit Home Assistant.
  • web_password: Ein Passwort deiner Wahl für den Browser-Zugriff.

2. MQTT aktivieren (Optional)

Wenn du kein Home Assistant nutzt und die Daten per MQTT an einen Broker (ioBroker, NodeRED, etc.) senden willst:

  • Trage deine Broker-IP bei mqtt_broker ein.
  • Entferne die # vor dem Block mqtt: (Zeile 47-52).

3. Installation (Flashen)

Achtung: Hierdurch wird die alte Firmware überschrieben, ihr könnt das nur rückgängig machen wenn ihr euch vorher ein Backup mit esptool erstellt.

Halte beim Einstecken des USB-Kabels den reset Pin gedrückt und lasse ihn erst nach ca. 2-3 Sekunden los, damit der Chip im Flash-Modus startet.

Wähle nun eine der folgenden Methoden:

  • Option A: Über den Browser (Einfachste Methode)
    1. Gehe auf web.esphome.io.
    2. Klicke auf Connect und wähle den COM-Port deines ESPs aus.
    3. Wähle Install und lade deine vorbereitete .yaml Datei hoch (oder kopiere den Inhalt in das Editor-Fenster, falls angeboten).
  • Option B: Über Home Assistant
    1. Installiere das offizielle ESPHome Add-on aus dem Home Assistant Add-on Store, falls noch nicht geschehen.
    2. Gehe in das Dashboard des Add-ons → + New Device.
    3. Wähle „Open ESPHome Web“ (wenn per USB am Server) oder bereite die Konfiguration vor und wähle „Install“ → „Plug into this computer“ (wenn am PC).
  • Option C: Fallback (Falls Web-Installer/Reset fehlschlägt) Sollte der Browser den Chip nicht erkennen oder der Upload hängen bleiben, nutze das Kommandozeilen-Tool esptool:
    1. Kompiliere die Firmware in ESPHome und wähle DownloadModern Format (.bin) (factory format).
    2. Installiere esptool auf deinem PC (meist via Python: pip install esptool).
    3. Flashe die Datei manuell über die Kommandozeile (ersetze COMX durch deinen Port):Bashesptool.py -p COMX write_flash 0x0 gasleser-factory.bin

4. Einrichtung

Sobald das Gerät geflasht ist und im WLAN hängt, kannst du es entweder über Homeassistant oder über den Browser konfigurieren.

Home Assistant:

  1. Falls noch nicht geschehen, Gerät über Einstellungen → Geräte und Dienste → Esphome hinzufügen
  2. Gerät „Gasleser“ öffnen
  3. Hier solltest du sowohl die Sensorwerte als auch die Eingabefelder finden um den Gesamtwert und Faktor festzulegen

Browser:

  1. Öffne deinen Browser und gehe auf http://gasleser.local (oder die IP-Adresse des ESPs).
  2. Logge dich ein (Benutzer: admin, Passwort: Das, was du oben bei web_password gesetzt hast).
  3. Du siehst nun die Sensor-Werte und zwei Eingabefelder für den Gesamtwert und den Impulsfaktor.

Das Gerät übernimmt den Wert sofort als Startpunkt für Gas Total und zählt ab dort weiter. Dank restore_value: true bleibt dieser Wert auch nach einem Stromausfall oder Neustart erhalten.

Änderungsvorschläge am besten direkt hier: GitHub - dominikandreas/Gasleser

1 Like

Update: der Binäre sensor war falsch konfiguriert, es fehlte inverted: true. Das führte dazu, dass manche Nulldurchgänge verpasst wurden. Das Script im Repo ist aktualisiert.

Interessanter Ansatz, werde ich mal testen.

Aber bitte die Gemini-erzeugte Anleitung korrigieren: Bei Option A (Browser-basierte Methode) muss man in Schritt 3 unbedingt eine Binary Datei (wie das in Option C - Schritt 3 in Modern Format) hochladen, und nicht die YAML Datei. Andernfalls versucht der ESP32 Prozessor die Textdatei ohne Programmcode zu starten.

Siehe auch: Frequently Asked Questions - ESPHome - Smart Home Made Simple

1 Like

Danke für den Hinweis! Dummerweise kann ich den Beitrag oben nicht mehr bearbeiten. Ich habe die Readme auf Github angepasst und eine Github action hinzugefügt um die firmware zu kompilieren und als release bereitzustellen.

Die kann man jetzt hier herunterladen und dann über https://web.esphome.io/ installieren:

So ganz ideall funktioniert es leider bei mir allerdings noch nicht. Der Sensor scheint ~10 Impulse pro Tag zu verpassen und hinkt entsprechend hinterher. Ich werde bei Gelegenheit mit ai-on-the-edge vergleichen und schauen wann genau das passiert um da eine Lösung zu finden.

Nach etwas Parameter Tuning scheint nun alles rund zu laufen, keine verpassten Impulse mehr.

Fazit nach ~zwei Wochen Dauereinsatz: Alles läuft wie es soll. Bin froh dass ich den Umstieg gewagt habe und nicht mehr abhängig von geschlossenen Firmwares und der Cloud bin. Firmware updates funktionieren hier auch einwandfrei :wink: