Obniżanie/podwyższanie temperatury wszystkich termostatów w lovelace przyciskami +/- dół góra/dół

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:
image
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 :grinning:
A tak przy okazji dzięki za pytanie, przynajmniej ja mam i działa :grinning:

@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 :wink:

Poradnik rozbijam na kilka wpisów, ponieważ jako nowy użytkownik mogę dodać jedynie jeden plik na wpis :joy:

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:

image

image

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:
image
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:
image

image

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.

1 Like