Node red - i możesz wszystko -jak rozróżnić użytkownika od automatu

Witam ponownie wszystkich którzy są tak jak ja maniakami programowania w node red. W tym poście chciałem się odnieść do częstych pytań użytkowników dotyczących tworzenia własnych klawiszy do obsługi różnych urządzeń jak TV, odkurzacze itd. Czasami występuje potrzeba aby przełącznikiem zarządzał człowiek a czasami zarządza tym system. Problemy pojawiają się jak chcemy zrobić jeden klawisz do wszystkiego a potem mamy problemy z rozróżnieniem kto go włączył np tv może być włączone z pilota i wtedy chcemy aby nasza automatyzacja zrobiła coś innego niż wtedy gdy włączymy TV z włącznika przygotowanego w HA. A może chcemy zrobić tak że jeżeli światło włączy nam dziecko to automat wyłączy je po 15 min a jak światło włączy dorosły to pozostanie włączone aż do wyłączenia z klawisza. Tak czy inaczej jak to można łatwo załatwić zapraszam do obejrzenia filmiku na YT.

Pozdrawiam i życzę dużo sukcesów.

6 Likes

Hej
świetny film, wszystko jasno zrozumiale!
nie wiedziałem że mogę zapisywać global w pliku, także wielkie dzięki, zawsze cos nowego.
Od dawna używam sprawdzania kto zmienił stan, tylko trochę inaczej, jednym nodem:

Super. Dzięki wielkie! Z pomocą Twojego opisu udało mi się zrealizować poprawne odczytywanie stanu TV (zmiana z UI lub pilota). Jedyny minus ze używając ping, jest dość duże opóźnienie w zmianie statusu (ok. 10 sekund), ale chyba trzeba się przyzwyczaić. Ewentualnie czy jest jakaś metoda aby zmienić stan pomocnika bez zmiany stanu?

@bartik22 Zawsze to powtarzam że nie mam patentu na jedyną absolutną prawdę.:slight_smile: Ja przedstawiłem jak ja to robię twój sposób też jest dobry i może dla wielu będzie bardziej przejrzysty. W jaki sposób pilnujesz żeby nie rozjechały się ID jeżeli użyjesz takiego noda w kilku miejscach w programie i trzeba będzie dodać lub usunąć użytkownika w HA?? może się skuszę na zastosowanie twojego sposobu ciągle zapominam że node red jest do pisania “klockami” a nie w kodzie i funkcjach :slight_smile:

@Buffeto Witaj przyjrzyj się filmikowi to jest dokładnie odpowiedź na twoje pytanie. górny proces zmienia tylko stan pomocnika na włączony wyłączony. dolny proces na podstawie interakcji użytkownika włącza i wyłącza fizyczne urządzenie ( na filmie jest to tts ale zamiast tego możesz przecież podpiąć noda do włączania i wyłączania TV). Po to całe zamieszanie było aby górny proces tylko wykrywał czy TV jest włączone czy nie i aktualizował informacje w HA. ale żeby fizycznie nic nie sterował samym odbiornikiem ( tts na filmie to twój TV :slight_smile: ). ja mam opóźnienie w wykrywaniu czasu włączonego tv do 20s. to jest i tak wystarczająco jak na MOJE potrzeby. trzeba zawsze znaleźć złoty środek między obciążeniem systemu ciągłymi zapytaniami a późniejsza wydajnością całości.

@BohdanGut Zrobiłem tak bo nie jestem programistą :slight_smile:
Odpowiadając na pytanie,
jak musze dodać i usunąć… w moim przypadku nic sie nie zmienia,
ale można zrobić z tego subflow i tylko zmieniać w jednym miejscu, podpisuje sobie każde outputs i widzę które wyjście to jaka osoba.

@BohdanGut fajnie, że jesteś programistą, potrzeba nam takich ludzi. Dla mnie nie programisty każdy taki poradnik jest lekcją i czymś nowym do swojego zastosowania/wykorzystania.

Oby więcej takich poradników, krok po kroku wytłumaczone - jedynie co, jeśli chciałbyś ułatwić jeszcze bardziej, mógłbyś wrzucać flow pod takim postem. Dzięki i czekamy na kolejne