Node-RED jak użyć input_number w current state node

Cześć dopiero zaczynam przygodę z NR - więc proszę o wyrozumiałość :slight_smile:
Szukałem / czytałem, ale się chyba pogubiłem
Wiem ze pewno da się to zrobić w kodzie, ale gdybym jednak chciał w GUI - co robię źle ?

Mam input_number (n_piec_trigger), gdzie sliderem ustawiam temp grzania
Chciałbym w curent state node porównać wartość tej zmiennej z odczytem z termometra

Robię tak, ale nie działa:

Jeżeli zamiast entity.xxxx wstawię numer z palca - chodzi…

Jakiego typu dane zwraca entity.xxxx - number, string… ?
Prawdopodobna niezgodność typu porównywanych danych

Osobiście należę do przeciwników takie stylu automatyzacji NR<>HA polegającym na ciągłym odpytywaniu HA o te same dane. Preferuje jednokrotny odczyt i zapamiętanie w zmiennych.
Następnie operuje na tych zmiennych tylko za pomocą “standardowych” nodów NR.
Łatwiej się to debuguje nawet gdy udostępnisz komuś flow.
Dla przykładu zobacz podobny temat

Dzięki za odpowiedz.
Jak moge sprawdzić jaki ma to typ ? zakładałem ze jezeli używam input_number to zwracany jest … number (a nie string) ?
A jak nie to jak to można rzutować / debugować aby sie przekonać co go boli ?
Poniżej moje screeny

Co do stylu / podejścia do automatyzacji - jak pisalem zaczynam więc ciężko mi się odnosić - ale czy nie jest tak, że ten kafelek odpala całe flow tylko wtedy gdy się zmieni status ?
Nie do końca wiem po co te zmienne?

PS. Potrafię w programowanie, ale na razie nie chce sie klepac tutaj kodu.
Chce tez sprawdzić czy może to ogarniać również osoba, która nie zna sie na kodowaniu/nie chce tego się uczyć. Na pierwszy rzut oka wygląda to własnie jak takie narzędzie do budowania z klocków…

obraz

Jeśli mówisz o tym Zmana Temp Salon to tak - jego zmiana uruchamia proces. Tak jak zmiana Zmiana Slider

Sprawdź jeszcze typ sensor.0x00…_temperature, ponieważ porównujesz te dwie encje.

Wszystko można wyklikać, w linku cały flow jest z klocków.

Choćby po to aby można łatwo zdebugować… jak widać :slight_smile:
…albo mógłbym go wczytać u siebie i posprawdzać, a tak d… blada, trzeba spekulować

On musi dzialac bo jak zamiast entity.input_number.npiec_trigger wpisze wartosc z palca (np 20.5) to dziala jak nalezy…

Moj jedyny problem tutaj to to, ze przy wyborze input_number - jak pokazalem wyzej nie jest odczytywana ta wartosc…
Moze powinienem dodac jakies .value czy cos n a koncu ?

@Maciej odczytaj osobno te dwie encje i je porównaj

Importuj ten .json i dostosuj. Inaczej nie potrafię
flows (13).json (1,6 KB)

Niestety State tez nie pomoglo…
Kurcze nie czaje tego
Probowalem tez zamienic miejscami input_number i termometr - tez nic
Zrobilem taki [rpsty debug - jak nizej i zawsze dostaję FALSE
w debugu wyrzuca wartość slidera np 18 lub 30 i pokazuje typ number

Tempw salonie jest teraz 21C wiec powinno przy skrajnych polozeniach suwaka pokazywać raz ‘wieksze’ raz ‘mniejsze’…

O co tutaj biega ?

obraz

Nie biegam biegle w składni HA :blush:
…ale to co dałem wyżej u mnie działa.

Dzieki za chec pomocy, poszukam jescze

PS. ‘u mnie działa’ - mam to na kubku :slight_smile:

Zamiast screen podeślij flow. Zrobiłem u siebie szybki test i wszystko działa.

Pokaż co wpisałeś w if State, jak wydłubałeś stan do porównania?

Tworzę dwie właściwości w msg i sprawdzam je w switch.

[{"id":"d3bfa069e0a93936","type":"server-state-changed","z":"f8a99b5726f9247a","name":"","server":"6a2af6d8.98c388","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.test","entityidfiltertype":"exact","outputinitially":false,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"tempzadana","propertyType":"msg","value":"","valueType":"entityState"}],"x":180,"y":760,"wires":[["e2c0f7bbec04a510","bf6f2bc47a0b4edb"]]},{"id":"e2c0f7bbec04a510","type":"debug","z":"f8a99b5726f9247a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":650,"y":640,"wires":[]},{"id":"bf6f2bc47a0b4edb","type":"api-current-state","z":"f8a99b5726f9247a","name":"","server":"6a2af6d8.98c388","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.sypialniaczujniktemperatury_temperature","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"tempaktualna","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":650,"y":760,"wires":[["9d30f97d9b31db5b"]]},{"id":"38418d28745578f3","type":"debug","z":"f8a99b5726f9247a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1130,"y":700,"wires":[]},{"id":"b9d49c1b066cc130","type":"debug","z":"f8a99b5726f9247a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1130,"y":820,"wires":[]},{"id":"9d30f97d9b31db5b","type":"switch","z":"f8a99b5726f9247a","name":"","property":"tempzadana","propertyType":"msg","rules":[{"t":"gte","v":"tempaktualna","vt":"msg"},{"t":"lt","v":"tempaktualna","vt":"msg"}],"checkall":"true","repair":false,"outputs":2,"x":970,"y":760,"wires":[["38418d28745578f3"],["b9d49c1b066cc130"]]},{"id":"6a2af6d8.98c388","type":"server","name":"Home Assistant 1","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

…tak to każdy potrafi …haha :wink:

Skoro jest możliwość porównania dwóch encji ( przynajmniej tak sugeruje obrazek) to poradź co wpisać w czerwonym polu. Wiem, że można to obejść ale ciekaw jest jestem
comp

Zmęczone tak powinno być

[{"id":"354498b4d7bf636d","type":"api-current-state","z":"f8a99b5726f9247a","name":"","server":"6a2af6d8.98c388","version":3,"outputs":2,"halt_if":"payload","halt_if_type":"msg","halt_if_compare":"gte","entity_id":"sensor.salonczujniktemperatury_temperature","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":640,"y":740,"wires":[["468083ceb8ca2d68"],["85a351156cfbfef6"]]},{"id":"468083ceb8ca2d68","type":"debug","z":"f8a99b5726f9247a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":970,"y":660,"wires":[]},{"id":"85a351156cfbfef6","type":"debug","z":"f8a99b5726f9247a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":990,"y":820,"wires":[]},{"id":"a8eb3ab205ad8f9c","type":"server-state-changed","z":"f8a99b5726f9247a","name":"","server":"6a2af6d8.98c388","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.test","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":240,"y":740,"wires":[["354498b4d7bf636d"]]},{"id":"6a2af6d8.98c388","type":"server","name":"Home Assistant 1","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

czyli podobnie

Problem jest taki, że autor chce załatwić to jednym current_state i za jednym zamachem porównać dwie encje.
Jedyną infornację jaką znalazłem , to zdawkowa informacja, że entity w If State to encją która wywołała dany węzeł. WTF ? :thinking:

Rozumiem co autor chce uzyskać. Już kiedyś walczyłem z tym problemem w własnej automatyzacji. Ale trzeba pamiętać że current_state nie jest wyzwalaczem więc i tak jest potrzebny event_sate.