Un unico endpoint JSON, tutte le piattaforme
Home Assistant riceve la maggior parte dell'attenzione — comprensibile, è la piattaforma domotica più diffusa, e le abbiamo dedicato un'intera guida. Ma il meccanismo reale sottostante è deliberatamente semplice: un unico endpoint HTTP, GET /api.json, nessuna autenticazione, JSON semplice come risposta. Tutto ciò che può fare una richiesta HTTP e analizzare JSON può estrarne i dati della batteria Pylontech. Questo vale per Jeedom, Node-RED, Domoticz, openHAB, Grafana, uno script Python, un cron job con curl — tutti leggono esattamente lo stesso dato, nessuno ha bisogno di un SDK proprietario o di una chiave API.
Jeedom
Jeedom non ha bisogno di un plugin Pylontech dedicato. Installate il plugin standard JSON dallo store Jeedom, puntate un'apparecchiatura a http://<ip-dispositivo>/api.json, e mappate i percorsi JSON sui comandi — summary>soc, summary>voltage, summary>state, net>rssi, e così via. Un intervallo di polling di 30–60 secondi è più che sufficiente; la telemetria della batteria non cambia abbastanza velocemente da richiedere qualcosa di più stretto.
Node-RED
Due opzioni, che rispecchiano quasi esattamente la scelta per Home Assistant. Interrogare con un nodo http request (metodo GET, URL http://<ip-dispositivo>/api.json, tipo di ritorno "a parsed JSON object"), attivato da un nodo inject su un timer, poi leggere campi come msg.payload.summary.soc più avanti nel flusso. Oppure, se MQTT è già configurato sul dispositivo, iscriversi direttamente a pylon-monitor/state con un nodo MQTT-in — gli aggiornamenti arrivano man mano che avvengono, nessun ciclo di polling da gestire.
Domoticz
Domoticz non include nativamente un tipo di sensore per il polling JSON, ma la soluzione standard è ben collaudata: un piccolo script (Python, o lo scripting eventi Lua/Blockly proprio di Domoticz) recupera /api.json con un timer e invia i valori a sensori Dummy/Virtual tramite l'API JSON propria di Domoticz. Richiede qualche minuto di configurazione in più rispetto a Jeedom o Node-RED, ma è un'operazione da fare una sola volta, e i sensori si comportano poi esattamente come qualsiasi altro dispositivo Domoticz — grafici storici completi, notifiche, tutto.
openHAB
L'HTTP Binding di openHAB gestisce questo nativamente: definite un Thing che punta a http://<ip-dispositivo>/api.json con un intervallo di aggiornamento, poi mappate i singoli channel su percorsi JSON tramite una trasformazione (JSONPath) per estrarre summary.soc, summary.voltage, ecc. in Item separati. Nessun binding personalizzato necessario — quello HTTP generico copre tutto.
Grafana, script e qualsiasi altra cosa
Se uno strumento ha una sorgente dati "JSON API" o "HTTP" — il plugin JSON API di Grafana, l'input HTTP di Telegraf, uno script Python con requests, una riga shell con curl | jq — può leggere questo endpoint allo stesso modo. Questo non è deliberatamente un giardino recintato: al dispositivo non importa cosa c'è dall'altra parte della richiesta HTTP, il che significa che non diventa obsoleto il giorno in cui cambiate piattaforma domotica.
Polling vs MQTT: cosa usare e dove
La maggior parte delle piattaforme sopra elencate interroga di default l'API JSON con un timer, il che è semplice e funziona ovunque. Se la vostra piattaforma parla anche MQTT (Node-RED e Home Assistant lo fanno entrambi nativamente), iscriversi a pylon-monitor/state invece fa sì che gli aggiornamenti arrivino nel momento in cui vengono pubblicati anziché attendere il polling successivo — e ottenete anche gratuitamente il topic di disponibilità retained, per sapere immediatamente se il dispositivo stesso è andato offline invece di indovinarlo da un valore non aggiornato. Interrogare ogni 30–60 secondi resta comunque più che sufficiente per tutto ciò che riguarda la batteria — non sono dati che beneficiano di una latenza sotto il secondo.
L'API JSON e i topic MQTT di Pylon-Monitor sono aperti, documentati e indipendenti dalla piattaforma fin dal primo giorno — collegateli a ciò che già usate.
Ordina ora — 39 € Acquisto una tantum, 39 € IVA inclusa — nessun abbonamento.