Nachgelagerte Systeme, also Python-Relays, Astro-Abrufrouten und Dashboard-Zuordnungen, gehen alle von einer stabilen JSON-Struktur aus. Wer Schlüssel ändert, ohne die Abnehmer anzupassen, zerstört stillschweigend Fühlerbezeichnungen und Verlaufseinträge.
Kanonisches Dokument
{
"temp": {
"0": { "f": 38.2, "c": 3.4, "h": 41.0 },
"1": { "f": 36.8, "c": 2.7, "h": 43.5 },
"avg": { "f": 37.5, "c": 3.1, "h": 42.2 }
}
}
Bedeutung der Felder
- Numerische Schlüssel entsprechen den Fühlerindizes der Firmware und den Zuordnungen im Dashboard.
- f / c: Fahrenheit und Celsius für dieselbe Messung.
- h: Relative Luftfeuchte in Prozent für diesen Fühler.
- avg: Mittelwert nur über funktionierende Fühler; weglassen oder einfrieren, wenn ein Sensor offline ist.
Alternative Formate (automatisch erkannt)
Push-Ingest und Pull-Feeds akzeptieren auch SenML JSON (Array nach RFC 8428 mit den Einheiten Cel / %RH) und Antworten der Home Assistant REST-API (state + attributes.unit_of_measurement), wenn die native Wurzel temp fehlt. Live-Beispiele: SenML, HA REST. Details: Ingest & Webhooks.
Abnehmer
Der Abruf auf der Startseite liest diese Struktur für die öffentlichen Karten. Python-Feeds können dieselben Daten zwischenspeichern. Bezeichnungen ordnest du über die Fühlerzuordnung zu.
Häufige Fragen
Welche JSON-Struktur erwartet ProbeHarbor?
Die Standardform für Pull ist ein temp-Objekt mit Fühlerschlüsseln (f, c, h). Push akzeptiert außerdem flache Schlüssel, sensors[], SenML-JSON-Arrays und REST-Statusobjekte von Home Assistant. Optionale Felder battery_pct und rssi helfen bei der Diagnose schwacher Geräte. Siehe /about/ingest-and-webhooks oder den Beispiel-Feed unter /api/feeds/example?format=document.