mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--
 | |
|   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>
 |