JSON API

Az ADA P1 Meter a legkönnyebben feldolgozható formátumban – JSON-ben – is szolgáltatja a mérési adatokat. Ez az ajánlott végpont egyedi integrációkhoz (Home Assistant, Node-RED, saját scriptek, dashboardok).

Végpont

GET http://okosvillanyora.local:8989/json

Vagy közvetlen IP-vel:

GET http://192.168.x.x:8989/json

Frissítési gyakoriság

A JSON 10 másodpercenként frissül – az okosmérő által küldött új telegram alapján. Minden lekérdezés a legfrissebb értékeket adja vissza.

CORS

A végpont Access-Control-Allow-Origin: * fejlécet küld, így a böngészős JavaScriptből közvetlenül hívható.

Példaválasz

{
  "username": "te@example.com",
  "client_id": "ABC123DEF456",
  "os_version": "2.0.4",
  "local_ip": "192.168.1.50",
  "timestamp": "250329112720W",
  "time_hm": "1127",
  "current_tariff": "0002",
  "current_stock_price": "42.15",
  "rules_global_enabled": true,
  "meter_serial_number": "440252420024796",
  "cosem_logical_device_name": "AUX1020320024796",
  "circuit_breaker_status": "ON",
  "limiter_threshold": "",

  "active_import_energy_total": "12345.678",
  "active_import_energy_tariff_1": "7890.123",
  "active_import_energy_tariff_2": "4455.555",
  "active_export_energy_total": "345.678",
  "active_export_energy_tariff_1": "200.000",
  "active_export_energy_tariff_2": "145.678",
  "total_active_energy": "12345.678",

  "instantaneous_power_import": "1.234",
  "instantaneous_power_export": "0.000",
  "instantaneous_power_import_l1": "0.432",
  "instantaneous_power_import_l2": "0.401",
  "instantaneous_power_import_l3": "0.401",
  "instantaneous_power_export_l1": "0.000",
  "instantaneous_power_export_l2": "0.000",
  "instantaneous_power_export_l3": "0.000",

  "voltage_phase_l1": "231.1",
  "voltage_phase_l2": "230.8",
  "voltage_phase_l3": "231.0",
  "current_phase_l1": "1.9",
  "current_phase_l2": "1.7",
  "current_phase_l3": "1.7",
  "current_phase_Bl1": "1.875",
  "current_phase_Bl2": "1.738",
  "current_phase_Bl3": "1.737",

  "power_factor": "",
  "power_factor_l1": "0.95",
  "power_factor_l2": "0.93",
  "power_factor_l3": "0.94",
  "frequency": "50.0",

  "plugins": {
    "temp_kitchen": { "value": "23.4" },
    "shelly_plug": { "value": "on" }
  }
}

Mezőhivatkozás

Azonosító adatok

MezőJelentés
usernameAz MQTT konfigurációban megadott felhasználónév
client_idAz eszköz egyedi azonosítója (a MAC-ből származtatott)
os_versionA telepített firmware verziója
local_ipAz eszköz IP-címe a saját hálózatodon

Mérő által szolgáltatott metaadatok

MezőJelentés
timestampA telegram időbélyege (YYMMDDhhmmssX formátum – S=nyári, W=téli idő)
time_hmEgyszerűsített óra-perc formátum: "HHMM" (pl. "1127")
current_tariffAktuális tarifa (pl. "0001" vagy "0002")
meter_serial_numberAz okosmérő gyártási száma
cosem_logical_device_nameCOSEM logikai eszköznév
circuit_breaker_statusA kismegszakító állapota (ON / OFF)
limiter_thresholdÁrambetartási érték (ha van beállítva)

Energia kumulált értékek (kWh)

