Einleitung:

Um meinen Stromzähler mit MODBUS RS485 Ausgang in mein Homeassistant integrieren zu können, habe ich mich nach einigen Überlegungen für die Integration via MQTT entschienden.
Im folgenden kurz Beitrag möchte ich exemplarisch zeigen, wie man in Homeassistant MQTT Sensoren integrieren kann. Die Automatic Discovery function von Homeassistant nutze ich dabei bewusst noch nicht, ein entsprechender Beitrag wird nachgereicht.

Vorbereitungen

Zuerst muss natürlich sichergestellt sein, dass die Daten am MQTT Broker verfügbar sind, dementsprechend wurde zuerst geprüft, dass der ESP8266 mit meinem Home Broker verbunden ist.

Inhalt des Webdashboard auf dem ESP8266 mit ESPOS
Webinterface meines ESP8266 base OS – MQTT ist auf connected gesetzt und kann damit senden. (Link zum Basis OS: https://github.com/j54j6/ESPBase)

In Homeassistant muss zudem das MQTT Addon installiert und konfiguriert sein. Da ich diesen Blog nicht als Abfallgrube missbrauchen möchte, erkläre ich hier nicht, wie dieses Addon installiert werden kann, da dies zuhauf bei Google erklärt wird

– Grundsätzlich erklärt die Homeassistant Doku den Spaß sehr gut. https://www.home-assistant.io/integrations/mqtt/

Anpassen der config.yaml

Sobald Homeassistant und Broker bereit sind, können wir uns an die Config Datei machen und editieren die config.yaml.
Wenn noch nicht geschehen fügen wir den Punkt “sensor” hinzu und machen dann folgendes:

sensor:
  - platform: mqtt
    name: "mainEnergyMeterTotalConsumptionForwardKwh" #Name im frontend
    unique_id: sensor.mainenergymeter_total_forward_consumption_kwh_new #unique ID um Einstellungen im Frontend anpassen zu können.
    state_topic: mainPowerMeter/forwardenergy/counted/total #Broker Path um die Daten zu Empfangen
    unit_of_measurement: "kWh" #Zahleneinheit - in meinem Fall (Stromzaehler) kWh.

Zum Abschluss muss Homeassistant neugestartet werden (Developer Tools -> YAML -> Check Configuration -> (Wenn Config korrekt) -> Restart

Danach kann der Sensor unter Settings -> Devices -> Entities gefunden werden.