CO2- und TVOC-Sensor mit OLED-Display – Tutorial: Smarthome-Integration via ESPHome / MQTT

Die Dokumentation zum NEOE-IoT-Kit-1 umfasst folgende Seiten:

Home Assistant Grundeinrichtung

Aufgrund ihrer Einfachheit und der umfassenden Integrationsmöglichkeiten basiert unsere Referenzimplementierung auf Home Assistant.

Zur Grundeinrichtung von Home Assistant siehe: https://www.home-assistant.io/getting-started/.

ESPHome

Automatische Einrichtung

Über folgenden Link kann die bereits vorbereitete Firmware einfach über USB aus dem Browser installiert werden: https://neoe-io.github.io/eco2-sensor-mit-oled-display/

Alternativ: manuelle Einrichtung

Grundeinrichtung von ESPHome

Zur Grundeinrichtung von ESPHome befolgen wir die auf https://esphome.io/ verfügbare "getting started" Anleitung. Diese ist in zwei Varianten verfügbar:

  • From Home Assistant
    Diese Variante der Anleitung erklärt die Einrichtung von ESPHome mit Home Assistant. Wir empfehlen diese Variante aufgrund ihrer Einfachheit und der umfassenden Integration mit Home Assistant.
  • Using the command line
    Diese Variante der Anleitung erklärt die Einrichtung von ESPHome "standalone". Diese Variante ist erforderlich, wenn ESPHome mit anderen Smarthome-Systemen via MQTT verbunden werden soll.

Schrift hochladen

ESPHome bietet die Möglichkeit TrueType Schriften bei der Anzeige auf OLED-Displays zu verwenden. Wir haben hier die frei verfügbare Schriftart OpenSans ausgewählt. Wir laden zunächst den Font OpenSans-Regular.ttf in den Ordner von ESPHome hoch.

+ New Device

Im ESPHome Dashboard klicken wir rechts unten auf "+ New Device" und hinterlegen im darauffolgenden Wizzard folgende Informationen:

  • Name: moodlight
  • Device type: pick specific board -> Wemos D1 and Wemos D1 mini

Anschließend klicken wir auf "install" und wählen die von uns favorisierte Installationsart. 

YAML-Datei ergänzen

Die generierte YAML-Datei ergänzen wir am Ende nun um folgende Zeilen:

i2c:

sensor:
  - platform: sgp30
    eco2:
      id: eco2
      name: "eCO2 Wohnzimmer"
      accuracy_decimals: 0
      filters:
      - sliding_window_moving_average:
          window_size: 60
          send_every: 60
    tvoc:
      id: tvoc
      name: "TVOC Wohnzimmer"
      accuracy_decimals: 0
      filters:
      - sliding_window_moving_average:
          window_size: 60
          send_every: 60
    store_baseline: yes
    update_interval: 1s

font:
  - file: 'OpenSans-Regular.ttf'
    id: font1
    size: 12
  - file: 'OpenSans-Regular.ttf'
    id: font2
    size: 36

display:
  - platform: ssd1306_i2c
    model: "SH1106 128x64"
    lambda: |-
      if (id(eco2).has_state()) {
        it.print(64, 0, id(font1), TextAlign::TOP_CENTER , "eCO2 (ppm)");
        it.printf(64, 64, id(font2), TextAlign::BOTTOM_CENTER , "%.0f", id(eco2).state);
      }

Anschließend klicken wir auf "safe" und erneut auf "install", um die ergänzte Konfiguration hochzuladen.

Home Assistant

Nachdem die Konfiguration nun via ESPHome installiert ist, wird unser eCO2-Sensor automatisch von Home Assistant erkannt und über die Meldung "New devices discovered" zur Einrichtung angeboten.

Danach bearbeiten wir das gewünschte Lovelace-Dashboard und suchen nach dem Sensor und fügen ihn hinzu.

Die Sensordaten können in den Home Assistant Dashboards auf unterschiedliche Art und Weise angezeigt werden. Siehe folgendes Beispiel:

Gauge Card:

 

Klickt man auf die jeweilige Card, so wird ein Verlauf angezeigt:

Andere Smarthome-Systeme

Es gibt eine Vielzahl spannender Smarthome-Systeme, welche eine MQTT-Anbindung via ESPHome unterstützen. Allerdings würde eine Beschreibung für jedes MQTT-kompatible Smarthome-System den Rahmen dieses Tutorials sprengen. Daher haben wir uns bewusst auf das Beispiel mit Home Assistant konzentriert, da hier die Integration mit ESPHome besonders einfach und umfassend ist. Für Details zu anderen Smarthome-Systemen verweisen wir auf die Websites und Internetforen der jeweiligen Anbieter

     

     

    Disclaimer - alle Angaben ohne Gewähr:

    Die in diesem Tutorial (Beitrag) enthaltenen Informationen wurden nach bestem Wissen und Gewissen recherchiert und zusammengetragen. Jedoch können auch uns Fehler passieren. Und genauso kann bei der Umsetzung des Tutorials etwas schief gehen oder können Inhalte missverstanden werden. Für eventuelle Schäden durch das Befolgen dieses Tutorials können wir daher keine Haftung übernehmen. Wir entwickeln unsere Tutorials laufen weiter. Sollte etwas unstimmig oder unklar sein, bitte Bescheid geben, damit wir den betroffenen Punkt korrigieren oder ergänzen können. Vielen Dank.

    Zurück zum Blog

    Hinterlasse einen Kommentar

    Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.