BGEN

API за Home Assistant и други програми

Данните от твоята система – инвертори, батерии, клетки, мрежа и консумация – в JSON формат, за Home Assistant, Node-RED или твои програми. API-то е само за четене: през него не могат да се променят настройки.

Локално API – в домашната мрежа, директно от устройството, без интернет. Безплатно. Идва с нов софтуер на устройството.

Облачно API – през нашия сървър, работи отвсякъде. Включва се при поръчка или от „Моите устройства“ → „API“, където се създава и ключът.

Достъп

Всяка заявка трябва да носи твоя API ключ в заглавието Authorization: Bearer sm_… (или X-API-Key: sm_…). Ключът виждаш целия само веднъж, когато го създадеш – пази го като парола. Ако изтече, изтрий го от профила и създай нов.

Ограничения: до 12 заявки в минута на ключ и до 30 заявки за история в час. Данните „сега“ се обновяват около веднъж в минута, така че за Home Assistant 30–60 секунди интервал е напълно достатъчен.

Адреси

АдресКакво връща
GET /api/v1/devicesТвоите устройства и до кога е активно облачното API
GET /api/v1/devices/{№}/nowСега: панели, товар, мрежа, батерии (W), добив днес, напрежения, заряд
GET /api/v1/devices/{№}/invertersВсеки инвертор с всички стойности, които чете устройството
GET /api/v1/devices/{№}/batteriesВсяка батерия: заряд, напрежение, ток, мощност, температури, всяка клетка
GET /api/v1/devices/{№}/history?metric=pv&hours=24История: pv, load, grid или battery за 6, 24, 72 или 168 часа

{№} е номерът на устройството, напр. 28848597D10C. Мощностите са във ватове: grid_power_w > 0 значи купуваш от мрежата, battery_power_w > 0 значи батериите се зареждат.

Пример

curl -H "Authorization: Bearer sm_ТВОЯТ_КЛЮЧ" https://solarmonitor.pro/api/v1/devices/28848597D10C/now
{
  "device": "28848597D10C",
  "updated": "2026-10-03T20:45:12+03:00",
  "pv_power_w": 12840,
  "load_power_w": 7470,
  "grid_power_w": -420,
  "battery_power_w": 4950,
  "pv_today_kwh": 61.3,
  "battery_soc": 78,
  "battery_voltage_v": 52.91
}

Home Assistant

Добави в configuration.yaml (ключът е в secrets.yaml като solarmonitor_key: "Bearer sm_…") и рестартирай Home Assistant:

rest:
  - resource: https://solarmonitor.pro/api/v1/devices/28848597D10C/now
    headers:
      Authorization: !secret solarmonitor_key
    scan_interval: 60
    sensor:
      - name: "Solar PV мощност"
        value_template: "{{ value_json.pv_power_w }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
      - name: "Solar товар"
        value_template: "{{ value_json.load_power_w }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
      - name: "Solar мрежа"
        value_template: "{{ value_json.grid_power_w }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
      - name: "Solar батерии мощност"
        value_template: "{{ value_json.battery_power_w }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
      - name: "Solar заряд на батериите"
        value_template: "{{ value_json.battery_soc }}"
        unit_of_measurement: "%"
        device_class: battery
      - name: "Solar добив днес"
        value_template: "{{ value_json.pv_today_kwh }}"
        unit_of_measurement: "kWh"
        device_class: energy
        state_class: total_increasing

Грешки

КодЗначение
401Липсва или е грешен API ключ
402Облачното API не е активно или е изтекло – поднови го от профила
404Няма такова устройство в профила ти или такъв адрес
429Твърде много заявки – изчакай (виж заглавието Retry-After)