Was Sie brauchen

Das Kabel, das Ihre Master-Batterie mit der ersten Slave-Batterie verbindet, muss vom LINK PORT 1 der Master abgehen — niemals vom LINK PORT 0. Es wird am LINK PORT 0 der Slave eingesteckt, und jede weitere Batterie wiederholt dasselbe Muster 1 → 0. Andersherum verkabelt sieht die Master den Rest des Stapels nie, und der Pylon-Monitor zeigt immer nur eine einzige Batterie an.
Wählen Sie Ihre Integration
Beide Optionen richten Sie auf der Settings-Seite des Geräts ein (http://pylon-monitor.local/settings oder http://<GERÄTE-IP>/settings). Wählen Sie eine — sie sind unabhängig voneinander.
MQTT-Auto-Discovery
Sie nutzen den Mosquitto-Broker in Home Assistant. Der Pylon-Monitor meldet seine Sensoren selbst an, Home Assistant legt sie automatisch an. Kein YAML.
Option 1 einrichten ↓REST-API
Kein Broker nötig. Home Assistant liest den eingebauten JSON-Endpunkt /api.json direkt. Die Settings-Seite des Geräts schreibt das YAML für Sie — mit Ihrer IP und Ihrer Batterieanzahl bereits eingetragen.
pylon-monitor.local unten auf dem Bildschirm. Bei der Lite (ohne Display) öffnen Sie http://pylon-monitor.local oder suchen „pylon-monitor“ in der Geräteliste Ihres Routers. Für eine absolut stabile Integration geben Sie ihm eine feste Adresse: eine DHCP-Reservierung im Router (empfohlen) oder die Karte Static IP auf der Settings-Seite.Option 1 — MQTT-Auto-Discovery
Empfohlen, wenn Sie das Add-on Mosquitto Broker in Home Assistant nutzen. Sobald das Gerät mit dem Broker verbunden ist, veröffentlicht es Standard-Discovery-Nachrichten unter homeassistant/sensor/…, und die Sensoren erscheinen innerhalb von Sekunden unter Einstellungen → Geräte & Dienste → MQTT — gruppiert unter einem Gerät namens Pylon-Monitor.
1. 4 Felder am Gerät ausfüllen
Suchen Sie auf der Settings-Seite des Geräts die Karte Home Assistant — MQTT und füllen Sie diese Felder aus (Bezeichnungen genau wie auf dem Gerät):
Klicken Sie auf Save changes. Wenige Sekunden später zeigt die Zeile Home Assistant (MQTT) im Dashboard des Geräts Connected, und die Sensoren unten werden angelegt — keine Entität von Hand zu konfigurieren. Zum Abschalten von MQTT leeren Sie Broker IP und speichern.
mqtt-pylon) und verwenden Sie es hier statt Ihres Administrator-Logins. Die Broker-IP ist einfach die IP Ihres Home Assistant, wenn Mosquitto darauf läuft.2. Die Sensoren in Home Assistant
Der Gerätename (Standard pylon-monitor, in Settings änderbar) dient als Topic-Präfix. Haben Sie ihn geändert, ersetzen Sie pylon-monitor unten durch Ihren.
| Sensor in Home Assistant | Discovery-Topic | Einheit / Typ |
|---|---|---|
| Battery SOC | homeassistant/sensor/pylon-monitor/soc/config | % · battery |
| Battery SOH | homeassistant/sensor/pylon-monitor/soh/config | % · mdi:battery-heart-variant |
| Battery voltage | homeassistant/sensor/pylon-monitor/voltage/config | V · voltage |
| Battery current | homeassistant/sensor/pylon-monitor/current/config | A · current |
| Battery power | homeassistant/sensor/pylon-monitor/power/config | W · power |
| Battery temp | homeassistant/sensor/pylon-monitor/temp/config | °C · temperature |
| MOSFET temp | homeassistant/sensor/pylon-monitor/mostemp/config | °C · temperature |
| Charge cycles | homeassistant/sensor/pylon-monitor/cycles/config | mdi:counter |
| Battery state | homeassistant/sensor/pylon-monitor/state/config | mdi:battery-sync |
| Cell imbalance | homeassistant/sensor/pylon-monitor/celldelta/config | mV · mdi:scale-balance |
| Battery count | homeassistant/sensor/pylon-monitor/units/config | mdi:battery-multiple |
Alle lesen ihren Wert aus einem einzigen, gespeicherten (retained) State-Topic, das nach jeder Batterieabfrage aktualisiert wird:
pylon-monitor/state
Die kombinierte Nachricht sieht so aus:
{
"soc": 94,
"soh": 96,
"voltage": 48.62,
"current": -7.20,
"power": -350.1,
"temp": 23.4,
"mostemp": 28.1,
"cycles": 486,
"celldelta": 12,
"units": 2,
"state": "Discharging",
"hw": "gen2",
"pack": "lv"
}
3. Mehrere Batterien? Sensoren für jede einzelne
Sobald Ihr Pack mehr als eine Pylontech-Batterie hat, legt das Gerät zusätzlich 5 Sensoren je Batterie an — Battery 1 SOC, Battery 1 SOH, Battery 1 cycles, Battery 1 voltage, Battery 1 state, dann Battery 2, 3 … — jeweils auf einem eigenen Topic (pylon-monitor/battery1/state, pylon-monitor/battery2/state …). Ideal, um die Batterie zu erkennen, die schneller altert als die anderen.
pylon-monitor/battery1/state
{ "voltage": 48.61, "current": -3.60, "power": -175.0, "soc": 94, "soh": 97,
"cycles": 480, "charge_cnt": 391, "discharge_cnt": 0, "state": "Discharging",
"model": "US3000C", "bms_sw": "…", "serial": "…",
"cell_min_mv": 3238, "cell_max_mv": 3247, "cell_delta_mv": 9, "cell_count": 15 }
Diese Sensoren tragen außerdem Attribute, sichtbar in der Detailansicht jedes Sensors: Batteriemodell, BMS-Version, Seriennummer und — sobald die Zellen gelesen sind — niedrigste und höchste Zellspannung samt Differenz. So unterscheiden Sie „Battery 3“ von „Battery 4“ ohne zusätzliche Entitäten.
Das Gerät pflegt außerdem ein Verfügbarkeits-Topic mit „Last Will“: Verliert es Strom oder WLAN, wird jeder Sensor in Home Assistant „nicht verfügbar“, statt still auf dem letzten Wert stehen zu bleiben.
pylon-monitor/status → "online" (retained) | "offline" (Last Will, retained)
Option 2 — REST-API
Kein MQTT-Broker nötig. Die eingebaute rest-Integration von Home Assistant liest das Gerät alle 30 Sekunden. Am einfachsten: Kopieren Sie den Block aus der Karte Home Assistant — REST der Settings-Seite — er enthält bereits Ihre IP und ein Paar SOH + Zyklen für jede tatsächlich erkannte Batterie. Die Version unten ist dieselbe Vorlage für ein Pack mit 2 Batterien. Seit Firmware 3.4.0 (Lite 1.1.0, Generation 1: 3.1) verlangt /api.json Ihren Zugangsschlüssel — der aus dem Gerät kopierte Block enthält ?key=… bereits. Haben Sie REST vor dem Update eingerichtet, ergänzen Sie ?key=<Ihr Access key> (Settings → Public JSON access) in der Zeile resource:. MQTT ist nicht betroffen.
Das vom Gerät gelieferte JSON
GET http://<DEVICE-IP>/api.json?key=<ACCESS-KEY>
{
"system": "pylon-monitor",
"firmware": "3.3.2",
"hw": "gen2",
"battery_link": true,
"summary": {
"soc": 94,
"voltage": 48.62,
"current": -7.20,
"power": -350.10,
"state": "Discharging",
"units": 2
},
"health": {
"soh": 96,
"cycles": 486,
"charge_cnt": 782,
"discharge_cnt": 0
},
"unitsDetail": [
{ "soc": 94, "soh": 97, "cycles": 480, "model": "US3000C", "...": "..." },
{ "soc": 94, "soh": 95, "cycles": 492, "model": "US3000C", "...": "..." }
]
}
Zur Lesbarkeit gekürzt: Die vollständige Antwort enthält außerdem temps, cells, alarms und net, und unitsDetail liefert Spannung, Strom, SOC, SOH, Zyklen, Modell und Seriennummer jeder Batterie (vorhanden, wenn das Pack mehrere hat). Achtung: SOH steht unter health, nicht unter summary — ein klassischer Copy-&-Paste-Fehler.
Fügen Sie dies in configuration.yaml ein
# Access key: device Settings > Public JSON access (required since
# firmware 3.4.0 / Lite 1.1.0 / gen. 1 3.1). The block generated by the
# device's own Settings page already contains it.
rest:
- resource: http://<DEVICE-IP>/api.json?key=<ACCESS-KEY>
scan_interval: 30
sensor:
- name: "Pylontech SOC"
unique_id: pylontech_soc
value_template: "{{ value_json.summary.soc }}"
unit_of_measurement: "%"
device_class: battery
state_class: measurement
- name: "Pylontech SOH"
unique_id: pylontech_soh
value_template: "{{ value_json.health.soh }}"
unit_of_measurement: "%"
state_class: measurement
- name: "Pylontech Voltage"
unique_id: pylontech_voltage
value_template: "{{ value_json.summary.voltage }}"
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
- name: "Pylontech Current"
unique_id: pylontech_current
value_template: "{{ value_json.summary.current }}"
unit_of_measurement: "A"
device_class: current
state_class: measurement
- name: "Pylontech Power"
unique_id: pylontech_power
value_template: "{{ value_json.summary.power }}"
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "Pylontech State"
unique_id: pylontech_state
value_template: "{{ value_json.summary.state }}"
# One SOH + cycles pair per battery (only on a pack of 2 or more):
- name: "Pylontech Battery 1 SOH"
unique_id: pylontech_battery1_soh
value_template: "{{ value_json.unitsDetail[0].soh }}"
unit_of_measurement: "%"
state_class: measurement
- name: "Pylontech Battery 1 cycles"
unique_id: pylontech_battery1_cycles
value_template: "{{ value_json.unitsDetail[0].cycles }}"
state_class: measurement
- name: "Pylontech Battery 2 SOH"
unique_id: pylontech_battery2_soh
value_template: "{{ value_json.unitsDetail[1].soh }}"
unit_of_measurement: "%"
state_class: measurement
- name: "Pylontech Battery 2 cycles"
unique_id: pylontech_battery2_cycles
value_template: "{{ value_json.unitsDetail[1].cycles }}"
state_class: measurement
Starten Sie Home Assistant neu (Entwicklerwerkzeuge → Neu starten). Die Sensoren erscheinen unter Einstellungen → Geräte & Dienste → Entitäten — suchen Sie nach pylontech.
Energie-Dashboard
Für eine Batterie erwartet das Energie-Dashboard von Home Assistant zwei Zähler in kWh: geladene und entladene Energie. Der Pylon-Monitor liefert die Batterieleistung in W (positiv = Laden, negativ = Entladen) — Sie legen die Zähler also einmalig mit Helfern an:
- Teilen Sie die Leistung mit zwei Template-Sensoren auf: Ladeleistung = der positive Teil, Entladeleistung = der negative Teil als positiver Wert.
- Wandeln Sie beide mit einem Integral-Helfer (Riemann-Summe) in kWh um, Präfix „k“, Methode „Links“.
- Fügen Sie unter Einstellungen → Dashboards → Energie, Bereich Batteriespeicher, die beiden Zähler hinzu: Energie hinein, Energie heraus.
Dasselbe in YAML (Entitätsnamen von MQTT; bei Option 2 sensor.pylontech_power verwenden):
template:
- sensor:
- name: "Battery charge power"
unique_id: pylontech_charge_power
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: "{{ [states('sensor.pylon_monitor_battery_power') | float(0), 0] | max }}"
- name: "Battery discharge power"
unique_id: pylontech_discharge_power
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: "{{ [0 - (states('sensor.pylon_monitor_battery_power') | float(0)), 0] | max }}"
sensor:
- platform: integration
source: sensor.battery_charge_power
name: "Battery energy in"
unique_id: pylontech_energy_in
unit_prefix: k
round: 2
method: left
- platform: integration
source: sensor.battery_discharge_power
name: "Battery energy out"
unique_id: pylontech_energy_out
unit_prefix: k
round: 2
method: left
Prüfen Sie den genauen Namen Ihres Leistungssensors unter Einstellungen → Entitäten (Suche „power“): Er weicht ab, wenn Sie das Gerät umbenannt haben oder mehrere Pylon-Monitore nutzen.
Warnung bei niedrigem Ladestand
Eine Benachrichtigung aufs Handy, sobald die Batterie unter 20 % fällt:
alias: "Pylontech niedriger Ladestand"
triggers:
- trigger: numeric_state
entity_id: sensor.pylon_monitor_battery_soc
below: 20
actions:
- action: notify.notify
data:
message: "Pylontech-Batterie bei {{ states('sensor.pylon_monitor_battery_soc') }} %"
Genauso mit Battery state, Cell imbalance (z. B. über 50 mV) oder Sensoren, die länger als 10 Minuten nicht verfügbar sind — ein Zeichen, dass das Gerät offline ist.
Node-RED, Jeedom & Co.
Node-RED — ein http request-Node, Methode GET, URL http://<GERÄTE-IP>/api.json?key=<ACCESS-KEY>, Rückgabe „a parsed JSON object“, danach msg.payload.summary.soc (oder ein anderes Feld) lesen. Mit eingerichtetem MQTT ist ein mqtt in-Node auf pylon-monitor/state noch einfacher: kein Abfragen.
Jeedom — installieren Sie das Plugin JSON, richten Sie ein Gerät auf http://<GERÄTE-IP>/api.json?key=<ACCESS-KEY> und ordnen Sie Pfade Befehlen zu (z. B. summary>soc, summary>voltage, summary>state).
Alles andere — openHAB, ioBroker, Domoticz, EVCC oder eigene Skripte: Alles, was MQTT oder einen HTTP-JSON-Endpunkt liest, funktioniert mit denselben Topics und derselben /api.json.
Fragen
Funktioniert das mit der Lite (ohne Display)?
Ja. MQTT-Auto-Discovery und die REST-API sind Teil der Firmware aller Modelle: mit Display, Lite, erste und zweite Generation. Nur das Finden der IP ist anders: pylon-monitor.local oder die Geräteliste Ihres Routers.
Meine REST-Sensoren sind nach einem Firmware-Update nicht mehr verfügbar — warum?
Seit Firmware 3.4.0 (Lite 1.1.0, Generation 1: 3.1) verlangt das Gerät ein Passwort, das Sie beim ersten Aufruf erstellen, und <code>/api.json</code> braucht Ihren Zugangsschlüssel: Die europäischen Cybersicherheitsvorschriften für vernetzte Geräte (RED-Richtlinie, EN 18031) schreiben inzwischen vor, jedes Gerät zu schützen. Öffnen Sie das Gerät einmal im Browser, um Ihr Passwort zu erstellen, ergänzen Sie dann <code>?key=<Access key></code> (<em>Settings → Public JSON access</em>) in Ihrer Zeile <code>resource:</code> und starten Sie Home Assistant neu. MQTT-Sensoren funktionieren unverändert weiter.
Brauche ich Internet oder die Pylon-Monitor Cloud?
Nein. Home Assistant spricht direkt im lokalen Netz mit dem Gerät. Die kostenlose Cloud ist optional: Sie ergänzt nur Fernzugriff und Langzeitverlauf.
Ich habe mehrere Batterien: Sehe ich jede einzeln?
Ja. Mit MQTT legt das Gerät 5 Sensoren je Batterie an (SOC, SOH, Zyklen, Spannung, Status), mit Modell und Seriennummer als Attribute. Mit REST ergänzt das generierte YAML SOH und Zyklen je Batterie.
Wie oft werden die Werte aktualisiert?
Nach jeder Batterieabfrage: standardmäßig alle 60 Sekunden, einstellbar von 30 bis 300 Sekunden über Battery polling auf der Settings-Seite. Mit REST fragt Home Assistant alle 30 Sekunden ab.
Meine Sensoren sind „nicht verfügbar“: Was prüfen?
Das ist das Verfügbarkeitssignal bei der Arbeit: Das Gerät ist nicht mehr mit dem Broker verbunden (Stromausfall, WLAN, Broker neu gestartet). Öffnen Sie die Geräteseite: Die Zeile Home Assistant (MQTT) zeigt Connected oder Offline. Es versucht es alle 10 Sekunden von selbst erneut.
Kann Home Assistant die Batterie steuern?
Nein, mit Absicht: Die Integration stellt nur Sensoren zum Lesen bereit. Nichts in Home Assistant kann eine Einstellung Ihrer Batterie oder ihres BMS ändern.
Brauche ich HACS oder eine eigene Integration?
Nein. MQTT-Auto-Discovery und die REST-Integration sind Teil von Home Assistant selbst. Zu installieren ist nur das Mosquitto-Add-on, und nur wenn Sie MQTT wählen.
Noch keinen Pylon-Monitor?
An den CONSOLE-Port stecken, mit dem WLAN verbinden — und Ihre Pylontech erscheint in Home Assistant. V2 mit Display 59 €, Lite ohne Display 49 €.
Ausführlicher MQTT- & REST-Leitfaden →