Package: Philips Air Purifier
Version: 1.0.0
Description: Normalizes Philips Air Purifier attributes (PM2.5, Filters)
Executive Summary
This package enhances the integration of the Philips Air Purifier by extracting hidden attributes from the main fan entity. It creates individual sensors for PM2.5 levels, Allergen Index, and the remaining life of Pre/Carbon/HEPA filters. This "Flattening" of attributes makes it significantly easier to display these metrics on dashboards or use them as triggers for other automations (e.g., "Order new filter").
Process Description (Non-Technical)
- Listen: The system watches the main Air Purifier connection.
- Extract: When the purifier reports "PM2.5: 14", this package copies that number to a new standalone sensor
sensor.purifier_pm_2_5. - Display: This allows you to drag-and-drop the PM2.5 value onto a graph card, which isn't possible when it's hidden inside the fan's settings.
Dashboard Connections
No specific entities detected to link.
Architecture Diagram
This is a pure data transformation layer. The fan.philips_air_purifier entity acts as a complex object containing multiple data points. The Template Sensors defined here subscribe to state changes of that parent object and map specific attributes (pm25, hepa_filter) to the state of new, single-purpose entities.
sequenceDiagram
participant Device as Air Purifier
participant Parent as Fan Entity
participant Sensor as Template Sensor
Device->>Parent: Update State (PM2.5=12, HEPA=4000h)
Parent->>Sensor: Attribute Change Detected
Sensor->>Sensor: Extract 'pm25'
Sensor->>Dashboard: Update "Purifier PM2.5" to 12
Configuration (Source Code)
# ------------------------------------------------------------------------------
# Package: Philips Air Purifier
# Version: 1.0.0
# Description: Normalizes Philips Air Purifier attributes (PM2.5, Filters)
# Dependencies: fan.philips_air_purifier
# ------------------------------------------------------------------------------
template:
- sensor:
- name: "Purifier PM 2.5"
unique_id: purifier_pm25
unit_of_measurement: "μg/m³"
device_class: pm25
icon: mdi:blur
state: >
{{ state_attr('fan.philips_air_purifier', 'pm25') }}
- name: "Purifier Allergen Index"
unique_id: purifier_allergen_index
unit_of_measurement: ""
icon: mdi:sprout
state: >
{{ state_attr('fan.philips_air_purifier', 'allergen_index') }}
- name: "Purifier Pre Filter"
unique_id: purifier_pre_filter
unit_of_measurement: "hours"
icon: mdi:air-filter
state: >
{{ state_attr('fan.philips_air_purifier', 'pre_filter') }}
- name: "Purifier Carbon Filter"
unique_id: purifier_carbon_filter
unit_of_measurement: "hours"
icon: mdi:air-filter
state: >
{{ state_attr('fan.philips_air_purifier', 'carbon_filter') }}
- name: "Purifier HEPA Filter"
unique_id: purifier_hepa_filter
unit_of_measurement: "hours"
icon: mdi:air-filter
state: >
{{ state_attr('fan.philips_air_purifier', 'hepa_filter') }}
