From 4438de1f87d618408a1652ef8762cc0564624b8f Mon Sep 17 00:00:00 2001 From: Georgi Gardev Date: Wed, 2 Dec 2020 23:03:14 +0200 Subject: [PATCH] Automations based on outside AQI --- .../advanced_dashboard/08_automations.yaml | 5 ++ .../lovelace/advanced_dashboard/12_test.yaml | 2 + config/packages/devices/bedroom/purifier.yaml | 37 ++++++++- .../packages/modules/climate/air_quality.yaml | 77 +++++++++++++++++++ config/packages/modules/presence.yaml | 10 +++ 5 files changed, 130 insertions(+), 1 deletion(-) diff --git a/config/lovelace/advanced_dashboard/08_automations.yaml b/config/lovelace/advanced_dashboard/08_automations.yaml index 5868cd9..28f9c75 100644 --- a/config/lovelace/advanced_dashboard/08_automations.yaml +++ b/config/lovelace/advanced_dashboard/08_automations.yaml @@ -163,6 +163,10 @@ cards: show_header_toggle: false icon: mdi:air-purifier entities: + - automation.cliamate_air_quality_alert_when_opening_a_window + - automation.cliamate_air_quality_alert_when_aqi_drops + - automation.cliamate_air_quality_turn_on_purifier_in_bedroom_on_window_open + - type: divider - script.turn_on_all_radiators - automation.climate_heating_turn_on_all_radiators_at_5_am - automation.climate_heating_link_living_room_radiator_to_windows @@ -178,6 +182,7 @@ cards: - automation.purifier_turn_on_low_humidity - automation.purifier_turn_on_low_air_quality - automation.purifier_turn_off_okay_humidity + - automation.purifier_turn_off_air_quality_returned_to_normal - type: entities title: System diff --git a/config/lovelace/advanced_dashboard/12_test.yaml b/config/lovelace/advanced_dashboard/12_test.yaml index 316b81a..4b74399 100644 --- a/config/lovelace/advanced_dashboard/12_test.yaml +++ b/config/lovelace/advanced_dashboard/12_test.yaml @@ -3,6 +3,8 @@ path: test cards: - type: entities entities: + - input_boolean.purifier_turned_on_for_bad_air + - binary_sensor.aqi_above_threshold - input_boolean.magic_cube_enabled - input_select.magic_cube_mode - type: divider diff --git a/config/packages/devices/bedroom/purifier.yaml b/config/packages/devices/bedroom/purifier.yaml index a9c0962..e4488ef 100644 --- a/config/packages/devices/bedroom/purifier.yaml +++ b/config/packages/devices/bedroom/purifier.yaml @@ -4,6 +4,10 @@ fan: - platform: philips_airpurifier host: !secret philips_purifier_ip +input_boolean: + purifier_turned_on_for_bad_air: + name: Purifier enabled for bad air + input_select: purifier_speed: name: Speed @@ -280,6 +284,8 @@ automation: action: - service: fan.turn_on entity_id: fan.philips_airpurifier + - service: input_boolean.turn_on + entity_id: input_boolean.purifier_turned_on_for_bad_air - service: script.say data: message: "Hey, I'm turning on the purifier, because air quality is low" @@ -294,7 +300,7 @@ automation: - service: philips_airpurifier.set_function entity_id: fan.philips_airpurifier data: - funcition: "Purification & Humidification" + function: "Purification & Humidification" - service: script.say data: message: "Also, switching to humidification, because there is water in the tank" @@ -333,6 +339,35 @@ automation: message: "Purifier Off 路 Humidity is okay" domain: fan + - alias: Purifier 路 Turn off 路 Air quality returned to normal + trigger: + platform: numeric_state + entity_id: sensor.purifier_air_quality + below: 20 + condition: + condition: and + conditions: + - condition: state + entity_id: fan.philips_airpurifier + state: "on" + - condition: state + entity_id: input_boolean.purifier_turned_on_for_bad_air + state: "on" + - condition: state + entity_id: group.bedroom_windows + state: "off" + + action: + - service: fan.turn_off + entity_id: fan.philips_airpurifier + - service: input_boolean.turn_off + entity_id: input_boolean.purifier_turned_on_for_bad_air + - service: logbook.log + data: + name: "馃挩 Climate Module 路 " + message: "Purifier Off 路 Air quality returned to normal" + domain: fan + homeassistant: customize: fan.philips_airpurifier: diff --git a/config/packages/modules/climate/air_quality.yaml b/config/packages/modules/climate/air_quality.yaml index cacf52b..a6b7786 100644 --- a/config/packages/modules/climate/air_quality.yaml +++ b/config/packages/modules/climate/air_quality.yaml @@ -4,3 +4,80 @@ sensor: locations: - "mladost" - "druzhba" + +binary_sensor: + - platform: threshold + entity_id: sensor.waqi_mladost_sofia + upper: 35 + name: aqi_above_threshold + +automation: + - alias: Cliamate 路 Air Quality 路聽Alert when opening a window + trigger: + platform: state + entity_id: + - binary_sensor.kitchen_window + - binary_sensor.living_room_right_window + - binary_sensor.bedroom_left_window + - binary_sensor.bedroom_right_window + from: "off" + to: "on" + condition: + - condition: state + entity_id: binary_sensor.aqi_above_threshold + state: "on" + action: + - service: script.say + data: + message: "Hey, the air outside is pretty bad. I suggest closing the windows." + + - alias: Cliamate 路 Air Quality 路 Alert when AQI drops + trigger: + platform: state + entity_id: binary_sensor.aqi_above_threshold + from: "off" + to: "on" + condition: + - condition: or + conditions: + - condition: state + entity_id: + - binary_sensor.kitchen_window + - binary_sensor.living_room_right_window + - binary_sensor.bedroom_left_window + - binary_sensor.bedroom_right_window + state: "on" + action: + - service: script.say + data: + message: "Hey, the air outside is getting worse, and you have some windows open. I suggest closing them." + + - alias: Cliamate 路 Air Quality 路 Turn on purifier in bedroom on window open + trigger: + platform: state + entity_id: binary_sensor.aqi_above_threshold + from: "off" + to: "on" + condition: + - condition: state + entity_id: group.bedroom_windows + state: "on" + + action: + - service: logbook.log + data: + name: "馃挩 Climate Module 路 " + message: "Purifier On 路 Air quality is bad outside and a window was opened" + domain: fan + - service: fan.turn_on + entity_id: fan.philips_airpurifier + - service: fan.turn_on + entity_id: fan.philips_airpurifier + data: + speed: "Speed 3" + - service: philips_airpurifier.set_function + data: + entity_id: fan.philips_airpurifier + function: "Purification" + - service: input_boolean.turn_on + entity_id: input_boolean.purifier_turned_on_for_bad_air diff --git a/config/packages/modules/presence.yaml b/config/packages/modules/presence.yaml index ff1bff0..d9d6a26 100644 --- a/config/packages/modules/presence.yaml +++ b/config/packages/modules/presence.yaml @@ -61,6 +61,16 @@ binary_sensor: value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}" sensor: + - platform: history_stats + name: At Desk + entity_id: binary_sensor.trisensor_sensor + state: "on" + type: ratio + duration: + minutes: 5 + end: '{{ now() }}' + + - platform: history_stats name: Quarantined percent entity_id: device_tracker.carbon