Energieerfassung mit MQTT: So überträgst du deine Zählerdaten

Bei der Energieerfassung per MQTT liest ein kleines Gerät (z. B. ein Raspberry Pi) deine Zähler oder Wechselrichter aus und schickt die Messwerte als MQTT-Nachrichten an einen zentralen Broker. Von dort landen sie in einer Datenbank und lassen sich in Echtzeit auswerten – ohne dass jedes Messgerät selbst ins Internet muss.
MQTT ist ein leichtgewichtiges Publish-/Subscribe-Protokoll. Dein Erfassungsgerät (Publisher) veröffentlicht Messwerte unter einem Thema (Topic), z. B. loxone/504F94A32B89/ oder moormann/bhkw/1/json. Ein Empfänger, der dieses Topic abonniert (Subscriber), bekommt jeden neuen Wert automatisch zugestellt. So trennst du die Datenerfassung sauber von der Auswertung: viele Sensoren senden, ein zentraler Dienst hört zu.

1. Auslesen: Ein Edge-Gerät liest den Zähler/Wechselrichter (z. B. Eastron oder Janitza via Modbus). 2. Publizieren: Es sendet die Werte per MQTT an den Broker. 3. Brücke: Ein Bridge-Dienst abonniert die Topics und schreibt die Daten in die Datenbank. 4. Auswerten: Aus der Datenbank (z. B. ClickHouse) speist du Dashboards und Analysen. Häufig läuft parallel eine lokale Datenbank (InfluxDB) auf dem Gerät als Puffer, falls die Verbindung ausfällt.

Der MQTT-Broker ist die Vermittlungsstelle. In der Praxis läuft er oft auf Port 1883 (unverschlüsselt, nur im lokalen Netz sinnvoll) oder auf Port 1884 mit Benutzer und Passwort. Jeder Standort bekommt einen eigenen MQTT-User, damit Daten getrennt bleiben. In der Gerätekonfiguration trägst du Broker-Adresse, Port, User und das Topic-Präfix ein – ändert sich das Topic, muss auch der abonnierende Dienst mitgezogen werden.

Ein gutes Topic-Schema macht die spätere Auswertung leicht. Bewährt hat sich ein hierarchischer Aufbau nach Standort/Anlagentyp/Gerät, etwa moormann/bhkw/*/json oder moormann/shelly/*/json. Der Bridge-Dienst kann dann mit Wildcards (*) ganze Gerätegruppen auf einmal abonnieren. Sende die Nutzdaten am besten als JSON-Objekt – so überträgst du mehrere Messwerte pro Nachricht strukturiert.

Anbinden lässt sich alles, was einen Messwert liefert: Wechselrichter und Energiezähler (z. B. Eastron, KACO) über Modbus, Netzanalysatoren (Janitza UMG), Shelly-Sensoren oder ein Loxone Miniserver mit aktiviertem MQTT-Ausgang. Sobald der MQTT-Ausgang am Gerät konfiguriert ist, tauchen die Felder automatisch beim nächsten Erfassungslauf auf – du musst die Datenbank nicht manuell anlegen.
Fällt die Verbindung zum Broker aus, gehen ungepufferte Werte verloren. Deshalb schreiben viele Edge-Geräte parallel in eine lokale, rotierende InfluxDB und senden zusätzlich per MQTT nach außen. Steuerbefehle (etwa das Abregeln eines Wechselrichters) werden lokal protokolliert und erst nach einer MQTT-Bestätigung (ACK) als ausgeführt verbucht – so bleibt nachvollziehbar, was wirklich beim Gerät angekommen ist.