sphings-dev.de

Home Assistant

Shelly Modbus für Home Assistant

HACS

HACS-Integration, die Shelly-Energiezähler und -Relais der Generationen 2 bis 4 über deren eingebauten Modbus-TCP-Server ausliest – lokal, ohne Cloud, mit saldierten Netzwerten.

Repository (öffnet in neuem Tab)

Steckbrief

Sprache
Python
Lizenz
MIT
Aktuelle Version
1.2.0
Projektstart

Shelly-Geräte der Generationen 2 bis 4 haben in der Firmware einen Modbus-TCP-Server. Diese Integration verbindet sich direkt mit Port 502, liest die Input-Register blockweise und macht daraus Home-Assistant-Entitäten. Alles bleibt im eigenen Netz: kein Shelly-Cloud-Konto, kein MQTT-Broker, kein HTTP- oder RPC-Polling.

Wann sich das lohnt

Die offizielle Shelly-Integration ist ausgezeichnet, und die meisten sollten sie nehmen. Modbus lohnt sich, wenn dasselbe Gerät schon anderswo per Modbus gelesen wird – von einem Hybrid-Wechselrichter, einer Loxone- oder SPS-Anlage oder Victron Venus – und Home Assistant dieselben Zahlen aus derselben Quelle sehen soll, in einem frei wählbaren Intervall bis hinunter auf eine Sekunde.

Unterstützte Geräte

  • Energiezähler: Shelly Pro 3EM (alle Varianten), Pro EM 50, 3EM-63 Gen3, EM Gen3, EM Mini Gen4, EM 63 Gen4
  • Relais: Shelly 1, 1L, 1PM, 2PM und 2L Gen4 sowie die Mini-Varianten, inklusive Schalten über Modbus-Coils

Pro 3EM und 3EM-63 Gen3 sind an echter Hardware bestätigt: Jeder dekodierte Wert wurde mit dem RPC-Ausgang desselben Geräts verglichen. Die übrigen Modelle folgen Shellys veröffentlichten Registerkarten. Geräte ohne Modbus-Server (Plus 1PM, Plus Plug S, Pro 4PM) und alle Gen1-Geräte werden nicht unterstützt.

Funktionen

  • Modellerkennung aus den Geräteregistern, überschreibbar; Messprofil triphase oder monophase wird erkannt
  • Zeroconf-Erkennung im Netz mit Bestätigungsdialog
  • Blockweises Lesen: ein Pro 3EM braucht drei Anfragen pro Zyklus statt 69; deaktivierte Entitäten werden nicht gelesen
  • Zwei Abfrageintervalle: schnelle Werte (Standard 5 s) und langsame Werte (Standard 60 s)
  • Saldierte Netzbezugs- und Einspeisesensoren für Dreiphasenzähler, direkt im Energie-Dashboard nutzbar
  • Entitätsnamen auf Deutsch und Englisch
  • Zeitbudget für Wiederholungen bei nicht antwortenden Geräten

Warum die saldierten Sensoren nötig sind und wie die Adressierung auf dem Draht funktioniert, steht in den Beiträgen zur Integration.

Installation

Voraussetzung ist Home Assistant 2025.9 oder neuer. In HACS https://github.com/sphings79/shelly-modbus-home-assistant als benutzerdefiniertes Repository der Kategorie „Integration“ hinzufügen, „Shelly Modbus“ installieren und Home Assistant neu starten. Am Shelly muss der Modbus-Server unter Einstellungen → Modbus aktiviert werden; er ist ab Werk aus. Danach die Integration unter Geräte & Dienste hinzufügen. Alternativ lässt sich custom_components/shelly_modbus manuell nach config/custom_components/ kopieren.

Prüfung

Das Repository enthält einen Livetest, der den Code der Integration gegen ein echtes Gerät laufen lässt und jeden Wert mit der RPC-Antwort vergleicht, sowie eine Testsuite ohne Hardware und ohne Home Assistant. Zum Stand von Version 1.1.2 waren es 120 Tests.