NodeRed termostat
 
Powiadomienia
Wyczyść wszystko

Home Assistant NodeRed termostat

26 Wpisów
3 Użytkownicy
2 Likes
1,256 Wyświetleń
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

Cześć,

jak oczytać i jak wysłać dane do termostatu w HA? Jedyne co potrafię przeczytać o stan (grzeje / wyłączony). Potrzebuje wysłać zmianę temperatury.

 
Dodane : 15/12/2022 12:01 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@pawell32 możesz to jakoś bardziej sprecyzować ? Samo wysłanie polecenia do termostatu np generic thermostat to prosty zapis

1
 
Dodane : 15/12/2022 7:51 pm
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@isom tak, chodzi takie polecenie. Chcąc usatawić kilka wariantów muszę na schemacie ustawić tyleż samo bloków call service, bardziej szukam rozwiązania by tę wartość uwarunkować od zmiennej.

tu mi nie działało, ponieważ stawiałem kropkę pomiędzy temperature a wartością 🙂

 
Dodane : 16/12/2022 9:00 am
(@mig41)
Wpisów: 615
Ekspert
 

Jak to działa , to połowa sukcesu 😉

W polu Data ,zamiast konkretnej wartości wstawiasz coś w ten deseń:

{"temperature":"{{payload}}"}

 

I wysyłasz do tego noda call service różne wartości , a on to odczytuje w wiadomości.

 
Dodane : 16/12/2022 9:23 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@marcingajda ok, niestety nie wiem w jakim formacie to wysłać. Ustawiam "switch" a w nim różne wartości, ale call service nie odczytuje tego. Jeśli to ma być m. payload to string i wartość. Wstawiałęm też pełną wartość i nic.

 
Dodane : 16/12/2022 9:38 am
(@mig41)
Wpisów: 615
Ekspert
 

Choćby takie coś powinno to ustawić ( zaimportuj to do nodered i połącz z tym Twoim call service , i zobacz czy ustawi , jak tak , to w debugu będziesz widział , jak ma wyglądać wiadomość 🙂 ):

[{"id":"672c153581dfa5fe","type":"inject","z":"067d38891fbe94ad","name":"SetTemp","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":"5","topic":"","payload":"23.5","payloadType":"num","x":420,"y":180,"wires":[["fa1f8576985691d2"]]},{"id":"fa1f8576985691d2","type":"debug","z":"067d38891fbe94ad","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":580,"y":260,"wires":[]}]
 
Dodane : 16/12/2022 9:50 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@marcingajda możesz jaśniej? Z tego co widzę to jest "inject", a jak potrzebuję do np. "change".

To co podałeś nie wiem gdzie mam to wkleić, nie znam na tyle jeszcze NR.

 
Dodane : 16/12/2022 10:04 am
(@mig41)
Wpisów: 615
Ekspert
 

Tak , to jest inject , i "wstrzyknie" Ci podaną w niej wartość 23.5 to noda call service , jak go z nim połączysz. 

A jak wstrzykniesz i się to ustawi , to w debugu zobaczysz ,jak powinna wyglądać wiadomość , którą aktualnie przyjmuje nod call serwice.

 

Możesz też debuga podpiąć pod wyjście noda , którym podajesz wartości do tego call service , i ją pokazać , to dostosuje się to co ma być w polu data.

 
Dodane : 16/12/2022 10:08 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@marcingajda tak to rozumie, zwraca mi:

Call-service error. expected float for dictionary value @ data['temperature']

 
Dodane : 16/12/2022 10:10 am
(@mig41)
Wpisów: 615
Ekspert
 

Ale chyba debuga wstawiłeś za ten call-service , wstaw go przed i zobacz jaką wiadomość on dostaje.

 
Dodane : 16/12/2022 10:15 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@marcingajda wpierw mi powiedz jak mam utworzyć noda wg twojego wiersza

 
Dodane : 16/12/2022 10:22 am
(@mig41)
Wpisów: 615
Ekspert
 

W menu ( ikonka z trzema paskami w prawym gornym rogu) znajdujesz import , lub naciskasz ctrl+i , i wklejasz całą linijkę , co ja wyeksportowałem 🙂

 
Dodane : 16/12/2022 10:28 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@mig41 🙂

16.12.2022, 09:31:52node: debug 1msg.payload : number
23.5

16.12.2022, 09:31:52salonsent data : msg :
{ domain: "climate", service: "set_temperature", data: object }
 
