Neu: Die KI-Firewall überwacht jedes Modul und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Zahlen, Text und Wahr/Falsch-Werte

Wie jede Art von Wert gespeichert wird, was Diagramme und Aggregate lesen können und wie Zustände und Ereignisse so gespeichert werden, dass ihr Verlauf nutzbar bleibt.

Ein Telemetriewert kann eine Zahl, true/false, Text oder ein JSON-Objekt oder -Array sein. Alle vier werden gespeichert, sind aber später nicht gleich nützlich: Nur Zahlen haben einen darstellbaren Verlauf und Zusammenfassungen. Legen Sie den Typ jedes Schlüssels fest, bevor Ihre Geräte in den Betrieb gehen.

Was jeder Typ Ihnen bietet

TypBeispielLetzter WertRohverlauf (bis zum Rohdatenfenster)Minuten-, Stunden- und TageszusammenfassungenDiagramme über lange Zeiträume
Zahl21.5JaJaJa (Summe, Anzahl, Min, Max, Letzter)Ja
true / falsetrueJa, angezeigt als On / OffGespeichertNeinNein
Text"running"JaGespeichertNeinNein
JSON{"x": 1, "y": 2}JaGespeichertNeinNein

Zahlen, die als Text geschrieben sind ("21.5"), werden als Text gespeichert, nicht als Zahlen. Senden Sie Zahlen als JSON-Zahlen.

Warum Nicht-Zahlen nicht als Diagramm erscheinen

  • Zusammenfassungen sind numerisch. Der Minutenjob addiert, zählt und vergleicht Zahlen. Text, Wahrheitswerte und JSON-Werte haben keine Minuten-, Stunden- oder Tageszusammenfassung.
  • Lange Zeiträume lesen Zusammenfassungen. Ein Diagramm oder API-Abruf über mehr als 24 Stunden liest die Zusammenfassungen, daher hat ein Text- oder Wahrheitswert-Schlüssel dort keine Punkte.
  • Kurze Zeiträume lesen Rohzeilen, aber der Reiter Telemetrie des Geräts und die Liniendiagramme zeichnen nur numerische Punkte; ein nicht numerischer Punkt wird nicht gezeichnet.

Ein Text- oder Wahrheitswert-Schlüssel wird also auf einer Wertkarte (letzter Wert) gut angezeigt, hinterlässt aber eine Lücke in einem Verlauf, und ein increase, Mittelwert oder Anzahl darüber ist leer.

Zustände als Zahlen speichern

Wenn Sie den Verlauf eines Zustands möchten, senden (oder berechnen) Sie eine Zahl:

StattSenden
"door": true / false"door_open": 1 / 0
"state": "running" / "stopped" / "fault""state_code": 1 / 0 / 2, und behalten Sie bei Bedarf "state": "running" zur Anzeige bei
"zone": "Hall B""zone_id": 12
"event": "sos""event_code": 3

Bei Werten 0/1:

  • ist der Mittelwert über eine Stunde der Anteil der Messwerte, die 1 waren (zum Beispiel der Anteil der Messwerte mit laufender Pumpe; bei einem Gerät, das in gleichmäßigem Intervall meldet, ist dies der Anteil der Zeit);
  • das Maximum über einen Tag zeigt, ob es überhaupt vorkam;
  • die Summe eines Schlüssels mit 1 pro Ereignis zählt die Ereignisse.

Benennen Sie die Codes in der Bezeichnung des Gerätprofils und in den Wertzuordnungen Ihres Dashboards, damit die Menschen Wörter statt Zahlen sehen.

Umwandlung in einem Flow

Wenn Sie das Gerät nicht ändern können, wandeln Sie im Root-Flow vor Telemetrie speichern um. Um zum Beispiel door_open aus einem booleschen door hinzuzufügen:

  1. Fügen Sie nach dem Schalter Nachrichtentyp im Telemetrie-Zweig einen Block Change hinzu.
  2. Fügen Sie einen Schritt hinzu: set msg.payload.door_open auf den Ausdruck msg.payload.door ? 1 : 0.
  3. Behalten Sie den ursprünglichen Schlüssel door, oder fügen Sie einen zweiten Schritt delete msg.payload.door hinzu, um nur die Zahl zu speichern.

Für Textzustände verwenden Sie einen Switch auf msg.payload.state mit einer Regel pro Zustand, jeweils gefolgt von einem Change, der msg.payload.state_code setzt;führen Sie dann die Zweige in Telemetrie speichern zusammen. Siehe Abgeleitete Werte.

Wahrheitswerte im Profil

Setzen Sie den Typ des Schlüssels im Gerätprofil auf Ja / Nein. Dashboards zeigen den Wert dann als Kennzeichen an (auf Wertkarten, Schaltern und Statusleuchten). Das ändert, wie der letzte Wert angezeigt wird, nicht wie der Verlauf gespeichert wird.

Textgrenzen

  • Text: bis zu 1.024 Zeichen. Längerer Text lässt den Schlüssel weg (string_too_long).
  • JSON: bis zu 4 KiB als JSON geschrieben (darüber value_too_large).
  • Ein JSON-Wert wird als Ganzes gespeichert. Wenn Sie eines seiner Felder als Verlauf benötigen, speichern Sie dieses Feld als eigenen numerischen Schlüssel, zum Beispiel mit einem Block Change, der msg.payload.pos_x auf msg.payload.position.x setzt.

Positionen

Eine Kartenkarte liest Breiten- und Längengrad aus numerischen Schlüsseln (zum Beispiel lat und lng). Senden Sie sie als Zahlen. Eine Position innerhalb eines JSON-Objekts kann nicht als Diagramm dargestellt oder für die Routenwiedergabe genutzt werden.

Fehlerbehebung

SymptomUrsache und Abhilfe
Eine Wertkarte zeigt einen Wert, das Diagramm meldet No values in this windowDer Schlüssel ist Text oder Wahrheitswert. Speichern Sie eine numerische Kopie.
Ein Schlüssel wird im Reiter Telemetrie als Text angezeigt, obwohl er Zahlen enthältDas Gerät sendet Zahlen als Text ("21.5"). Sie haben keine Zusammenfassungen und können nicht für den Verlauf angehakt werden. Senden Sie JSON-Zahlen oder wandeln Sie mit number(msg.payload.key) in einem Flow um.
Eine Anzahl oder ein Mittelwert von Ereignissen ist immer leerDas Ereignis ist Text. Speichern Sie eine 1 pro Ereignis (oder einen Ereigniscode) als Zahl.

Siehe auch Ein Dashboard zeigt keine Daten.