Nod który pobierze wartość konkretnego atrybutu encji a nie stanu - flow na ustawinie głowic

Mam pytanie czy jest jakiś nod który jest wstanie pobrać atrybut “current temperature” poniższej encji tak by można go było np dalej wykorzystać w automatyzacji. Szukałem opcji w nodzie “current state” ale on pobiera tylko stan encji a nie atrybut… może ktoś pomoże. A tak z drugiej strony to czy macie jakiegoś ciekawego flow w NR do sterowania temperatura na głowicy w oparciu o czujnik zewnetrzny w pokoju?
image

Ja do sterowania głowicą w NR póki co wymyśliłem taki prosty flow gdzie odczytuje temp w pokoju z czujnika i poźniej ustawiam głowice na 16 stopni czyli jest zamknieta lub gdy jest temp poniżej 21 stopni w pokoju to głowica jest ustawiana na 25 stopni czyli grzanie. Generalnie to się nawet nieźle sprawdza ale głowica 9-10 razy w ciągu doby się zamyka i otwiera co pewnie nie jest super dla baterii wiec szukam czegoś co by ładnie korygowało ustawinia głowicy względem temp na zewnętrznym czujniku. Poniżej mój obecny flow.
image

A nie myślałeś o ustawieniu normalnie w harmonogramie pracy odpowiednich temperatur ? Ustaw sobie odpowiedni offset i będzie działało całkiem nieźle. Ja mam tak ustawione i na razie z bateriami ok (fabryczne) od listopada kiedy zamontowałem wszystko działa.
image
wykres temperatury
image
wykres otwarcia zaworu. Harmonogram grzanie od 6:30 do 7:30 na 21 stopni , potem do 19:00 na 19:00 i od 19:00 do 22:00 na 21. I tak hula od listopada, poziom baterii cały czas wg HA naładowane. Offset ustawiłem wg. zewnętrznych temperatur na 1,5 stopnia i jest ok. image
jest zaniżony o ok. 0,5 stopnia bo termometr jest bliżej ściany zewnętrznej (normalnie w miejscu w którym chciałem jest wg. ustawień ±0.5 stopnia).

Ale możesz odczytać normalnie przez nod state


podaje aktualnie zmierzoną temperaturę przez głowicę jeśli wybierzesz encję temperatury w głowicy

udało mi sie w node “curent state” odczytać stan encji i widzę przez debug info ale jak teraz wyciągnąć wartość konkretnego atrybutu i przypisać do jakiejś zmiennej

Jak najedziesz kursorem na dany atrybut to zobaczysz po prawej stronie 3 kwadraciki. Pierwszy z nich jest opisany “copy path” to jest ścieżka do danej wartości danego atrybutu np. data.last_changed i podając np. w nodzie function zmienna = msg.data.last_changed masz jego wartość. W nodzie switch możesz kierować flow wykorzystując tę ścieżkę, w zależności od wartości atrybutu
image

super o to mi chodziło dzięki wielkie

@Formalgo @Krzysztof_Wargocki
mam podobną zagadkę, a że moja wiedza z Node Red jest na poziomie bliskie zero, więc nie mogę zrozumieć jak wyciągnąć danę z atrybutu. Chodzi mi o wskaźnik pm25.

Jak sprawdzam przez “current stare” to widzę tylko coś takiego
current state

A tego myku z data.last_changed już w ogóle nie ogarniam

Aby wyświetlić wszystkie wartości, w nodzie Debug, OUTPUT ustaw na (complete msg object)

1 Like

dzięki @Marek
Jednak dalej nie ogarnąłem tego w NR, za cienki jeszcze jestem. Na całe szczęście bardzo łatwo było to wyklikać w automatyzacji HA

Pytanie brzmi nie jaki nod pobierze wartość atrybutu, bo to nie jest skomplikowane, tylko który nod zareaguje na ZMIANĘ atrybutu. “Events State” co prawda przeczyta także atrybut, ale nie zareaguje na jego zmianę, reakcja jest jedynie na zmianę stanu. Oczywiście można odpytywać periodycznie “Current state” , ale to z kolei generuje niepotrzebny ruch i konieczność wyboru między częstym odpytywaniem i obciążeniem procesora a opóźnieniami w odczycie.

Czy zatem jest NOD, który nie tyle czyta, co reaguje na zmianę atrybutu?

Utwórz za pomocą template nową encję, gdzie jej stan będzie odpowiadał atrybutowi pobranemu z innej encji i dalej śmiało Events State.

To zadziała, ale to także obejście.
Podobnie jak zrobienie tego w automatyzacjach HA.
Zakładam więc, że taki nod nie istnieje i trzeba obchodzić.

Na przykładzie pomocnika input_datatime i użyciu noda Trigger state. W tym przypadku flow zostanie ‘uruchomiony’ jeżeli dzień = 25.
obraz

1 Like