Nod rozróżniający że event jest "wyzwolony przez usługę" (jakąś)

Witam.
Czy istnieje możliwość, żeby NR rozróżniał przez jaką usługę coś zostało uruchomione?
Przykładowo mam sterownik oświetlenia i chciałby napisać proces, który inaczej zareaguje jeśli sterownik zmieni stan bo ja kliknąłem w HA a inaczej bo w aplikacji producenta albo jeszcze inaczej bo automatyzacja go włączyła.

Raczej nie da się wykryć przyczyny na podstawie skutku.
Musisz tak skonstruować proces w NR aby przechwytywać wyzwalacze w NR i na ich podstawie wywoływać skutek.
I tak dla Twojego przykładu

… takie klikanie nie powinno wywoływać bezpośredniego działania, a zmieniać stan jakiegoś pomocnika.

…podobnie jak wyżej

Wtedy NR wykrywa zmianę odpowiedniego pomocnika i odpowiednio reaguje.

W przypadku aplikacji producenta jest to trudne do wykrycia, ponieważ z reguły steruje elementem wykonawczym ponad wszystkim.
Można tylko domniemywać, że skoro żadne z dwóch powyższy to pewnie aplikacja.

W takim razie rozwinę do czego mi to potrzebne.
Chodzi o wykrycie zaniku napięcia, gdyż kontroler led od sonoffa zawsze po przywróceniu napięcia zaświeca ledy i to jest okrutnie irytujące i nie ma tego w opcjach tak jak mają inne sterowniki.
Potrzebuję rozróżnić kiedy kontroler led wszedł w stan bo przywrócono zasilanie a kiedy z powodu zamierzonej akcji.

Może automatyzacja, która wyzwalana będzie zmianą stanu z unavalible do On?

Męczę się z tym kilka godzin w sumie ale jestem tępy i nie rozumiem jak użyć old_state.state…
Podziwiam użytkowników NR którzy się w tym wszystkim odnajdują - dla mnie po ponad roku nadal jest magią o co chodzi z tymi właściwościami msg…

Dokładnie to chciałbyś wiedzieć najbardziej :wink:
Zadaj konkretne pytanie… bo temat jest obszerny.
Najogólniej to msg. to paczka informacji przekazywana z noda do noda po tych sznurkach.
Każdy nod wykonuje określone dla niego zadania na podstawie informacji w niej zawartych. Wynik swojego działania dołącza do wiadomości i wysyła dalej.
Na upartego każdy proces da się wyklikać używając podstawowych nodów i jeśli nie ma potrzeby zapamiętywania stanów pomiędzy wywołaniami procesu to mechanizm oparty na wiadomościach jest wystarczający.
Dalsze opisywanie nie ma sensu bo to zbyt duży poziom abstrakcji. Zapytaj o jakiś konkret, pokaż co zrobiłeś - jeśli chcesz.

…to trochę za mało - nawet nie wiadomo jakie jest zbiór możliwych stanów.

W zasadzie da się,
widziałes to?

Zobacz drugi post (mój :stuck_out_tongue: ) najprostszy sposób, ale obejrzyj film żeby zrozumieć

  1. jesli w HA kliknie użytkownik to widzisz jaki,
  2. jeśli node red to widzisz też, jeżeli zrobiłes nowego usera (np. Node-Red) w HA i w nim wygenerowałeś tokena dostępu do HA
  3. jeśli w aplikacji producenta, to zakładam (nie wiem), że tu będzie pusto… więc na podstwie tego wiesz.
1 polubienie

Ok, trochę to skomplikowane ale przejrzałem, wyklikałem i zwraca mi user_id null zarówno, kiedy kliknę w aplikację producenta sterownika (ewelink) jaki wtedy, kiedy LED włączy się sam po przywróceniu zasilania…
Zasadniczo na tej podstawie automatyzacja nie będzie “idealna” ale jest to jakiś punkt zaczepienia. Dzięki za pomoc i przede wszytkim zrozumienie problemu :smiley:

A co w takich przypadkach wyświetla jako ostatni stan, może po tym da się rozróżnić?

Rozróżnienie użytkowników , o kórym mowa wyżej nie będzie działać gdy kilkasz w aplikację ewelink . Dotyczy to użytkowników dodanych do HA i zalogowanych do aplikacji . Przykład klikam z mojego telefonu otwórz roletę , jesem identyfikowany jako user1 , wieczorem harmonogram zamyka roletę , identyfikacja to user_system.