MezőJelentés
active_import_energy_totalEddig összesen vásárolt energia
active_import_energy_tariff_1..4Tarifánkénti bontás (T1 általában nappal, T2 éjjel)
active_export_energy_totalEddig összesen visszatáplált energia
active_export_energy_tariff_1..4Tarifánkénti visszatáplálás
reactive_import_energyMeddő import (kVArh)
reactive_export_energyMeddő export (kVArh)
reactive_energy_qi..qivKvadránsonkénti meddő energia
total_active_energyTeljes aktív energia

Pillanatnyi teljesítmények (kW)

MezőJelentés
instantaneous_power_importPillanatnyi fogyasztás (hálózatból)
instantaneous_power_exportPillanatnyi visszatáplálás (napelem)
instantaneous_power_import_l1/l2/l3Fázisonkénti import
instantaneous_power_export_l1/l2/l3Fázisonkénti export
instantaneous_reactive_power_qi..qivPillanatnyi meddő teljesítmény kvadránsonként

Fázis mérések

MezőJelentés
voltage_phase_l1/l2/l3Fázisfeszültség (V)
current_phase_l1/l2/l3Mérő által adott áramerősség (A)
current_phase_Bl1/Bl2/Bl3Finomított áramerősség – teljesítményből és PF-ből számolt, tizedespontos érték
current_limit_l1/l2/l3Fázisonkénti áramhatár (ha van beállítva)
power_factorTeljes teljesítménytényező
power_factor_l1/l2/l3Fázisonkénti PF
frequencyHálózati frekvencia (Hz)

Egyéb mezők

MezőJelentés
current_stock_priceAktuális magyar áramtőzsdei ár (Ft/kWh), ha elérhető (lásd Áramtőzsde)
rules_global_enabledBe van-e kapcsolva a szabálymotor (true/false)

Gáz és víz (MBus)

Ha az okosmérőhöz MBus-on keresztül gáz- vagy vízóra is csatlakozik, ezek a plugins objektumban jelennek meg:

"plugins": {
  "GAS_total_01":    { "value": "4321.987" },
  "GAS_timestamp_01": { "value": "250329110000W" },
  "GAS_serial_01":    { "value": "G00123456" },
  "GAS_valve_01":     { "value": "01" },
  "WATER_total_02":   { "value": "1234.567" }
}

Plugin objektum

A plugins bármilyen kulcs–érték párt tartalmazhat, amit külső eszközök írtak be a Write API-n keresztül. Például egy hőmérő, egy Shelly Plug S, vagy egy Tasmota flashelt kapcsoló mérési adatai.

"plugins": {
  "temp_kitchen":      { "value": "23.4" },
  "humidity_kitchen":  { "value": "58" },
  "boiler_power":      { "value": "2100" },
  "pv_inverter_daily": { "value": "18.4" }
}

Ezekre a szabályrendszerben is tudsz hivatkozni: plugins.temp_kitchen.value > 25.

Teljes példa – Python

import requests

resp = requests.get("http://okosvillanyora.local:8989/json", timeout=5)
data = resp.json()

import_kw = float(data["instantaneous_power_import"])
export_kw = float(data["instantaneous_power_export"])

print(f"Pillanatnyi fogyasztás: {import_kw:.2f} kW")
print(f"Pillanatnyi termelés: {export_kw:.2f} kW")
print(f"Áram ára most: {data.get('current_stock_price', 'n/a')} Ft/kWh")

# Ha van csatlakoztatott hőmérő
if "temp_kitchen" in data.get("plugins", {}):
    print("Konyha:", data["plugins"]["temp_kitchen"]["value"], "°C")

Teljes példa – Node.js

const fetch = require('node-fetch');

async function read() {
  const res = await fetch('http://okosvillanyora.local:8989/json');
  const data = await res.json();

  const power = parseFloat(data.instantaneous_power_import) -
                parseFloat(data.instantaneous_power_export);
  console.log(`Net: ${power.toFixed(2)} kW`);
}

setInterval(read, 10_000);

Teljes példa – curl

curl -s http://okosvillanyora.local:8989/json | jq .instantaneous_power_import