UNPKG

node-red-contrib-chronos

Version:

Time-based Node-RED scheduling, repeating, queueing, routing, filtering and manipulating nodes

285 lines (279 loc) 14 kB
<!-- Copyright (c) 2020 - 2026 Jens-Uwe Rossbach This code is licensed under the MIT License. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> <script type="text/html" data-help-name="chronos-delay"> <p> Verzögert eintreffende Nachrichten beim Durchlaufen des Knotens für eine konfigurierbare Zeitspanne oder bis eine bestimmte Uhrzeit erreicht ist. </p> <h3>Details</h3> <p> Dieser Knoten puffert alle eintreffenden Nachrichten für eine konfigurierbare (und optional zufällige) Zeitspanne oder bis eine bestimmte Uhrzeit erreicht worden ist. Der Zeitpunkt kann entweder direkt eingegeben oder anhand von Sonnen- oder Mondständen berechnet werden. </p> <p> Sobald die Zeit verstrichen ist oder der Zielzeitpunkt erreicht wurde, werden alle gepufferten Nachrichten an den Ausgabe-Port des Knotens geleitet. </p> <p> Für weitere Informationen bitte die ausführliche Dokumentation im <a href="https://github.com/jensrossbach/node-red-contrib-chronos/wiki/Delay-Until-Node">Repository-Wiki</a> öffnen (nur in Englisch verfügbar). </p> <h3>Konfiguration</h3> <dl> <dt>Name</dt> <dd>Der Name des Knotens (optional).</dd> <dt>Konfiguration</dt> <dd> Ein Verweis auf den zu verwendenden Konfigurationsknoten. </dd> <dt>Verzög.-Art</dt> <dd> Die Art der Verzögerung kann wie folgt festgelegt werden: <ul> <li> <i>Feste Dauer</i>: Die Verzögerung wird als feste Zeitspanne konfiguriert. </li> <li> <i>Zufällige Dauer</i>: Die Verzögerung wird als Zeitspannenbereich konfiguriert, aus dem eine zufällige Dauer gewählt wird. </li> <li> <i>Zeitpunkt</i>: Die Verzögerung wird als Zeitpunkt konfiguriert zu dem diese endet. </li> <li> <i>Benutzerdefiniert</i>: Die Verzögerung wird als benutzerdefinierter JSONata-Ausdruck spezifiziert oder aus einer Kontextvariablen geladen. </li> <li> <i>Unbegrenzt</i>: Die Verzögerung ist unbegenzt und die gepufferten Nachrichten müssen explizit über eine entsprechende Eingangsnachricht weitergeleitet werden. </li> </ul> </dd> <dt>Dauer</dt> <dd> Entweder die feste Zeitspanne in Millisekunden, Sekunden, Minuten, Stunden oder Tagen, nach der gepufferte Nachrichten weitergeleitet werden, oder ein Zeitspannenbereich in Millisekunden, Sekunden, Minuten, Stunden oder Tagen. In letzterem Fall ist die Zeitspanne ein Zufallswert innerhalb dieses Bereichs. Wenn <i>Zufallswert immer in Millisekundenauflösung</i> aktiviert ist, wird der Zufallswert immer Millisekundenauflösung haben, unabhängig von der gewählten Zeiteinheit. Andernfalls richtet sich die Auflösung des Zufallswerts nach der Zeiteinheit. </dd> <dt>Wann</dt> <dd> Der Zielzeitpunkt, zu dem gepufferte Nachrichten weitergeleitet werden sollen. Abhängig von der Auswahl auf der linken Seite gibt es folgende Möglichkeiten: <ul> <li> <i>Uhrzeit</i>: Eine beliebige Uhrzeit kann direkt in der Form <code>hh:mm[:ss] [am|pm]</code> eingegeben werden. </li> <li> <i>Sonnenstand</i>: Der Sonnenstand kann aus einer Liste vorgegebener Werte ausgewählt werden. Wenn mit der Maus über den Button gefahren wird, wird eine Vorschau der Zeit angezeigt. </li> <li> <i>Mondstand</i>: Der Mondstand kann aus einer Liste vorgegebener Werte ausgewählt werden. Wenn mit der Maus über den Button gefahren wird, wird eine Vorschau der Zeit angezeigt. </li> <li> <i>Sonnenstand (benutzerdef.)</i>: Einer der Namen für benutzerdefinierte Sonnenstände kann eingegeben werden. </li> </ul> </dd> <dt>Versatz</dt> <dd> Ein zeitlicher Versatz in Minuten zwischen -300 und +300 kann angegeben werden. Der Versatz wird zur Zielzeit hinzuaddiert oder davon abgezogen. </dd> <dt>Zufälligkeit</dt> <dd> Wird eine Zufälligkeit zwischen 1 und 300 Minuten angegeben, wird der Versatz zufällig aus einem Bereich mit der angegebenen Breite gewählt. Der Versatzwert stellt dabei die Mitte der Zufälligkeitsspanne da. </dd> <dt>Verzögerung</dt> <dd> Wenn <i>JSONata</i> ausgewählt wurde, ein JSONata-Ausdruck, der einen Zeitwert für die Verzögerung zurückgeben muss. Der Zeitwert kann eine Zahl sein, die entweder die Zeitspanne in Millisekunden enthält oder die Anzahl Millisekunden seit Beginn der UNIX-Zeitzählung als absoluten Zeitpunkt zu dem die Verzögerung endet. Letzteres kann auch als Zeichenkette mit Datum und Uhrzeit zurückgegeben werden. Im Fall von <i>Umgebungsvariable</i>, <i>global</i>, <i>flow</i> oder <i>msg</i> wird die Verzögerung aus der angegebenen Umgebungs-/Kontextvariablen bzw. Nachrichteneigenschaft geladen. Siehe Abschnitt <i>Input</i> weiter unten für eine Beschreibung des Variablenformats (Eigenschaften <code>fixedDuration</code>, <code>randomDuration</code> und <code>when</code>). </dd> <dt>Warteschlange begrenzen</dt> <dd> Wenn aktiviert, kann die Nachrichten-Warteschlange auf eine maximale Anzahl zu puffernde Nachrichten begrenzt werden. </dd> <dt>Beim Eintreffen einer Nachricht bei voller Warteschlange</dt> <dd> Gibt an, was passieren soll, wenn eine Nachricht eintrifft und die Nachrichten-Warteschlange bereits die Obergrenze erreicht hat. <ul> <li> <i>Eingehende Nachricht verwerfen</i>: Die eingehende Nachricht wird verworfen. </li> <li> <i>Älteste Nachricht verwerfen</i>: Die älteste Nachricht in der Warteschlange wird verworfen und die eingehende Nachricht wird gepuffert. </li> <li> <i>Älteste Nachricht weiterleiten</i>: Die älteste Nachricht in der Warteschlange wird weitergeleitet und die eingehende Nachricht wird gepuffert. </li> </ul> </dd> <dt>Steuereigenschaften in Nachrichten beibehalten</dt> <dd> Wenn aktiviert, werden Steuereigenschaften, wie unten in Abschnitt <i>Eingabe</i> beschrieben, nicht aus den Eingangsnachrichten gelöscht und sind beim Senden an den Ausgabe-Port noch in den Nachrichten vorhanden. </dd> <dt>Steuereigenschaften in Nachrichten ignorieren</dt> <dd> Wenn aktiviert, werden Steuereigenschaften, wie unten in Abschnitt <i>Eingabe</i> beschrieben, ignoriert. Das ist sinnvoll falls zu verzögernde Eingabenachrichten Eigenschaften mit denselben Namen wie die Steuereigenschaften enthalten und verhindert somit deren Fehlinterpretation. </dd> </dl> <h3>Eingabe</h3> <p> Die Eingangsnachricht wird unverändert weitergereicht, kann jedoch auch das Pufferverhalten des Knotens beeinflussen, wenn folgende Eigenschaften vorhanden sind. </p> <dl class="message-properties"> <dt class="optional">drop<span class="property-type">any</span></dt> <dd> Wenn vorhanden, werden alle gepufferten Nachrichten verworfen, ohne weitergeleitet zu werden. </dd> <dt class="optional">flush<span class="property-type">any</span></dt> <dd> Wenn vorhanden, werden alle gepufferten Nachrichten sofort weitergeleitet. </dd> <dt class="optional">enqueue<span class="property-type">any</span></dt> <dd> Kann mit obigen beiden Eigenschaften kombiniert werden. Wenn vorhanden, wird diese Nachricht gepuffert, nachdem alle vorherigen Nachrichten verworfen/weitergeleitet wurden. </dd> <dt class="optional">fixedDuration<span class="property-type">object</span></dt> <dd> Überschreibt die feste Zeitspanne, nach der gepufferte Nachrichten weitergeleitet werden sollen, siehe unten für weitere Informationen. </dd> <dt class="optional">randomDuration<span class="property-type">object</span></dt> <dd> Überschreibt die zufällige Zeitspanne, nach der gepufferte Nachrichten weitergeleitet werden sollen, siehe unten für weitere Informationen. </dd> <dt class="optional">when<span class="property-type">object</span></dt> <dd> Überschreibt den Zielzeitpunkt, zu dem gepufferte Nachrichten weitergeleitet werden sollen, siehe unten für weitere Informationen. </dd> </dl> <p> Wenn eine Eigenschaft mit dem Namen <code>fixedDuration</code> in der Eingangsnachricht vorhanden ist, wird die feste Verzögerungszeitspanne für alle momentan und zukünftig gepufferten Nachrichten überschrieben. Die Eigenschaft muss den folgenden Inhalt haben: </p> <dl class="message-properties"> <dt>value<span class="property-type">number</span></dt> <dd>The Zeitspanne der Verzögerung</dd> <dt>unit<span class="property-type">string</span></dt> <dd>Die Einheit der Verzögerungszeitspanne, entweder "milliseconds", "seconds", "minutes", "hours" oder "days"</dd> </dl> <p> Wenn eine Eigenschaft mit dem Namen <code>randomDuration</code> in der Eingangsnachricht vorhanden ist, wird die zufällige Verzögerungszeitspanne für alle momentan und zukünftig gepufferten Nachrichten überschrieben. Die Eigenschaft muss den folgenden Inhalt haben: </p> <dl class="message-properties"> <dt>value1<span class="property-type">number</span></dt> <dd>Die untere Grenze des Zeitspannenbereichs</dd> <dt>value2<span class="property-type">number</span></dt> <dd>Die obere Grenze des Zeitspannenbereichs</dd> <dt>unit<span class="property-type">string</span></dt> <dd>Die Einheit des Zeitspannenbereichs, entweder "milliseconds", "seconds", "minutes", "hours" oder "days"</dd> <dt class="optional">randomizerMillis<span class="property-type">boolean</span></dt> <dd>Zufallswert immer in Millisekundenauflösung</dd> </dl> <p> Wenn eine Eigenschaft mit dem Namen <code>when</code> in der Eingangsnachricht vorhanden ist, wird der Zielzeitpunkt für alle momentan und zukünftig gepufferten Nachrichten überschrieben. Die Eigenschaft muss den folgenden Inhalt haben: </p> <dl class="message-properties"> <dt>type<span class="property-type">string</span></dt> <dd>Art des Zielzeitpunkts; entweder "time", "sun", "moon" oder "custom"</dd> <dt>value<span class="property-type">string | number</span></dt> <dd>Zielzeitpunkt; der Inhalt ist abhängig von der Art des Zielzeitpunkts</dd> <dt class="optional">offset<span class="property-type">number</span></dt> <dd>Zeitlicher Versatz zum Zielzeitpunkt in Minuten</dd> <dt class="optional">random<span class="property-type">number</span></dt> <dd>Zufälligkeitsspanne des Zeitversatzes in Minuten</dd> </dl> <h3>Ausgaben</h3> <p> Abhängig von der Art der Verzögerung werden verzögerte Nachrichten zum Ausgabe-Port gesendet, sobald die Dauer überschritten oder die konfigurierte Zeit erreicht wurde und zusätzlich wenn eine Nachricht mit der <code>flush</code> Eigenschaft empfangen wurde. Wird eine Nachricht mit der <code>drop</code> Eigenschaft empfangen, werden alle Nachrichten verworfen. </p> </script>