From 77b6b854a3198d6dea7f6c4f330eb90aaeb1f12f Mon Sep 17 00:00:00 2001 From: Giorgio Ravera Date: Fri, 11 Dec 2020 09:49:03 +0100 Subject: [PATCH] Replaced EQ3 Max with Netatmo Valves --- .secrets_travis.yaml | 3 + .storage/lovelace | 172 ++++++++++++++--------- .storage/lovelace.lovelace_dispositivi | 64 +++++++++ README.md | 7 +- automations/climate.yaml | 143 ++++++------------- components/google_assistant/climate.yaml | 18 +-- components/netatmo.yaml | 6 + configuration.yaml | 4 +- customizations/climate.yaml | 22 +-- groups/climate.yaml | 10 +- log/history.yaml | 11 ++ log/logbook.yaml | 11 ++ log/recorder.yaml | 11 ++ scripts/climate.yaml | 102 +++++--------- sensor/climates.yaml | 147 ++++++++++++++++--- www/images/devices/netatmo_valve.png | Bin 0 -> 52945 bytes 16 files changed, 452 insertions(+), 279 deletions(-) create mode 100644 components/netatmo.yaml create mode 100644 www/images/devices/netatmo_valve.png diff --git a/.secrets_travis.yaml b/.secrets_travis.yaml index fc80ad16..0c3aec87 100644 --- a/.secrets_travis.yaml +++ b/.secrets_travis.yaml @@ -47,3 +47,6 @@ docker_username: user darksky_key: 0 hacs_token: 0 + +netatmo_client_id: client_id +netatmo_client_secret: password diff --git a/.storage/lovelace b/.storage/lovelace index 1bd908cc..c841927f 100644 --- a/.storage/lovelace +++ b/.storage/lovelace @@ -55,7 +55,7 @@ "entity": "cover.tapparella_cucina" }, { - "entity": "climate.cucina_termostato_cucina" + "entity": "climate.netatmo_cucina" }, { "entity": "media_player.google_home" @@ -82,7 +82,7 @@ "entity": "cover.tapparella_sala" }, { - "entity": "climate.sala_termostato_sala" + "entity": "climate.netatmo_sala" }, { "entity": "media_player.sony_bravia_tv" @@ -121,7 +121,7 @@ "entity": "light.luce_specchio" }, { - "entity": "climate.bagno_termostato_bagno" + "entity": "climate.netatmo_bagno" } ], "entity": "light.luci_bagno", @@ -142,7 +142,7 @@ "entity": "cover.tapparella_studio" }, { - "entity": "climate.studio_termostato_studio" + "entity": "climate.netatmo_studio" } ], "entity": "light.luce_studio", @@ -163,7 +163,7 @@ "entity": "cover.tapparella_camera" }, { - "entity": "climate.camera_termostato_camera" + "entity": "climate.netatmo_camera_da_letto" } ], "entity": "light.luce_camera", @@ -438,32 +438,57 @@ "title": "Tapparelle" }, { + "icon": "mdi:thermometer", + "id": "climate", + "title": "Termostato", "badges": [ - "sensor.termostato_cucina", - "sensor.termostato_sala", - "sensor.termostato_bagno", - "sensor.termostato_studio", - "sensor.termostato_camera" + { + "entity": "sensor.valve_cucina_temperature" + }, + { + "entity": "sensor.valve_sala_temperature" + }, + { + "entity": "sensor.valve_bagno_temperature" + }, + { + "entity": "sensor.valve_studio_temperature" + }, + { + "entity": "sensor.valve_camera_da_letto_temperature" + }, + { + "entity": "sensor.front_balcony_temperature" + }, + { + "entity": "sensor.rear_balcony_temperature" + }, + { + "entity": "sensor.front_balcony_humidity" + }, + { + "entity": "sensor.rear_balcony_humidity" + } ], "cards": [ { - "entity": "climate.cucina_termostato_cucina", + "entity": "climate.netatmo_cucina", "type": "thermostat" }, { - "entity": "climate.sala_termostato_sala", + "entity": "climate.netatmo_sala", "type": "thermostat" }, { - "entity": "climate.bagno_termostato_bagno", + "entity": "climate.netatmo_bagno", "type": "thermostat" }, { - "entity": "climate.studio_termostato_studio", + "entity": "climate.netatmo_studio", "type": "thermostat" }, { - "entity": "climate.camera_termostato_camera", + "entity": "climate.netatmo_camera_da_letto", "type": "thermostat" }, { @@ -471,62 +496,109 @@ { "action_name": "Attiva Boost", "name": "Cucina", - "service": "climate.set_preset_mode", + "service": "script.climate_valve_boost", "service_data": { - "entity_id": "climate.cucina_termostato_cucina", - "preset_mode": "boost" + "entity_id": "climate.netatmo_cucina" }, "type": "call-service" }, { "action_name": "Attiva Boost", "name": "Sala", - "service": "climate.set_preset_mode", + "service": "script.climate_valve_boost", "service_data": { - "entity_id": "climate.sala_termostato_sala", - "preset_mode": "boost" + "entity_id": "climate.netatmo_sala" }, "type": "call-service" }, { "action_name": "Attiva Boost", "name": "Bagno", - "service": "climate.set_preset_mode", + "service": "script.climate_valve_boost", "service_data": { - "entity_id": "climate.bagno_termostato_bagno", - "preset_mode": "boost" + "entity_id": "climate.netatmo_bagno" }, "type": "call-service" }, { "action_name": "Attiva Boost", "name": "Studio", - "service": "climate.set_preset_mode", + "service": "script.climate_valve_boost", "service_data": { - "entity_id": "climate.studio_termostato_studio", - "preset_mode": "boost" + "entity_id": "climate.netatmo_studio" }, "type": "call-service" }, { "action_name": "Attiva Boost", "name": "Camera", - "service": "climate.set_preset_mode", + "service": "script.climate_valve_boost", "service_data": { - "entity_id": "climate.camera_termostato_camera", - "preset_mode": "boost" + "entity_id": "climate.netatmo_camera_da_letto" }, "type": "call-service" } ], "show_header_toggle": false, - "title": "Operazione sui Dispositivi", + "title": "Operazioni", "type": "entities" + }, + { + "type": "history-graph", + "entities": [ + { + "entity": "climate.netatmo_cucina" + } + ], + "hours_to_show": 24, + "refresh_interval": 0, + "title": "Valvola Cucina" + }, + { + "type": "history-graph", + "entities": [ + { + "entity": "climate.netatmo_sala" + } + ], + "hours_to_show": 24, + "refresh_interval": 0, + "title": "Valvola Sala" + }, + { + "type": "history-graph", + "entities": [ + { + "entity": "climate.netatmo_studio" + } + ], + "hours_to_show": 24, + "refresh_interval": 0, + "title": "Valvola Studio" + }, + { + "type": "history-graph", + "entities": [ + { + "entity": "climate.netatmo_bagno" + } + ], + "hours_to_show": 24, + "refresh_interval": 0, + "title": "Valvola Bagno" + }, + { + "type": "history-graph", + "entities": [ + { + "entity": "climate.netatmo_camera_da_letto" + } + ], + "hours_to_show": 24, + "refresh_interval": 0, + "title": "Valvola Camera" } - ], - "icon": "mdi:thermometer", - "id": "climate", - "title": "Termostato" + ] }, { "badges": [ @@ -749,12 +821,6 @@ "badges": [ { "entity": "sun.sun" - }, - { - "entity": "sensor.front_balcony_temperature" - }, - { - "entity": "sensor.rear_balcony_temperature" } ], "cards": [ @@ -765,30 +831,6 @@ { "entity": "weather.meteo_morgex", "type": "weather-forecast" - }, - { - "entities": [ - { - "entity": "sensor.front_balcony_temperature" - }, - { - "entity": "sensor.front_balcony_humidity" - } - ], - "title": "Balcone", - "type": "entities" - }, - { - "entities": [ - { - "entity": "sensor.rear_balcony_temperature" - }, - { - "entity": "sensor.rear_balcony_humidity" - } - ], - "title": "Veranda", - "type": "entities" } ] } diff --git a/.storage/lovelace.lovelace_dispositivi b/.storage/lovelace.lovelace_dispositivi index 0833de3e..99940b04 100644 --- a/.storage/lovelace.lovelace_dispositivi +++ b/.storage/lovelace.lovelace_dispositivi @@ -186,6 +186,70 @@ ] } ] + }, + { + "title": "Netatmo", + "path": "netatmo", + "icon": "mdi:alpha-n-box", + "badges": [], + "cards": [ + { + "type": "picture", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "custom:battery-state-card", + "title": "Batteria Valvole Netatmo", + "entities": [ + { + "entity": "sensor.valve_cucina_battery", + "name": "Cucina" + }, + { + "entity": "sensor.valve_sala_battery", + "name": "Sala" + }, + { + "entity": "sensor.valve_studio_battery", + "name": "Studio" + }, + { + "entity": "sensor.valve_bagno_battery", + "name": "Bagno" + }, + { + "entity": "sensor.valve_camera_da_letto_battery", + "name": "Camera" + } + ] + }, + { + "type": "entities", + "title": "Stato Valvole Netatmo", + "entities": [ + { + "entity": "sensor.valve_cucina_state", + "name": "Cucina" + }, + { + "entity": "sensor.valve_sala_state", + "name": "Sala" + }, + { + "entity": "sensor.valve_studio_state", + "name": "Studio" + }, + { + "entity": "sensor.valve_bagno_state", + "name": "Bagno" + }, + { + "entity": "sensor.valve_camera_da_letto_state", + "name": "Camera" + } + ] + } + ] } ], "title": "Dispositivi" diff --git a/README.md b/README.md index 451b99a7..ba4df3fa 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ My server is an Intel NUC (NUC5i5RYH) with [XCP-ng Hypervisor](https://xcp-ng.or * Google (Chromecast, Google Home Mini) * Shelly (Shelly1, Shelly2, Shelly2.5, ShellyEM, Shelly Dimmer) * Xiaomi (MiJia door & window contact sensor, MiJia temperature & humidity sensor) -* MAX! eQ-3 (Thermostatic valve) +* Netatmo Thermostatic valves +* ~~MAX! eQ-3 (Thermostatic valve)~~ * Sony Android TV (KD-55XF8596) * Canon Printer (TR8550) * QNAP NAS (TS-228A) @@ -32,6 +33,7 @@ My server is an Intel NUC (NUC5i5RYH) with [XCP-ng Hypervisor](https://xcp-ng.or * Create Users/People * Configure the following integrations using UI: * Certificate Expiry + * Google Calendar * Google Cast * HACS * Internet Printing Protocol @@ -47,6 +49,7 @@ All files are edited with [Visual Studio Code](https://code.visualstudio.com/). All files are tested using the latest stable version of Home Assistant using [Travis](https://travis-ci.com/github/xraver/homeassistant). ## To Do List +* Netatmo automations * Script review ([Native types support for templates](https://www.home-assistant.io/blog/2020/10/28/release-117/#native-types-support-for-templates-beta) after release 117) * NFC * Lovelace: @@ -82,4 +85,4 @@ All files are tested using the latest stable version of Home Assistant using [Tr [last-commit-url]: https://github.com/xraver/homeassistant/commits/master [buymecoffee-img]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg [buymecoffee-button]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg -[buymecoffee-url]: https://www.buymeacoffee.com/raverag \ No newline at end of file +[buymecoffee-url]: https://www.buymeacoffee.com/raverag diff --git a/automations/climate.yaml b/automations/climate.yaml index fc8aa6a5..e525706a 100644 --- a/automations/climate.yaml +++ b/automations/climate.yaml @@ -1,122 +1,67 @@ ###################################################################### -# Climate: Weekly Schedule -# - script.climate_daily_schedule +# Climate: Away Mode On +# - script.turn_on ###################################################################### -- alias: "Termosifoni: Schedulazione giornaliera feriale" - initial_state: false +- alias: "Termosifoni: Attiva Modalità vacanza" trigger: - - platform: time - at: '06:30:00' - - platform: time - at: '07:30:00' - - platform: time - at: '09:00:00' - - platform: time - at: '18:30:00' - - platform: time - at: '22:00:00' -# - platform: state -# entity_id: input_boolean.home_mode_away -# to: 'off' - - condition: - condition: and - conditions: - - condition: state - entity_id: input_boolean.home_mode_away - state: 'off' + - platform: state + entity_id: input_boolean.home_mode_away + to: 'on' - - condition: time - weekday: [mon, tue, wed, thu, fri] + condition: [] action: - - service: script.climate_daily_schedule - data_template: - entity_id: climate.cucina_termostato_cucina - temp1: 20 - temp2: 18 - temp3: 20 - temp4: 20.5 - temp5: 16 - - - service: script.climate_daily_schedule - data_template: - entity_id: climate.sala_termostato_sala - temp1: 18 - temp2: 18 - temp3: 19.5 - temp4: 20 - temp5: 16 - - - service: script.climate_daily_schedule - data_template: - entity_id: climate.bagno_termostato_bagno - temp1: 19 - temp2: 18 - temp3: 19 - temp4: 19.5 - temp5: 16 - - - service: script.climate_daily_schedule - data_template: - entity_id: climate.studio_termostato_studio - temp1: 18 - temp2: 18 - temp3: 19.5 - temp4: 20 - temp5: 16 - - - service: script.climate_daily_schedule - data_template: - entity_id: climate.camera_termostato_camera - temp1: 19 - temp2: 18 - temp3: 19 - temp4: 19.5 - temp5: 16 + - service: script.turn_on + data: + entity_id: script.climate_away_mode_on ###################################################################### -# Climate: Away Mode -# - climate.set_operation_mode -# - climate.set_temperature +# Climate: Away Mode Off +# Note: in summer away mode off is disabled +# - climate.set_hvac_mode ###################################################################### -- alias: "Termosifoni: Modalità vacanza" - initial_state: false +- alias: "Termosifoni: Disattiva Modalità vacanza" trigger: - - platform: state - entity_id: input_boolean.home_mode_away - to: 'on' - platform: state entity_id: input_boolean.home_mode_away to: 'off' - condition: [] + condition: "{{ now().month > 10 or now().month < 5 }}" action: - - service: script.climate_away_mode - data_template: - entity_id: climate.cucina_termostato_cucina + - service: script.turn_on + data: + entity_id: script.climate_away_mode_off - - service: script.climate_away_mode - data_template: - entity_id: climate.sala_termostato_sala - mode: trigger.to_state.state +###################################################################### +# Climate: Schedule according to Condominium +# - script.turn_on +###################################################################### - - service: script.climate_away_mode - data_template: - entity_id: climate.bagno_termostato_bagno - mode: trigger.to_state.state - - - service: script.climate_away_mode - data_template: - entity_id: climate.studio_termostato_studio - mode: trigger.to_state.state - - - service: script.climate_away_mode +- alias: "Termosifoni: Gestione automatica riscaldamento" + + trigger: + - platform: homeassistant + event: start + - platform: time + at: '00:00:00' + + condition: + condition: or + conditions: + - '{{ now().month == 11 and now().day == 1}}' # Winter + - '{{ now().month == 4 and now().day == 15 }}' # Summer + + action: + - service: script.turn_on data_template: - entity_id: climate.camera_termostato_camera - mode: trigger.to_state.state + entity_id: >- + {% if now().month > 10 or now().month < 5 %} + script.climate_away_mode_off + {% else %} + script.climate_away_mode_on + {% endif %} diff --git a/components/google_assistant/climate.yaml b/components/google_assistant/climate.yaml index 6fa3837f..e440f496 100644 --- a/components/google_assistant/climate.yaml +++ b/components/google_assistant/climate.yaml @@ -2,18 +2,18 @@ # Google Assistant: Climate ###################################################################### -climate.bagno_termostato_bagno: - expose: true - room: Bagno -climate.camera_termostato_camera: - expose: true - room: Camera -climate.cucina_termostato_cucina: +climate.netatmo_cucina: expose: true room: Cucina -climate.sala_termostato_sala: +climate.netatmo_sala: expose: true room: Sala -climate.studio_termostato_studio: +climate.netatmo_studio: expose: true room: Studio +climate.netatmo_bagno: + expose: true + room: Bagno +climate.netatmo_camera_da_letto: + expose: true + room: Camera diff --git a/components/netatmo.yaml b/components/netatmo.yaml new file mode 100644 index 00000000..bfccae5d --- /dev/null +++ b/components/netatmo.yaml @@ -0,0 +1,6 @@ +###################################################################### +# Component: Netatmo +###################################################################### + +client_id: !secret netatmo_client_id +client_secret: !secret netatmo_client_secret diff --git a/configuration.yaml b/configuration.yaml index adc338de..636080bf 100644 --- a/configuration.yaml +++ b/configuration.yaml @@ -184,8 +184,8 @@ weather: !include components/weather.yaml # MQTT (moved to UI) #mqtt: !include components/mqtt.yaml -# EQ3 Max Cube -maxcube: !include components/eq3max.yaml +# Netatmo +netatmo: !include components/netatmo.yaml # Google Assistant google_assistant: !include components/google_assistant.yaml diff --git a/customizations/climate.yaml b/customizations/climate.yaml index 90d013e8..43f13440 100644 --- a/customizations/climate.yaml +++ b/customizations/climate.yaml @@ -1,18 +1,18 @@ ###################################################################### -# Customization: MAX EQ3 +# Customization: Climate ###################################################################### -climate.cucina_termostato_cucina: - friendly_name: Termostato Cucina +climate.netatmo_cucina: + friendly_name: Valvola Cucina -climate.sala_termostato_sala: - friendly_name: Termostato Sala +climate.netatmo_sala: + friendly_name: Valvola Sala -climate.bagno_termostato_bagno: - friendly_name: Termostato Bagno +climate.netatmo_bagno: + friendly_name: Valvola Bagno -climate.studio_termostato_studio: - friendly_name: Termostato Studio +climate.netatmo_studio: + friendly_name: Valvola Studio -climate.camera_termostato_camera: - friendly_name: Termostato Camera +climate.netatmo_camera_da_letto: + friendly_name: Valvola Camera diff --git a/groups/climate.yaml b/groups/climate.yaml index 8f68f5da..a2112f02 100644 --- a/groups/climate.yaml +++ b/groups/climate.yaml @@ -6,8 +6,8 @@ climate: name: Termostato icon: mdi:thermometer entities: - - sensor.termostato_cucina - - sensor.termostato_sala - - sensor.termostato_bagno - - sensor.termostato_studio - - sensor.termostato_camera + - climate.netatmo_cucina + - climate.netatmo_sala + - climate.netatmo_studio + - climate.netatmo_bagno + - climate.netatmo_camera_da_letto diff --git a/log/history.yaml b/log/history.yaml index b4a61e43..4e7ce518 100644 --- a/log/history.yaml +++ b/log/history.yaml @@ -77,6 +77,17 @@ exclude: - sensor.canon_tr8500_series_cyan - sensor.canon_tr8500_series_magenta - sensor.canon_tr8500_series_yellow + # Netatmo + - sensor.valve_cucina_battery + - sensor.valve_sala_battery + - sensor.valve_studio_battery + - sensor.valve_bagno_battery + - sensor.valve_camera_da_letto_battery + - sensor.valve_cucina_state + - sensor.valve_sala_state + - sensor.valve_studio_state + - sensor.valve_bagno_state + - sensor.valve_camera_da_letto_state domains: - automation - calendar diff --git a/log/logbook.yaml b/log/logbook.yaml index e1c30602..5f79a03c 100644 --- a/log/logbook.yaml +++ b/log/logbook.yaml @@ -77,6 +77,17 @@ exclude: - sensor.canon_tr8500_series_cyan - sensor.canon_tr8500_series_magenta - sensor.canon_tr8500_series_yellow + # Netatmo + - sensor.valve_cucina_battery + - sensor.valve_sala_battery + - sensor.valve_studio_battery + - sensor.valve_bagno_battery + - sensor.valve_camera_da_letto_battery + - sensor.valve_cucina_state + - sensor.valve_sala_state + - sensor.valve_studio_state + - sensor.valve_bagno_state + - sensor.valve_camera_da_letto_state domains: - automation - calendar diff --git a/log/recorder.yaml b/log/recorder.yaml index c5ae3902..111b7671 100644 --- a/log/recorder.yaml +++ b/log/recorder.yaml @@ -79,6 +79,17 @@ exclude: - sensor.canon_tr8500_series_cyan - sensor.canon_tr8500_series_magenta - sensor.canon_tr8500_series_yellow + # Netatmo + - sensor.valve_cucina_battery + - sensor.valve_sala_battery + - sensor.valve_studio_battery + - sensor.valve_bagno_battery + - sensor.valve_camera_da_letto_battery + - sensor.valve_cucina_state + - sensor.valve_sala_state + - sensor.valve_studio_state + - sensor.valve_bagno_state + - sensor.valve_camera_da_letto_state domains: - automation - calendar diff --git a/scripts/climate.yaml b/scripts/climate.yaml index 704c5d73..af5d447d 100644 --- a/scripts/climate.yaml +++ b/scripts/climate.yaml @@ -1,91 +1,55 @@ ###################################################################### -# Climate: Daily Schedule +# Climate: Valve Boost # Inputs: # - entity_id -# - temp1 -# - temp2 -# - temp3 -# - temp4 -# - temp5 # # Operations: -# - climate.set_temperature +# - climate.set_hvac_mode ###################################################################### - -climate_daily_schedule: - alias: "Termosifoni: Schedulazione giornaliera" +climate_valve_boost: + alias: "Valvole: Boost" sequence: - - service: climate.set_temperature + #- service: climate.set_hvac_mode + - service: climate.set_preset_mode + data_template: + entity_id: "{{ entity_id }}" + #hvac_mode: heat + preset_mode: boost + - delay: 300 + - service: climate.set_hvac_mode data_template: entity_id: "{{ entity_id }}" - temperature: >- - {% set current_date_string = now().strftime("%H%M") %} - {% set time1_string = "0630" %} - {% set time2_string = "0730" %} - {% set time3_string = "0900" %} - {% set time4_string = "1830" %} - {% set time5_string = "2200" %} - {% if ((current_date_string|int) >= (time1_string|int)) and ((current_date_string|int) < (time2_string|int)) %} - {{ temp1 }} - {% elif ((current_date_string|int) >= (time2_string|int)) and ((current_date_string|int) < (time3_string|int)) %} - {{ temp2 }} - {% elif ((current_date_string|int) >= (time3_string|int)) and ((current_date_string|int) < (time4_string|int)) %} - {{ temp3 }} - {% elif ((current_date_string|int) >= (time4_string|int)) and ((current_date_string|int) < (time5_string|int)) %} - {{ temp4 }} - {% else %} - {{ temp5 }} - {% endif %} + hvac_mode: auto ###################################################################### # Climate: Away Mode On -# Inputs: -# - entity_id -# - mode -# -# Operations: -# - climate.set_operation_mode -# - climate.set_temperature +# - service: climate.set_preset_mode ###################################################################### - climate_away_mode_on: - alias: "Termosifoni: Attviva Modalità vacanza" sequence: - service: climate.set_preset_mode - data_template: - entity_id: "{{ entity_id }}" - preset_mode: manual - - delay: '00:00:5' - - service: climate.set_temperature - data_template: - entity_id: "{{ entity_id }}" - temperature: 5 - - delay: '00:00:5' - - service: climate.set_preset_mode - data_template: - entity_id: "{{ entity_id }}" - preset_mode: vacation - - delay: '00:00:5' - - service: climate.set_preset_mode - data_template: - entity_id: "{{ entity_id }}" - preset_mode: vacation + data: + entity_id: + - climate.netatmo_cucina + - climate.netatmo_sala + - climate.netatmo_studio + - climate.netatmo_bagno + - climate.netatmo_camera_da_letto + preset_mode: away ###################################################################### # Climate: Away Mode Off -# Inputs: -# - entity_id -# - mode -# -# Operations: -# - climate.set_operation_mode -# - climate.set_temperature +# Note: in summer away mode off is disabled +# - climate.set_hvac_mode ###################################################################### - climate_away_mode_off: - alias: "Termosifoni: Disattiva Modalità vacanza" sequence: - - service: climate.set_preset_mode - data_template: - entity_id: "{{ entity_id }}" - preset_mode: auto + - service: climate.set_hvac_mode + data: + entity_id: + - climate.netatmo_cucina + - climate.netatmo_sala + - climate.netatmo_studio + - climate.netatmo_bagno + - climate.netatmo_camera_da_letto + hvac_mode: auto diff --git a/sensor/climates.yaml b/sensor/climates.yaml index 57548d28..36701b6a 100644 --- a/sensor/climates.yaml +++ b/sensor/climates.yaml @@ -1,38 +1,151 @@ ###################################################################### -# Sensor: Temperature from Radiator Thermostat +# Sensor: Temperature from Radiator Valve ###################################################################### - platform: template sensors: - termostato_cucina: - friendly_name: "Cucina" - value_template: "{{ state_attr('climate.cucina_termostato_cucina', 'current_temperature') }}" + valve_cucina_temperature: + friendly_name: "Temperatura Cucina" + value_template: "{{ state_attr('climate.netatmo_cucina', 'current_temperature') }}" unit_of_measurement: '°C' + device_class: temperature - platform: template sensors: - termostato_sala: - friendly_name: "Sala" - value_template: "{{ state_attr('climate.sala_termostato_sala', 'current_temperature') }}" + valve_sala_temperature: + friendly_name: "Temperatura Sala" + value_template: "{{ state_attr('climate.netatmo_sala', 'current_temperature') }}" unit_of_measurement: '°C' + device_class: temperature - platform: template sensors: - termostato_bagno: - friendly_name: "Bagno" - value_template: "{{ state_attr('climate.bagno_termostato_bagno', 'current_temperature') }}" - unit_of_measurement: '°C' + valve_studio_temperature: + friendly_name: "Temperatura Studio" + value_template: "{{ state_attr('climate.netatmo_studio', 'current_temperature') }}" + unit_of_measurement: '°C' + device_class: temperature - platform: template sensors: - termostato_studio: - friendly_name: "Studio" - value_template: "{{ state_attr('climate.studio_termostato_studio', 'current_temperature') }}" + valve_bagno_temperature: + friendly_name: "Temperatura Bagno" + value_template: "{{ state_attr('climate.netatmo_bagno', 'current_temperature') }}" unit_of_measurement: '°C' + device_class: temperature - platform: template sensors: - termostato_camera: - friendly_name: "Camera" - value_template: "{{ state_attr('climate.camera_termostato_camera', 'current_temperature') }}" + valve_camera_da_letto_temperature: + friendly_name: "Temperatura Camera" + value_template: "{{ state_attr('climate.netatmo_camera_da_letto', 'current_temperature') }}" unit_of_measurement: '°C' + device_class: temperature + +###################################################################### +# Sensor: Battery from Radiator Valve +###################################################################### + +- platform: template + sensors: + valve_cucina_battery: + friendly_name: "Batteria Valvola Cucina" + value_template: "{{ state_attr('climate.netatmo_cucina', 'battery_level') }}" + unit_of_measurement: '%' + device_class: battery + +- platform: template + sensors: + valve_sala_battery: + friendly_name: "Batteria Valvola Sala" + value_template: "{{ state_attr('climate.netatmo_sala', 'battery_level') }}" + unit_of_measurement: '%' + device_class: battery + +- platform: template + sensors: + valve_studio_battery: + friendly_name: "Batteria Valvola Studio" + value_template: "{{ state_attr('climate.netatmo_studio', 'battery_level') }}" + unit_of_measurement: '%' + device_class: battery + +- platform: template + sensors: + valve_bagno_battery: + friendly_name: "Batteria Valvola Bagno" + value_template: "{{ state_attr('climate.netatmo_bagno', 'battery_level') }}" + unit_of_measurement: '%' + device_class: battery + +- platform: template + sensors: + valve_camera_da_letto_battery: + friendly_name: "Batteria Valvola Camera" + value_template: "{{ state_attr('climate.netatmo_camera_da_letto', 'battery_level') }}" + unit_of_measurement: '%' + device_class: battery + +###################################################################### +# Sensor: State from Radiator Valve +###################################################################### + +- platform: template + sensors: + valve_cucina_state: + friendly_name: "Stato Valvola Cucina" + value_template: "{{ state_attr('climate.netatmo_cucina', 'hvac_action') }}" + icon_template: >- + {% if is_state_attr('climate.netatmo_cucina', 'hvac_action', 'idle') %} + mdi:radiator-disabled + {% else %} + mdi:radiator + {% endif %} + +- platform: template + sensors: + valve_sala_state: + friendly_name: "Stato Valvola Sala" + value_template: "{{ state_attr('climate.netatmo_sala', 'hvac_action') }}" + icon_template: >- + {% if is_state_attr('climate.netatmo_sala', 'hvac_action', 'idle') %} + mdi:radiator-disabled + {% else %} + mdi:radiator + {% endif %} + +- platform: template + sensors: + valve_studio_state: + friendly_name: "Stato Valvola Studio" + value_template: "{{ state_attr('climate.netatmo_studio', 'hvac_action') }}" + icon_template: >- + {% if is_state_attr('climate.netatmo_studio', 'hvac_action', 'idle') %} + mdi:radiator-disabled + {% else %} + mdi:radiator + {% endif %} + +- platform: template + sensors: + valve_bagno_state: + friendly_name: "Stato Valvola Bagno" + value_template: "{{ state_attr('climate.netatmo_bagno', 'hvac_action') }}" + icon_template: >- + {% if is_state_attr('climate.netatmo_bagno', 'hvac_action', 'idle') %} + mdi:radiator-disabled + {% else %} + mdi:radiator + {% endif %} + +- platform: template + sensors: + valve_camera_da_letto_state: + friendly_name: "Stato Valvola Camera" + value_template: "{{ state_attr('climate.netatmo_camera_da_letto', 'hvac_action') }}" + icon_template: >- + {% if is_state_attr('climate.netatmo_camera_da_letto', 'hvac_action', 'idle') %} + mdi:radiator-disabled + {% else %} + mdi:radiator + {% endif %} diff --git a/www/images/devices/netatmo_valve.png b/www/images/devices/netatmo_valve.png new file mode 100644 index 0000000000000000000000000000000000000000..2f7361797e5af2d4d14f88e7a69dfbc835162af4 GIT binary patch literal 52945 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 literal 0 HcmV?d00001 -- 2.47.3