Problem z automatyzacją

No właśnie to jest dla mnie największa wartość, bo jak te inne procesy w innych miejscach sprawdzają zmienną to jest aktualna. Więc to dokładnie po to robi się zmienne gloablne

Podczas innego procesu pobieramy zmienna global i w procesie mamy tą pobraną w tym momencie. jeśli chcemy w trakcie procesu sprawdzić, czy zmienna się zmieniła to pobieramy ponownie, jak nie chcemy to nie.


dobra chyba rozumiem, w przypadku zależności między np. różnymi zmiennymi może być istotna wartość w konkretnym momencie. Ale tu się po prostu logika procesu kłania, nic więcej.

Aktualna na daną chwilę odczytu, ale może się zmienić w trakcie przeważania procesu ( a nawet funkcji) .
Spróbuje to narysować…

i co z tego?
przecież jeżeli potrzebujemy w procesie zmiennej global w momencie uruchomienia to ją na początku pobieramy i wrzucamy w msg. … i co ma się zmienić?

Dla Ciebie tak ale to często jest przyczyną trudnych do wykrycia błędów ( tak samo jak podmianka msg.payload). Zachodzisz później w głowę skąd różna wartość od odczytanej.

Dla Ciebie to jest tak oczywiste jak Deploy ModifiedFlow :wink:

Ok, czyli problem może być z winy użytkownika i błędnej logiki flow.
A kolega @isom1266 napisał
" Jednak przy większej ilości zmiennych, to może nieźle namieszać, szczególnie jak ktoś zapisuje zmienne do pliku."
wiec zasugerował, że są jakieś problemy z zapisem, albo nie wiem czym,
dlatego o to zapytałem

Prawie 100% problemów jakie czytam w procesach można rozwiązać prostym podpięciem pod każdy nod debuga i czarno na białym widać gdzie jest problem… Ale mało kto to robi, tylko zaraz na forum pisze że mi nie działa i wymyślajcie ludzie co jest nie tak.

Nie wiem jak jest z “global” ale jeśli w obrębie jednego flow zrobisz zapis do zmiennej (plik lub memory only) i celowo lub przez pomyłkę nazwy będą identyczne to zmienna będzie miała wartość taką jaką dostanie z jednego lub kilku nodów które zapisują tą zmienną. Zmienna nie jest rozróżniana (mimo tej samej nazwy) tak jak to jest z encjami w HA np. sensor.temp i sensor.temp1

To jest w takim razie błąd softu, tak nie powinno być, faktycznie można namieszać.
Także lepsze są global, jest tablica, widzimy jakie mamy, jakie możemy dodać itd.

Początkujący nie wiedząc o tym co teraz napisaliśmy będzie próbował “wyklikać” proces w ten sposób

No i może mieć to zastosowanie np. przy ostatniej fazie procesu, np. sprawdzenia czy nie wykryło ruchu i wyłączenia światła

Może… jeśli wiemy że akurat nam dokładnie o to chodzi. :stuck_out_tongue_winking_eye:

Jeśli byśmy nie wiedzieli o co nam chodzi to gdzie tu sens robienia jakiegokolwiek procesu :slight_smile:

Poczekaj… poczekaj - zacytuje Ci to kiedyś :rofl:

koledzy a czego używacie do policzenia minut miedzy zadeklarowana godzina a aktualna?
jest na to jakiś dedytkowany nod/funkcja?
mam ustawioną godzine jako cel oraz godzine biezaca zwykle X-Y nie dziala

Problemów z zapisem nie ma, natomiast ( moim zdaniem), po to ktoś wpadł na pomysł, żeby zmienne podzielić na node , flow, global, żeby sobie ułatwić życie, a nie utrudnić.
Korzystając wszędzie gdzie popadnie ze zmiennych global, zwiększasz prawdopodobieństwo, że użyjesz identycznej nazwy w dwóch róznych flow. Jeżeli używasz zmiennych flow , to mają one zastosowanie tylko w konkretnym przepływie i taka sama nazwa w sąsiednim przepływie może sobie funkcjonować. Globalne zmienne są wygodne i sam z nich korzystam, ale do takich potrzeb jak sprawdzenie wartości Lux , gdzie mogę taką zmienną wykorzystać w dowolnej ilości flow. Natomiast gdybym zaczął Cię naśladować i w każdym przypadku stosował zmienne global, to albo przed kolejnym zapisem do zmiennej , musiałbym przejrzeć wszystkie wcześniej użyte nazwy, albo gdzieś je notować. Forma przeglądu jest mało istotna, ważne że zmusza do większej uwagi. Korzystajac z pełnej palety rodzajów zmiennych , mam fizycznie mniejszą ilość zmiennych globalnych, a że wszystkie zapisuję do pliku to nawet fullDeploy nie ma na nie wpływu :slight_smile:
Być może kiedyś zmienię zdanie, ale na tą chwilę i przy obecnym poziomie wiedzy, uważam że tak jest rozsądniej.
PS
Tak na marginesie, możesz mi wytłumaczyć, co wnosi w Twoim flow, wstawinym w tym wątku, użycie zmiennej globalnej ? Przecież ona prezentuje tylko dwie wartości “true”, lub “false”, i są one ściśle powiązane z czasem ustawionym w delay . Do czego ją możesz wykorzystać w większej ilości flow ?

Nic nie wnosi. Tak jak pisałem, tylko dla tego że używam samych global, żadnych innych

mam podobnie zrobione w kotłowni i zmienną blokuję końcówkę innego procesu przypominania o podkładaniu do pieca :slight_smile:
albo otwarcie drzwi kuwety, blokuje mi inny proces zapalania i przyciemniania lamp w korytarzu, tak poprostu było mi najłatwiej

fullDeploy
Może nie ma wpływu na to o czym piszesz. ale ma wpływ na wszystkie twoje przepływy w NR które są zatrzymywane i są sprawdzane, cały plik *.json jest tworzony na nowo, po czym jest ładowany do NR.

czy tak napisana formula IF nie ma błęów:
image

troche nie rozumiem kiedy w Java trzeba wstawiać znaki {} a kiedy nie wydaj mi się że tutaj nie musze, tak samo jak czasem spotykam się z kodami gdzie jest znak ; na koncu kazdego wiersza ale nie zawsze, czasem tez jest === zamiast ==
o co tu chodzi?

obejrzyj sobie np. to: