Gerät an FROST veröffentlichen
Dieser Abschnitt beschreibt, wie ein Gerät in ThingsBoard mittels des Thingsboard Frost Adapter zum Frost-Server „veröffentlicht“ wird, welches Datenmodell in ThingsBoard dafür vorausgesetzt wird, und wie sich Änderungen bzw. das Entfernen des Geräts auswirken.
|
Diese Seite setzt voraus, dass für diesen ThingsBoard‑Mandanten bereits eingerichtet ist:
Diese Einrichtung selbst ist nicht Gegenstand dieser Seite. |
Voraussetzungen: Datenmodell in ThingsBoard
Damit ein Gerät korrekt als SensorThings‑API‑Entität (Thing) im FROST‑Server abgebildet werden kann, müssen in ThingsBoard folgende Voraussetzungen erfüllt sein:
| Voraussetzung | Beschreibung |
|---|---|
Geräteprofil (Device Profile) |
Jedes Gerät muss einem Geräteprofil zugeordnet sein. Name und Beschreibung des Profils werden als Sensor in FROST angelegt. Ein Geräteprofil entspricht also einem Sensor; alle Geräte mit demselben Profil teilen sich diesen Sensor. |
Verknüpfung mit einem Standort‑Asset |
Das Gerät muss über eine Relation vom Typ Contains mit einem Asset verbunden sein, wobei die Relation vom Asset zum Gerät zeigt (Asset „Contains“ Gerät). Der Typ dieses Assets muss aktuell zwingend |
|
Das verknüpfte |
Telemetrie‑Schlüssel‑Zuordnung |
Für jeden Telemetrie‑Schlüssel, der als Datastream in FROST erscheinen soll, muss vorab ein passender Eintrag unter Telemetry Keys in der Zuordnungspflege existieren (Zuordnung zu einer Observed Property und einer Default UOM). |
Zusätzlich werden folgende optionale Felder ausgewertet:
| Optionales Feld | Wirkung |
|---|---|
Beschreibung des Geräts (additional_info) |
Wird als Beschreibung des Things in FROST übernommen. Ist keine Beschreibung gepflegt, wird stattdessen der Gerätename verwendet. |
Beschreibung des Standort‑Assets (additional_info) |
Wird als Beschreibung der Location in FROST übernommen. Ist keine Beschreibung gepflegt, wird stattdessen der Asset‑Name verwendet. |
Geräteattribut |
Sollte eine URL zu einem Datenblatt (z. B. als PDF) enthalten und wird als |
Geräteattribut |
Überschreibt für dieses eine Gerät die Default UOM eines Telemetrie‑Schlüssels. Der Wert muss dem |
Alle sonstigen Geräteattribute werden unverändert als properties des Things in FROST übernommen.
Gerät veröffentlichen
Ein Gerät wird veröffentlicht, indem es in ThingsBoard der Entitätsgruppe (Entity Group) publish-to-frost hinzugefügt wird.
-
Öffnen Sie das gewünschte Gerät in ThingsBoard.
-
Fügen Sie es der Entitätsgruppe
publish-to-frosthinzu. -
Die Rule Chain des Adapters setzt daraufhin automatisch das Server‑Attribut
publish_to_frost = trueam Gerät. -
Sobald das nächste Telemetrie‑Datenpaket des Geräts eintrifft, legt der Adapter – sofern noch nicht vorhanden – das Thing, die zugehörige Location, den Sensor sowie je Telemetrie‑Schlüssel einen Datastream in FROST an und beginnt, Observations zu erzeugen.
| Die eigentliche Anlage in FROST erfolgt erst mit der ersten Telemetrie‑Nachricht nach der Aufnahme in die Gruppe, nicht durch das Hinzufügen zur Gruppe selbst. |
Fehler werden als Alarm in ThingsBoard sichtbar
Der Adapter meldet einen Fehler an die Rule Chain zurück, die ihn daraufhin als Alarm auf dem auslösenden Gerät anlegt. Jeder der vier REST‑Knoten hat dafür seinen eigenen Alarmtyp, alle mit der Schwere MAJOR:
| Alarmtyp | Ausgelöst durch |
|---|---|
|
eine Telemetrie‑Nachricht, die nicht exportiert werden konnte |
|
eine Änderung am Gerät, die nicht übertragen werden konnte |
|
ein Gerät, das nicht aus FROST entfernt werden konnte |
|
eine Änderung am Standort‑Asset, die nicht übertragen werden konnte |
Die Alarm‑Details tragen status, statusCode und error — also den Grund, den der Adapter in seiner Antwort genannt hat. Damit lässt sich in aller Regel schon in ThingsBoard erkennen, woran es lag, ohne in die Protokolle des Adapters zu sehen.
Der Alarm entsteht in der Rule Chain, nicht im Adapter. Fehlt in einer von Hand gebauten Rule Chain die Failure‑Verdrahtung eines REST‑Knotens auf seinen Alarmknoten, verschwindet der zugehörige Fehler spurlos.
|
Gerät aus FROST entfernen
Wird das Gerät wieder aus der Entitätsgruppe publish-to-frost entfernt, geschieht Folgendes:
-
Das Server‑Attribut
publish_to_frostwird am Gerät gelöscht. -
Der Adapter löscht das zugehörige Thing vollständig aus dem FROST‑Server – inklusive aller zugehörigen Datastreams und Observations.
| Das Entfernen aus der Gruppe pausiert die Veröffentlichung nicht nur, sondern löscht den kompletten Datenbestand des Geräts in FROST unwiderruflich. Soll die Historie erhalten bleiben, darf das Gerät nicht aus der Gruppe entfernt werden. |
Verhalten bei nachträglichen Änderungen
Solange sich ein Gerät in der Gruppe publish-to-frost befindet, werden Änderungen am Gerät in ThingsBoard (z. B. Attribute, Beschreibung, Zuordnung zu einem anderen Standort‑Asset) automatisch an FROST übertragen: Beschreibung, properties und – falls sich das verknüpfte Standort‑Asset geändert hat – auch die Location des Things werden aktualisiert.
Nicht automatisch aktualisiert werden dagegen bereits angelegte Datastreams bzw. der Sensor. Das bedeutet insbesondere:
-
Eine Änderung des Geräteprofils wirkt sich nicht auf bereits bestehende Datastreams aus.
-
Ein nachträglich gesetztes oder geändertes Attribut
<telemetrie_key>_uomändert die Unit of Measurement eines bereits bestehenden Datastreams nicht rückwirkend.
| Die Unit of Measurement eines bereits bestehenden Datastreams lässt sich unabhängig davon jederzeit manuell über den Eintrag Units of Measurement in der Zuordnungspflege anpassen; eine dort vorgenommene Umbenennung wird automatisch an die betroffenen FROST‑Datastreams übertragen. |
Neu hinzukommende Telemetrie‑Schlüssel eines bereits veröffentlichten Geräts erhalten dagegen ganz normal einen neuen Datastream auf Basis der zu diesem Zeitpunkt gültigen Zuordnungen.
Besonderheiten bei Standort‑Assets (building)
Änderungen an einem building‑Asset (z. B. eine geänderte lat/lon‑Position) werden – anders als bei Geräten – unabhängig von jeder Gruppenzugehörigkeit immer an FROST übertragen.
Eine solche Aktualisierung wirkt sich jedoch nur aus, wenn zu diesem Asset bereits eine Location in FROST existiert. Diese Location wird ausschließlich als Nebeneffekt der Veröffentlichung eines Geräts angelegt, das auf dieses Asset verweist – ein eigenständiges „Veröffentlichen“ eines Standort‑Assets ohne zugehöriges Gerät gibt es nicht.
Daten kommen nicht in FROST an
Die drei häufigsten Ursachen lassen sich allein von ThingsBoard aus unterscheiden:
| Beobachtung | Wahrscheinliche Ursache | Nächster Schritt |
|---|---|---|
Am Gerät steht ein Alarm |
Der Adapter oder der FROST‑Server hat die Nachricht abgelehnt. |
Die Alarm‑Details lesen: |
Kein Alarm, und in FROST steht überhaupt nichts zu diesem Gerät |
Die Nachricht hat den Adapter nie erreicht. |
Prüfen, ob das Gerät in der Gruppe |
Kein Alarm, Thing und Datastreams stehen in FROST, aber ein einzelner Messwert fehlt |
Für diesen Telemetrie‑Schlüssel gibt es keinen Eintrag unter Telemetry Keys. |
Den Schlüssel unter Telemetry Keys anlegen. Der Wert wird bis dahin stillschweigend verworfen — es entsteht weder ein Fehler in ThingsBoard noch ein Alarm, nur ein Debug‑Eintrag im Protokoll des Adapters. |
| Ob in einem Mandanten überhaupt noch Daten ankommen, zeigt die Spalte Connection Status auf der Seite Mandanten: sie nennt nach einem Klick auf Test connection den Zeitpunkt der neuesten Observation in dessen FROST‑Server. |