Dodane : 16/12/2022 10:33 am
(@mig41)
Wpisów: 615
Ekspert
 

No i ustawiła się temperatura 23.5 ? 

W sensie ,w HA była inna , a po wysłaniu w node red tym injectem zmianiła się na tą ?

 
Dodane : 16/12/2022 10:38 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@mig41 no nie, cały czas mam błąd. 

[{"id":"fc36258053a5e684","type":"tab","label":"Flow 3","disabled":false,"info":"","env":[]},{"id":"3b2d2fea6718cf1c","type":"api-call-service","z":"fc36258053a5e684","name":"salon","server":"3d7533d10bf6d654","version":5,"debugenabled":true,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.thermo_salon"],"data":"{\"temperature\":\"{{payload}}\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":120,"wires":[[]]},{"id":"672c153581dfa5fe","type":"inject","z":"fc36258053a5e684","name":"SetTemp","props":[{"p":"topic","v":"24","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":"5","topic":"","x":200,"y":280,"wires":[["fa1f8576985691d2","3b2d2fea6718cf1c"]]},{"id":"fa1f8576985691d2","type":"debug","z":"fc36258053a5e684","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":480,"y":320,"wires":[]},{"id":"3d7533d10bf6d654","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false}]
 
Dodane : 16/12/2022 10:40 am
(@mig41)
Wpisów: 615
Ekspert
 

Wiesz ,ze w tym iniect zmieniłeś typ msg.payload na msg.topic ? 

 
Dodane : 16/12/2022 10:50 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@mig41 tak, wiem. sprawdzałem inne funkcje, które akurat działają. nie mogę tylko wywołać zmiany temperatury.

 
Dodane : 16/12/2022 10:52 am
(@mig41)
Wpisów: 615
Ekspert
 

Muszę to później potestować , bo już czasu brak . 

Wrzuć jak ustawiłeś cały ten climate , to u siebie stworzę identyczny

 
Dodane : 16/12/2022 11:00 am
pawell32
(@pawell32)
Wpisów: 1190
Guru
Autor tematu
 

@mig41 

termostat:

- platform: generic_thermostat
  name: thermo salon
  heater: switch.zawor1
  target_sensor: sensor.zigbee_salon_temperature
  min_temp: 15
  max_temp: 25
  ac_mode: false
  target_temp: 21
  cold_tolerance: 0.3
  hot_tolerance: 0.3
  min_cycle_duration:
    minutes: 1
  keep_alive:
    minutes: 3
  initial_hvac_mode: "heat"
  precision: 0.1

flow:

[{"id":"fc36258053a5e684","type":"tab","label":"Flow 3","disabled":false,"info":"","env":[]},{"id":"3b2d2fea6718cf1c","type":"api-call-service","z":"fc36258053a5e684","name":"salon","server":"3d7533d10bf6d654","version":5,"debugenabled":true,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.thermo_salon"],"data":"{\"temperature\":\"{{palyload}}\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":120,"wires":[[]]},{"id":"fa1f8576985691d2","type":"debug","z":"fc36258053a5e684","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":800,"y":200,"wires":[]},{"id":"d86286b9b0f370e2","type":"inject","z":"fc36258053a5e684","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"23","payloadType":"num","x":190,"y":200,"wires":[["3b2d2fea6718cf1c","fa1f8576985691d2"]]},{"id":"3d7533d10bf6d654","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false}]

 

 
Dodane : 16/12/2022 11:10 am
(@mig41)
Wpisów: 615
Ekspert
 

Ok , takie coś działa 

[{"id":"3b2d2fea6718cf1c","type":"api-call-service","z":"fc36258053a5e684","name":"salon","server":"3d7533d10bf6d654","version":5,"debugenabled":true,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.thermo_salon"],"data":"{\"temperature\":\"{{payload}}\",\"entity_id\":\"climate.thermo_salon\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":120,"wires":[[]]},{"id":"672c153581dfa5fe","type":"inject","z":"fc36258053a5e684","name":"SetTemp","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":"5","topic":"","payload":"22.5","payloadType":"str","x":200,"y":280,"wires":[["fa1f8576985691d2","3b2d2fea6718cf1c"]]},{"id":"fa1f8576985691d2","type":"debug","z":"fc36258053a5e684","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":480,"y":320,"wires":[]},{"id":"3d7533d10bf6d654","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false}]
 
Dodane : 16/12/2022 11:42 am
pawell32 reacted
Strona 1 / 2
Udostępnij: