JSON-Schema der Fühlerausgabe

Stabile JSON-Schlüssel, Temperatureinheiten, Feuchtefelder und Mittelwertberechnung für alle Dashboard-Nutzer der Daten.

Nahaufnahme weißer Cat-5e-Ethernet-Kabel mit RJ45-Steckern
Das Fühler-JSON verlässt das LAN meist über Ethernet oder ein nahes Relay, nicht direkt übers öffentliche Internet. Foto: DiscDepotDundee.co.uk. CC BY-SA 4.0

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.