Energieverbrauch messen mit Modbus, MKR WiFi 1010 & RS485
Komponenten und Materialien
- 1× Arduino MKR WiFi 1010
- 1× Arduino MKR 485 Shield
- 1× USB-A auf Micro-USB Kabel
- 1× USB-Netzteil (7–24 V, MKR485 hat Buck-Converter)
- 1× Verdrilltes Einzelleiter-Kabel mit Schirm (Telefonkabel-Typ)
Werkzeuge
- Digitalmultimeter (z. B. Mastech MS8217)
- Elektriker-Schere
- Kleiner Schlitzschraubendreher (MKR485 Klemmen)
- Kreuzschraubendreher (mittel)
Software & Dienste
- Home Assistant
- Arduino Web Editor (oder Arduino IDE)
- MQTT-Broker
Über das Projekt
Smart Home beginnt bei den monatlichen Kosten (Strom, Gas). Open-Source-Hardware ermöglicht nachhaltige, herstellerunabhängige Lösungen. Dieses Projekt liest einen Finder Energiemesser (DIN-Schiene, RS485 Modbus) per MKR WiFi 1010 + MKR485 Shield aus und publiziert Daten via MQTT – einfach in Home Assistant integrierbar.
Übersicht
Der Finder-Zähler hat RS485-Modbus-Schnittstelle – Industriestandard. Arduino bietet offizielles MKR485-Shield und Modbus-Bibliotheken. MKR WiFi 1010 liefert WLAN im gleichen Formfaktor.
Installation (⚠️ Lebensgefahr – Elektriker hinzuziehen!)
- Strom abschalten (Hauptschalter), spannungsfrei prüfen (Multimeter)
- Finder-Zähler in Verteilerkasten einbauen: L/N vom Hauptschalter → Zähler-Eingang (Farben beachten: Blau=N, Braun/Schwarz/Grau=L), Ausgang → Weiterleitung
- RS485-Verkabelung: A, B, COM am Zähler. MKR485 Shield nutzt Half-Duplex auf Y/Z → Kabel an Y/Z + COM an ISOGND
- MKR485 DIP-Schalter: HALF (2=OFF), Termination Y-Z (3=ON), erster egal
- Schrank schließen, Arduino an zugänglicher Stelle platzieren



Software: Modbus → MQTT Bridge
Der Sketch nutzt ArduinoModbus (RTU Client) für Registerabfragen. Beispiel: Stromstärke lesen (Holding Register 0x0016, 2 Words):
float readCurrent() {
float ampere = 0;
if (!ModbusRTUClient.requestFrom(0x01, HOLDING_REGISTERS, 0x0016, 2)) {
Serial.print("Modbus Fehler: "); Serial.println(ModbusRTUClient.lastError());
} else {
uint16_t word1 = ModbusRTUClient.read(); // MSW
uint16_t word2 = ModbusRTUClient.read(); // LSW
int32_t milliamp = (word1 << 16) | word2; // 32-bit zusammenfügen
ampere = milliamp / 1000.0; // mA → A
}
return ampere;
}
Analog für Spannung, Leistung, Energie, Frequenz etc. (Register laut Datenblatt). MQTT-Publizierung und WLAN-Handling im Hauptloop.
Home Assistant Integration
In configuration.yaml Sensoren definieren:
sensor:
- platform: mqtt
name: "Hauptspannung"
state_topic: "energy/main/voltage"
unit_of_measurement: "V"
- platform: mqtt
name: "Hauptstrom"
state_topic: "energy/main/current"
unit_of_measurement: "A"
# ... weitere: power, energy, frequency
Nach Neuladen erscheinen Messwerte mit Graphen/Automatisierungen in Home Assistant.

Code
Der vollständige Sketch (Modbus RTU → MQTT Bridge für Finder) ist auf GitHub/Projektseite verlinkt. Er umfasst Modbus-Abfragen, WLAN-Reconnect, MQTT-Publizierung mit QoS, Watchdog-Logik.
Herstellungsprozess
- Internet-gesteuerter Video-Streaming-Roboter mit Arduino & Raspberry Pi bauen
- Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
- Arduino Energiemonitor & Datenlogger (Dr. Wattson, MCP39F521) – Schritt-für-Schritt
- LCD-Animationen & Spiele mit Arduino UNO erstellen
- Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
- Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
- Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
- Arduino UNO WiFi Webserver: LED per Browser steuern
- Arduino UNO & WiFi Shield: Echtzeit-Temperaturanzeige im Web via Serial
- Kinetische und potentielle Energie: Formeln, Formen und Alltagsbeispiele