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

IoT-Datenblöcke

Referenz zu Telemetrie speichern, Attribute speichern, Shared-Attribut setzen, Alarmregeln, Gerätedetails, Neueste Werte, Profildetails, Verwandte Daten und Lesewert speichern.

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.

EinstellungBedeutungStandardWerte
keysNur diese Schlüsseljeder SchlüsselSchlüsselnamen
tsZu welchem Zeitpunkt der Datensatz gespeichert wirdAufzeichnungszeitAufzeichnungszeit (msg.metadata.recordTs), Empfangszeit (msg.metadata.ts)
ts_pathBei Aufzeichnungszeit: Datensatz aus diesem Wert neu datierenkeineein Pfad zu Epochen-Millisekunden (eine Zahl oder numerischer Text)

Ausgänge: out (sobald die Werte übernommen sind), error mit msg.error.code:

CodeBedeutung
not_a_deviceDer Ursprung ist kein Gerät
invalid_valueDie Nutzlast ist kein Objekt
bad_tsDie Zeit unter ts_path sind keine Epochen-Millisekunden
too_oldÄlter als Ihre Organisation Rohdaten aufbewahrt
no_valuesIn der Nutzlast gibt es nichts, das gespeichert werden kann
key_limitKein Platz für einen neuen Schlüssel unter der Schlüsselobergrenze des Tarifs
save_failedDie 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).

EinstellungBedeutungStandardWerte
scopeWelche Attributeclientclient
keysNur diese Schlüsseljeder SchlüsselSchlü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.

EinstellungBedeutungWerte
itemsSchlüssel-Wert-Paareerforderlich; 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_ oder current_fw_ beginnen, sowie session_limits und deleted gehö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.

EinstellungBedeutungStandardWerte
profile_rulesDie Regeln des Profils auswertenonon, off
rulesNur diese Alarmtypenjede RegelRegeltypen 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 mit msg.msgType alarm, dem Alarm in msg.payload und msg.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.

EinstellungBedeutungStandardWerte
fieldsGerätefeldername, profilename, label, type, serial, model, fw_version, status, online, last_activity (Epochen-ms), profile, profile_id, is_gateway, gateway
attributesAttribute: scope, key, Name in der Nachrichtkeinehöchstens 50; scope client, shared oder server
targetWohin das Objekt geschrieben wirdmsg.metadata.deviceein Pfad unter msg.metadata oder msg.payload
with_tsAttribute als { ts, value } schreibenoff
on_missingEin Feld oder Attribut ohne Werterrorerror, 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.

EinstellungBedeutungStandardWerte
keysTelemetrieschlüsselerforderlichhöchstens 50
targetWohinmsg.metadata.latestunter msg.metadata oder msg.payload
with_ts{ ts, value } statt des Wertsoff
on_missingEin Schlüssel ohne gespeicherten Werterrorerror, 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.

EinstellungBedeutungStandardWerte
fieldsProfilfeldernamename, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s
targetWohinmsg.metadata.profileunter msg.metadata oder msg.payload
on_missingEin Feld ohne Werterrorerror, 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.

EinstellungBedeutungStandardWerte
directionBeziehungen vom Ursprung aus oder zu ihm hin verfolgenfromfrom, to
relation_typesVerfolgte BeziehungstypenCONTAINSz. B. CONTAINS, MANAGES, FEEDS, MONITORS oder eigene; none = beliebig
exclude_typesNie verfolgte Typenkeine
depthEbenen11 bis 8
last_level_onlyNur die letzte Ebene behaltenoff
entity_kindWelche Entitätenanyany, asset, device
profiles, kindsNur Geräte dieser Profile, Assets dieser Artenany
maxWie viele Entitäten11 bis 100 (1 schreibt ein Objekt, mehr eine Liste)
dataWas gelesen wirdattributesAttribute, neueste Werte (Geräte), Felder
BereichGeräteattribut-BereichServerServer, shared, Client
ZuordnungGelesene Schlüssel und ihre Namen in der Nachrichterforderlichhöchstens 50
ZielWomsg.metadata.relatedunter msg.metadata oder msg.payload
with_ts, on_missingWie obenoff, 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.

EinstellungBedeutungStandardWerte
kindDer Datensatztyperforderlichein Typ, der Schreibzugriffe aus Flows akzeptiert
entity_pathWo die ID des Datensatzes stehtmsg.originator.idein Pfad zu einer UUID
ts, ts_pathWie bei Telemetrie speichernZeitpunkt des Datensatzes
keysNur diese Schlüsseljeder 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.