Inverter plugin

Az ADA P1 Meter képes a napelemes rendszered inverterét is monitorozni: a termelt teljesítményt, napi és teljes hozamot, akkumulátoros rendszereknél a töltöttségi szintet. Az összes adat ugyanabba a JSON válaszba kerül, és használható a szabályrendszerben is.

Emellett egyes invertereknél vezérelni is tudja a visszatáplálást – hasznos, ha például 0 visszatáplálású szerződésed van, vagy korlátozott a hálózati visszatápláló kapacitás.

Támogatott protokollok

Az ADA három különböző módon tud invertert olvasni:

  1. Modbus TCP – közvetlen csatlakozás, ha az inverter LAN-portos vagy WiFi-modulos és Modbus-t beszél
  2. Solarman – a Solarman logger dongle-k (pl. Deye, Sofar, Growatt egyes típusok) saját protokollja
  3. HTTP/JSON scraping – ha az inverternek saját HTTP API-ja van, onnan kiolvasható

Inverter típus beállítása

Gyári sablon

Jelenleg előre beállított gyári sablon az SMA-STPx000 sorozathoz van. Ez az inverter helyi hálózaton keresztül, Modbus TCP-n olvasható.

Beállítás MQTT-n keresztül:

mosquitto_pub -t 'ada/cmd/<topicKey>' \
  -m '{"m":"SET_INVERTER","type":"SMA-STPx000","id":"set1"}'

Vagy a webes felületen a Beállítások → Inverter menüpontban, a legördülőből.

Egyedi inverter JSON konfiguráció

Minden más inverterhez egyedi JSON konfigurációt tudsz megadni. Ez részletesen leírja, milyen Modbus kéréseket kell küldeni, és hogyan kell értelmezni a válaszokat.

{
  "name": "Deye-12K",
  "solarman_sn": 2734567890,
  "solarman_port": 8899,
  "pwr": {
    "hex": "010300860002",
    "div": 10.0,
    "mask": 4,
    "kind": 8
  },
  "day": {
    "hex": "01030108000A",
    "div": 10.0,
    "mask": 2,
    "kind": 0
  },
  "tot": {
    "hex": "01030096000A",
    "div": 10.0,
    "mask": 4,
    "kind": 2
  },
  "soc": {
    "hex": "010300B4000A",
    "div": 1.0,
    "mask": 2,
    "kind": 0
  }
}

A JSON-t MQTT-n keresztül tudod feltölteni:

mosquitto_pub -t 'ada/cmd/<topicKey>' -f inverter_deye.json \
  -m '{"m":"SET_INVERTER","type":"<...JSON...>","id":"set"}'

Egyedi konfiguráció készítéséhez a konkrét inverter típusod Modbus regiszter-térképére van szükség. Ha egy általad támogatott gyártóhoz nincs még sablon, és szeretnéd elkészíteni, lépj kapcsolatba a támogatással – egy új sablont kb. 15-30 perc elkészíteni.

Mezők a konfigurációban

MezőJelentés
nameA kijelzendő név
solarman_snSolarman logger sorozatszám (ha Solarman-t használsz). Ha 0, akkor közvetlen Modbus TCP lesz
solarman_portSolarman port (alapesetben 8899)
pwrPillanatnyi aktív teljesítmény
dayNapi hozam
totÖsszes hozam
socAkkumulátor töltöttsége (csak hibrid inverterekhez)

Minden pwr/day/tot/soc objektumnak a következő mezői vannak:

  • hex: a Modbus kérés hexadecimálisan
  • div: a nyers érték osztója (pl. 10.0 ha 0.1 pontossággal adja)
  • mask: a várt bájtok száma
  • kind: az érték típusa (lásd lent)

Érték típusok (kind)

kindJelentés
0U16 (16 bites előjel nélküli)
1S16 (16 bites előjeles)
2U32
3S32
4U64
5S64
6S16 + skálafaktor (SunSpec)
7U32 + skálafaktor (SunSpec)
8U32 word-swapped (Deye, Sunsynk)
92 × U16 összeadva (pl. Deye PV1+PV2)

Leolvasott adatok

Az inverter értékek bekerülnek a JSON-be az inverter objektumban, és az eszköz dashboardján is megjelennek.

{
  "...": "...",
  "inverter": {
    "name": "Deye-12K",
    "enabled": true,
    "ok": true,
    "active_power_kw": 4.2,
    "daily_yield_kwh": 18.4,
    "total_yield_kwh": 14832.7,
    "battery_soc": 85
  }
}

