Diese Bausteine arbeiten mit den Daten eines Geräts auf dem IoT-Host: Sie speichern Messwerte und Attribute, werten Alarmregeln aus und ergänzen die Nachricht um Gerätedaten. Fast alle benötigen eine Nachricht, deren Ursprung ein Gerät ist: eine Gerätenachricht oder eine Nachricht, die ein Root mit Run flow weitergereicht hat. Nachrichten, die von einem Zeitplan, Inject, Ereignis oder Timer gestartet wurden, betreffen die Organisation, nicht ein Gerät; diese Bausteine lehnen sie mit not_a_device ab.
Telemetrie speichern
Speichert die Schlüssel-Wert-Paare der Nachricht als Telemetrie des Geräts. Nur dieser Baustein speichert Telemetrie: Ein Zweig ohne ihn speichert nichts. Nur msg.payload wird gespeichert, niemals die Metadaten.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| keys | Nur diese Schlüssel | jeder Schlüssel | Schlüsselnamen |
| ts | Zu welchem Zeitpunkt der Datensatz gespeichert wird | Aufzeichnungszeit | Aufzeichnungszeit (msg.metadata.recordTs), Empfangszeit (msg.metadata.ts) |
| ts_path | Bei Aufzeichnungszeit: Datensatz aus diesem Wert neu datieren | keine | ein Pfad zu Epochen-Millisekunden (eine Zahl oder numerischer Text) |
Ausgänge: out (sobald die Werte übernommen sind), error mit msg.error.code:
| Code | Bedeutung |
|---|---|
not_a_device | Der Ursprung ist kein Gerät |
invalid_value | Die Nutzlast ist kein Objekt |
bad_ts | Die Zeit unter ts_path sind keine Epochen-Millisekunden |
too_old | Älter als Ihre Organisation Rohdaten aufbewahrt |
no_values | In der Nutzlast gibt es nichts, das gespeichert werden kann |
key_limit | Kein Platz für einen neuen Schlüssel unter der Schlüsselobergrenze des Tarifs |
save_failed | Die Datenbank hat die Zeile abgelehnt (msg.error.ts ist ihre Zeit) |
- Nachrichten werden in Wellen von bis zu 500 geschrieben, und die nächste Nachricht des Geräts wartet auf die Übernahme, sodass sie liest, was diese gespeichert hat.
- Dieselben Werte zur selben Zeit werden einmal gespeichert; zwei verschiedene Nachrichten zur selben Zeit werden beide behalten; der neueste Wert wechselt nur zu einer strikt neueren Zeit.
- Ist die Datenbank nicht erreichbar, geht nichts verloren: Der Lauf wartet und wird wiederholt, sobald sie wieder verfügbar ist.
- Ein Testlauf speichert nichts.
Siehe How readings are stored und Telemetry keys.
Attribute speichern
Speichert die Schlüssel-Wert-Paare der Nachricht als Client-Attribute des Geräts (was das Gerät über sich selbst meldet, etwa seine Firmware-Version).
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| scope | Welche Attribute | client | client |
| keys | Nur diese Schlüssel | jeder Schlüssel | Schlüsselnamen |
Fehler: not_a_device, invalid_value, save_failed. Eine erneut zugestellte Nachricht ändert nichts; eine ältere Nachricht überschreibt nie einen neueren Wert; ein unveränderter Wert wird nicht erneut geschrieben. Siehe Attributes.
Shared-Attribut setzen
Setzt Shared-Attribute des Geräts der Nachricht. Ein verbundenes Gerät erhält die Änderung sofort; ein offline Gerät bei der nächsten Verbindung. Flows erfahren die Änderung als Nachricht attributes_updated.
| Einstellung | Bedeutung | Werte |
|---|---|---|
| items | Schlüssel-Wert-Paare | erforderlich; höchstens 32. Schlüssel: Buchstaben, Ziffern, _, ., -, höchstens 57 Zeichen. Wert: ein Literal (true, 22.5, {"mode":"eco"}) oder ein Pfad wie msg.payload.setpoint. |
Fehler: not_a_device, device_not_found, invalid_value, bad_attribute, too_large, managed_by_settings (ein cfg.*-Schlüssel eines Geräts, dessen Einstellungen auf seiner Registerkarte Settings verwaltet werden), limit (das Gerät hatte in der letzten Minute zu viele Befehle und Einstellungen aus Flows; Standard 30).
- Steuerungsebene: Das Bereitstellen erfordert Deploy flows with control-level nodes und den eingegebenen Namen des Flows.
- Schlüssel, die mit
_,fw_odercurrent_fw_beginnen, sowiesession_limitsunddeletedgehören zur Plattform und können nicht gesetzt werden. - Eine verspätete Nachricht ändert nichts. Ein Testlauf zeigt an, was gesetzt würde.
Alarmregeln
Wertet die Alarmregeln des Geräteprofils aus und öffnet, aktualisiert oder löscht die Alarme des Geräts. Die Regeln werden im Geräteprofil bearbeitet; dieser Baustein bestimmt, wo im Flow sie laufen. Der Standard-Root hat ihn direkt nach dem Eingang.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| profile_rules | Die Regeln des Profils auswerten | on | on, off |
| rules | Nur diese Alarmtypen | jede Regel | Regeltypen des Profils |
Ausgänge:
out: die Nachricht, immer, nach der Auswertung (ein Problem wird protokolliert und stoppt die Nachricht nie, sodass die Speicherbausteine danach trotzdem laufen).created,updated,cleared: eine Kopie der Nachricht mitmsg.msgTypealarm, dem Alarm inmsg.payloadundmsg.metadata.alarm(transition,isNew,isSeverityUpdated,isCleared,repeats,durationMs,ruleId).
Telemetrie wird gegen die Regeln ausgewertet, die einen ihrer Schlüssel lesen; connect, disconnect, activity und inactivity steuern die Offline-Regel. Verspätete oder nicht chronologische Messwerte werden als Nachtrag ausgewertet (Verlauf mit Backfilled markiert, niemand benachrichtigt). Entfernen Sie den Baustein, stoppen die Alarmregeln für die Geräte dieses Roots; setzen Sie ihn wieder ein, laufen sie weiter. Siehe Alarm rules on device profiles.
Gerätedetails
Ergänzt die Nachricht um Angaben und Attribute des Geräts der Nachricht.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| fields | Gerätefelder | name, profile | name, label, type, serial, model, fw_version, status, online, last_activity (Epochen-ms), profile, profile_id, is_gateway, gateway |
| attributes | Attribute: scope, key, Name in der Nachricht | keine | höchstens 50; scope client, shared oder server |
| target | Wohin das Objekt geschrieben wird | msg.metadata.device | ein Pfad unter msg.metadata oder msg.payload |
| with_ts | Attribute als { ts, value } schreiben | off | |
| on_missing | Ein Feld oder Attribut ohne Wert | error | error, skip, null |
Beispielergebnis: { "name": "Boiler 1", "profile": "Boilers", "online": true, "setpoint": 21 }. gateway ist { id, name, online } für ein Gerät hinter einem Gateway. Details werden 30 Sekunden zwischengespeichert; Attribute werden frisch gelesen. Fehler: missing (mit msg.error.keys), not_a_device, not_found, invalid_value, read_failed.
Neueste Werte
Ergänzt die gespeicherten neuesten Werte ausgewählter Schlüssel des Geräts.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| keys | Telemetrieschlüssel | erforderlich | höchstens 50 |
| target | Wohin | msg.metadata.latest | unter msg.metadata oder msg.payload |
| with_ts | { ts, value } statt des Werts | off | |
| on_missing | Ein Schlüssel ohne gespeicherten Wert | error | error, skip, null |
Ein Wert der gerade verarbeiteten Nachricht wird erst berücksichtigt, nachdem sein Baustein Telemetrie speichern gelaufen ist.
Profildetails
Ergänzt Angaben zum Profil des Geräts.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| fields | Profilfelder | name | name, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s |
| target | Wohin | msg.metadata.profile | unter msg.metadata oder msg.payload |
| on_missing | Ein Feld ohne Wert | error | error, skip, null |
Verwandte Daten
Ergänzt Daten von Assets und Geräten, die mit dem Gerät oder Asset der Nachricht verbunden sind: der Standort, an dem ein Gerät platziert ist, die Geräte, die ein Asset verwaltet, ein Vorfahr drei Ebenen höher.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| direction | Beziehungen vom Ursprung aus oder zu ihm hin verfolgen | from | from, to |
| relation_types | Verfolgte Beziehungstypen | CONTAINS | z. B. CONTAINS, MANAGES, FEEDS, MONITORS oder eigene; none = beliebig |
| exclude_types | Nie verfolgte Typen | keine | |
| depth | Ebenen | 1 | 1 bis 8 |
| last_level_only | Nur die letzte Ebene behalten | off | |
| entity_kind | Welche Entitäten | any | any, asset, device |
| profiles, kinds | Nur Geräte dieser Profile, Assets dieser Arten | any | |
| max | Wie viele Entitäten | 1 | 1 bis 100 (1 schreibt ein Objekt, mehr eine Liste) |
| data | Was gelesen wird | attributes | Attribute, neueste Werte (Geräte), Felder |
| Bereich | Geräteattribut-Bereich | Server | Server, shared, Client |
| Zuordnung | Gelesene Schlüssel und ihre Namen in der Nachricht | erforderlich | höchstens 50 |
| Ziel | Wo | msg.metadata.related | unter msg.metadata oder msg.payload |
| with_ts, on_missing | Wie oben | off, error |
Die Asset-Hierarchie und Gerätezuordnungen zählen als CONTAINS-Beziehungen: Richtung to, CONTAINS, Tiefe 3, nur letzte Ebene; assets findet den Standort eines Geräts drei Ebenen darüber. Die Reihenfolge ist festgelegt, daher wählt max 1 bei jedem Durchlauf dieselbe Entität aus. Siehe Asset-Hierarchie.
Lesewert speichern (General-Host)
Speichert Schlüssel-Wert-Paare als Lesewert eines Datensatztyps, der Schreibzugriffe aus Flows akzeptiert (zum Beispiel Asset-Zähler, sofern Ihr Tarif sie enthält). Gerätedaten werden hier nie gespeichert.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| kind | Der Datensatztyp | erforderlich | ein Typ, der Schreibzugriffe aus Flows akzeptiert |
| entity_path | Wo die ID des Datensatzes steht | msg.originator.id | ein Pfad zu einer UUID |
| ts, ts_path | Wie bei Telemetrie speichern | Zeitpunkt des Datensatzes | |
| keys | Nur diese Schlüssel | jeder Schlüssel |
Fehler: invalid_value, invalid_entity, unknown_kind, kind_not_writable, entity_not_writable, bad_ts, save_failed.
Wo Metadaten enden
Werte, die unter msg.metadata geschrieben werden, werden nie gespeichert; Werte unter msg.payload werden durch einen späteren Telemetrie speichern-Block gespeichert. Ergänzungen gehören unter msg.metadata, sofern Sie sie nicht speichern möchten.

