# Philips Purifier # https://github.com/xMrVizzy/Philips-AirPurifier fan: platform: philips_airpurifier host: !secret philips_purifier_ip input_select: purifier_speed: name: Speed icon: mdi:speedometer options: - Auto Mode - Allergen Mode - Sleep Mode - Speed 1 - Speed 2 - Speed 3 - Turbo purifier_target_humidity: name: Target humidity icon: mdi:water-percent options: - 40 - 50 - 60 sensor: - platform: template sensors: purifier_air_quality: friendly_name: Air quality value_template: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}" icon_template: mdi:weather-windy purifier_humidity: friendly_name: Humidity unit_of_measurement: "%" device_class: humidity value_template: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}" icon_template: mdi:water purifier_temperature: friendly_name: Temperature unit_of_measurement: "°C" device_class: temperature value_template: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}" icon_template: mdi:thermometer purifier_speed: friendly_name: Speed value_template: "{{ state_attr('fan.philips_airpurifier', 'speed') }}" icon_template: >- {% set value = state_attr('fan.philips_airpurifier', 'speed') %} {% if value == 'Auto Mode' %} {{ 'mdi:brightness-auto' }} {% elif value == 'Speed 1' %} {{ 'mdi:speedometer-slow' }} {% elif value == 'Speed 2' %} {{ 'mdi:speedometer-medium' }} {% elif value == 'Speed 3' %} {{ 'mdi:speedometer' }} {% elif value == 'Turbo' %} {{ 'mdi:car-turbocharger' }} {% elif value == 'Sleep Mode' %} {{ 'mdi:power-sleep' }} {% elif value == 'Allergen Mode' %} {{ 'mdi:allergy' }} {% endif %} purifier_allergens: friendly_name: Allergen index value_template: "{{ state_attr('fan.philips_airpurifier', 'allergen_index') }}" icon_template: mdi:weather-windy-variant purifier_function: friendly_name: Function value_template: "{{ state_attr('fan.philips_airpurifier', 'function') }}" icon_template: >- {% if state_attr('fan.philips_airpurifier', 'function') == 'Purification' %} {{ 'mdi:air-purifier' }} {% else %} {{ 'mdi:air-humidifier' }} {% endif %} purifier_pre_filter: friendly_name: Pre-filter unit_of_measurement: "Hrs" value_template: "{{ state_attr('fan.philips_airpurifier', 'pre_filter') }}" icon_template: mdi:air-filter purifier_wick_filter: friendly_name: Wick filter unit_of_measurement: "Hrs" value_template: "{{ state_attr('fan.philips_airpurifier', 'wick_filter') }}" icon_template: mdi:air-filter purifier_carbon_filter: friendly_name: Carbon filter unit_of_measurement: "Hrs" value_template: "{{ state_attr('fan.philips_airpurifier', 'carbon_filter') }}" icon_template: mdi:air-filter purifier_hepa_filter: friendly_name: HEPA filter unit_of_measurement: "Hrs" value_template: "{{ state_attr('fan.philips_airpurifier', 'hepa_filter')}}" icon_template: mdi:air-filter purifier_target_humidity: friendly_name: Target humidity unit_of_measurement: "%" value_template: "{{ state_attr('fan.philips_airpurifier', 'target_humidity') }}" icon_template: mdi:water-percent purifier_brightness: friendly_name: Brightness unit_of_measurement: "%" value_template: "{{ state_attr('fan.philips_airpurifier', 'light_brightness') }}" icon_template: mdi:brightness-6 purifier_timer: friendly_name: Timer unit_of_measurement: "hrs" value_template: "{{ state_attr('fan.philips_airpurifier', 'timer') }}" icon_template: mdi:timer purifier_time_remaining: friendly_name: Time remaining unit_of_measurement: "minutes" value_template: "{{ state_attr('fan.philips_airpurifier', 'timer_remaining_minutes') }}" icon_template: mdi:timer binary_sensor: - platform: template sensors: purifier_out_of_water: friendly_name: Water level device_class: problem value_template: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}" purifier_child_lock: friendly_name: Child lock value_template: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}" purifier_display_light: friendly_name: Display light value_template: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}" purifier_filter_needs_change: friendly_name: Filter needs change device_class: problem value_template: > {{ is_state('sensor.purifier_pre_filter', 0) or is_state('sensor.purifier_wick_filter', 0) or is_state('sensor.purifier_carbon_filter', 0) or is_state('sensor.purifier_hepa_filter', 0) }} script: purifier_toggle_function: alias: Purifier · Toggle function sequence: - condition: state entity_id: binary_sensor.purifier_out_of_water state: 'off' - service: philips_airpurifier.set_function entity_id: fan.philips_airpurifier data_template: function: >- {% if state_attr('fan.philips_airpurifier', 'function') == 'Purification' %} {{ 'Purification & Humidification' }} {% else %} {{ 'Purification' }} {% endif %} - service: script.purifier_request_update purifier_request_update: alias: Purifier · Request update sequence: - service: homeassistant.update_entity entity_id: fan.philips_airpurifier automation: - alias: Purifier · On start · Sync and update state trigger: platform: state entity_id: fan.philips_airpurifier to: 'on' action: - service: input_select.select_option entity_id: input_select.purifier_target_humidity data_template: option: "{{ states('sensor.purifier_target_humidity') }}" - service: input_select.select_option entity_id: input_select.purifier_speed data_template: option: "{{ states('sensor.purifier_speed') }}" - condition: state entity_id: binary_sensor.purifier_out_of_water state: "on" - service: philips_airpurifier.set_function entity_id: fan.philips_airpurifier data: function: 'Purification' - alias: Purifier · Change speed trigger: platform: state entity_id: input_select.purifier_speed action: - service: fan.set_speed entity_id: fan.philips_airpurifier data_template: speed: "{{ states('input_select.purifier_speed') }}" - service: script.purifier_request_update - alias: Purifier · Sync speed trigger: platform: state entity_id: sensor.purifier_speed action: - service: input_select.select_option entity_id: input_select.purifier_speed data_template: option: "{{ states('sensor.purifier_speed') }}" - alias: Purifier · Change humidity trigger: platform: state entity_id: input_select.purifier_target_humidity action: - service: philips_airpurifier.set_target_humidity entity_id: fan.philips_airpurifier data_template: humidity: >- {% set state = states('input_select.purifier_target_humidity') | int %} {% if state == 40 %} 40 {% elif state == 50 %} 50 {% else %} 60 {% endif %} - service: script.purifier_request_update - alias: Purifier · Sync humidity trigger: platform: state entity_id: sensor.purifier_target_humidity action: - service: input_select.select_option entity_id: input_select.purifier_target_humidity data_template: option: "{{ states('sensor.purifier_target_humidity') }}" - service: script.purifier_request_update - alias: Purifier · Turn on · Low humidity trigger: platform: numeric_state entity_id: sensor.bedroom_weather_humidity below: 20 condition: condition: and conditions: - condition: state entity_id: binary_sensor.purifier_out_of_water state: "off" - condition: state entity_id: fan.philips_airpurifier state: "off" - condition: state entity_id: input_boolean.georgi_home state: "on" action: - service: fan.turn_on entity_id: fan.philips_airpurifier - service: philips_airpurifier.set_function entity_id: fan.philips_airpurifier data: function: "Purification & Humidification" - service: script.purifier_request_update - service: script.say data: message: "Hey, I'm turning on the purifier, because humidity is low and there is water in the tank" - service: logbook.log data: name: "💨 Climate module · Purifier On · Humidity is low" entity_id: fan.philips_airpurifier domain: fan - alias: Purifier · Turn on · Low air quality trigger: platform: numeric_state entity_id: sensor.purifier_air_quality above: 30 condition: condition: and conditions: - condition: state entity_id: input_boolean.georgi_home state: "on" - condition: state entity_id: fan.philips_airpurifier state: "off" action: - service: fan.turn_on entity_id: fan.philips_airpurifier - service: script.say data: message: "Hey, I'm turning on the purifier, because air quality is low" - service: logbook.log data: name: "💨 Climate Module · Purifier On · Air quality is low" entity_id: fan.philips_airpurifier domain: fan - condition: state entity_id: binary_sensor.purifier_out_of_water state: "off" - service: philips_airpurifier.set_function entity_id: fan.philips_airpurifier data: funcition: "Purification & Humidification" - service: script.purifier_request_update - service: script.say data: message: "Also, switching to humidification, because there is water in the tank" - service: logbook.log data: name: "💨 Climate Module · Purifier Function · Switching to humidification - there is water in the tank" entity_id: fan.philips_airpurifier domain: fan - alias: Purifier · Turn off · Okay humidity trigger: platform: numeric_state entity_id: sensor.bedroom_weather_humidity above: 55 condition: condition: and conditions: - condition: state entity_id: fan.philips_airpurifier state: "on" - condition: state entity_id: sensor.purifier_function state: "Purification & Humidification" - condition: numeric_state entity_id: sensor.purifier_air_quality below: 30 action: - service: fan.turn_off entity_id: fan.philips_airpurifier - service: script.purifier_request_update - service: script.say data: message: "Hey, I'm turning the purifier off, because humidity is okay" - service: logbook.log data: name: "💨 Climate Module · Purifier Off · Humidity is okay" entity_id: fan.philips_airpurifier domain: fan homeassistant: customize: fan.philips_airpurifier: friendly_name: Air purifier