node-red
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
<!--
|
||||
Copyright JS Foundation and other contributors, http://js.foundation
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<script type="text/html" data-help-name="split">
|
||||
<p>Aufteilung einer Nachricht in Nachrichtensequenzen.</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">object | string | array | buffer</span></dt>
|
||||
<dd>Das Node-Verhalten wird durch den <code>msg.payload</code>-Typ bestimmt:
|
||||
<ul>
|
||||
<li><b>Zeichenfolge (string) / Binärer Puffer (buffer)</b>: Die Nachricht wird anhand des vorgegebenen Zeichens (Standard: <code>\n</code>),
|
||||
der Buffer-Sequenz oder in feste Längen aufgeteilt</li>
|
||||
<li><b>Datenfeld (array)</b>: Die Nachricht wird entweder in einzelne Array-Elemente oder Arrays mit fester Länge aufgeteilt</li>
|
||||
<li><b>Objekt (object)</b>: Jedes Schlüssel/Wert-Paar wird einzeln als Nachricht gesendet</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<h3>Ausgangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>parts <span class="property-type">object</span></dt>
|
||||
<dd>Diese Eigenschaft enthält Informationen darüber, wie die Nachricht von der ursprünglichen Nachricht abgeteilt wurde.
|
||||
Bei Übergabe an ein join-Node kann die Sequenz wieder zu einer einzigen Nachricht zusammengeführt werden.
|
||||
Diese Eigenschaft hat die folgenden Eigenschaften:
|
||||
<ul>
|
||||
<li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
|
||||
<li><code>index</code>: Position innerhalb der Gruppe</li>
|
||||
<li><code>count</code>: Gesamtzahl der Nachrichten in der Gruppe (sofern bekannt). Siehe dazu unten <i>Streaming-Modus</i>.</li>
|
||||
<li><code>type</code>: Nachrichtentyp string/array/object/buffer</li>
|
||||
<li><code>ch</code>: Die für das Aufteilen der String- oder Buffer-Nachricht verwendeten Daten, entweder als String oder als Byte-Array.</li>
|
||||
<li><code>key</code>: Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde (nur bei einem Objekt).
|
||||
Optional kann dieser Wert auch in andere Nachrichteneigenschaft kopiert werden, wie z.B. <code>msg.topic</code>.</li>
|
||||
<li><code>len</code>: Nachrichtenlänge bei Aufteilung in feste Längen</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Dieser Node macht es einfach, einen Flow zu erstellen, der gemeinsame Aktionen über eine Sequenz von Nachrichten ausführt,
|
||||
bevor die Sequenz mittels join-Node wieder zu einer einzigen Nachricht neu kombiniert wird.</p>
|
||||
<p>Der Node verwendet die <code>msg.parts</code>-Eigenschaft, um die einzelnen Sequenzteile nachzuverfolgen.</p>
|
||||
<h4><b>Streaming-Modus</b></h4>
|
||||
<p>Der Node kann auch zum Aufbereiten eines Nachrichtenstroms verwendet werden.
|
||||
So kann beispielsweise ein serielles Gerät, das <code>newline</code>-terminierte Befehle sendet,
|
||||
eine Nachricht mit einem noch unvollständigen Befehl am Ende liefern.
|
||||
Im Streaming-Modus teilt der Node die Nachricht in komplette Befehlsegmente auf.
|
||||
Befindet sich am Nachrichtenende ein unvollständiges Befehlsegment,
|
||||
so wird es im Node aufbewahrt und der nächsten empfangenen Nachricht vorangestellt.</p>
|
||||
<p>In diesem Modus wird die <code>msg.parts.count</code>-Eigenschaft nicht gesetzt,
|
||||
da die Anzahl der zu erwartenden Nachrichten im Stream unbekannt ist.
|
||||
Das bedeutet, dass ein nachfolgender join-Node nicht im Automatikmodus verwendet werden kann.</p>
|
||||
</script>
|
||||
|
||||
<script type="text/html" data-help-name="join">
|
||||
<p>Verbindung von Nachrichtensequenzen zu einer einzigen Nachricht.</p>
|
||||
<p>Es sind drei Modi verfügbar:</p>
|
||||
<dl>
|
||||
<dt>Automatisch</dt>
|
||||
<dd>In Kombination mit dem split-Node verbindet es automatisch die Nachrichten, um die zuvor durchgeführte Aufteilung rückgängig zu machen.</dd>
|
||||
<dt>Manuell</dt>
|
||||
<dd>Die Nachrichtensequenzen können auf verschiedene Weisen verbunden werden.</dd>
|
||||
<dt>Sequenz reduzieren</dt>
|
||||
<dd>Einen Ausdruck auf alle Nachrichten einer Sequenz anwenden, um sie auf eine einzige Nachricht zu reduzieren.</dd>
|
||||
</dl>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt class="optional">parts <span class="property-type">object</span></dt>
|
||||
<dd>Zur automatischen Verbindung einer Nachrichtensequenz sollten alle über diese Eigenschaft verfügen.
|
||||
Der split-Node erzeugt diese Eigenschaft, sie kann aber auch manuell erstellt werden.
|
||||
Sie hat die folgenden Eigenschaften:
|
||||
<ul>
|
||||
<li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
|
||||
<li><code>index</code>: Position innerhalb der Gruppe</li>
|
||||
<li><code>count</code>: Gesamtzahl der Nachrichten in der Gruppe (sofern bekannt). Siehe dazu unten "Streaming-Modus".</li>
|
||||
<li><code>type</code>: Nachrichtentyp string/array/object/buffer</li>
|
||||
<li><code>ch</code>: Die für das Aufteilen der String- oder Buffer-Nachricht verwendeten Daten, entweder als String oder als Byte-Array.</li>
|
||||
<li><code>key</code>: Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde (nur bei einem Objekt).
|
||||
Optional kann dieser Wert auch in andere Nachrichteneigenschaft kopiert werden, wie z.B. <code>msg.topic</code>.</li>
|
||||
<li><code>len</code>: Nachrichtenlänge bei Aufteilung in feste Längen</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt class="optional">complete</dt>
|
||||
<dd>Wenn gesetzt, werden die Nutzdaten (Payload) hinzugefügt und die Ausgangsnachricht im aktuellen Zustand gesendet.</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
|
||||
<h4><b>Automatischer Modus</b></h4>
|
||||
<p>Der automatische Modus verwendet die <code>parts</code>-Eigenschaften der eingehenden Nachrichten,
|
||||
um die Sequenz in richtiger Reihenfolge zu verknüpften.
|
||||
Dies ermöglicht die Aufteilung des split-Nodes automatisch rückgängig zu machen.</p>
|
||||
|
||||
<h4><b>Manueller Modus</b></h4>
|
||||
<p>Im manuellen Modus werden Nachrichtensequenzen auf verschiedenen Arten zusammengefügt:</p>
|
||||
<ul>
|
||||
<li><b>String</b> oder <b>Buffer</b>: Verbinden der ausgewählten Eigenschaft jeder Nachricht
|
||||
mit den vorgegebenen Join-Zeichen oder -Buffer</li>
|
||||
<li><b>Array</b>: Erstellung eines Ausgangsarrays durch Hinzufügen jeder ausgewählten Eigenschaft oder ganzer Nachrichten</li>
|
||||
<li><b>Schlüssel/Wert-Objekt</b>: Erzeugung von Schlüssel und Wert aus Eigenschaft jeder Nachricht</li>
|
||||
<li><b>Zusammengeführtes Objekt</b>: Erzeugung durch Zusammenführen der Eigenschaften jeder Nachricht als ein einziges Objekt</li>
|
||||
</ul>
|
||||
<p>Die anderen Eigenschaften der Ausgangsnachricht werden von der zuletzt empfangenen Nachricht übernommen,
|
||||
bevor das Ergebnis gesendet wird.</p>
|
||||
<p>Mit <i>Anzahl</i> kann vorgegeben werden, wie viele Nachrichten vor dem Erzeugen der Ausgangsnadchricht empfangen werden sollen.
|
||||
Bei Objektausgaben kann der Node nach Erreichen dieser Anzahl so eingestellt werden,
|
||||
dass er bei jeder nachfolgenden empfangenen Nachricht eine weitere Nachricht sendet.</p>
|
||||
<p>Mittels <i>Zeitablauf</i> kann das Senden einer neuen Nachricht mit dem Inhalt ausgelöst werden, was bisher empfangen wurde.</p>
|
||||
<p>Wenn eine Nachricht mit der <code>msg.complete</code>-Eigenschaft empfangen wird,
|
||||
wird die Ausgangsnachricht finalisiert und gesendet.
|
||||
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
|
||||
<p>Wenn eine Nachricht mit der <code>msg.reset</code>-Eigenschaft empfangen wird,
|
||||
wird die unvollständige Nachricht gelöscht und nicht gesendet.
|
||||
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
|
||||
|
||||
<h4><b>Modus Sequenz reduzieren</b></h4>
|
||||
<p>In diesem Modus wird auf jede Nachricht einer Sequenz ein Ausdruck angewendet und
|
||||
das Ergebnis zu einer einzigen Nachricht akkumuliert.</p>
|
||||
<dl class="message-properties">
|
||||
<dt>Anfangswert</dt>
|
||||
<dd>Anfangswert des akkumulierten Wertes (<code>$A</code>).</dd>
|
||||
<dt>Reduktions-Ausdruck</dt>
|
||||
<dd>JSONata-Ausdruck, der für jede Nachricht in der Sequenz aufgerufen wird.
|
||||
Das Ergebnis wird als akkumulierter Wert an den nächsten Aufruf des Ausdrucks übergeben.
|
||||
Im Ausdruck können folgende spezielle Variablen verwendet werden:
|
||||
<ul>
|
||||
<li><code>$A</code>: Akkumulierter Wert</li>
|
||||
<li><code>$I</code>: Index der Nachricht innerhalb der Sequenz</li>
|
||||
<li><code>$N</code>: Anzahl der Nachrichten der Sequenz</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Fix-up-Ausdruck</dt>
|
||||
<dd>Optionaler JSONata-Ausdruck, der nach Anwendung des Reduktions-Ausdrucks auf alle Nachrichten in der Sequenz angewendet wird.
|
||||
Im Ausdruck können folgende spezielle Variablen verwendet werden:
|
||||
<ul>
|
||||
<li><code>$A</code>: Akkumulierter Wert</li>
|
||||
<li><code>$N</code>: Anzahl der Nachrichten der Sequenz</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<p>Standardmäßig wird der Reduktions-Ausdruck in Reihenfolge von der ersten bis zur letzten Nachricht der Sequenz angewendet.
|
||||
Er kann optional in umgekehrter Reihenfolge angewendet werden.</p>
|
||||
</dl>
|
||||
<p><b>Beispiel</b>: Die folgenden Einstellungen berechnen bei einer Sequenz von Zahlenwerten den Mittelwert:
|
||||
<ul>
|
||||
<li><b>Reduktions-Ausdruck</b>: <code>$A+payload</code></li>
|
||||
<li><b>Anfangswert</b>: <code>0</code></li>
|
||||
<li><b>Fix-up-Ausdruck</b>: <code>$A/$N</code></li>
|
||||
</ul>
|
||||
</p>
|
||||
<h4><b>Speichern von Nachrichten</b></h4>
|
||||
<p>Dieser Node puffert Nachrichten intern, um sequenzübergreifend zu arbeiten.
|
||||
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
|
||||
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,45 @@
|
||||
<!--
|
||||
Copyright JS Foundation and other contributors, http://js.foundation
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<script type="text/html" data-help-name="sort">
|
||||
<p>Sortierung einer Nachrichteneigenschaft oder einer Nachrichtensequenz.</p>
|
||||
<p>Der Node sortiert entweder das Array der vorgegebenen Nachrichteneigenschaft oder
|
||||
die Reihenfolge einer Nachrichtensequenz neu.</p>
|
||||
<p>Die Sortierreihenfolge kann sein:</p>
|
||||
<ul>
|
||||
<li><b>aufsteigend</b> oder</li>
|
||||
<li><b>absteigend</b></li>
|
||||
</ul>
|
||||
<p>Für Zahlenwerte kann die numerische Sortierreihenfolge festgelegt werden.</p>
|
||||
<p>Der Sortierschlüssel kann ein Elementwert oder ein JSONata-Ausdruck beim Sortieren einer Nachrichteneigenschaft
|
||||
bzw. eine Nachrichteneigenschaft oder ein JSONata-Ausdruck beim Sortieren einer Nachrichtensequenz sein.<p>
|
||||
<p>Zum Sortieren einer Nachrichtensequenz benötigt der sort-Node die gesetzte <code>msg.parts</code>-Eigenschaft bei den empfangenen Nachrichten.
|
||||
Diese Eigenschaft wird vom split-Node erzeugt und kann aber auch manuell erzeugt werden.
|
||||
Sie hat die folgenden Eigenschaften:</p>
|
||||
<p>
|
||||
<ul>
|
||||
<li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
|
||||
<li><code>index</code>: Position innerhalb der Gruppe</li>
|
||||
<li><code>count</code>: Gesamtzahl der Nachrichten in der Gruppe</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p><b>Hinweis</b>: Dieser Node speichert intern Nachrichten um seine Aufgabe erfüllen zu können.
|
||||
Um einen unerwarteten Speicherverbrauch zu vermeiden, kann die Anzahl der gespeicherten Nachrichten begrenzt werden.
|
||||
Standardmäßig ist die Nachrichtenanzahl nicht begrenzt.
|
||||
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
|
||||
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
|
||||
</p>
|
||||
</script>
|
||||
@@ -0,0 +1,44 @@
|
||||
<!--
|
||||
Copyright JS Foundation and other contributors, http://js.foundation
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<script type="text/html" data-help-name="batch">
|
||||
<p>Erstellung von Nachrichtensequenzen nach verschiedenen Regeln.</p>
|
||||
<h3>Details</h3>
|
||||
<p>Es gibt drei Modi für die Erstellung von Nachrichtensequenzen:</p>
|
||||
<dl>
|
||||
<dt>Gruppierung anhand Nachrichtenanzahl</dt>
|
||||
<dd>Die Nachrichten werden zu Sequenzen einer vorgegebenen Länge gruppiert.
|
||||
Die Option <i>Überlappung</i> gibt an, wie viele Nachrichten vom Ende einer Sequenz
|
||||
am Anfang der nächsten Sequenz wiederholt werden sollen.</dd>
|
||||
|
||||
<dt>Gruppierung anhand Zeitintervall</dt>
|
||||
<dd>Gruppierung von Nachrichten, die innerhalb des vorgegebenen Intervalls eingehen.
|
||||
Wenn keine Nachrichten innerhalb des Intervalls eingehen, kann der Node optional eine leere Nachricht senden.</dd>
|
||||
|
||||
<dt>Verknüpfung von Sequenzen</dt>
|
||||
<dd>Erzeugt eine Nachrichtensequenz durch die Verkettung eingehender Sequenzen.
|
||||
Jede Nachricht muss eine <code>msg.topic</code>- und eine <code>msg.parts</code>-Eigenschaft haben,
|
||||
damit die Sequenz identifiziert werden kann.
|
||||
Der Node wird mit einer Liste von <code>topic</code>-Werten eingestellt,
|
||||
mit der die Verknüpfungs-Reihenfolge der Sequenzen definiert wird.</dd>
|
||||
|
||||
</dl>
|
||||
<h4><b>Speichern der Nachrichten</b></h4>
|
||||
<p>Dieser Node puffert Nachrichten intern, um sequenzübergreifend arbeiten zu können.
|
||||
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
|
||||
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
|
||||
<p>Wenn eine Nachricht mit gesetzter <code>msg.reset</code>-Eigenschaft empfangen wurde, wird die zwischengespeicherte Nachricht gelöscht und nicht gesendet.</p>
|
||||
</script>
|
||||
Reference in New Issue
Block a user