Az olvasás gyakorisága kb. 10 másodperc.

Visszatáplálás szabályozás

Az újabb invertereknél (pl. Deye, Sunsynk) az ADA P1 Meter a nettó 0 export szabályozást is tudja intézni. Négy mód közül választhatsz:

MódJelentés
emptySemmilyen szabályozás (alapértelmezett)
prodMaximális termelés engedélyezve (nincs export-korlátozás)
noprodExport teljesen tiltva (inverter nem táplál vissza)
autoAutomatikus szabályozás a P1 mérés alapján

Auto mód részletesen

Az auto mód folyamatosan figyeli a P1 mérőt, és valós időben állítja az inverter maximális teljesítményét, hogy a visszatáplálás 0 körül maradjon:

  • Ha van hálózati vételezés → inverter kapacitást felszabadít
  • Ha van visszatáplálás → inverter teljesítményt csökkenti
  • Cél: net 0 energia a mérőnél

Ez különösen hasznos, ha:

  • A szolgáltatóddal 0 visszatáplálásos szerződésed van
  • Korlátozott a hálózati visszatápláló kapacitás (pl. hálózati engedély csak 5 kW-ot enged, de 10 kW-os rendszered van)
  • Szeretnéd maximalizálni a saját fogyasztást

Beállítás

A szabályozási mezőket a JSON konfiguráció control objektumában adod meg:

{
  "name": "Deye-12K",
  "solarman_sn": 2734567890,
  "pwr": { "...": "..." },
  "control": {
    "prod": "010680280FA0C9B7",
    "noprod": "010680280000C9B7",
    "function": "auto",
    "scale_unit": "percent",
    "scale_min": 0,
    "scale_max": 1000,
    "rated_kw": 10.0,
    "val_off": 26
  }
}
MezőJelentés
prodHEX parancs a max termelés engedélyezésére
noprodHEX parancs az export tiltására
functionAktuális mód (empty / prod / noprod / auto)
scale_unitSkála mértékegysége: percent / watt / kw
scale_min / scale_maxA skála tartománya (pl. 0–1000 = 0–100% 0,1% felbontással)
rated_kwInverter névleges teljesítménye – auto kalkulációhoz
val_offA szabályzó érték pozíciója a HEX string-ben (karakter index)

Mód váltás futás közben

MQTT-vel:

# Auto mód be
mosquitto_pub -t 'ada/cmd/<topicKey>' \
  -m '{"m":"INVERTER_CONTROL","cmd":"auto","id":"c1"}'

# Ideiglenes tiltás
mosquitto_pub -t 'ada/cmd/<topicKey>' \
  -m '{"m":"INVERTER_CONTROL","cmd":"noprod","id":"c2"}'

Vagy szabályból is hívhatod (webhookként):

{
  "id": "csucs_tilt",
  "condition": "current_stock_price < 0",
  "min_timer_seconds": 60,
  "repeat": true,
  "actions": [
    {
      "method": "POST",
      "url": "http://okosvillanyora.local:8989/inverter/async",
      "body": "{\"cmd\":\"noprod\"}"
    }
  ]
}

Modbus IP keresés

Ha közvetlen Modbus TCP-vel (nem Solarman-en át) csatlakozol, a készülék segít megtalálni az inverter IP-jét a helyi hálózaton:

Manuális beállítás

curl -X POST http://okosvillanyora.local:8989/modbus_ip \
  -H "Content-Type: application/json" \
  -d '{"ip":"192.168.1.100"}'

Automatikus keresés

MQTT-n keresztül a teljes alhálózat ellenőrzése (502-es porton Modbus TCP):

mosquitto_pub -t 'ada/cmd/<topicKey>' \
  -m '{"m":"SCAN_MODBUS","id":"scan1"}'

A keresés 1–2 percet vesz igénybe, és az ada/ack/... topicra érkezik, hogy melyik IP-ken van aktív Modbus TCP szerver.

Jó tudni

  • Az inverter-lekérdezés nem blokkolja a P1 feldolgozást – ha az inverter lassú, a P1 adatok továbbra is frissülnek
  • Hibák esetén (inverter offline, hálózati probléma) a JSON-ben "inverter": {"ok": false, "error": "..."} jelenik meg
  • Az inverter plugin teljesen kikapcsolható a dashboardról, ha nem szeretnéd használni
  • A Solarman logger sorozatszámát a logger címkéjén vagy a hivatalos appjában találod