Hej. Mam skonfigurowane termostaty przy użyciu generic_thermostat (w sumie 7). Wszystko działa fajnie. Chciałbym jednak mieć możliwość podwyższenia/obniżenia temperatury o minimalny skok (np. 0,5C) z poziomu lovelace na wszystkich termostatach jednocześnie przy pomocy jakichś przycisków +/- (lub góra/dół). Czy macie pomysł jak można to ograć? Najbardziej odpowiadałoby mi przy pomocy node-red, bo w chwili obecnej tam trzymam wszystkie automatyzacje. Będę wdzięczny za sugestie jak podejść do tematu.
A jakbyś utworzył grupę
group:
thermostats:
name: Termostaty 1-7
entities:
- climate.lewy
- climate.prawy
- .....
@krskrab, nie do końca rozumiem jak mogłoby to zadziałać.
Myślałem o nodzie “call service” ze wskazaniem na wszystkie encje z domeny climate:
Nie umiem niestety ustawić poprawnie property “Data”…
Edit:
Przez HACS - Climate Group
climate:
- platform: climate_group
name: siedem termostatów'
temperature_unit: C # default to celsius, 'C' or 'F'
entities:
- climate.termostat 1
- climate.clima2
- climate.clima3
- climate.heater
- climate.termostate
U mnie wygląda to tak
Za pomocą jednego wirtualnego termostatu możesz sterować wszystkimi termostatami

A tak przy okazji dzięki za pytanie, przynajmniej ja mam i działa

@krskrab po raz kolejny proszę - edytuj Swoje posty!
Dzięki za odpowiedź. Twoje rozwiązanie jest ok, tylko to nie do końca to co chciałem uzyskać. W grupie ustawiasz jedną temperaturę dla wszystkich termostatów (tak to przynajmniej rozumiem). Mi chodziło, żeby podnieść/obniżyć temperaturę na każdym z jego obecnej temperatury, czyli np.:
- termostat_1: 20.0 °C → 20.5 °C
- termostat_2: 18.0 °C → 18.5 °C
- termostat_3: 23.0 °C → 23.5 °C
Udało mi się to zrobić w node-red. Wieczorem postaram się to opisać, bo teraz robota goni
Poradnik rozbijam na kilka wpisów, ponieważ jako nowy użytkownik mogę dodać jedynie jeden plik na wpis
Oto jak udało mi się uzyskać pożądany przeze mnie efekt. Stworzyłem dwa helpery typu boolean:
- input_boolean.ogrzewanie_temperatura_plus
- input_boolean.ogrzewanie_temperatura_minus
Tak na prawdę, nie obchodzi mnie ich stan, chciałem jedynie, aby po stronie HA istniał jakiś trigger dla node-red.
W node-red utworzyłem subflow:
JSONATA:
Cały subflow:
[{"id":"0407b0b93a92e322","type":"subflow","name":"Change temperature","info":"","category":"","in":[{"x":50,"y":80,"wires":[{"id":"14d53f37b1c42724"}]}],"out":[{"x":710,"y":80,"wires":[{"id":"d889bb150a5e351e","port":0}]}],"env":[{"name":"TEMP_STEP","type":"num","value":"0"},{"name":"ENTITY_ID_PREFIX","type":"str","value":"climate"}],"meta":{},"color":"#C0DEED","icon":"font-awesome/fa-thermometer-2"},{"id":"d889bb150a5e351e","type":"api-call-service","z":"0407b0b93a92e322","name":"Zmień temperaturę","server":"459af9e9.551038","version":3,"debugenabled":false,"service_domain":"climate","service":"set_temperature","entityId":"{{data.entity_id}}","data":"{\"temperature\": msg.data.attributes.temperature+$env('TEMP_STEP')}","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":570,"y":80,"wires":[[]]},{"id":"14d53f37b1c42724","type":"ha-get-entities","z":"0407b0b93a92e322","name":"Znajdź termostaty","server":"459af9e9.551038","version":0,"rules":[{"property":"entity_id","logic":"starts_with","value":"${ENTITY_ID_PREFIX}","valueType":"str"}],"output_type":"split","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":200,"y":80,"wires":[["0f971828f9e5afc5"]]},{"id":"0f971828f9e5afc5","type":"api-current-state","z":"0407b0b93a92e322","name":"Pobierz stan","server":"459af9e9.551038","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"{{payload.entity_id}}","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":390,"y":80,"wires":[["d889bb150a5e351e"]]},{"id":"459af9e9.551038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Przykład zastosowania. W Lovelace dodałem przyciski dla nowych helperów:
Ustawiłem im state_color
na false
, aby ikony nie odzwierciedlały stanu:
type: button
tap_action:
action: toggle
entity: input_boolean.ogrzewanie_temperatura_minus
show_name: false
state_color: false
W node-red utworzyłem flow’y:
Dzięki temu przy użyciu przycisków +/- w Lovelace podbijam/obniżam temperaturę wszystkich termostatów o zadany krok (w tym przypadku o 0,5C). Może da się to zrobić lepiej lub szybciej, niestety nie znalazłem niczego pomocnego w sieci. Może komuś się przyda.