From ff5ea40c7b7913056021329ce42ec080a106d8c9 Mon Sep 17 00:00:00 2001 From: Jarno Rankinen Date: Wed, 8 Mar 2023 23:46:14 +0200 Subject: [PATCH] gh-6 updated Home Assistant YAMLs - Sensor names only in English now - Dashboards in Finnish and English - Added helpers.yaml and automations.yaml, needed for the Max heating & Adaptive circulation fan toggles in the dashboards. Idea is that these can be copy-pasted to appropriate locations in the UI or straight to configuration.yaml. Experimenting currently with using HASS to change the device state according to room temperature, that automation is not yet added to automations.yaml --- homeassistant/automations.yaml | 90 +++++++++++++ homeassistant/dashboard-en.yaml | 79 ++++++++++++ homeassistant/dashboard-fi.yaml | 80 ++++++++++++ .../en/homeassistant-dashboard-en.yml | 27 ---- homeassistant/en/homeassistant-rest-en.yaml | 63 --------- .../fi/homeassistant-dashboard-fi.yaml | 28 ---- homeassistant/fi/homeassistant-rest-fi.yaml | 63 --------- homeassistant/helpers.yaml | 7 + homeassistant/homeassistant-rest.yaml | 122 ++++++++++++++++++ 9 files changed, 378 insertions(+), 181 deletions(-) create mode 100644 homeassistant/automations.yaml create mode 100644 homeassistant/dashboard-en.yaml create mode 100644 homeassistant/dashboard-fi.yaml delete mode 100644 homeassistant/en/homeassistant-dashboard-en.yml delete mode 100644 homeassistant/en/homeassistant-rest-en.yaml delete mode 100644 homeassistant/fi/homeassistant-dashboard-fi.yaml delete mode 100644 homeassistant/fi/homeassistant-rest-fi.yaml create mode 100644 homeassistant/helpers.yaml create mode 100644 homeassistant/homeassistant-rest.yaml diff --git a/homeassistant/automations.yaml b/homeassistant/automations.yaml new file mode 100644 index 0000000..4949a9a --- /dev/null +++ b/homeassistant/automations.yaml @@ -0,0 +1,90 @@ +automation: + - alias: Penguin Max Heating input + description: "" + trigger: + - platform: state + entity_id: + - input_boolean.penguin_max_heating + condition: [] + action: + - if: + - condition: state + entity_id: input_boolean.penguin_max_heating + state: "on" + then: + - service: rest_command.penguin_max_heating_on + data: {} + else: [] + - if: + - condition: state + entity_id: input_boolean.penguin_max_heating + state: "off" + then: + - service: rest_command.penguin_max_heating_off + data: {} + - delay: + hours: 0 + minutes: 0 + seconds: 0 + milliseconds: 500 + - service: homeassistant.update_entity + data: {} + - if: + - condition: state + entity_id: binary_sensor.penguin_max_heating + state: "on" + then: [] + else: + - service: input_boolean.turn_off + data: {} + target: + entity_id: input_boolean.penguin_max_heating + mode: single + - alias: Penguin Max Heating sensor + description: "" + trigger: + - platform: state + entity_id: + - binary_sensor.penguin_max_heating + condition: [] + action: + - if: + - condition: state + entity_id: binary_sensor.penguin_max_heating + state: "on" + then: + - service: input_boolean.turn_on + data: {} + target: + entity_id: input_boolean.penguin_max_heating + else: + - service: input_boolean.turn_off + data: {} + target: + entity_id: input_boolean.penguin_max_heating + mode: single + + + - alias: Penguin circulation fan mode + description: "" + trigger: + - platform: state + entity_id: + - input_boolean.penguin_circulation_fan_adaptive + condition: [] + action: + - if: + - condition: state + entity_id: input_boolean.penguin_circulation_fan_adaptive + state: "on" + then: + - service: rest_command.penguin_circulation_adaptive + data: {} + - if: + - condition: state + entity_id: input_boolean.penguin_circulation_fan_adaptive + state: "off" + then: + - service: rest_command.penguin_circulation_manual + data: {} + mode: single diff --git a/homeassistant/dashboard-en.yaml b/homeassistant/dashboard-en.yaml new file mode 100644 index 0000000..219a110 --- /dev/null +++ b/homeassistant/dashboard-en.yaml @@ -0,0 +1,79 @@ +views: + - title: Penguin + cards: + - type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.penguin_heat_recovery_pct + name: HRC + severity: + green: 100 + yellow: 0 + red: 0 + - type: gauge + entity: sensor.penguin_after_heater_pct + name: Heating + severity: + green: 0 + yellow: 0 + red: 100 + - square: false + columns: 3 + type: grid + cards: + - show_name: true + show_icon: true + type: button + tap_action: + action: toggle + entity: input_boolean.penguin_circulation_fan_adaptive + name: Adaptive circulation + show_state: false + - show_name: true + show_icon: true + type: button + tap_action: + action: toggle + entity: input_boolean.penguin_max_heating + name: Max heating + show_state: false + - type: entities + entities: + - entity: sensor.penguin_operating_mode + name: Mode + - entity: sensor.penguin_room_temperature_1 + name: Room temperature + - entity: sensor.penguin_temperature_setting + name: Temperature setpoint + - entity: sensor.penguin_circulation_fan_pct + name: Criculation fan + - entity: sensor.penguin_days_until_service + name: Next maintenance + state_color: false + - type: entities + entities: + - entity: sensor.penguin_intake_air + name: Outside air at machine + - entity: sensor.penguin_intake_air_24h + name: Outside air 24h avg + - entity: sensor.penguin_supply_air_hrc + name: Supply air after HRC + - entity: sensor.penguin_supply_air_humidity + name: Supply air humidity + - entity: sensor.penguin_supply_air + name: Supply air + - entity: sensor.penguin_return_water + name: Return water + - entity: sensor.penguin_extract_air + name: Extract air before HRC + - entity: sensor.penguin_waste_air + name: Waste air + - entity: sensor.penguin_extract_air_humidity + name: Extract air humidity + - entity: sensor.penguin_hrc_efficiency_intake + name: HRC efficiency intake + - entity: sensor.penguin_hrc_efficiency_extract + name: HRC efficiency extract + title: Measurements diff --git a/homeassistant/dashboard-fi.yaml b/homeassistant/dashboard-fi.yaml new file mode 100644 index 0000000..0d2e853 --- /dev/null +++ b/homeassistant/dashboard-fi.yaml @@ -0,0 +1,80 @@ +views: + - title: Penguin + cards: + - type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.penguin_heat_recovery_pct + name: LTO + severity: + green: 100 + yellow: 0 + red: 0 + - type: gauge + entity: sensor.penguin_after_heater_pct + name: Lämmitys + severity: + green: 0 + yellow: 0 + red: 100 + - square: false + columns: 3 + type: grid + cards: + - show_name: true + show_icon: true + type: button + tap_action: + action: toggle + entity: input_boolean.penguin_circulation_fan_adaptive + name: Mukautuva kiertoilma + show_state: false + - show_name: true + show_icon: true + type: button + tap_action: + action: toggle + entity: input_boolean.penguin_max_heating + name: Max lämmitys + show_state: false + - type: entities + entities: + - entity: sensor.penguin_operating_mode + name: Tila + - entity: sensor.penguin_room_temperature_1 + name: Huonelämpötila + - entity: sensor.penguin_temperature_setting + name: Asetettu lämpötila + - entity: sensor.penguin_circulation_fan_pct + name: Kiertoilma + - entity: sensor.penguin_days_until_service + name: Seuraava huolto + state_color: false + - type: entities + entities: + - entity: sensor.penguin_intake_air + name: Ulkoilma koneen luona + - entity: sensor.penguin_intake_air_24h + name: Ulkoilma 24h keskiarvo + - entity: sensor.penguin_supply_air_hrc + name: Tuloilma LTO jälkeen + - entity: sensor.penguin_supply_air_humidity + name: Tuloilma kosteus + - entity: sensor.penguin_supply_air + name: Tuloilma + - entity: sensor.penguin_return_water + name: Paluuvesi + - entity: sensor.penguin_extract_air + name: Poistoilma ennen LTO + - entity: sensor.penguin_waste_air + name: Jäteilma + - entity: sensor.penguin_extract_air_humidity + name: Poistoilma kosteus + - entity: sensor.penguin_hrc_efficiency_intake + icon: '' + name: LTO hyötysuhde tuloilma + - entity: sensor.penguin_hrc_efficiency_extract + name: LTO hyötysuhde poistoilma + title: Mittaukset diff --git a/homeassistant/en/homeassistant-dashboard-en.yml b/homeassistant/en/homeassistant-dashboard-en.yml deleted file mode 100644 index fdeb978..0000000 --- a/homeassistant/en/homeassistant-dashboard-en.yml +++ /dev/null @@ -1,27 +0,0 @@ -views: - - title: Home - cards: - - type: entities - entities: - - entity: sensor.enervent_pingvin_mode - - entity: sensor.enervent_pingvin_room_temperature_1 - - entity: sensor.enervent_pingvin_heating - - entity: sensor.enervent_pingvin_heat_recovery - - entity: sensor.enervent_pingvin_temperature_setpoint - - entity: sensor.enervent_pingvin_circulation_fan - - entity: sensor.enervent_pingvin_next_maintenance - title: Enervent Pingvin - - type: entities - entities: - - entity: sensor.enervent_pingvin_outside_air - - entity: sensor.enervent_pingvin_outside_air_24h - - entity: sensor.enervent_pingvin_supply_air_hrc - - entity: sensor.enervent_pingvin_outside_air_humidity - - entity: sensor.enervent_pingvin_supply_air - - entity: sensor.enervent_pingvin_return_water - - entity: sensor.enervent_pingvin_extract_air - - entity: sensor.enervent_pingvin_waste_air - - entity: sensor.enervent_pingvin_extract_air_humidity - - entity: sensor.enervent_pingvin_hrc_efficiency_intake - - entity: sensor.enervent_pingvin_hrc_efficiency_exhaust - title: Enervent Pingvin measurements diff --git a/homeassistant/en/homeassistant-rest-en.yaml b/homeassistant/en/homeassistant-rest-en.yaml deleted file mode 100644 index 6e7241d..0000000 --- a/homeassistant/en/homeassistant-rest-en.yaml +++ /dev/null @@ -1,63 +0,0 @@ -rest: - - resource: http://IP_ADDRESS:8888/api/v1/status - scan_interval: 15 - sensor: - - name: "Enervent Pingvin mode" - value_template: "{{ value_json['op_mode'] }}" - icon: mdi:information - - name: "Enervent Pingvin room temperature 1" - value_template: "{{ value_json['measurements']['room_temp1'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin heating" - value_template: "{{ value_json['heater_pct'] }}" - unit_of_measurement: "%" - icon: mdi:heating-coil - - name: "Enervent Pingvin heat recovery" - value_template: "{{ value_json['hrc_pct'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin temperature setpoint" - value_template: "{{ value_json['temp_setting'] }}" - unit_of_measurement: "°C" - icon: mdi:thermometer-check - - name: "Enervent Pingvin circulation fan" - value_template: "{{ value_json['fan_pct'] }}" - unit_of_measurement: "%" - icon: mdi:fan - - name: "Enervent Pingvin HRC efficiency intake" - value_template: "{{ value_json['hrc_efficiency_in'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin HRC efficiency exhaust" - value_template: "{{ value_json['hrc_efficiency_ex'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin next maintenance" - value_template: "{{ value_json['days_until_service'] }}" - unit_of_measurement: "pv" - icon: mdi:calendar - - name: "Enervent Pingvin supply air" - value_template: "{{ value_json['measurements']['supply_heated'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin supply air HRC" - value_template: "{{ value_json['measurements']['supply_hrc'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin outside air" - value_template: "{{ value_json['measurements']['supply_intake'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin outside air 24h" - value_template: "{{ value_json['measurements']['supply_intake_24h'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin outside air humidity" - value_template: "{{ value_json['measurements']['supply_hum'] }}" - unit_of_measurement: "%" - icon: mdi:water-percent - - name: "Enervent Pingvin return water" - value_template: "{{ value_json['measurements']['watertemp'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin extract air" - value_template: "{{ value_json['measurements']['extract_intake'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin waste air" - value_template: "{{ value_json['measurements']['extract_hrc'] }}" - unit_of_measurement: "°C" diff --git a/homeassistant/fi/homeassistant-dashboard-fi.yaml b/homeassistant/fi/homeassistant-dashboard-fi.yaml deleted file mode 100644 index cbef0b0..0000000 --- a/homeassistant/fi/homeassistant-dashboard-fi.yaml +++ /dev/null @@ -1,28 +0,0 @@ -views: - - title: Home - cards: - - type: entities - entities: - - entity: sensor.enervent_pingvin_tila - - entity: sensor.enervent_pingvin_huonelampotila_1 - - entity: sensor.enervent_pingvin_lammitys - - entity: sensor.enervent_pingvin_lammontalteenotto - - entity: sensor.enervent_pingvin_lampotila_asetus - - entity: sensor.enervent_pingvin_kiertoilmapuhallin - - entity: sensor.enervent_pingvin_seuraava_huolto - title: Enervent Pingvin - - type: entities - entities: - - entity: sensor.enervent_pingvin_tuloilma_ulko - - entity: sensor.enervent_pingvin_tuloilma_ulko_24h - - entity: sensor.enervent_pingvin_tuloilma_lto - - entity: sensor.enervent_pingvin_tuloilma_kosteus - - entity: sensor.enervent_pingvin_tuloilma - - entity: sensor.enervent_pingvin_paluuvesi - - entity: sensor.enervent_pingvin_poistoilma - - entity: sensor.enervent_pingvin_jateilma - - entity: sensor.enervent_pingvin_poistoilma_kosteus_48h - - entity: sensor.enervent_pingvin_lto_hyotysuhde_tuloilma - icon: '' - - entity: sensor.enervent_pingvin_lto_hyotysuhde_poistoilma - title: Enervent Pingvin mittaukset diff --git a/homeassistant/fi/homeassistant-rest-fi.yaml b/homeassistant/fi/homeassistant-rest-fi.yaml deleted file mode 100644 index 5b917d0..0000000 --- a/homeassistant/fi/homeassistant-rest-fi.yaml +++ /dev/null @@ -1,63 +0,0 @@ -rest: - - resource: http://IP_ADDRESS:8888/api/v1/status - scan_interval: 15 - sensor: - - name: "Enervent Pingvin tila" - value_template: "{{ value_json['op_mode'] }}" - icon: mdi:information - - name: "Enervent Pingvin huonelämpötila 1" - value_template: "{{ value_json['measurements']['room_temp1'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin lämmitys" - value_template: "{{ value_json['heater_pct'] }}" - unit_of_measurement: "%" - icon: mdi:heating-coil - - name: "Enervent Pingvin lämmöntalteenotto" - value_template: "{{ value_json['hrc_pct'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin lämpötila-asetus" - value_template: "{{ value_json['temp_setting'] }}" - unit_of_measurement: "°C" - icon: mdi:thermometer-check - - name: "Enervent Pingvin kiertoilmapuhallin" - value_template: "{{ value_json['fan_pct'] }}" - unit_of_measurement: "%" - icon: mdi:fan - - name: "Enervent Pingvin LTO hyötysuhde tuloilma" - value_template: "{{ value_json['hrc_efficiency_in'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin LTO hyötysuhde poistoilma" - value_template: "{{ value_json['hrc_efficiency_ex'] }}" - unit_of_measurement: "%" - icon: mdi:recycle - - name: "Enervent Pingvin seuraava huolto" - value_template: "{{ value_json['days_until_service'] }}" - unit_of_measurement: "pv" - icon: mdi:calendar - - name: "Enervent Pingvin tuloilma" - value_template: "{{ value_json['measurements']['supply_heated'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin tuloilma LTO" - value_template: "{{ value_json['measurements']['supply_hrc'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin tuloilma ulko" - value_template: "{{ value_json['measurements']['supply_intake'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin tuloilma ulko 24h" - value_template: "{{ value_json['measurements']['supply_intake_24h'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin tuloilma kosteus" - value_template: "{{ value_json['measurements']['supply_hum'] }}" - unit_of_measurement: "%" - icon: mdi:water-percent - - name: "Enervent Pingvin paluuvesi" - value_template: "{{ value_json['measurements']['watertemp'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin poistoilma" - value_template: "{{ value_json['measurements']['extract_intake'] }}" - unit_of_measurement: "°C" - - name: "Enervent Pingvin jäteilma" - value_template: "{{ value_json['measurements']['extract_hrc'] }}" - unit_of_measurement: "°C" diff --git a/homeassistant/helpers.yaml b/homeassistant/helpers.yaml new file mode 100644 index 0000000..61f481b --- /dev/null +++ b/homeassistant/helpers.yaml @@ -0,0 +1,7 @@ +input_boolean: + penguin_max_heating: + name: Penguin Max Heating + icon: mdi:heat-wave + penguin_circulation_fan_adaptive: + name: Penguin Adaptive Circulation Fan + icon: mdi:fan-auto \ No newline at end of file diff --git a/homeassistant/homeassistant-rest.yaml b/homeassistant/homeassistant-rest.yaml new file mode 100644 index 0000000..ec9e18f --- /dev/null +++ b/homeassistant/homeassistant-rest.yaml @@ -0,0 +1,122 @@ +rest: + - resource: http://IP_ADDRESS:8888/api/v1/status + scan_interval: 15 + sensor: + - name: "Penguin operating mode" + value_template: "{{ value_json['op_mode'] }}" + icon: mdi:information + - name: "Penguin room temperature 1" + value_template: "{{ value_json['measurements']['room_temp1'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin after heater pct" + value_template: "{{ value_json['heater_pct'] }}" + unit_of_measurement: "%" + icon: mdi:heating-coil + - name: "Penguin heat recovery pct" + value_template: "{{ value_json['hrc_pct'] }}" + unit_of_measurement: "%" + icon: mdi:recycle + - name: "Penguin temperature setting" + value_template: "{{ value_json['temp_setting'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer-check + - name: "Penguin circulation fan pct" + value_template: "{{ value_json['fan_pct'] }}" + unit_of_measurement: "%" + icon: mdi:fan + - name: "Penguin HRC efficiency intake" + value_template: "{{ value_json['hrc_efficiency_in'] }}" + unit_of_measurement: "%" + icon: mdi:recycle + - name: "Penguin HRC efficiency extract" + value_template: "{{ value_json['hrc_efficiency_ex'] }}" + unit_of_measurement: "%" + icon: mdi:recycle + - name: "Penguin days until service" + value_template: "{{ value_json['days_until_service'] }}" + unit_of_measurement: "pv" + icon: mdi:calendar + - name: "Penguin supply air" + value_template: "{{ value_json['measurements']['supply_heated'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin supply air hrc" + value_template: "{{ value_json['measurements']['supply_hrc'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin intake air" + value_template: "{{ value_json['measurements']['supply_intake'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin intake air 24h" + value_template: "{{ value_json['measurements']['supply_intake_24h'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin supply air humidity" + value_template: "{{ value_json['measurements']['supply_hum'] }}" + unit_of_measurement: "%" + icon: mdi:water-percent + - name: "Penguin return water" + value_template: "{{ value_json['measurements']['watertemp'] }}" + unit_of_measurement: "°C" + icon: mdi:water-thermometer-outline + - name: "Penguin extract air" + value_template: "{{ value_json['measurements']['extract_intake'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin waste air" + value_template: "{{ value_json['measurements']['extract_hrc'] }}" + unit_of_measurement: "°C" + icon: mdi:thermometer + - name: "Penguin extract air humidity" + value_template: "{{ value_json['measurements']['extract_hum'] }}" + unit_of_measurement: "%" + icon: mdi:water-percent + - name: "Penguin extract air humidity 48h" + value_template: "{{ value_json['measurements']['extract_hum_48h'] }}" + unit_of_measurement: "%" + icon: mdi:water-percent + binary_sensor: + - name: "Penguin circulation adaptive" + value_template: "{{ value_json['coils'][11]['value'] }}" + icon: mdi:fan-auto + - name: "Penguin max heating" + value_template: "{{ value_json['coils'][6]['value'] }}" + icon: mdi:heat-wave + - name: "Penguin max cooling" + value_template: "{{ value_json['coils'][7]['value'] }}" + icon: mdi:snowflake + - name: "Penguin boost" + value_template: "{{ value_json['coils'][10]['value'] }}" + icon: mdi:arrow-expand-all + +rest_command: + penguin_circulation_adaptive: + url: http://IP_ADDRESS:8888/api/v1/coils/11/1 + method: POST + icon: mdi:fan-auto + penguin_circulation_manual: + url: http://IP_ADDRESS:8888/api/v1/coils/11/0 + method: POST + icon: mdi:fan + penguin_boost_toggle: + url: http://IP_ADDRESS:8888/api/v1/coils/10 + method: POST + icon: mdi:fan-plus + penguin_overpressure_toggle: + url: http://IP_ADDRESS:8888/api/v1/coils/3 + method: POST + icon: mdi:arrow-expand-all + penguin_max_heating_on: + url: http://IP_ADDRESS:8888/api/v1/coils/6/1 + method: POST + icon: mdi:heat-wave + penguin_max_heating_off: + url: http://IP_ADDRESS:8888/api/v1/coils/6/0 + method: POST + icon: mdi:scent-off + penguin_max_cooling_toggle: + url: http://IP_ADDRESS:8888/api/v1/coils/7 + method: POST + icon: mdi:snowflake