⚠️⚠️⚠️ BREAKING CHANGE ⚠️⚠️⚠️ AND NEW DOMAINS
Release Notes — v1.2.0 and v.1.2.1
v1.2.0 ⚠️ Breaking Changes ⚠️
PLEASE READ THIS NOTES AND UPDATED README DOCUMENT
⚠️ REMOVED TEMPLATE VARIABLES: {{ active_count }} and {{ inactive_count }}
These generic variables have been replaced by domain-specific equivalents that are more readable and meaningful. Update your text and secondary_text fields as follows:
The full list of available count variables per domain is now:
| Domain | Available count variables |
|---|---|
light |
{{ on_count }} {{ off_count }} |
switch |
{{ on_count }} {{ off_count }} |
binary_sensor |
{{ true_count }} {{ false_count }} |
cover |
{{ open_count }} {{ closed_count }} {{ opening_count }} {{ closing_count }} {{ stopped_count }} |
media_player |
{{ playing_count }} {{ idle_count }} {{ paused_count }} {{ buffering_count }} {{ on_count }} {{ off_count }} |
person |
{{ at_home_count }} {{ away_count }} |
alarm_control_panel |
{{ armed_count }} {{ disarmed_count }} {{ triggered_count }} {{ arming_count }} {{ pending_count }} |
lock |
{{ unlocked_count }} {{ locked_count }} {{ locking_count }} {{ unlocking_count }} {{ jammed_count }} |
vacuum |
{{ cleaning_count }} {{ docked_count }} {{ returning_count }} {{ paused_count }} {{ idle_count }} {{ error_count }} |
camera |
{{ streaming_count }} {{ idle_count }} {{ recording_count }} |
climate (state) |
{{ heat_count }} {{ cool_count }} {{ heat_cool_count }} {{ auto_count }} {{ dry_count }} {{ fan_only_count }} {{ off_count }} |
climate (attribute) |
{{ heating_count }} {{ cooling_count }} {{ idle_count }} {{ fan_count }} {{ drying_count }} {{ preheating_count }} {{ defrosting_count }} |
{{ total_count }} and {{ unavailable_count }} are available in all domains and unchanged.
CHANGES ON CONDITIONS
Granular State Conditions
Each domain now exposes additional conditions that go beyond the basic active/inactive distinction, letting you react to specific intermediate or transient states.
| Domain | Available Conditions |
|---|---|
light, switch |
if_any_on, if_all_on, if_any_off, if_all_off |
binary_sensor |
if_any_true, if_all_true, if_any_false, if_all_false |
cover |
if_any_open, if_all_open, if_any_closed, if_all_closed, if_any_opening, if_all_opening, if_any_closing, if_all_closing, if_any_stopped, if_all_stopped |
media_player |
if_any_playing, if_all_playing, if_any_idle, if_all_idle, if_any_paused, if_all_paused, if_any_buffering, if_all_buffering, if_any_on, if_all_on, if_any_off, if_all_off |
person |
if_any_at_home, if_all_at_home, if_any_away, if_all_away |
alarm_control_panel |
if_any_armed, if_all_armed, if_any_disarmed, if_all_disarmed, if_any_triggered, if_all_triggered, if_any_arming, if_all_arming, if_any_pending, if_all_pending |
lock |
if_any_unlocked, if_all_unlocked, if_any_locked, if_all_locked, if_any_locking, if_all_locking, if_any_unlocking, if_all_unlocking, if_any_jammed, if_all_jammed |
vacuum |
if_any_cleaning, if_all_cleaning, if_any_docked, if_all_docked, if_any_returning, if_all_returning, if_any_paused, if_all_paused, if_any_idle, if_all_idle, if_any_error, if_all_error |
camera |
if_any_streaming, if_all_streaming, if_any_idle, if_all_idle, if_any_recording, if_all_recording |
climate (HVAC mode) |
if_any_heat, if_all_heat, if_any_cool, if_all_cool, if_any_heat_cool, if_all_heat_cool, if_any_auto, if_all_auto, if_any_dry, if_all_dry, if_any_fan_only, if_all_fan_only, if_any_off, if_all_off |
climate (hvac_action) |
if_any_heating, if_all_heating, if_any_cooling, if_all_cooling, if_any_idle, if_all_idle, if_any_fan, if_all_fan, if_any_drying, if_all_drying, if_any_preheating, if_all_preheating, if_any_defrosting, if_all_defrosting |
sensor |
if_any_above, if_any_below, if_any_equal, if_any_not_equal, any_unavailable |
Note: Climate conditions are based on the
hvac_actionattribute rather than the entity state, which means they reflect what the thermostat is actually doing rather than the mode it is set to. For example, a thermostat set toheatmode may havehvac_action: idlewhen the target temperature is already reached —if_any_heatingwill correctly report it as not actively heating.
Granular counters (examples):
# Climate — based on hvac_action attribute
text: "{{ heating_count }} heating, {{ cooling_count }} cooling"
# Media player
text: "{{ playing_count }} playing, {{ paused_count }} paused"
# Vacuum
text: "{{ cleaning_count }} cleaning, {{ returning_count }} returning"
# Cover
text: "{{ open_count }} open, {{ opening_count }} opening"
# Alarm
text: "{{ triggered_count }} triggered"
# Camera
text: "{{ recording_count }} recording"
# Lock
text: "{{ jammed_count }} jammed"v1.2.1
6 New Supported Domains
The following domains are now fully supported with conditions, template count variables, and UI editor integration.
Conditions
| Domain | Conditions |
|---|---|
fan |
any_unavailable, if_any_on, if_all_on, if_any_off, if_all_off |
humidifier |
any_unavailable, if_any_on, if_all_on, if_any_off, if_all_off |
plant |
any_unavailable, if_any_problem, if_all_problem, if_any_ok, if_all_ok |
siren |
any_unavailable, if_any_on, if_all_on, if_any_off, if_all_off |
update |
any_unavailable, if_any_on, if_all_on, if_any_off, if_all_off |
water_heater |
any_unavailable, if_any_active, if_all_active, if_any_off, if_all_off, if_any_eco, if_all_eco, if_any_electric, if_all_electric, if_any_performance, if_all_performance, if_any_high_demand, if_all_high_demand, if_any_heat_pump, if_all_heat_pump, if_any_gas, if_all_gas |
Count Variables
All new domains also expose {{ total_count }} and {{ unavailable_count }} in addition to the domain-specific variables below.
| Domain | Count variables |
|---|---|
fan |
{{ on_count }} {{ off_count }} |
humidifier |
{{ on_count }} {{ off_count }} |
plant |
{{ problem_count }} {{ ok_count }} |
siren |
{{ on_count }} {{ off_count }} |
update |
{{ on_count }} {{ off_count }} |
water_heater |
{{ active_count }} {{ off_count }} {{ eco_count }} {{ electric_count }} {{ performance_count }} {{ high_demand_count }} {{ heat_pump_count }} {{ gas_count }} |
Examples
# Fan summary
- domain: fan
name: Fans
styles:
- condition: if_any_on
text: "{{ on_count }} running"
icon: mdi:fan
color: deepskyblue
- condition: if_all_off
text: All Off
icon: mdi:fan-off
color: grey
# Plant care
- domain: plant
name: Plants
styles:
- condition: if_any_problem
text: "{{ problem_count }} need attention"
icon: mdi:flower-alert
color: red
- condition: if_all_ok
text: All Healthy
icon: mdi:flower
color: green
# Water heater
- domain: water_heater
name: Water Heaters
styles:
- condition: if_any_heating
text: "{{ active_count }} active ({{ eco_count }} eco)"
icon: mdi:water-boiler
color: orange
- condition: if_all_off
text: All Off
icon: mdi:water-boiler-off
color: grey
# Updates available
- domain: update
name: Updates
styles:
- condition: if_any_on
text: "{{ on_count }} update(s) available"
icon: mdi:update
color: orange
- condition: if_all_off
text: Up to Date
icon: mdi:check-circle
color: greenUI Improvements
- Domain names in the editor dropdown now display in human-readable format — underscores are replaced with spaces and each word is capitalized (e.g.
alarm_control_panel→ Alarm Control Panel,water_heater→ Water Heater). - Domain dropdown is now sorted alphabetically.