Loxone Miniserver¶
Der WattWächter Plus lässt sich über seinen Modbus-TCP-Server in Loxone einbinden. Loxone Config hat keine SunSpec-Auto-Discovery — anders als z.B. Home Assistant oder evcc liest der Miniserver den SunSpec-Header nicht selbsttätig ein.
Damit du die Register trotzdem nicht von Hand abtippen musst, gibt es zwei fertige Loxone-Vorlagen. Sie legen alle Modbus-Sensoren an, setzen Datentyp, Abfragezyklus und Skalierung und liefern direkt Werte in kW, kWh, A, V und Hz. Die manuelle Variante ist weiterhin unter Register manuell anlegen beschrieben.
Anleitung als PDF
Zum Ausdrucken, Weitergeben und für die Loxone Library gibt es diese Anleitung auch als PDF: Deutsch · English
Voraussetzungen¶
- WattWächter Plus mit Firmware 1.2.0 oder neuer
- Modbus TCP am WattWächter aktiviert — Weboberfläche → Einstellungen → Modbus TCP → Modbus-TCP-Server aktivieren → Speichern. Weitere Wege unter Modbus TCP → Aktivieren
- Loxone Miniserver (Gen 1 mit Modbus Extension oder Gen 2) im selben Netzwerk
- Loxone Config 17.1.6.30 oder neuer — die Vorlagen deklarieren diese Mindestversion
- Eine feste IP-Adresse für den WattWächter (siehe Warnung unten)
Loxone braucht die IP-Adresse — nicht den .local-Namen
Der Miniserver löst keine mDNS-/.local-Namen auf. Trage im Modbus-Server-Objekt die
IP-Adresse des WattWächters ein, nicht wattwaechter-XXXXXXXXXXXX.local.
Vergib dafür im Router eine DHCP-Reservierung oder stelle am WattWächter eine feste IP ein. Ohne das bricht die Verbindung beim nächsten Lease-Wechsel — und Loxone zeigt dann still den zuletzt gelesenen Wert weiter, statt einen Fehler zu melden. Wie du die aktuelle IP findest, steht in den FAQs.
Vorlagen herunterladen¶
| Vorlage | Sensoren | Inhalt | Für wen? |
|---|---|---|---|
| WattWächter Plus | 3 | Wirkleistung, Bezug, Einspeisung | Standardfall — diese drei Werte liefert jeder unterstützte Zähler |
| WattWächter Plus – All Values | 15 | zusätzlich Leistung/Strom/Spannung je Phase, Summenstrom, Spannungsmittelwert, Netzfrequenz | Zähler, die auch Phasenwerte senden |
Download — lade die Datei herunter, die zu deinem Zähler passt:
WattWächter Plus (3 Werte) All Values (15 Werte)
Im Zweifel die kleine Vorlage
Welche Register dein Zähler tatsächlich befüllt, hängt vom Zählermodell ab. W
(Wirkleistung), TotWhImp (Bezug) und TotWhExp (Einspeisung) sind immer gültig —
alles andere nur, wenn dein Zähler die passenden OBIS-Codes sendet. Nimmst du „All
Values", zeigen die nicht gelieferten Sensoren feste Fehlwerte an; wie du die erkennst
und entfernst, steht unter Nicht gelieferte Werte entfernen.
Schritt 1 — Modbus-Server anlegen¶
Wähle im Projektbaum unter MiniServer den Eintrag Network Periphery (1). Öffne im Menüband den Reiter Network Periphery (2), klicke auf Network (3) und wähle Modbus Server (4).
Schritt 2 — Modbus-Server konfigurieren¶
Markiere den neu angelegten Modbus-Server im Projektbaum (1). Rechts öffnen sich die Properties. Trage dort einen Name ein (2) — z.B. WattWächter Plus Modbus — und als Address die IP-Adresse des WattWächters mit Port, getrennt durch Doppelpunkt (3):
| Feld | Wert |
|---|---|
| Name | frei wählbar, z.B. WattWächter Plus Modbus |
| Address | <IP-Adresse>:502 — z.B. 192.168.178.106:502 |
| Delay after start [s] | 0 |
| Timeout [ms] | 2000 |
| Fragmented Packets | aus |
| Monitor Online Status | optional — meldet Verbindungsabbrüche |
Port gehört in dasselbe Feld
Loxone hat kein eigenes Port-Feld: Port 502 wird an die IP-Adresse angehängt. Hast du am WattWächter einen abweichenden Port eingestellt, trage den hier ein.
Solange noch kein Gerät unter dem Server hängt, zeigt Loxone „Device not fully configured" an. Das verschwindet mit dem nächsten Schritt.
Schritt 3 — Vorlage importieren¶
Markiere den Modbus-Server (1), öffne im Menüband Device Templates (2) und klicke auf Import Template… (3). Wähle dort die XML-Datei aus, die du oben heruntergeladen hast.
Schritt 4 — Vorlage auswählen¶
Nach dem Import steht die Vorlage unter Device Templates im Abschnitt My templates. Klicke sie an — Loxone legt daraufhin das Modbus-Gerät samt aller Sensoren unter dem Modbus-Server an.
Wo liegen die Vorlagen auf der Platte?
Show Templates in Explorer… öffnet den Ordner, in dem Loxone Config seine
Modbus-Vorlagen ablegt. Du kannst die XML-Dateien auch direkt dorthin kopieren; sie
müssen mit MB_ beginnen und werden nach einem Neustart von Loxone Config erkannt.
Schritt 5 — Angelegte Sensoren prüfen¶
Im Projektbaum hängen unter dem Modbus-Server jetzt das Gerät und darunter der Zweig Sensors mit den Analogeingängen. Bei der kleinen Vorlage sind das drei:
Schritt 6 — Sensoren auf eine Seite ziehen¶
Zieh die Sensoren aus dem Projektbaum auf eine Programmierseite, damit du sie verdrahten und im LIVE-Modus beobachten kannst.
Schritt 7 — Mit dem Miniserver verbinden und speichern¶
Klicke auf Connect to Miniserver (1), wähle deinen Miniserver aus und bestätige mit Connect (2).
Anschließend überträgst du das Programm mit Save program in Miniserver:
Schritt 8 — Werte im LIVE-Modus prüfen¶
Starte den LIVE-Modus:
Die Sensoren zeigen jetzt links den Rohwert aus dem Register und rechts den umgerechneten Wert mit Einheit:
Im Beispiel steht 217,000 → 2,17 kW: Register 40088 liefert den Rohwert 217, die Korrektur der Vorlage macht daraus 2,17 kW.
Nicht gelieferte Werte entfernen¶
Die Vorlage „All Values" legt alle 15 Register an — unabhängig davon, ob dein Zähler sie befüllt. Register ohne Daten liefern den SunSpec-Sentinel 0x8000 (not implemented), also den Rohwert -32768. Nach der Skalierung sieht das im LIVE-Modus so aus:
| Anzeige | Bedeutung |
|---|---|
-327,68 kW |
Leistungsregister wird vom Zähler nicht geliefert |
-327,68 A |
Stromregister wird nicht geliefert |
-3276,8 V |
Spannungsregister wird nicht geliefert |
-327,68 Hz |
Netzfrequenz wird nicht geliefert |
Einfach löschen statt filtern
Für diese Sensoren brauchst du keinen Status-Baustein zum Ausfiltern — lösch sie im Projektbaum. Was dein Zähler nicht sendet, sendet er auch nach einem Neustart nicht. Nur wenn du einen Wert bewusst behalten willst (z.B. weil der Zähler ihn zeitweise liefert), filtere Werte ≤ −32000 per Status-Baustein heraus.
Welche Register dein Gerät gerade mit gültigen Werten befüllt, zeigt der Status-Endpunkt — ohne Loxone-Umweg.
Was die Vorlagen enthalten¶
Alle Sensoren lesen mit Function Code 0x03 (Read Holding Registers). Die Spalte Korrektur ist der Faktor, den die Vorlage im Sensor hinterlegt — er enthält bereits den SunSpec-Skalierungsfaktor und die Umrechnung auf die Zieleinheit.
| Sensor | Register | Typ | Zyklus | Korrektur | Einheit | Vorlage |
|---|---|---|---|---|---|---|
| Active Power | 40088 | int16 | 5 s | ×0,01 | kW | beide |
| Energy Import | 40116 | acc32 | 30 s | ×0,001 | kWh | beide |
| Energy Export | 40108 | acc32 | 30 s | ×0,001 | kWh | beide |
| Active Power L1 | 40089 | int16 | 5 s | ×0,01 | kW | All Values |
| Active Power L2 | 40090 | int16 | 5 s | ×0,01 | kW | All Values |
| Active Power L3 | 40091 | int16 | 5 s | ×0,01 | kW | All Values |
| Current L1 | 40073 | int16 | 10 s | ×0,01 | A | All Values |
| Current L2 | 40074 | int16 | 10 s | ×0,01 | A | All Values |
| Current L3 | 40075 | int16 | 10 s | ×0,01 | A | All Values |
| Current Total | 40072 | int16 | 10 s | ×0,01 | A | All Values |
| Voltage L1 | 40078 | int16 | 10 s | ×0,1 | V | All Values |
| Voltage L2 | 40079 | int16 | 10 s | ×0,1 | V | All Values |
| Voltage L3 | 40080 | int16 | 10 s | ×0,1 | V | All Values |
| Voltage Average | 40077 | int16 | 10 s | ×0,1 | V | All Values |
| Grid Frequency | 40086 | int16 | 10 s | ×0,01 | Hz | All Values |
Die vollständige Register-Map (alle SunSpec-Felder, Datentypen, OBIS-Codes) steht in der Modbus-TCP-Referenz.
Skalierung ist in der Vorlage fest verdrahtet
Loxone kann die SunSpec-SF-Register nicht zur Laufzeit auswerten. Die Vorlagen tragen
den Faktor deshalb fest in die Sensor-Korrektur ein — passend zu den aktuellen
Skalierungsfaktoren (W_SF = 1, A_SF = -2, V_SF = -1, Hz_SF = -2,
TotWh_SF = 0).
W_SF hat sich mit Firmware 1.2.0 von 0 auf 1 geändert: die
Leistungsregister zählen seitdem Zehnerschritte Watt statt einzelner Watt, damit auch
Anschlüsse über 32,7 kW abgedeckt sind. Ältere Firmware liefert deshalb Werte, die um
den Faktor 10 danebenliegen — dafür sind die Vorlagen nicht gedacht. Prüfe nach einem Firmware-Update die
SF-Register (40092, 40076, 40085, 40087, 40124) und lade bei Bedarf die
aktuelle Vorlage neu.
Bezug und Einspeisung trennen¶
Die Gesamtleistung W (40088) ist vorzeichenbehaftet: positiv bei Bezug, negativ bei Einspeisung. Für den Loxone-Energiemonitor zerlegst du den Wert per Status-Baustein in zwei Größen:
- Bezug =
MAX(W, 0) - Einspeisung =
MAX(-W, 0)
Die Energie-Zählerstände TotWhImp (Bezug) und TotWhExp (Einspeisung) liegen ohnehin in getrennten Registern — die kannst du direkt verdrahten.
Register manuell anlegen¶
Brauchst du ein Register, das in keiner Vorlage steckt, oder willst du ohne Vorlage arbeiten: Lege unter dem Modbus-Server über Add Modbus device ein Gerät an und darunter je Wert einen analogen Sensor (Add analogue sensor).
| Wert | Adresse | Anzahl | Datentyp | Skalierung (SF-Register) |
|---|---|---|---|---|
| Gesamtwirkleistung | 40088 | 1 | int16 (signed!) | 40092 (W_SF) |
| Wirkleistung L1 / L2 / L3 | 40089 / 40090 / 40091 | 1 | int16 | 40092 (W_SF) |
| Strom L1 / L2 / L3 | 40073 / 40074 / 40075 | 1 | int16 | 40076 (A_SF) |
| Spannung L1 / L2 / L3 | 40078 / 40079 / 40080 | 1 | int16 | 40085 (V_SF) |
| Frequenz | 40086 | 1 | int16 | 40087 (Hz_SF) |
| Bezug gesamt | 40116 | 2 | uint32 (acc32) | 40124 (TotWh_SF) |
| Einspeisung gesamt | 40108 | 2 | uint32 (acc32) | 40124 (TotWh_SF) |
Pro Sensor einzustellen:
- Function Code
0x03(Read Holding Registers) - Datentyp wie in der Tabelle — die 16-Bit-Werte sind signed
- Korrektur:
Wert = Rohwert × 10^SF, ggf. mal der Umrechnung auf die Zieleinheit. Lies den aktuellen Faktor aus dem jeweiligen SF-Register aus, statt ihn zu raten. - Sentinel-Filter oder Sensor löschen — siehe Nicht gelieferte Werte entfernen
Fehlerbehebung¶
Alle Sensoren bleiben auf 0 / keine Verbindung
- Ist Modbus am WattWächter aktiviert? Prüfe
/api/v1/modbus/status→enabled: true,running: true. - Steht im Feld Address eine IP-Adresse mit Port (
192.168.178.106:502) und kein.local-Name? - Hast du das Programm nach der Änderung in den Miniserver gespeichert?
- Der WattWächter erlaubt maximal 2 gleichzeitige Modbus-Verbindungen. Läuft parallel noch ein Test mit
modpolloder Home Assistant, trenn den zuerst.
Werte waren da und stehen jetzt still
Typisches Zeichen für einen IP-Wechsel per DHCP: Loxone hält den letzten Wert, statt einen Fehler zu zeigen. Prüf die aktuelle IP des WattWächters und richte eine DHCP-Reservierung ein.
Ein Sensor zeigt −327,68 / −3276,8
Das ist der SunSpec-Sentinel 0x8000 — dein Zähler liefert diesen OBIS-Code nicht.
Siehe Nicht gelieferte Werte entfernen.
Bei den Leistungsregistern gibt es eine zweite Ursache: Werte außerhalb von ±327,67 kW passen nicht in ein int16 und werden ebenfalls als Sentinel gemeldet, statt auf das Maximum geklemmt zu werden. Betrifft nur Anschlüsse jenseits von 327 kW.
Werte sind um Faktor 10 daneben
Dann passt die Korrektur im Sensor nicht mehr zum Skalierungsfaktor des Geräts —
meist nach einem Firmware-Update. Lies die SF-Register aus (40092 für Leistung) und
korrigier den Faktor bzw. importiere die aktuelle Vorlage neu.
Weitere Punkte in der Modbus-TCP-Fehlerbehebung.











