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 |
|---|---|
username | Az MQTT konfigurációban megadott felhasználónév |
client_id | Az eszköz egyedi azonosítója (a MAC-ből származtatott) |
os_version | A telepített firmware verziója |
local_ip | Az eszköz IP-címe a saját hálózatodon |
Mérő által szolgáltatott metaadatok
| Mező | Jelentés |
|---|---|
timestamp | A telegram időbélyege (YYMMDDhhmmssX formátum – S=nyári, W=téli idő) |
time_hm | Egyszerűsített óra-perc formátum: "HHMM" (pl. "1127") |
current_tariff | Aktuális tarifa (pl. "0001" vagy "0002") |
meter_serial_number | Az okosmérő gyártási száma |
cosem_logical_device_name | COSEM logikai eszköznév |
circuit_breaker_status | A 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_total | Eddig összesen vásárolt energia |
active_import_energy_tariff_1..4 | Tarifánkénti bontás (T1 általában nappal, T2 éjjel) |
active_export_energy_total | Eddig összesen visszatáplált energia |
active_export_energy_tariff_1..4 | Tarifánkénti visszatáplálás |
reactive_import_energy | Meddő import (kVArh) |
reactive_export_energy | Meddő export (kVArh) |
reactive_energy_qi..qiv | Kvadránsonkénti meddő energia |
total_active_energy | Teljes aktív energia |
Pillanatnyi teljesítmények (kW)
| Mező | Jelentés |
|---|---|
instantaneous_power_import | Pillanatnyi fogyasztás (hálózatból) |
instantaneous_power_export | Pillanatnyi visszatáplálás (napelem) |
instantaneous_power_import_l1/l2/l3 | Fázisonkénti import |
instantaneous_power_export_l1/l2/l3 | Fázisonkénti export |
instantaneous_reactive_power_qi..qiv | Pillanatnyi meddő teljesítmény kvadránsonként |
Fázis mérések
| Mező | Jelentés |
|---|---|
voltage_phase_l1/l2/l3 | Fázisfeszültség (V) |
current_phase_l1/l2/l3 | Mérő által adott áramerősség (A) |
current_phase_Bl1/Bl2/Bl3 | Finomított áramerősség – teljesítményből és PF-ből számolt, tizedespontos érték |
current_limit_l1/l2/l3 | Fázisonkénti áramhatár (ha van beállítva) |
power_factor | Teljes teljesítménytényező |
power_factor_l1/l2/l3 | Fázisonkénti PF |
frequency | Hálózati frekvencia (Hz) |
Egyéb mezők
| Mező | Jelentés |
|---|---|
current_stock_price | Aktuális magyar áramtőzsdei ár (Ft/kWh), ha elérhető (lásd Áramtőzsde) |
rules_global_enabled | Be 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