Odczyt wartości z termostatu i przesłanie do sterownika

Cześć,

buduje sterowanie ogrzewaniem w domu u teściowej. W zależności od temperatury na zewnątrz oraz godziny następuje załączenie jednego z dwóch rodzajów ogrzewania (pelle, HVAC).

Napotkałem jednak pewien kłopot który nie wiem jak ogarnąć.

Mianowicie w zależności od godziny termostat posiada nastawioną różna temperaturę docelowa. O ile w przypadku pelletu jest to typowo on/off o tyle przy klimatyzacji taki rodzaj pracy jest niezalecany jak i bezsensowny.

Obecnie aby uruchomić klimatyzacji mam taki układ w NR:

1 nod sprawdza czy klimatyzaja jest właczona, jeśli nie to 2 nod ją włacza a dopiero w 3 nodzie nastepuje wysłanie konfigu czyli

{“hvac_mode”:“heat”,“temperature”:“19”}

I tutaj jest klu problemu. Potrafię bez kłopotu odczytać wartość jaka jest ustawiona na termostacie, ale nie wiem jak to “upchnąć” w nodzie tak by to wyglądało tak:

{“hvac_mode”:“heat”,“temperature”:“TUTAJ_TEMPERATURA_ODCZYTANA_Z_TERMOSTATU”}

Ktoś podpowie?

Wygląda dobrze - wpisz temp. bez “”
{“hvac_mode”:“heat”,“temperature”:19}

Nie, wartość która podałem wyżej jest prawidłowa, ja chce zamiast tych 19 moc możliwość wstawienia tam zmiennej tylko nie wiem jak ;/

:slight_smile:

Zrób funkcję

var msg1 = {};
msg1.payload =
{
    "data":
    {
    "hvac_mode": "heat",
    "temperature": msg.payload
    }
}
return msg1;

Przed funkcją zrób odczyt temperatury do payload i w call_service nie wypełniaj pola Data

Dzięki wielkie działa!

A jak zrobić że w jednym flow robię zmienną flow.temperatura i jak ja dodać do tej funkcji?

Jeśli w innym to trzeba zapisać ją jako global.temperatura, wtedy będzie widoczna dla wszystkich flow używając funkcji global .get (…) global .set (…)

"temperature": global.get('nazwa zmiennej')

…powinno zadziałać bezpośrednio.

Chodziło o to samo flow więc użyłem flow.get i śmiga.

Dziękuje!