Skip to content

⚠️⚠️⚠️ BREAKING CHANGES ⚠️⚠️⚠️

Choose a tag to compare

@cataseven cataseven released this 24 Feb 12:20
932c9f3

⚠️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_action attribute 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 to heat mode may have hvac_action: idle when the target temperature is already reached — if_any_heating will 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"