Entworfen & hergestellt in Frankreich
🚚 Alle Bestellungen, die vor dem 27. September aufgegeben wurden, sind versandt. Wir bereiten jetzt die nächsten Bestellungen vor (27., 28. September…). Wir tun unser Bestes, um so schnell wie möglich zu liefern.

Pylontech in Home Assistant

Ihr Pylon-Monitor spricht Home Assistant von Haus aus — kein HACS, keine eigene Integration, nichts auf dem Gerät zu installieren. 4 Felder ausfüllen, und die Sensoren erscheinen von selbst (MQTT-Auto-Discovery) — oder fertigen REST-YAML-Block einfügen, falls Sie keinen Broker betreiben. Alles bleibt in Ihrem lokalen Netz.

Was Sie brauchen

1Einen Pylon-MonitorAm CONSOLE-Port der Master-Batterie — jedes Modell, mit Display oder Lite.
2Home AssistantJede aktuelle Installation: HA OS, Supervised, Container oder Core.
35 MinutenDazu das Add-on Mosquitto Broker, falls Sie Option 1 (MQTT) wählen.
Anschlussfeld einer Pylontech-Master-Batterie: Das RJ45-Kabel im CONSOLE-Port versorgt den Pylon-Monitor, während das Verbindungskabel vom LINK PORT 1 zur Slave-Batterie führt
An der Master-Batterie: CONSOLE zum Pylon-Monitor, LINK PORT 1 zur Slave-Batterie.
Der Fehler, den fast alle machen: LINK PORT 1, nicht LINK PORT 0
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.

Option 2

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.

Sie tun: YAML in configuration.yaml einfügen und neu starten
HA erhält: 6 Sensoren, dazu SOH und Zyklen je Batterie
Aktualisierung: Home Assistant fragt alle 30 s ab
Option 2 einrichten ↓
Gerät finden. Bei einem Modell mit Display stehen die IP-Adresse und 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):

Broker IP<IP Ihres Home Assistant>
Port1883
Usernamemqtt-pylon
New password•••••••• (dessen Passwort)
Settings-Seite des Pylon-Monitor — Karte Home Assistant MQTT mit Broker IP, Port, Username und Passwort

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.

Welcher Benutzer, welches Passwort? Das Mosquitto-Add-on akzeptiert Home-Assistant-Benutzerkonten. Legen Sie ein eigenes an (Einstellungen → Personen → Person hinzufügen, „Anmeldung erlauben“ aktivieren, z. B. 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 AssistantDiscovery-TopicEinheit / Typ
Battery SOChomeassistant/sensor/pylon-monitor/soc/config% · battery
Battery SOHhomeassistant/sensor/pylon-monitor/soh/config% · mdi:battery-heart-variant
Battery voltagehomeassistant/sensor/pylon-monitor/voltage/configV · voltage
Battery currenthomeassistant/sensor/pylon-monitor/current/configA · current
Battery powerhomeassistant/sensor/pylon-monitor/power/configW · power
Battery temphomeassistant/sensor/pylon-monitor/temp/config°C · temperature
MOSFET temphomeassistant/sensor/pylon-monitor/mostemp/config°C · temperature
Charge cycleshomeassistant/sensor/pylon-monitor/cycles/configmdi:counter
Battery statehomeassistant/sensor/pylon-monitor/state/configmdi:battery-sync
Cell imbalancehomeassistant/sensor/pylon-monitor/celldelta/configmV · mdi:scale-balance
Battery counthomeassistant/sensor/pylon-monitor/units/configmdi: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.

Settings-Seite des Pylon-Monitor — REST-YAML-Block, erzeugt mit der IP-Adresse des Geräts

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
configuration.yaml von Home Assistant mit den eingefügten REST-Sensoren des Pylon-Monitor

Starten Sie Home Assistant neu (Entwicklerwerkzeuge → Neu starten). Die Sensoren erscheinen unter Einstellungen → Geräte & Dienste → Entitäten — suchen Sie nach pylontech.

Home-Assistant-Anzeigekarte mit dem Pylontech-SOC-Sensor
Nutzen Sie Option 1 und 2 nicht gleichzeitig — sonst haben Sie jeden Wert doppelt. MQTT deckt bereits alles ab, was REST kann, und mehr; wählen Sie eine und bleiben Sie dabei.

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:

  1. Teilen Sie die Leistung mit zwei Template-Sensoren auf: Ladeleistung = der positive Teil, Entladeleistung = der negative Teil als positiver Wert.
  2. Wandeln Sie beide mit einem Integral-Helfer (Riemann-Summe) in kWh um, Präfix „k“, Methode „Links“.
  3. 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=&lt;Access key&gt;</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 →