MeshMeteo espone un'API REST leggera per interrogare lo stato della rete e scaricare lo storico dei sensori. Tutti gli endpoint restituiscono oggetti in formato JSON.
Recupera la lista in tempo reale di tutti i nodi Meshtastic attivi con l'ultima lettura dei sensori ambientali ed i dati di telemetria di rete.
Esempio Richiesta (cURL)
curl -X GET http://localhost:3001/api/nodes
Esempio Risposta (JSON)
{
"nodes": [
{
"id": "!1a2b3c4d",
"sender": "!1a2b3c4d",
"name": "Monte Grappa Ch0",
"longName": "Monte Grappa",
"shortName": "GRAP",
"hwModel": 9,
"channel": 0,
"hopStart": 3,
"hopsAway": 0,
"timestamp": 1718400000,
"lat": 45.875,
"lng": 11.798,
"altitude": 1775,
"payload": {
"temperature": 18.5,
"relative_humidity": 62.4,
"barometric_pressure": 1011.2,
"iaq": 25,
"battery_level": 98,
"voltage": 4.15
}
}
],
"mqttConnected": true
}
Ottiene lo storico delle letture per un nodo specifico. Supporta parametri opzionali di query.
Parametri Query:
hours: Limite temporale in ore (default: 24).
limit: Numero massimo di record restituiti (default: 2000).
Esempio Richiesta (cURL)
curl -X GET http://localhost:3001/api/nodes/%211a2b3c4d/history?hours=12
Esempio Risposta (JSON)
{
"nodeId": "!1a2b3c4d",
"hours": 12,
"count": 1,
"history": [
{
"timestamp": 1718400000,
"temperature": 18.5,
"humidity": 62.4,
"pressure": 1011.2,
"iaq": 25,
"battery_level": 98,
"voltage": 4.15
}
]
}
Recupera le statistiche generali del database (numero record totali, nodi totali e dimensione file DB sqlite).
Esempio Richiesta (cURL)
curl -X GET http://localhost:3001/api/stats
Esempio Risposta (JSON)
{
"totalReadings": 148209,
"nodeCount": 14,
"oldestReading": 1715800000,
"newestReading": 1718400000,
"dbSizeMB": "18.42",
"mqttMessages": 154800,
"mqttConnected": true
}
Stato di integrità del servizio backend e conteggio dei messaggi ricevuti.
Esempio Richiesta (cURL)
curl -X GET http://localhost:3001/api/health
Esempio Risposta (JSON)
{
"status": "ok",
"uptime": 24890.15,
"mqtt": "connected",
"messages": 154800
}