NEWS
[gelöst] Node Red Timer zwischen Injects
-
Bin ganz neu in NodeRed unterwegs. Habe schon vieles durch probieren raus finden können.
Bei einem Punkt verzweifele ich grad:ich habe mehrere Injects die alle nacheinander, mit Pausen abgeearbeitet werden sollen.

gedacht hätte ich mir sowas:
function inject() { setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10000, "type": "uint16", "count": 62}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10500, "type": "uint16", "count": 35}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10800, "type": "uint16", "count": 17}');}, 1000); } schedule("*/5 * * * * *", inject); //alle 5 Sekunden startenwie kann man das in NodeRed lösen?
-
Bin ganz neu in NodeRed unterwegs. Habe schon vieles durch probieren raus finden können.
Bei einem Punkt verzweifele ich grad:ich habe mehrere Injects die alle nacheinander, mit Pausen abgeearbeitet werden sollen.

gedacht hätte ich mir sowas:
function inject() { setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10000, "type": "uint16", "count": 62}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10500, "type": "uint16", "count": 35}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10800, "type": "uint16", "count": 17}');}, 1000); } schedule("*/5 * * * * *", inject); //alle 5 Sekunden startenwie kann man das in NodeRed lösen?
@lenny-cb
Vielleicht so?

Ein Inject Node und vier Trigger, die zu unterschiedlicher Zeit ablaufen und bei "dann sende" den erforderlichen Wert weitergeben.

-
@lenny-cb
Vielleicht so?

Ein Inject Node und vier Trigger, die zu unterschiedlicher Zeit ablaufen und bei "dann sende" den erforderlichen Wert weitergeben.

@marc-berg sagte in Node Red Timer zwischen Injects:
@lenny-cb
Vielleicht so?

Ein Inject Node und vier Trigger, die zu unterschiedlicher Zeit ablaufen und bei "dann sende" den erforderlichen Wert weitergeben.

ich habe 4 Injects mit 4 verschiedenen payloads. Die sollen in einer Schleife abgearbeitet werden. Zwischen den Injects eine Pause.
-
@marc-berg sagte in Node Red Timer zwischen Injects:
@lenny-cb
Vielleicht so?

Ein Inject Node und vier Trigger, die zu unterschiedlicher Zeit ablaufen und bei "dann sende" den erforderlichen Wert weitergeben.

ich habe 4 Injects mit 4 verschiedenen payloads. Die sollen in einer Schleife abgearbeitet werden. Zwischen den Injects eine Pause.
@lenny-cb sagte in Node Red Timer zwischen Injects:
ich habe 4 Injects mit 4 verschiedenen payloads. Die sollen in einer Schleife abgearbeitet werden. Zwischen den Injects eine Pause.
Naja, das geht doch damit. Die verschiedenen Payloads stecken in den Trigger Nodes. Was der Inject-Node sendet, ist egal. Und wenn man den Inject Node auf z.B. 2 Sekunden Wiederholung stellt, ist die Anforderung erfült.
-
Bin ganz neu in NodeRed unterwegs. Habe schon vieles durch probieren raus finden können.
Bei einem Punkt verzweifele ich grad:ich habe mehrere Injects die alle nacheinander, mit Pausen abgeearbeitet werden sollen.

gedacht hätte ich mir sowas:
function inject() { setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10000, "type": "uint16", "count": 62}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10500, "type": "uint16", "count": 35}');}, 1000); setTimeout(() => {setState("mqtt.0.cmnd.tasmota_7711D7.ModBusSend", '{"deviceaddress": 1, "functioncode": 3, "startaddress": 10800, "type": "uint16", "count": 17}');}, 1000); } schedule("*/5 * * * * *", inject); //alle 5 Sekunden startenwie kann man das in NodeRed lösen?
@lenny-cb
Nimm einfach eine Delay Node und begrenze die Nachrichtenrate.

Wenn Du sicher gehen willst, dass das die Reihenfolge garantiert werden soll, dann nimm nicht mehrere Inject-Nodes, sondern eine einzige mit einem Array

-
@lenny-cb sagte in Node Red Timer zwischen Injects:
ich habe 4 Injects mit 4 verschiedenen payloads. Die sollen in einer Schleife abgearbeitet werden. Zwischen den Injects eine Pause.
Naja, das geht doch damit. Die verschiedenen Payloads stecken in den Trigger Nodes. Was der Inject-Node sendet, ist egal. Und wenn man den Inject Node auf z.B. 2 Sekunden Wiederholung stellt, ist die Anforderung erfült.
@marc-berg sagte in Node Red Timer zwischen Injects:
Was der Inject-Node sendet, ist egal. Und wenn man den Inject Node auf z.B. 2 Sekunden Wiederholung stellt, ist die Anforderung erfült.
Ich werde es versuchen. Vielen Dank!
-
@lenny-cb
Nimm einfach eine Delay Node und begrenze die Nachrichtenrate.

Wenn Du sicher gehen willst, dass das die Reihenfolge garantiert werden soll, dann nimm nicht mehrere Inject-Nodes, sondern eine einzige mit einem Array

@mickym sagte in Node Red Timer zwischen Injects:
@lenny-cb
Nimm einfach eine Delay Node und begrenze die Nachrichtenrate.

Wenn Du sicher gehen willst, dass das die Reihenfolge garantiert werden soll, dann nimm nicht mehrere Inject-Nodes, sondern eine einzige mit einem Array

Ich probiere. Vielen Dank!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden