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
| Typ | Beispiel | Letzter Wert | Rohverlauf (bis zum Rohdatenfenster) | Minuten-, Stunden- und Tageszusammenfassungen | Diagramme über lange Zeiträume |
|---|---|---|---|---|---|
| Zahl | 21.5 | Ja | Ja | Ja (Summe, Anzahl, Min, Max, Letzter) | Ja |
true / false | true | Ja, angezeigt als On / Off | Gespeichert | Nein | Nein |
| Text | "running" | Ja | Gespeichert | Nein | Nein |
| JSON | {"x": 1, "y": 2} | Ja | Gespeichert | Nein | Nein |
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:
| Statt | Senden |
|---|---|
"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:
- Fügen Sie nach dem Schalter Nachrichtentyp im Telemetrie-Zweig einen Block Change hinzu.
- Fügen Sie einen Schritt hinzu: set
msg.payload.door_openauf den Ausdruckmsg.payload.door ? 1 : 0. - Behalten Sie den ursprünglichen Schlüssel
door, oder fügen Sie einen zweiten Schritt deletemsg.payload.doorhinzu, 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_xaufmsg.payload.position.xsetzt.
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
| Symptom | Ursache und Abhilfe |
|---|---|
| Eine Wertkarte zeigt einen Wert, das Diagramm meldet No values in this window | Der 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ält | Das 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 leer | Das Ereignis ist Text. Speichern Sie eine 1 pro Ereignis (oder einen Ereigniscode) als Zahl. |
Siehe auch Ein Dashboard zeigt keine Daten.

