node-red
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<!--
|
||||
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="function">
|
||||
<p>JavaScript-Funktion zur Weiterverarbeitung eingehender Nachrichten.</p>
|
||||
<p>Die empfangenen Nachrichten werden der Funktion als JavaScript-Objekt mit dem Namen <code>msg</code> übergeben.</p>
|
||||
<p>Per Konvention enthält die <code>msg.payload</code>-Eigenschaft die eigentliche Nachricht.</p>
|
||||
<p>Von der Funktion wird erwartet, dass sie ein (oder mehrere) Nachrichtenobjekt(e) zurückgibt.
|
||||
Es kann aber auch nichts zurückgeben werden, um einen Flow zu stoppen.</p>
|
||||
<p>In den <b>Start</b>-Tab kann Code eingetragen werden, der beim Node-Start ausgeführt wird.
|
||||
In den <b>Stopp</b>-Tab kann Code eingetragen werden, der beim Node-Stopp ausgeführt wird.</p>
|
||||
<p>Wenn ein promise-Objekt aus dem Start-Code zurückgegeben wird,
|
||||
beginnt danach die reguläre Verarbeitung der Eingangsnachrichten.</p>
|
||||
<h3>Details</h3>
|
||||
<p>Siehe <a target="_blank" href="https://nodered.org/docs/writing-functions.html">Onlinedokumentation</a>
|
||||
für weitere Informationen zum Schreiben von Funktionen.</p>
|
||||
<h4><b>Nachrichten senden</b></h4>
|
||||
<p>Die Funktion kann die Nachrichten zurückgeben, die sie an die nächsten Nodes im Flow weitergeben möchte,
|
||||
oder kann <code>node.send(msg)</code> aufrufen.</p>
|
||||
<p>Es kann folgendes zurückgeben/senden werden:</p>
|
||||
<ul>
|
||||
<li>Ein einzelnes Nachrichtenobjekt, das an Nodes am ersten Ausgang übergeben wird</li>
|
||||
<li>Ein Array von Nachrichtenobjekten, die an die Nodes an den entsprechenden Ausgängen übergeben werden</li>
|
||||
</ul>
|
||||
<p><b>Hinweis</b>: Der Start-Code wird nur während der Initialisierung des Nodes ausgeführt.
|
||||
Wenn <code>node.send</code> im Start-Code aufgerufen wird, können nachfolgende Nodes die Nachricht möglicherweise nicht empfangen.</p>
|
||||
<p>Wenn ein Element des Arrays selbst ein Array von Nachrichten ist, werden mehrere Nachrichten an den entsprechenden Ausgang gesendet.</p>
|
||||
<p>Wenn null zurückgegeben wird, entweder direkt oder als ein Array-Element, wird keine Nachricht weitergegeben.</p>
|
||||
<h4><b>Protokollierung und Fehlerbehandlung</b></h4>
|
||||
<p>Um alle Informationen zu protokollieren oder einen Fehler zu melden, sind die folgenden Funktionen verfügbar:</p>
|
||||
<ul>
|
||||
<li><code>node.log("Protokollnachricht")</code></li>
|
||||
<li><code>node.warn("Warnmeldungstext")</code></li>
|
||||
<li><code>node.error("Fehlermeldungstext")</code></li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>Der catch-Node kann auch zur Bearbeitung von Fehlern verwendet werden.
|
||||
Er wird aufgerufen, indem <code>msg</code> als zweites Argument an <code>node.error</code> übergeben wird:</p>
|
||||
<pre>node.error("Fehlermeldungstext" ,msg);</pre>
|
||||
<h4><b>Zugriff auf Node-Informationen</b></h4>
|
||||
<p>Im Funktionsblock können die ID und der Name des Nodes mit den folgenden Eigenschaften referenziert werden:</p>
|
||||
<ul>
|
||||
<li><code>node.id</code> - ID des Nodes</li>
|
||||
<li><code>node.name</code> - Name des Nodes</li>
|
||||
</ul>
|
||||
<h4><b>Umgebungsvariablen verwenden</b></h4>
|
||||
<p>Auf Umgebungsvariablen kann mit <code>env.get("Umgebungsvariablenname")</code> zugegriffen werden.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,47 @@
|
||||
<!--
|
||||
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="switch">
|
||||
<p>Weiterleitung von Nachrichten basierend auf den Werten ihrer Eigenschaften oder Position in der Sequenz.</p>
|
||||
<h3>Details</h3>
|
||||
<p>Bei Eingang einer Nachricht wertet der Node einstellbare Regeln aus und
|
||||
leitet die Nachricht an den entsprechenden Ausgang der erfüllten Regel weiter.</p>
|
||||
<p>Optional kann der Node so eingestellt werden, dass er die Auswertung nach der ersten erfüllten Regel beendet.</p>
|
||||
<p>Die Regeln können anhand einer einzelnen Nachrichteneigenschaft, einer Flow- oder globalen Kontext-Eigenschaft oder
|
||||
anhand dem Ergebnis eines JSONata-Ausdrucks ausgewertet werden.</p>
|
||||
<h4><b>Regeln</b></h4>
|
||||
<p>Es gibt vier Regeltypen:</p>
|
||||
<ol>
|
||||
<li><b>value rules</b>: Regeln werden hinsichtlich einer eingestellten Eigenschaft ausgewertet</li>
|
||||
<li><b>sequence rules</b>: Regeln beziehen sich auf Nachrichtensequenzen,
|
||||
wie sie beispielsweise durch den split-Node erzeugt werden</li>
|
||||
<li>Ein <b>JSONata-Ausdruck</b> kann die gesamte Eingangsnachricht auswerten und einen <code>true</code>-Wert zurückliefern,
|
||||
um eine Regelerfüllung zu signalisieren</li>
|
||||
<li>Die <b>ansonsten</b>-Regel wird angewendet, wenn keine vorhergehende Regel übereinstimmt</li>
|
||||
</ol>
|
||||
<h4><b>Bemerkungen</b></h4>
|
||||
<p>Die Regeln <code>ist true/false</code> und <code>ist null</code> führen strenge Vergleiche mit diesen Typen durch.
|
||||
Sie konvertieren nicht zwischen den Typen.</p>
|
||||
<p>Die Regeln <code>ist leer</code> und <code>ist nicht leer</code> können nur für Zeichenfolgen (string), Datenfelder (array) und binäre Puffer (buffer) benutzt werden,
|
||||
sowie für Objekte, bei denen auf die Anzahl der Eigenschaften geprüft wird.
|
||||
Die Regel ist niemals erfült, wenn die Eigenschaft einen <code>boolean</code>-, <code>null</code>- oder <code>undefined</code>-Wert hat.
|
||||
<h4><b>Behandlung von Nachrichtensequenzen</b></h4>
|
||||
<p>Standardmäßig ändert der Node nicht die <code>msg.parts</code>-Eigenschaft für Nachrichten, die Teil einer Sequenz sind.</p>
|
||||
<p>Bei aktivierter Option <b>Nachrichtensequenzen erzeugen</b> werden Nachrichtensequenzen für jede passende Regel erzeugt.
|
||||
In diesem Modus puffert der Node die gesamte eingehende Sequenz, bevor er die neuen Sequenzen weiter sendet.
|
||||
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
|
||||
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,38 @@
|
||||
<!--
|
||||
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="change">
|
||||
<p>Setzen, Ändern, Löschen oder Verschieben von Eigenschaften einer Nachricht, eines Flow- oder eines globalen Kontextes.</p>
|
||||
<p>Im Node können mehrere Regeln definiert werden, die in vorgegebener Reihenfolge abgearbeitet werden.</p>
|
||||
<h3>Details</h3>
|
||||
<p>Die verfügbaren Operationen sind:</p>
|
||||
<dl class="message-properties">
|
||||
<dt>Setze</dt>
|
||||
<dd>Setzen einer Eigenschaft.
|
||||
Der Wert kann eine Vielzahl von verschiedenen Typen sein oder
|
||||
von einer bestehenden Nachricht- oder einer Kontext-Eigenschaft übernommen werden.</dd>
|
||||
<dt>Ändere</dt>
|
||||
<dd>Suchen und Ersetzen von Teilen einer Eigenschaft.
|
||||
Wenn reguläre Ausdrücke verwendet werden, kann auch durch sogenannte Capture Groups ersetzt werden, z.B. <code>$1</code>.
|
||||
Beim Ersetzen wird der Typ nur geändert, wenn eine vollständige Übereinstimmung vorliegt.</dd>
|
||||
<dt>Lösche</dt>
|
||||
<dd>Löschen einer Eigenschaft.</dd>
|
||||
<dt>Verschiebe</dt>
|
||||
<dd>Verschieben oder umbenennen einer Eigenschaft.</dd>
|
||||
</dl>
|
||||
<!-- <p>Der Typ "expression" verwendet die Abfrage- und Ausdruckssprache <a href="http://jsonata.org/" target="_new">JSONata</a>.</p> -->
|
||||
<!-- was ist mit "expression" gemeint?!? vermutlich nicht mehr aktuell -->
|
||||
</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="range">
|
||||
<p>Umskalierung eines Zahlenwertes auf einen anderen Wertebereich.</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">number</span></dt>
|
||||
<dd>Der Payload <i>muss</i> eine Zahl sein.
|
||||
Alles andere wird versucht als Zahl interpretiert zu werden und bei Fehlschlag abgelehnt.</dd>
|
||||
</dl>
|
||||
<h3>Ausgangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">number</span></dt>
|
||||
<dd>Der auf den neuen Wertebereich umgerechnete Zahlenwert.</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Dieser Node skaliert den empfangenen Wert linear.
|
||||
Standardmäßig ist das Ergebnis nicht auf Ausgangswertebereich beschränkt.</p>
|
||||
<p><i>Skalierung und Begrenzung</i> bedeutet,
|
||||
dass das Ergebnis niemals außerhalb des Ausgangswertebereich liegt.</p>
|
||||
<p><i>Skalieren und Begrenzung mit Überlauf</i> bedeutet,
|
||||
dass das Ergebnis in den Ausgangswertebereich <i>über- bzw. umlaufend gepackt</i> wird.</p>
|
||||
<p>Beispiel einer Skalierung vom Eingangswerterbereich 0-10 auf Ausgangswertebereich 0-100:</p>
|
||||
<table style="outline-width:#888 solid thin">
|
||||
<tr><th width="260px">Modus</th><th width="110px">Eingangswert</th><th width="110px">Ausgangswert</th></tr>
|
||||
<tr><td><center>Skalieren</center></td><td><center>12</center></td><td><center>120</center></td></tr>
|
||||
<tr><td><center>Skalieren und begrenzen</center></td><td><center>12</center></td><td><center>100</center></td></tr>
|
||||
<tr><td><center>Skalieren und begrenzen mit Überlauf</center></td><td><center>12</center></td><td><center>20</center></td></tr>
|
||||
</table>
|
||||
</script>
|
||||
@@ -0,0 +1,57 @@
|
||||
<!--
|
||||
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="template">
|
||||
<p>Festlegen einer Eigenschaft anhand einer Vorlage (template).</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>msg <span class="property-type">object</span></dt>
|
||||
<dd>msg-Objekt mit Informationen zum Befüllen der Vorlage.</dd>
|
||||
<dt class="optional">template <span class="property-type">string</span></dt>
|
||||
<dd>Mit msg.payload zu befüllende Vorlage.
|
||||
Falls nicht im Editorfenster angegeben, kann die Vorlage auch als Eigenschaft von msg vorgegeben werden.</dd>
|
||||
</dl>
|
||||
<h3>Ausgangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>msg <span class="property-type">object</span></dt>
|
||||
<dd>Nachricht auf Basis der Vorlage und gefüllt mit Eigenschaften aus der eingehenden Nachricht.</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Die Vorlage verwendet standardmäßig das
|
||||
<a href="http://mustache.github.io/mustache.5.html" target="_blank">Mustache</a>-Format,
|
||||
was aber bei Bedarf ausgeschaltet werden kann.</p>
|
||||
<p>Beispiel: Wenn die Vorlage</p>
|
||||
<pre>Hallo {{payload.name}}. Heute ist {{date}}</pre>
|
||||
<p>die Nachricht</p>
|
||||
<pre>
|
||||
{
|
||||
date: "Montag",
|
||||
payload: {
|
||||
name: "Fred"
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
<p>empfängt, wird die resultierende Ausgangsnachricht wie folgt sein:</p>
|
||||
<pre>Hallo Fred. Heute ist Montag</pre>
|
||||
<p>Es ist möglich, eine Eigenschaft aus dem Flowkontext oder dem globalen Kontext zu verwenden,
|
||||
indem <code>{{flow.name}}</code> oder <code>{{global.name}}</code> verwendet wird.
|
||||
Oder für den persistenten Speicher <code>store</code> kann <code>{{flow[store].name}}</code> oder
|
||||
<code>{{global[store].name}}</code> verwendet werden.
|
||||
<p><b>Hinweis</b>: Standardmäßig werden bei <i>Mustache</i> sog. <i>Escaper</i>
|
||||
bei allen nicht-numerischen und HTML-Entitäten erzeugt.
|
||||
Z.B. <code>&</code> wird durch <code>&amp;</code> ersetzt.
|
||||
Um dies zu verhindern, müssen <code>{{{dreifache}}}</code> Klammern verwendet werden.
|
||||
</script>
|
||||
@@ -0,0 +1,55 @@
|
||||
<!--
|
||||
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="delay">
|
||||
<p>Verzögerung von Nachrichten oder Begrenzung ihrer Durchlaufrate.</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt class="optional">delay <span class="property-type">number</span></dt>
|
||||
<dd>Legt die Verzögerung in Millisekunden fest, die auf die Nachricht angewendet werden soll.
|
||||
Zur Nutzung dieser Option muss <i>Verzög. mit msg.delay überschreibbar</i> aktiviert sein.</dd>
|
||||
<dt class="optional">rate <span class="property-type">number</span></dt>
|
||||
<dd>Setzt die Verzögerung in Millisekunden zwischen den Nachrichten. Diese Node überschreibt die
|
||||
bestehende Verzögerung die in der Node konfiguration, wenn die empfangende Nachricht <code>msg.rate</code>
|
||||
in Millisekunden enthält. Dies trifft nur zu, wenn in der Node konfiguriert ist, das empfangene
|
||||
Nachrichten den konfigurierten Wert überschreiben können.</dd>
|
||||
<dt class="optional">reset</dt>
|
||||
<dd>Wenn bei der empfangenen Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist,
|
||||
werden alle im Node gepufferten Nachrichten gelöscht.</dd>
|
||||
<dt class="optional">flush</dt>
|
||||
<dd>Wenn bei der empfangenen Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist,
|
||||
werden alle im Node gepufferten Nachrichten sofort gesendet.</dd>
|
||||
<dt class="optional">flush</dt>
|
||||
<dd>Wenn bei der empfangenen Nachricht diese Eigenschaft auf einen numerischen Wert gesetzt ist,
|
||||
wird diese Anzahl an Nachrichten sofort gesendet. Wenn ein anderer Typ gesetzt ist (z.B. Boolean),
|
||||
werden alle in der Node gepufferten Nachrichten gesendet.</dd>
|
||||
<dt class="optional">toFront</dt>
|
||||
<dd>Wenn diese Eigenschaft im Ratenbegrenzungsmodus für die empfangene Nachricht auf den booleschen Wert
|
||||
<code>true</code> gesetzt ist, Anschließend wird die Nachricht an den Anfang der Warteschlange verschoben
|
||||
und als nächstes freigegeben. Dies kann in Kombination mit <code>msg.flush=1</code> verwendet werden, um sofort erneut zu senden.
|
||||
</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Wenn Verzögerung als Nachrichtenaktion eingestellt ist, kann die Verzögerungszeit ein fixer Wert,
|
||||
ein Zufallswert innerhalb eines Bereichs oder ein für jede Nachricht dynamisch vorgebbarer Wert handeln.</p>
|
||||
<p>Bei Begrenzung auf Nachrichtenrate werden die Nachrichten über den eingestellten Zeitraum verteilt.
|
||||
Der Status zeigt die Anzahl der sich aktuell in der Warteschlange befindlichen Nachrichten an.
|
||||
Zwischenzeitlich eintreffende Nachrichten können optional beim Eintreffen verworfen werden.</p>
|
||||
<p>Die Ratenbegrenzung kann auf alle Nachrichten angewendet werden oder
|
||||
die Nachrichten werden anhand des <code>msg.topic</code>-Wertes gruppiert.
|
||||
Bei der Gruppierung werden zwischenzeitlich eintreffende Nachrichten automatisch gelöscht.
|
||||
In jedem Zeitintervall werden die neuesten Nachricht entweder für alle oder
|
||||
für das nächste Thema (Topic) in der Reihe gesendet.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,50 @@
|
||||
<!--
|
||||
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="trigger">
|
||||
<p>Senden einer und optional einer weiteren verzögerten Nachricht bei Auslösung (Trigger),
|
||||
sofern der Trigger nicht verlängert oder zurückgesetzt wird.</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt class="optional">delay <span class="property-type">number</span></dt>
|
||||
<dd>Legt die Verzögerung in Millisekunden fest, die auf die Nachricht angewendet werden soll.
|
||||
Zur Nutzung dieser Funktion muss die Option <i>Verzögerung mit msg.delay überschreibbar</i> aktiviert sein.</dd>
|
||||
<dt class="optional">reset</dt>
|
||||
<dd>Bei Empfang einer Nachricht mit dieser Eigenschaft wird jede Verzögerung oder Wiederholung
|
||||
rückgesetzt und keine weitere Nachricht gesendet.</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Dieser Node kann verwendet werden, um ein Zeitlimit in einem Flow zu erstellen.
|
||||
Bei Empfang einer Nachricht wird standardmäßig eine Nachricht mit einem <code>payload</code> von <code>1</code> versendet.
|
||||
Optional wird nach einer einstellbaren Wartezeit (standardmäßig 250 ms) eine zweite Nachricht
|
||||
mit einem <code>payload</code> von <code>0</code> sendet.
|
||||
Dies kann beispielsweise zum Blinken einer LED verwendet werden, die an einen GPIO-Pin des Raspberry Pi angeschlossen ist.</p>
|
||||
<p>Als Nutzdaten (Payload) jeder zu sendenen Nachricht können eine Vielzahl von Werten eingestellt werden inklusive der Option,
|
||||
überhaupt nicht zu senden.
|
||||
Wenn beispielsweise die erste Ausgnagsnachricht auf <i>nichts</i> gesetzt und die Option
|
||||
<i>Verzögerung verlängern bei Eingang neuer Nachrichten</i> aktiviert ist,
|
||||
agiert der Node als Überwachungszeitgeber (Watchdog-Timer).
|
||||
Er sendet hier nur dann eine Nachricht, wenn innerhalb der eingestellten Verzögerungszeit keine Nachricht empfangen wird.</p>
|
||||
<p>Beim Nachrichtentyp <i>Zeichenfolge (string)</i> werden auch <a href="http://mustache.github.io/mustache.5.html" target="_blank">Mustache</a>-Vorlagen unterstützt.</p>
|
||||
<p>Wenn eine Nachricht mit der <code>reset</code> oder <code>payload</code>-Eigenschaft gleich dem konfigurierten Wert empfangen wird,
|
||||
wird eine laufende Verzögerung oder Wiederholung rückgesetzt und keine Nachricht gesendet.</p>
|
||||
<p>Der Node kann auch so eingestellt werden, dass er eine Nachricht normal in den vorgegebenen Intervallen sendet,
|
||||
bis er durch eine empfangene Nachricht rückgesetzt wird.</p>
|
||||
<p>Außerdem kann der Node auch so eingestellt werden, dass er Nachrichten anhand einer einstellbaren <code>msg</code>-Eigenschaft
|
||||
als separate Nachrichtenströme behandelt.</p>
|
||||
<p>Der Status zeigt die Aktivität des Nodes an.
|
||||
Bei Verwendung mehrerer Nachrichtenströme zeigt der Status deren aktuelle Anzahl an.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,89 @@
|
||||
<!--
|
||||
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="exec">
|
||||
<p>Ausführung eines Systembefehls und Rückgabe seiner Ausgabe.</p>
|
||||
<p>Der Node kann so eingestellt werden, dass er entweder bis zum Befehlabschluss wartet (exec) oder
|
||||
die Ausgabe sogleich sendet (spawn), wie der Befehl sie generiert.</p>
|
||||
<p>Der auszuführende Befehl kann im Node eingestellt und/oder
|
||||
über die empfangene Nachricht übergeben werden.</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt class="optional">payload <span class="property-type">string</span></dt>
|
||||
<dd>Wird an auszuführenden Befehl angehängt, sofern im Node aktiviert.</dd>
|
||||
<dt class="optional">kill <span class="property-type">string</span></dt>
|
||||
<dd>Typ des Kill-Signals, das an den zu beendenden exec-Node-Prozess gesendet wird.</dd>
|
||||
<dt class="optional">pid <span class="property-type">number | string</span></dt>
|
||||
<dd>Prozess-ID des zu beendenden exec-Node-Prozesses.</dd>
|
||||
</dl>
|
||||
<h3>Ausgangsdaten</h3>
|
||||
<ol class="node-ports">
|
||||
<li>Standardausgabe (stdout)
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">string</span></dt>
|
||||
<dd>Standardausgabe des Befehls.</dd>
|
||||
</dl>
|
||||
<dl class="message-properties">
|
||||
<dt>rc <span class="property-type">object</span></dt>
|
||||
<dd>Rückgabe-Code-Objekts (auch an Port 3 verfügbar) - nur im exec-Modus verfügbar.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li>Standardfehlerausgabe (stderr)
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">string</span></dt>
|
||||
<dd>Standardfehlerausgabe des Befehls.</dd>
|
||||
</dl>
|
||||
<dl class="message-properties">
|
||||
<dt>rc <span class="property-type">object</span></dt>
|
||||
<dd>Rückgabe-Code-Objekts (auch an Port 3 verfügbar) - nur im exec-Modus verfügbar.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li>Rückgabe-Code
|
||||
<dl class="message-properties">
|
||||
<dt>payload <span class="property-type">object</span></dt>
|
||||
<dd>Objekt mit dem Rückgabe-Code und gegebenenfalls <code>message</code> oder <code>signal</code>-Eigenschaften.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ol>
|
||||
<h3>Details</h3>
|
||||
<p>Standardmäßig wartet der zur Befehlsausführung genutzte Systemaufruf <code>exec</code>,
|
||||
bis die Ausführung abgeschlossen ist, und gibt anschließend dessen Ausgaben zurück.
|
||||
Ein erfolgreich ausgeführter Befehl sollte z.B. den Rückgabe-Code <code>{ code: 0 }</code> haben.</p>
|
||||
<p>Optional kann stattdessen <code>spawn</code> verwendet werden, wodurch die Standardausgabe und Standardfehlerausgabe
|
||||
bereits während der Befehlsausführung in der Regel Zeile für Zeile rückgegeben werden.
|
||||
Nach Befehlsabschluss wird ein Objekt am 3. Port ausgegeben.
|
||||
Ein erfolgreich ausgeführter Befehl sollte z.B. <code>{ code: 0 }</code> zurückgeben.</p>
|
||||
<p>Fehler können zusätzliche Informationen über den dritten Port als <code>msg.payload</code> zurückgeben,
|
||||
z.B. eine <code>message</code>- oder <code>signal</code>-Zeichenfolge.</p>
|
||||
<p>Der auszuführende Befehl wird innerhalb des Nodes mit der Option zum Anhängen von
|
||||
<code>msg.payload</code> und weiteren Parametern definiert.</p>
|
||||
<p>Befehle oder Parameter mit Leerzeichen sollten in Anführungszeichen eingeschlossen werden,
|
||||
z.B. <code>"Dies ist ein einzelner Parameter"</code></p>
|
||||
<p>Die zurückgegebenen Daten (Payload) sind in der Regel eine <i>Zeichenfolge (string)</i>,
|
||||
außer es werden nicht UTF-8-Zeichen wie bei einem <i>binären Puffer (buffer)</i> erkannt.</p>
|
||||
<p>Bei einem aktiven Node werden Status und die PID angezeigt.
|
||||
Änderungen können mittels status-Node gelesen werden.</p>
|
||||
<h4><b>Prozesse beenden</b></h4>
|
||||
<p>Durch Senden von <code>msg.kill</code> wird ein einzelner aktiver Prozess beendet.
|
||||
<code>msg.kill</code> sollte als Zeichenfolge (string) den Signaltyp enthalten,
|
||||
z.B. <code>SIGINT</code>, <code>SIGQUIT</code> oder <code>SIGHUP</code>.
|
||||
Der Standardwert ist <code>SIGTERM</code>, wenn die Zeichenfolge leer ist.</p>
|
||||
<p>Wenn der Node mehr als einen Befehl bzw. Prozess ausführt,
|
||||
muss zusätzlich über <code>msg.pid</code> die PID des zu beendenden Prozesses übergeben werden.</p>
|
||||
<p>Wenn ein <code>Zeitlimit</code> angegeben ist, wird der Prozess automatisch nach Ablauf der Zeit beendet.</p>
|
||||
<p><b>Tipp</b>: Wenn Sie eine Python-App ausführen, müssen Sie möglicherweise den Parameter <code>-u</code> verwenden,
|
||||
um die Ausgabepufferung zu stoppen.</p>
|
||||
</script>
|
||||
@@ -0,0 +1,40 @@
|
||||
<script type="text/html" data-help-name="rbe">
|
||||
<p>Report by Exception (RBE) - Daten-Weiterleitung nur bei Änderung der Nutzdaten (Payload).
|
||||
Der Node kann auch blockieren oder weiterleiten, wenn die Wertänderung eine Grenze überschreitet (Totband- und Nahband-Modus).</p>
|
||||
<h3>Eingangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>payload
|
||||
<span class="property-type">number | string | (object)</span>
|
||||
</dt>
|
||||
<dd>Der RBE-Modus mit Prüfung auf Wertänderung akzeptiert Zahlen (numbers), Zeichenfolgen (string) und einfache Objekte (object).
|
||||
Bei den anderen wertvergleichenden Modies müssen analysierbare (parseable) Zahlenwerte übergeben werden.</dd>
|
||||
<dt class="optional">topic <span class="property-type">string</span>
|
||||
</dt>
|
||||
<dd>Wenn vorgegeben erfolgt die Auswertung separat für jedes Topic</dd>
|
||||
<dt class="optional">reset<span class="property-type">any</span></dt>
|
||||
<dd>Wenn gesetzt wird/werden der/die gespeicherte(n) Wert(e) rückgesetzt</dd>
|
||||
</dl>
|
||||
<h3>Ausgangsdaten</h3>
|
||||
<dl class="message-properties">
|
||||
<dt>payload
|
||||
<span class="property-type">wie Eingangsdaten</span>
|
||||
</dt>
|
||||
<dd>Wenn Bedingung erfüllt, sind die Ausgangsdaten gleich den Eingangsdaten</dd>
|
||||
</dl>
|
||||
<h3>Details</h3>
|
||||
<p>Im <i>RBE</i>-Modus mit Prüfung auf Wertänderung blockiert dieser Node die Datenweitergabe bis
|
||||
<code>msg.payload</code> (oder die eingestellte Eigenschaft) verändert ist gegenüber dessen vorherigen Wert.
|
||||
Wenn benötigt, wird der Anfangswert ignoriert, sodass beim Start nichts gesendet wird.</p>
|
||||
<p>In den <i>Totband</i>-Modies werden die Eingangswerte geblockt,
|
||||
<i>bis</i> die Wertänderung größer oder größer-gleich ist als ± des Bandes um den voherigen Wert.</p>
|
||||
<p>In den <i>Nahband</i>-Modies werden die Eingangswerte geblockt,
|
||||
<i>wenn</i> die Wertänderung größer oder größer-gleich ist als ± des Bandes um den voherigen Wert.
|
||||
Dies ist beispielsweise nützlich, um Ausreißer eines fehlerhaften Sensors zu ignorieren.</p>
|
||||
<p>In den Totband und Nahband-Modies müssen die Eingangswerte analysierbare (parseable) Zahlenwerte sein und
|
||||
beide unterstützen auch % (prozentuale Angabe), d.h. der Node sendet nur, wenn der Eingangswert mehr als x% vom vorherigen Wert abweicht.</p>
|
||||
<p>Die Totband- und Nahband-Modies erlauben den Vergleich entweder gegen den letzten gültigen Ausgangswert,
|
||||
dieses zum Ignorieren von Werten außerhalb des gültigen Bereichs, oder gegen den des vorherigen Eingangswertes,
|
||||
welches den Sollwert rücksetzt, was einen allmähligen Drift (Totband) oder einen eine schrittweise Veränderung (Nahband) ermöglicht.</p>
|
||||
<p><b>Hinweis</b>: Dieser Node arbeitet auf per-<code>msg.topic</code>-Basis.
|
||||
Dies bedeutet, dass ein einzelner rbe-Node mehrere verschiedene Topics parallel bearbeiten kann.</p>
|
||||
</script>
|
||||
Reference in New Issue
Block a user