NODE-RED, delay, funkcje

Cześć pisze z pytankiem … Mam zmienna która generuje czas 10s i chce aby blok delay był ustawiany na czas podawany z tej zmiennej jak napisać funkcje do tego w function block ?

musisz wysłać wartość jako msg.delay
np. nodem change
image

do noda delay z takimi ustawieniami:
image

image
to jest problem ze wzgledu na typ? czyli nie moge miec global ?

bo ystawienia delay mam tak samo

Mój flow wyglada tak tylko zamiast inject bedzie docelowo przycisk
image

global bo @bartik22 używa do tego zmiennej global. Co to jest u Ciebie “B1 zrasz auto…”?

zmienna pobierana ze sterownika

W takim razie wystarczy zmienna ze sterownika przypisac do zmiennej globalnej ?

Możesz na wiele sposobów,
ale tak, zapisz sobie zmienną ze sterownika do jakiejś globalnej (rozumiem że to wartość numeryczna) i wstaw ją właśnie w nodzie change w tym flow

Jesli dobrze zrozumiałem to zrobiłem to w ten sposob:
gdzie czas_zraszania_B1_1 to zmienna do ktorej chce zapisac zmienna ze sterownika:

image

I czy zmienna czas_zraszania_B1_1 powinna mi się poawić w menu context global?

EDIT!!! udało sie działa dzięki za pomoc!

no ale chyba nie udało się tak, bo to jest nie wiadomo co :stuck_out_tongue:
image

1 polubienie

zrobiłem to w funkcji a nie w bloku change :smiley:
Ale teraz sie zastanawiam nad 2 sprawą to znaczy jak napisać funkcje ktora do tej zmiennej globalnej bedzie dodawc czas 15 sekund
choodzi mi aby była inna zmienna która do czasu zmiennej “czas_zraszania_B1_1” dodaje 15sekund i ta suma przechodzi na delay

Czy wystarczy cos takiego?
image

Jeśli msg.payload jest jako number to tak.
Tak w ogóle to łatwiej i szybciej jest zobaczyć efekt niż pisać pytanie.

Dobra, jedno poszło drugie sie zepsuło
Celem tego zadania było zaprogramowanie lampki ze włączam ją przyciskiem i po 5 sekundach sie wyłącza kiedy sie wyłączy czeka 15 sekund i włacza sie ponownie i tak w kółko, niestety w moim przypadku nie jest to zapętlone jak w takim razie to zrobic? Dodać jakis blok funkcje ? nie mam pojęcia

:slight_smile:

tu jest odpowiedź