Zum Hauptinhalt springen

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​

TranslatorWas er verschiebtHinweise
forward-valueEin kanonisches Feld, benannt in forwardFieldJedes Katalogfeld ist in der Spec dieses Translators deklariert, es wird also jeder kanonische Feldname angenommen. Standard temperature
forward-valuesMehrere Felder auf einmal, aufgeführt in forwardFieldsKommagetrennt, 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-dataDen rohen, nicht decodierten FrameLä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:

  • groupName legt die Werte unter measurements[groupName] ab, eine feste Bezeichnung Ihrer Wahl.
  • groupBySourceName verwendet 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 überschreibt groupName.

Sender und Empfänger teilen diese Form als Vereinbarung, legen Sie sie also einmal fest und halten Sie beide Enden im Gleichschritt.

Parameter​

ParameterZweck
targetIdentifierFieldWelche Kennung das Ziel adressiert: secret, imei, devEui, tag oder serialNumber. Standard secret
targetIdentifierValueDie Kennung des Zielgeräts. Erforderlich, denn ohne sie gibt es keinen Ort, an den Daten gehen könnten
forwardFieldNur forward-value. Das weiterzuleitende kanonische Feld. Standard temperature
forwardFieldsNur 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, groupBySourceNameNur 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.