EaSun · ESP32-Grid-Load-Vypocet · dokumentace API

Popis měření ESP32 — JSON /api/status pro Home Assistant

Dokumentace JSON endpointu GET /api/status firmware ESP32-Grid-Load-Vypocet (EaSun) pro napojení na Home Assistant a další REST klienty. Hlavní webová stránka zařízení zobrazuje statický snapshot při reloadu; živá data běží přes tento JSON.

1. Endpoint GET /api/status

  • URL: http://<IP_ESP32>/api/status
  • Metoda: GET
  • Content-Type: application/json
  • Cache: no-store (vždy aktuální hodnoty z RAM firmware)
  • Autentizace: žádná (pouze v lokální síti; případně omezte firewall / VLAN)

Firmware dál zpracovává MQTT, PZEM, teploty a SSR v reálném čase. HTML stránka / se už neobnovuje každých 2 s — pro aktuální stav použijte reload prohlížeče nebo tento API endpoint.

2. Příklad odpovědi JSON

Ukázková odpověď EaSun ESP32 (hodnoty se liší podle provozu a MQTT):

{
  "solarW": 1850,
  "solarA": 4.2,
  "totalTodaySolar": 12400,
  "batteryW": -320,
  "batterySOC": 78,
  "batterySOCMin": 40,
  "odberWatt": 2100.5,
  "voltage": 230,
  "current": 9.1,
  "VypocetProcenta": 45,
  "loadW": 2400,
  "cezW": -50,
  "cezWMin": 200,
  "cezWMax": 300,
  "cezV": 230,
  "ssrON1": 1,
  "ssrON2": 0,
  "ssrON3": 0,
  "solarWMin": 300,
  "distributor1": 0,
  "distributor2": 0,
  "distributor3": 0,
  "teplota1": 42.5,
  "teplota1_bad": false,
  "temp1a": 35,
  "temp1": 55,
  "teplota2": 0.0,
  "teplota2_bad": false,
  "temp2a": 0,
  "temp2": 0,
  "teplota3": 0.0,
  "teplota3_bad": false,
  "temp3a": 0,
  "temp3": 0,
  "tempC1": 21.3,
  "humi1": 48.0,
  "spotPrice": 1850,
  "spotLevel": "medium",
  "userMaxPwmChangePerSecond": 2.0,
  "enableSlowPwmMode": true,
  "autoOptimizationEnabled": false,
  "aiFinalPwm": 0.0,
  "pwmWebManual": false,
  "pwmWebManualPct": 0
}

3. Popis polí JSON API

Klíče odpovědi GET /api/status (EaSun Grid Load)
KlíčTypJednotkaVýznam
solarWintWVýkon FVE (MQTT / měření)
solarAfloatAProud FVE
totalTodaySolarintW / Wh*Souhrn / predikce dne (*dle firmware)
batteryWintWVýkon baterie (+ nabíjení / − vybíjení dle měniče)
batterySOCint%Stav nabití baterie
batterySOCMinint%Minimální SOC nastavení
odberWattfloatWOdběr topení (PZEM / výpočet)
voltageintVNapětí měřené na zátěži
currentfloatAProud zátěže
VypocetProcentafloat%Aktuální PWM topení (0–100)
loadWintWSpotřeba domácnosti / load
cezWintWOdběr / přetok ze sítě (distributor)
cezWMin / cezWMaxintWLimity sítě
cezVintVNapětí sítě
ssrON1..3int 0/1Stav SSR relé kanálu
solarWMinintWPráh „je solární výroba“
distributor1..3intPovolení odběru ze sítě pro SSR
teplota1..3float°CZobrazená teplota kanálu
teplotaN_badbooltrue = neplatné / chybějící čidlo
tempNa / tempNint°CNastavení OD / DO teploty
tempC1float°CTeplota okolí (např. DHT)
humi1float%Vlhkost
spotPricefloatCZK/MWhAktuální spotová cena
spotLevelstringPásmo (např. low / medium / high)
userMaxPwmChangePerSecondfloat%/sRychlost změny PWM
enableSlowPwmModeboolPomalý PWM režim
autoOptimizationEnabledboolAutomatická optimalizace baterie
aiFinalPwmfloat%PWM po AI safety
pwmWebManualboolRuční režim stránky /pwm
pwmWebManualPctint%Ruční PWM hodnota

4. Home Assistant — RESTful Sensor

Doporučená integrace: RESTful (více senzorů z jednoho GET) nebo RESTful Sensor. Do configuration.yaml (nahraďte IP adresou ESP32):

# configuration.yaml — Home Assistant + EaSun ESP32 /api/status
rest:
  - resource: http://192.168.1.50/api/status
    method: GET
    scan_interval: 30
    sensor:
      - name: "EaSun solarW"
        unique_id: easun_solar_w
        value_template: "{{ value_json.solarW }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement

      - name: "EaSun loadW"
        unique_id: easun_load_w
        value_template: "{{ value_json.loadW }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement

      - name: "EaSun cezW"
        unique_id: easun_cez_w
        value_template: "{{ value_json.cezW }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement

      - name: "EaSun odberWatt"
        unique_id: easun_odber_w
        value_template: "{{ value_json.odberWatt }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement

      - name: "EaSun PWM"
        unique_id: easun_pwm
        value_template: "{{ value_json.VypocetProcenta }}"
        unit_of_measurement: "%"
        state_class: measurement

      - name: "EaSun battery SOC"
        unique_id: easun_battery_soc
        value_template: "{{ value_json.batterySOC }}"
        unit_of_measurement: "%"
        device_class: battery
        state_class: measurement

      - name: "EaSun teplota1"
        unique_id: easun_teplota1
        value_template: "{{ value_json.teplota1 }}"
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement

      - name: "EaSun SSR1"
        unique_id: easun_ssr1
        value_template: "{{ value_json.ssrON1 }}"

binary_sensor:
  - platform: template
    sensors:
      easun_ssr1_on:
        friendly_name: "EaSun SSR1 ON"
        value_template: "{{ states('sensor.easun_ssr1') | int == 1 }}"
        device_class: power

Tipy pro Home Assistant

  • scan_interval: 30 (nebo 10–60 s) — nevolejte každou sekundu, ESP má i jiné úlohy.
  • Po úpravě YAML: Developer Tools → YAML → Check, pak Restart HA.
  • Pro Energy dashboard použijte entity s device_class: power / případně Riemann sum pro Wh.
  • Binary stavy SSR můžete mapovat přes Template binary sensor (viz výše).

5. Rychlý test endpointu

  • Prohlížeč: otevřete http://<IP>/api/status — musí se zobrazit JSON.
  • PowerShell: Invoke-RestMethod http://<IP>/api/status | ConvertTo-Json
  • curl: curl -s http://<IP>/api/status

6. Časté otázky (FAQ)

Jaká je URL měření na ESP32 EaSun?

GET http://<IP_ESP32>/api/status vrací application/json s aktuálními hodnotami z RAM (solarW, loadW, cezW, PWM, teploty, spot…). Cache je no-store.

Jak napojím EaSun ESP32 na Home Assistant?

Použijte integraci RESTful. Do configuration.yaml zadejte resource na /api/status, scan_interval např. 30 s a value_template na klíče JSON — viz kapitola Home Assistant výše.

Obnovuje se hlavní web ESP každých pár sekund?

Ne. Stránka / je snapshot při reloadu. Živá data berte z /api/status.

Vyžaduje /api/status přihlášení?

Ve výchozím firmwaru ne. Endpoint je pro lokální síť — omezte přístup firewallem nebo VLAN.

7. Související dokumentace