Porównanie 2 encji w nodzie `current state`

Dzień dobry,

Chcę w nodzie current state porównać wartości dwóch encji numerycznych i wysłać wynik na wy1, gdy porównanie jest prawdziwe lub na wy2 w każdym innym przypadku:

obraz

Nod Temp > max typu current state ma następującą konstrukcję:

Jak widać, ma on możliwość wykonania takiego logicznego obliczenia.
Pod Entity id podstawiam wartość encji Temp i porównuję ją z encją pomocniczą temp_max. Obie mają wartości numeryczne.

Niestety logika się nie oblicza. Niezależnie, czy w If State dam znak > czy < czy =, wszystkie odpowiedzi trafiają na noda tam. Dzieje się tak również niezależnie od typu wyniku, definowanego w State Type (boolean, string, number,). Odpowiedzią noda current state jest zawsze wartość encji temp lub - gdy typ odpowiedzi jest ustawiony na boolean - wychodzi false. Nawet po zmianie znaku porównania na przeciwny.

Próbowałem także zamieniać obie porównywane encje miejscami wewnątrz definicji noda. Niczego to nie zmienia. Encje się nie porównują i tyle…

Dlaczego to nie działa? Gdzie robię błąd? O czym nie wiem?

Proponuje State type: Number
image
po to by porównywało wartości z encji, a nie czy istnieje

@Marcin_Domański
Niestety, nie działa, jak napisałem wyżej:

Dlatego nie rozumiem tego.

Ciekawe jest to, że tak działa poprawnie:

image

2 Likes

Dziękuję Ci @Marcin_Domański za tę TRAFIONĄ podpowiedź! :beer:

Rzeczywiście Twój flow działa! Po stosownej adaptacji mojego algorytmu, u mnie także wszystko ruszyło do przodu! :slight_smile:

Uważam NR za jedno z najwspanialszych środowisk progamistycznych do automatyki. Nie mniej jednak, bez znajomości jego “specyficznej specyfiki” niełatwo się w nim odnaleźć…

Witam trafiłem na ten sam problem. Czy ktoś może pomóc rozwikłać zagadkę. Chcę porownac dwie temperatury do włączania ogrzewania basenu.

Teoretycznie stosowania jednego ostrego warunku <>= dla właczenia/wyłączenia jest logicznie poprawne. Jednak praktycznie dziala to niewłaściwie. Należy stosować dwa osobne , dla zał i wył, ponieważ gdy wartość mierzona bliska jest wartości zadanej występują niepotrzebnie zbyt częste cykle zał/wyl a tym samym skraca się żywotność elementu sterującego (przekaźnika). Z reguły wystarczy margines z błedów odczytu samego czujnika przy stabilnej temperaturze. Ze względu na dużą bezwładność cieplną wody skoki temperatur samoistnie się filtrują. Taka mała uwaga do stosowanego wyżej algorytmu.

1 Like