Translatoren zur Datenweiterleitung
Ein Translator zur Datenweiterleitung verschiebt Daten von dem Gerät, auf dem er läuft, auf ein
anderes Gerät in Yggio. Der Wert wird über additionalDeviceUpdates auf das Ziel geschrieben, statt
lokal gespeichert zu werden, sodass der Messwert des einen Geräts auf einem anderen erscheinen kann.
Das Gerät muss Schreibrechte auf das Ziel haben. Die Adressierung erfolgt über eine Kennung:
secret, imei, devEui, tag oder serialNumber, gewählt mit targetIdentifierField und
angegeben in targetIdentifierValue.
Warum Daten überhaupt weiterleiten
Zwei ganz verschiedene Probleme, beide gelöst, indem Daten seitwärts verschoben werden.
Ein Gerät bauen, das es nicht gibt. Manche Berechnungen brauchen Eingangsgrößen mehrerer Sensoren gleichzeitig. Die Energieeffizienz eines Gebäudes braucht Energie von einem Zähler, über Räume gemittelte Innentemperatur und eine Außentemperatur von ganz woanders. Kein einzelnes Gerät meldet das alles. Die Weiterleitung sammelt die Werte auf einem gemeinsamen Knoten, und der Analyse- oder Berechnungs-Translator läuft dann dort, auf einem Gerät, das aus einer ganzen Installation zusammengesetzt ist statt aus einem Sensor.
Konnektivität von Inhalt trennen. Wer das Netz betreibt, muss sehen, dass ein Gerät online ist
und liefert. Das ist nicht dasselbe wie die Erlaubnis zu lesen, was es gesendet hat. Sind die Daten
medizinisch, darf das Betriebsteam sie nicht sehen. forward-encoded-data trennt beides: Der rohe
Frame kommt auf einem Knoten an, den der Betreiber überwachen kann, wird an den eigenen Knoten des
Endnutzers übergeben, um dort decodiert zu werden, und danach an der Quelle entfernt, wo er nicht
wiederhergestellt werden kann.
Die Translatoren
| Translator | Was er verschiebt | Hinweise |
|---|---|---|
forward-value | Ein kanonisches Feld, benannt in forwardField | Jedes Katalogfeld ist in der Spec dieses Translators deklariert, es wird also jeder kanonische Feldname angenommen. Standard temperature |
forward-values | Mehrere Felder auf einmal, aufgeführt in forwardFields | Kommagetrennt, und jeder Eintrag darf Quelle:Ziel lauten, um beim Eintreffen umzubenennen, zum Beispiel temperature,relativeHumidity:rh. Die Werte landen in einem einzigen measurements-Objekt, und genau das lässt nicht-kanonische und gerätespezifische Namen durch |
forward-encoded-data | Den rohen, nicht decodierten Frame | Läuft als Haupt-Translator auf dem Quellknoten, nicht verkettet: Er decodiert nicht, er leitet die Payload weiter und löscht sie. Der eigentliche Decoder des Geräts liegt auf dem empfangenden Knoten |
forward-value und forward-values sind verkettet, laufen auf dem eigenen Translator des Geräts auf
und lesen Felder, die dieser bereits decodiert hat.
Weitergeleitete Werte gruppieren
Wenn mehrere Geräte auf einen gemeinsamen Knoten weiterleiten, muss der Empfänger sie unterscheiden
können. forward-values kann einen Satz unter einem Schlüssel verschachteln:
groupNamelegt die Werte untermeasurements[groupName]ab, eine feste Bezeichnung Ihrer Wahl.groupBySourceNameverwendet stattdessen den Namen des sendenden Geräts, sodass ein Translator auf dem Empfänger erkennen kann, welcher Knoten was gesendet hat, und jeden entsprechend behandelt. Es überschreibtgroupName.
Sender und Empfänger teilen diese Form als Vereinbarung, legen Sie sie also einmal fest und halten Sie beide Enden im Gleichschritt.
Parameter
| Parameter | Zweck |
|---|---|
targetIdentifierField | Welche Kennung das Ziel adressiert: secret, imei, devEui, tag oder serialNumber. Standard secret |
targetIdentifierValue | Die Kennung des Zielgeräts. Erforderlich, denn ohne sie gibt es keinen Ort, an den Daten gehen könnten |
forwardField | Nur forward-value. Das weiterzuleitende kanonische Feld. Standard temperature |
forwardFields | Nur forward-values. Kommagetrennte Liste, jeder Eintrag Quelle oder Quelle:Ziel. Translator-Parameter unterstützen noch keine Arrays, deshalb ist es eine Liste in einer Zeichenkette |
groupName, groupBySourceName | Nur forward-values. Den Satz unter einem festen Schlüssel oder unter dem Namen des sendenden Geräts verschachteln |
Alle drei setzen errorMessage, wenn das Ziel nicht konfiguriert ist oder es nichts weiterzuleiten
gibt.
Verkettung
Die Weiterleitung ist normalerweise der letzte Schritt auf dem sendenden Gerät und die erste Eingangsgröße einer Kette auf dem empfangenden:
Sensoren → forward-values → gemeinsamer Knoten →
analytics-building-energy-efficiency →
set-alarm-custom
Die Sensoren steuern ihre Messwerte bei, der gemeinsame Knoten berechnet die Kennzahl, die kein einzelnes Gerät liefern könnte, und der Alarm am Ende meldet darüber wie über jedes andere Feld.
Das vollständige A–Z-Verzeichnis aller Translatoren finden Sie in der Translator-Übersicht.