chore: initial baseline before refactoring
Initial snapshot of Home Assistant config (HAOS 2026.4.4)
prior to dashboard restructuring and helper YAML migration.
Pre-commit cleanup applied:
- Removed blueprints/switch_manager/ (9.4 MB stale, component already gone)
- Removed .storage/switch_manager
- Removed home-assistant.log.{1,old,fault}
- Removed zigbee2mqtt/configuration_backup_v{1..4}.yaml
- Removed zigbee2mqtt/database.db.tmp.2024-09-27 (1.5y old)
- Created empty themes/ to satisfy configuration.yaml include
.gitignore uses allowlist strategy for .storage/ to keep
all tokens, keys, and PINs out of version control.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,601 @@
|
||||
blueprint:
|
||||
name: Notifications & Announcements
|
||||
description: "# \U0001F4E2 Notifications & Announcements\n**Version: 1.2**\n\nState
|
||||
your trigger and spread the word \U0001F4AC\U0001F509\n\n**If you like my blueprints,
|
||||
and would like to show your support or just say thank you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8)
|
||||
\U0001F642\n<details> <summary><b>The Automation Process:</b> - Click here to
|
||||
expand</summary>\n\n\n - **Trigger Options:**\n\n - Specify the state change
|
||||
of one or more entities that will initiate the automation from a dropdown list.
|
||||
You can also specify your own custom state if it is not available from the dropdown
|
||||
list.\n - State Change Options: The available state changes include:\n -
|
||||
**General States:** Button or any state, ON, OFF, Unavailable or Unknown\n -
|
||||
**Location-Based States:** Home or Not Home\n - **Numeric States:** Numeric
|
||||
state above, Numeric state below or Numeric state above & below\n\n - **Notification
|
||||
Options:**\n\n - Opt to send messages to one or multiple devices. Compatible
|
||||
with Apple iOS and Android devices.\n - Opt to display your notifications directly
|
||||
within the Home Assistant user interface (UI).\n - Opt to send Text-to-Speech
|
||||
Announcement to your selected media players.\n\n - **Time-Based Automation:**\n\n
|
||||
\ - Specify precise start and end times along with weekday selections to define
|
||||
when the automation can run.\n\n - **Custom Conditions:**\n\n - Enter any
|
||||
custom conditions to further customize the automation process.\n\n</details>\n\nNeed
|
||||
help? See our FAQ: [Click Here](https://community.home-assistant.io/t/notifications-announcements/728100/2?u=blacky)\nLet
|
||||
us know what you think of this blueprint and for community support including updates:
|
||||
[Click Here](https://community.home-assistant.io/t/notifications-announcements/728100?u=blacky)\n\nRequired
|
||||
= *\n"
|
||||
domain: automation
|
||||
input:
|
||||
trigger_settings:
|
||||
name: Triggers *
|
||||
icon: mdi:cog-outline
|
||||
collapsed: true
|
||||
input:
|
||||
trigger_state:
|
||||
name: Trigger - State *
|
||||
description: 'Please select what state you would like for your trigger.
|
||||
You can choose from ten options available in the dropdown menu. If your
|
||||
option is not in the dropdown menu then just type the state you would
|
||||
like to use in and click the save button.
|
||||
|
||||
|
||||
1 - Button Or Any State
|
||||
|
||||
2 - ON
|
||||
|
||||
3 - OFF
|
||||
|
||||
4 - Unavailable
|
||||
|
||||
5 - Unknown
|
||||
|
||||
6 - Home
|
||||
|
||||
7 - Not Home
|
||||
|
||||
8 - Numeric State - Above
|
||||
|
||||
9 - Numeric State - Below
|
||||
|
||||
10 - Numeric State - Above & Below
|
||||
|
||||
|
||||
A numbering system has been implemented to facilitate navigation within
|
||||
the dropdown selections. Each number corresponds to a specific configuration,
|
||||
aiding users in identifying and adjusting the settings used within each
|
||||
selection. For instance, when selecting "8 - Numeric State - Above" as
|
||||
a dropdown option, settings marked "Used in options 8, 9 or 10" are required
|
||||
for that respective selection because number 8 is included in those options.
|
||||
|
||||
'
|
||||
default: button_any_state
|
||||
selector:
|
||||
select:
|
||||
custom_value: true
|
||||
mode: dropdown
|
||||
options:
|
||||
- label: 1 - Button Or Any State
|
||||
value: button_any_state
|
||||
- label: 2 - ON
|
||||
value: 'on'
|
||||
- label: 3 - OFF
|
||||
value: 'off'
|
||||
- label: 4 - Unavailable
|
||||
value: unavailable
|
||||
- label: 5 - Unknown
|
||||
value: unknown
|
||||
- label: 6 - Home
|
||||
value: home
|
||||
- label: 7 - Not Home
|
||||
value: not_home
|
||||
- label: 8 - Numeric State - Above
|
||||
value: numeric_state_above
|
||||
- label: 9 - Numeric State - Below
|
||||
value: numeric_state_below
|
||||
- label: 10 - Numeric State - Above & Below
|
||||
value: numeric_state_above_below
|
||||
sort: false
|
||||
multiple: false
|
||||
trigger_state_entity:
|
||||
name: State Entities
|
||||
description: '**Used in options 1, 2, 3, 4, 5, 6 or 7**. Enter the entities
|
||||
that will trigger the automation on state change.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
trigger_numeric_entity:
|
||||
name: Numeric State Entities
|
||||
description: '**Used in options 8, 9 or 10**. Enter the entities that will
|
||||
trigger the automation numeric state change.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
above_state:
|
||||
name: Numeric State Above Option
|
||||
description: '**Used in options 8, or 10**. Set the above value. The numeric
|
||||
state trigger will be when the value crosses over to above the set value.
|
||||
|
||||
'
|
||||
default: 0
|
||||
selector:
|
||||
number:
|
||||
min: -20.0
|
||||
max: 100.0
|
||||
step: 1.0
|
||||
unit_of_measurement: value
|
||||
mode: slider
|
||||
below_state:
|
||||
name: Numeric State Below Option
|
||||
description: '**Used in options 9 or 10**. Set the below value. The numeric
|
||||
state trigger will be when the value crosses over to below the set value.
|
||||
|
||||
'
|
||||
default: 0
|
||||
selector:
|
||||
number:
|
||||
min: -20.0
|
||||
max: 100.0
|
||||
step: 1.0
|
||||
unit_of_measurement: value
|
||||
mode: slider
|
||||
time_delay_state:
|
||||
name: Time Delay
|
||||
description: '**Used in options 1, 2, 3, 4, 5, 6, 7, 8, 9 or 10** Specifies
|
||||
the duration that the trigger must maintain its state before the automation
|
||||
is executed. The automation will only proceed if the trigger condition
|
||||
is met continuously for this entire time delay.
|
||||
|
||||
'
|
||||
default:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 0
|
||||
selector:
|
||||
duration: {}
|
||||
device_notify_settings:
|
||||
name: Mobile App Notify
|
||||
icon: mdi:devices
|
||||
collapsed: true
|
||||
input:
|
||||
include_notify:
|
||||
name: Use The Mobile App Notify Option (Optional)
|
||||
description: "Enabling this option will send notifications to the selected
|
||||
devices below. \n"
|
||||
default: disable_mobile_app_notify
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable Mobile App Notify Options
|
||||
value: enable_mobile_app_notify
|
||||
- label: Disable Mobile App Notify Options
|
||||
value: disable_mobile_app_notify
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
notify_device:
|
||||
name: Devices Notified
|
||||
description: 'Select the devices to be notified when the automation is triggered.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
device:
|
||||
filter:
|
||||
- integration: mobile_app
|
||||
multiple: true
|
||||
notify_title:
|
||||
name: Title
|
||||
description: 'Enter in the title of your notification.
|
||||
|
||||
'
|
||||
default: "\U0001F4E2 Enter Notify Title Here"
|
||||
selector:
|
||||
text: {}
|
||||
notify_message:
|
||||
name: Message
|
||||
description: 'Enter in the message of your notification.
|
||||
|
||||
'
|
||||
default: "Enter Notify Message Here \U0001F642"
|
||||
selector:
|
||||
text: {}
|
||||
notify_interruption_level:
|
||||
name: Interruption Level - iOS Only
|
||||
description: 'On devices running iOS 15 and later, you can configure the
|
||||
interruption level for your notifications to ensure they are delivered
|
||||
according to your preferences. Choose the desired interruption level from
|
||||
the dropdown list. Critical and time-sensitive notifications must be turned
|
||||
ON within the Home Assistant App, and time-sensitive notifications must
|
||||
be allowed in your Focus settings.
|
||||
|
||||
|
||||
For more information on interruption levels [Click Here](https://community.home-assistant.io/t/728100/13)
|
||||
|
||||
'
|
||||
default: active
|
||||
selector:
|
||||
select:
|
||||
mode: dropdown
|
||||
options:
|
||||
- label: Default
|
||||
value: active
|
||||
- label: Critical Notifications
|
||||
value: critical
|
||||
- label: Time Sensitive Notifications
|
||||
value: time-sensitive
|
||||
- label: Quiet Notifications Without Waking Screen
|
||||
value: passive
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
notify_data:
|
||||
name: Android Only Options (Optional)
|
||||
description: '**High Priority** notifications ensure that you receive important
|
||||
alerts immediately. These notifications bypass normal delivery delays
|
||||
and are delivered instantly to your device.
|
||||
|
||||
|
||||
**Sticky Notification** ensure that important alerts are not dismissed
|
||||
when selected. They remain on your notification screen until you actively
|
||||
clear or swipe them away, ensuring that critical information stays visible
|
||||
until addressed.
|
||||
|
||||
|
||||
**Notification Channel** allow you to easily organize different notification
|
||||
settings, including notification sounds, vibrations, and other device-specific
|
||||
features. If you choose this option, please enter your desired channel
|
||||
name below.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
select:
|
||||
multiple: true
|
||||
options:
|
||||
- label: High Priority
|
||||
value: high_priority
|
||||
- label: Sticky Notification
|
||||
value: sticky
|
||||
- label: Notification Channel
|
||||
value: channel
|
||||
custom_value: false
|
||||
sort: false
|
||||
notify_channel:
|
||||
name: Notification Channel - Android Only
|
||||
description: 'If you have chosen to use a notification channel, simply enter
|
||||
the name of an existing channel to apply its pre-configured settings.
|
||||
If you don''t have a channel yet, you can create a new one by entering
|
||||
a name here. When your automation sends the first notification, it will
|
||||
create the channel on your device. After the channel is created, you can
|
||||
customize its notification settings to your preference directly on your
|
||||
device.
|
||||
|
||||
|
||||
For more information on notification channels [Click Here](https://community.home-assistant.io/t/728100/13)
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
text: {}
|
||||
persistent_notify_settings:
|
||||
name: Notifications
|
||||
icon: mdi:bell-outline
|
||||
collapsed: true
|
||||
input:
|
||||
include_persistent_notification:
|
||||
name: Use The UI Notification Option (Optional)
|
||||
description: "Enabling this option will display notifications directly within
|
||||
the Home Assistant user interface (UI). \n"
|
||||
default: disabled_persistent_notification
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable UI Notifications
|
||||
value: enable_persistent_notification
|
||||
- label: Disable UI Notifications
|
||||
value: disabled_persistent_notification
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
persistent_title:
|
||||
name: Title
|
||||
description: 'Enter in the title of your UI notification.
|
||||
|
||||
'
|
||||
default: "\U0001F4E2 Enter UI Title Here"
|
||||
selector:
|
||||
text: {}
|
||||
persistent_message:
|
||||
name: Message
|
||||
description: 'Enter in the message of your UI notification.
|
||||
|
||||
'
|
||||
default: "Enter UI Message Here \U0001F642"
|
||||
selector:
|
||||
text: {}
|
||||
tts_notify_settings:
|
||||
name: Text-to-Speech Announcement
|
||||
icon: mdi:bullhorn-outline
|
||||
collapsed: true
|
||||
input:
|
||||
include_tts_announcement:
|
||||
name: Use The Text-to-Speech Announcement Option (Optional)
|
||||
description: 'Enabling this option will send a Text-to-Speech notification
|
||||
to the selected Media Players below.
|
||||
|
||||
'
|
||||
default: disable_tts_announcement
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable Text-to-Speech Announcements
|
||||
value: enable_tts_announcement
|
||||
- label: Disable Text-to-Speech Announcements
|
||||
value: disable_tts_announcement
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
text_to_speech_engine:
|
||||
name: Text-to-Speech Service Provider
|
||||
description: 'Select the Text-to-Speech service provider.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- tts
|
||||
multiple: false
|
||||
media_player:
|
||||
name: Media Player
|
||||
description: 'Select the Media Player/s that will play your Text-to-Speech
|
||||
announcement message.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
- media_player
|
||||
multiple: true
|
||||
notify_tts_message:
|
||||
name: Announcement Message
|
||||
description: 'Enter in the message of your Text-to-Speech announcement.
|
||||
|
||||
'
|
||||
default: Enter TTS Message Here
|
||||
selector:
|
||||
text:
|
||||
multiline: true
|
||||
multiple: false
|
||||
time_settings:
|
||||
name: Time
|
||||
icon: mdi:clock-outline
|
||||
collapsed: true
|
||||
input:
|
||||
include_time:
|
||||
name: Use The Time Options (Optional)
|
||||
description: 'Use the "Start Time", **End Time** and the **Weekdays** values
|
||||
to only run the automation between the time periods. This option allows
|
||||
you to disable the automation during sleeping hours to avoid disturbing
|
||||
anyone. Another example is setting the time between 5pm and 9pm for the
|
||||
''Dinner is Ready'' call. This way, if you accidentally activate the trigger
|
||||
outside these hours, the automation will not run.
|
||||
|
||||
'
|
||||
default: time_disabled
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable the time options
|
||||
value: time_enabled
|
||||
- label: Disable the time options
|
||||
value: time_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
after_time:
|
||||
name: Start Time
|
||||
description: 'Set the start time.
|
||||
|
||||
'
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
before_time:
|
||||
name: End Time
|
||||
description: 'Set the end time.
|
||||
|
||||
'
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
weekday_options:
|
||||
name: Weekdays
|
||||
description: 'Select the days of the week you would like the automation
|
||||
to run. You must select "Enable the time options" above for the weekdays
|
||||
selections to work.
|
||||
|
||||
'
|
||||
default:
|
||||
- mon
|
||||
- tue
|
||||
- wed
|
||||
- thu
|
||||
- fri
|
||||
- sat
|
||||
- sun
|
||||
selector:
|
||||
select:
|
||||
multiple: true
|
||||
mode: list
|
||||
options:
|
||||
- label: Monday
|
||||
value: mon
|
||||
- label: Tuesday
|
||||
value: tue
|
||||
- label: Wednesday
|
||||
value: wed
|
||||
- label: Thursday
|
||||
value: thu
|
||||
- label: Friday
|
||||
value: fri
|
||||
- label: Saturday
|
||||
value: sat
|
||||
- label: Sunday
|
||||
value: sun
|
||||
custom_value: false
|
||||
sort: false
|
||||
global_conditions_settings:
|
||||
name: Global Conditions
|
||||
icon: mdi:earth
|
||||
collapsed: true
|
||||
input:
|
||||
global_conditions:
|
||||
name: Global Conditions
|
||||
description: 'Enter any global conditions you would like to apply to the
|
||||
automation.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
condition: {}
|
||||
source_url: https://gist.github.com/Blackshome/180ca4a24af81cd5d843acfc039039bc
|
||||
mode: single
|
||||
max_exceeded: silent
|
||||
variables:
|
||||
trigger_state: !input trigger_state
|
||||
trigger_state_entity: !input trigger_state_entity
|
||||
trigger_numeric_entity: !input trigger_numeric_entity
|
||||
above_state: !input above_state
|
||||
below_state: !input below_state
|
||||
time_delay_state: !input time_delay_state
|
||||
include_notify: !input include_notify
|
||||
notify_device: !input notify_device
|
||||
notify_title: !input notify_title
|
||||
notify_message: !input notify_message
|
||||
notify_interruption_level: !input notify_interruption_level
|
||||
notify_data: !input notify_data
|
||||
notify_channel: !input notify_channel
|
||||
include_persistent_notification: !input include_persistent_notification
|
||||
persistent_title: !input persistent_title
|
||||
persistent_message: !input persistent_message
|
||||
include_tts_announcement: !input include_tts_announcement
|
||||
text_to_speech_engine: !input text_to_speech_engine
|
||||
media_player: !input media_player
|
||||
notify_tts_message: !input notify_tts_message
|
||||
include_time: !input include_time
|
||||
after_time: !input after_time
|
||||
before_time: !input before_time
|
||||
weekday_options: !input weekday_options
|
||||
global_conditions: !input global_conditions
|
||||
device_message_data: "{% set message = namespace(data={}) %} {% if notify_interruption_level
|
||||
in ['active', 'critical', 'time-sensitive', 'passive'] %}\n {% set message.data
|
||||
= dict(message.data, **{ 'push': {'interruption-level': notify_interruption_level
|
||||
}}) %}\n{% endif %} {% if 'high_priority' in notify_data %}\n {% set message.data
|
||||
= dict(message.data, **{ 'ttl': 0, 'priority': 'high' }) %}\n{% endif %} {% if
|
||||
'channel' in notify_data %}\n {% set message.data = dict(message.data, **{ 'channel':
|
||||
notify_channel }) %}\n{% endif %} {% if 'sticky' in notify_data %}\n {% set message.data
|
||||
= dict(message.data, **{ 'sticky': \"true\" }) %}\n{% endif %} {{ message.data
|
||||
}}"
|
||||
trigger:
|
||||
- platform: state
|
||||
id: t0
|
||||
entity_id: !input trigger_state_entity
|
||||
for: !input time_delay_state
|
||||
- platform: state
|
||||
id: t1
|
||||
entity_id: !input trigger_state_entity
|
||||
to: !input trigger_state
|
||||
for: !input time_delay_state
|
||||
- platform: numeric_state
|
||||
id: t2
|
||||
entity_id: !input trigger_numeric_entity
|
||||
above: !input above_state
|
||||
for: !input time_delay_state
|
||||
- platform: numeric_state
|
||||
id: t3
|
||||
entity_id: !input trigger_numeric_entity
|
||||
below: !input below_state
|
||||
for: !input time_delay_state
|
||||
condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t0
|
||||
- '{{ trigger_state == ''button_any_state'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t1
|
||||
- '{{ (trigger_state != ''button_any_state'') or (trigger_state != ''numeric_state_above'')
|
||||
or (trigger_state != ''numeric_state_below'') or (trigger_state != ''numeric_state_above_below'')
|
||||
}}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t2
|
||||
- '{{ (trigger_state == ''numeric_state_above'') or (trigger_state == ''numeric_state_above_below'')
|
||||
}}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t3
|
||||
- '{{ (trigger_state == ''numeric_state_below'') or (trigger_state == ''numeric_state_above_below'')
|
||||
}}'
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ include_time == ''time_disabled'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: time
|
||||
after: !input after_time
|
||||
before: !input before_time
|
||||
weekday: !input weekday_options
|
||||
- '{{ include_time == ''time_enabled'' }}'
|
||||
- condition: and
|
||||
conditions: !input global_conditions
|
||||
action:
|
||||
- choose:
|
||||
- alias: Check if notification is enabled
|
||||
conditions:
|
||||
- '{{ include_notify == ''enable_mobile_app_notify'' }}'
|
||||
sequence:
|
||||
- alias: Send a notification to each device
|
||||
repeat:
|
||||
for_each: !input notify_device
|
||||
sequence:
|
||||
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | slugify
|
||||
}}
|
||||
data:
|
||||
title: !input notify_title
|
||||
message: !input notify_message
|
||||
data: '{{ device_message_data }}'
|
||||
- choose:
|
||||
- alias: Use the persistent notification is enabled
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ include_persistent_notification == ''enable_persistent_notification''
|
||||
}}'
|
||||
sequence:
|
||||
- service: persistent_notification.create
|
||||
data:
|
||||
title: !input persistent_title
|
||||
message: !input persistent_message
|
||||
- choose:
|
||||
- alias: Check if tts announcement is enabled
|
||||
conditions:
|
||||
- '{{ include_tts_announcement == ''enable_tts_announcement'' }}'
|
||||
sequence:
|
||||
- service: tts.speak
|
||||
target:
|
||||
entity_id: !input text_to_speech_engine
|
||||
data:
|
||||
media_player_entity_id: !input media_player
|
||||
message: !input notify_tts_message
|
||||
@@ -0,0 +1,103 @@
|
||||
blueprint:
|
||||
name: Press Button - Turn ON & OFF Entities
|
||||
description: "# \U0001F9FF Press Button - Turn ON & OFF Entities\n**Version: 1.0**\n\nLet
|
||||
us know what you think of this blueprint and for community support including updates:
|
||||
[Click Here](https://community.home-assistant.io/t/press-button-turn-on-off-entities/634488)\n\n**The
|
||||
Automation Process:**\n - When you press the button it will turn ON the main
|
||||
entity input.\n - When you press the button again it will turn OFF the main entity
|
||||
input.\n - You have the option to input an alternating entity that will be the
|
||||
opposite state to the main entity.\n\n**NOTE** - The button must have no state,
|
||||
like a button helper.\n\nRequired = *\n\nNeed help? See our FAQ: [Click Here](https://community.home-assistant.io/t/press-button-turn-on-off-entities/634488/2?u=blacky)\n\n**If
|
||||
you like my blueprints, and would like to show your support or just say thank
|
||||
you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8)
|
||||
\U0001F642\n"
|
||||
domain: automation
|
||||
input:
|
||||
press_button:
|
||||
name: Press Button *
|
||||
description: The press button that controls the entities.
|
||||
selector:
|
||||
entity: {}
|
||||
main_entity:
|
||||
name: Main Entity *
|
||||
description: The main entity that will be turned ON when the button is pressed.
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
alternating_entity:
|
||||
name: Alternating Entity (optional)
|
||||
description: The alternating entity that will be the opposite state to the main
|
||||
entity when the button is pressed.
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
source_url: https://gist.github.com/Blackshome/ca6be121c8d3e4404e33114fc88b599a
|
||||
variables:
|
||||
press_button: !input press_button
|
||||
main_entity: !input main_entity
|
||||
alternating_entity: !input alternating_entity
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: !input press_button
|
||||
action:
|
||||
- choose:
|
||||
- alias: Check if any alternating entity are enter in
|
||||
conditions:
|
||||
- '{{ alternating_entity == [] }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- alias: Check any main entities are on
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: !input main_entity
|
||||
match: any
|
||||
state: 'on'
|
||||
sequence:
|
||||
- alias: Turn OFF the main entities
|
||||
service: homeassistant.turn_off
|
||||
target:
|
||||
entity_id: !input main_entity
|
||||
- alias: Check all main entities are off
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: !input main_entity
|
||||
match: all
|
||||
state: 'off'
|
||||
sequence:
|
||||
- alias: Turn ON the main entities
|
||||
service: homeassistant.turn_on
|
||||
target:
|
||||
entity_id: !input main_entity
|
||||
default:
|
||||
- choose:
|
||||
- alias: Check any main entities are on
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: !input main_entity
|
||||
match: any
|
||||
state: 'on'
|
||||
sequence:
|
||||
- alias: Turn ON the main entities
|
||||
service: homeassistant.turn_off
|
||||
target:
|
||||
entity_id: !input main_entity
|
||||
- alias: Turn ON the alternating entity entities
|
||||
service: homeassistant.turn_on
|
||||
target:
|
||||
entity_id: !input alternating_entity
|
||||
- alias: Check all main entities are off
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: !input main_entity
|
||||
match: all
|
||||
state: 'off'
|
||||
sequence:
|
||||
- alias: Turn OFF the main entities
|
||||
service: homeassistant.turn_on
|
||||
target:
|
||||
entity_id: !input main_entity
|
||||
- alias: Turn OFF the alternating entity entities
|
||||
service: homeassistant.turn_off
|
||||
target:
|
||||
entity_id: !input alternating_entity
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,307 @@
|
||||
blueprint:
|
||||
name: Timer
|
||||
description: "# ⏲️ Timer\n**Version: 1.2**\n\nEffortless Control: Schedule \U0001F4C5,
|
||||
Trigger ⚡, and Automate Your Home \U0001F3E0 with Precision \U0001F3AF!\n\n**If
|
||||
you like my blueprints, and would like to show your support or just say thank
|
||||
you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8)
|
||||
\U0001F642\n\n<details> <summary><b>The Automation Process:</b> \U0001F448</summary>\n\n
|
||||
\ - **Automation:**\n - Turn ON and OFF any entity you like on a set time.\n
|
||||
\ - You must use a timer helper for this automation to work.\n\n - **Multiple
|
||||
Timers:**\n - You can set up to 4 different time triggers, each with its own
|
||||
time period.\n\n - **Weekdays Condition Option:**\n - Specify the weekdays
|
||||
to define when the automation can run.\n</details>\n\nNeed help? \n- FAQ: [Click
|
||||
Here](https://community.home-assistant.io/t/time-clock/651151/2)\n- Community
|
||||
Support Including Updates: [Click Here](https://community.home-assistant.io/t/time-clock/651151)\n\nRequired
|
||||
= *\n"
|
||||
domain: automation
|
||||
input:
|
||||
settings:
|
||||
name: Settings *
|
||||
icon: mdi:cog-outline
|
||||
collapsed: true
|
||||
input:
|
||||
timer_helper:
|
||||
name: Timer - Timer Helper *
|
||||
description: 'Select the timer helper to be used for all timers. Using a
|
||||
timer helper provides flexibility to start, pause, and cancel timers,
|
||||
persistence across reboots, and real-time monitoring, making your automations
|
||||
more robust and adaptable.
|
||||
|
||||
|
||||
For more information on how to create a timer helper [Click Here](https://community.home-assistant.io/t/651151/4?u=blacky)'
|
||||
default: []
|
||||
selector:
|
||||
entity:
|
||||
filter:
|
||||
- domain:
|
||||
- timer
|
||||
multiple: false
|
||||
entity_input:
|
||||
name: Entities To Turn ON *
|
||||
description: Specify the entities that will be turned ON by a start time
|
||||
and OFF after the set duration.
|
||||
default: []
|
||||
selector:
|
||||
target: {}
|
||||
triggers:
|
||||
name: Triggers
|
||||
icon: mdi:clock-outline
|
||||
collapsed: true
|
||||
input:
|
||||
trigger_one_time:
|
||||
name: Timer One - Start Time
|
||||
description: Set the start time.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
trigger_one_duration:
|
||||
name: Timer One - Duration
|
||||
description: Set the duration for Timer One.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
duration: {}
|
||||
include_extra_triggers:
|
||||
name: Use The Extra Timers (Optional)
|
||||
description: Select any additional timers you want to include.
|
||||
default: []
|
||||
selector:
|
||||
select:
|
||||
multiple: true
|
||||
options:
|
||||
- label: Use timer two
|
||||
value: use_trigger_two
|
||||
- label: Use timer three
|
||||
value: use_trigger_three
|
||||
- label: Use timer four
|
||||
value: use_trigger_four
|
||||
sort: false
|
||||
custom_value: false
|
||||
trigger_two_time:
|
||||
name: Timer Two - Start Time
|
||||
description: Set the start time.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
trigger_two_duration:
|
||||
name: Timer Two - Duration
|
||||
description: Set the duration for Timer Two.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
duration: {}
|
||||
trigger_three_time:
|
||||
name: Timer Three - Start Time
|
||||
description: Set the start time.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
trigger_three_duration:
|
||||
name: Timer Three - Duration
|
||||
description: Set the duration for Timer Three.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
duration: {}
|
||||
trigger_four_time:
|
||||
name: Timer Four - Start Time
|
||||
description: Set the start time.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
time: {}
|
||||
trigger_four_duration:
|
||||
name: Timer Four - Duration
|
||||
description: Set the duration for Timer Four.
|
||||
default: 00:00:00
|
||||
selector:
|
||||
duration: {}
|
||||
weekdays:
|
||||
name: Weekdays
|
||||
icon: mdi:calendar-week
|
||||
collapsed: true
|
||||
input:
|
||||
include_weekdays:
|
||||
name: Use The Weekdays Option (Optional)
|
||||
description: This option adds a condition to operate only on specified weekdays.
|
||||
It applies globally to all start times.
|
||||
default: weekday_disabled
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable the weekday option
|
||||
value: weekday_enabled
|
||||
- label: Disable the weekday option
|
||||
value: weekday_disabled
|
||||
sort: false
|
||||
custom_value: false
|
||||
multiple: false
|
||||
weekday_options:
|
||||
name: Weekdays
|
||||
description: Select the days of the week on which you want the automation
|
||||
to run.
|
||||
default:
|
||||
- mon
|
||||
- tue
|
||||
- wed
|
||||
- thu
|
||||
- fri
|
||||
- sat
|
||||
- sun
|
||||
selector:
|
||||
select:
|
||||
multiple: true
|
||||
mode: list
|
||||
options:
|
||||
- label: Monday
|
||||
value: mon
|
||||
- label: Tuesday
|
||||
value: tue
|
||||
- label: Wednesday
|
||||
value: wed
|
||||
- label: Thursday
|
||||
value: thu
|
||||
- label: Friday
|
||||
value: fri
|
||||
- label: Saturday
|
||||
value: sat
|
||||
- label: Sunday
|
||||
value: sun
|
||||
sort: false
|
||||
custom_value: false
|
||||
source_url: https://gist.github.com/Blackshome/ec0afd31dce7fc6b106e378d06b01940
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
variables:
|
||||
trigger_one_duration: !input trigger_one_duration
|
||||
entity_input: !input entity_input
|
||||
timer_helper: !input timer_helper
|
||||
trigger_one_time: !input trigger_one_time
|
||||
include_extra_triggers: !input include_extra_triggers
|
||||
trigger_two_time: !input trigger_two_time
|
||||
trigger_two_duration: !input trigger_two_duration
|
||||
trigger_three_time: !input trigger_three_time
|
||||
trigger_three_duration: !input trigger_three_duration
|
||||
trigger_four_time: !input trigger_four_time
|
||||
trigger_four_duration: !input trigger_four_duration
|
||||
include_weekdays: !input include_weekdays
|
||||
weekday_options: !input weekday_options
|
||||
trigger:
|
||||
- platform: time
|
||||
at: !input trigger_one_time
|
||||
id: t1
|
||||
- platform: time
|
||||
at: !input trigger_two_time
|
||||
id: t2
|
||||
- platform: time
|
||||
at: !input trigger_three_time
|
||||
id: t3
|
||||
- platform: time
|
||||
at: !input trigger_four_time
|
||||
id: t4
|
||||
- platform: state
|
||||
entity_id: !input timer_helper
|
||||
to: idle
|
||||
id: t5
|
||||
condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t1
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t2
|
||||
- '{{ ''use_trigger_two'' in include_extra_triggers }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t3
|
||||
- '{{ ''use_trigger_three'' in include_extra_triggers }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t4
|
||||
- '{{ ''use_trigger_four'' in include_extra_triggers }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t5
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ include_weekdays == ''weekday_disabled'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: time
|
||||
weekday: !input weekday_options
|
||||
- '{{ include_weekdays == ''weekday_enabled'' }}'
|
||||
- condition: trigger
|
||||
id:
|
||||
- t5
|
||||
action:
|
||||
- choose:
|
||||
- alias: Check if the time helper is enabled
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t1
|
||||
- t2
|
||||
- t3
|
||||
- t4
|
||||
sequence:
|
||||
- alias: Turn ON the entities
|
||||
service: homeassistant.turn_on
|
||||
target: !input entity_input
|
||||
- choose:
|
||||
- alias: By-pass is turned on & check by-pass option - turn lights off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t1
|
||||
sequence:
|
||||
- alias: Turn ON the timer helper
|
||||
service: timer.start
|
||||
entity_id: !input timer_helper
|
||||
data:
|
||||
duration: !input trigger_one_duration
|
||||
- alias: By-pass is turned on & check by-pass option - turn lights off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t2
|
||||
sequence:
|
||||
- alias: Turn ON the timer helper
|
||||
service: timer.start
|
||||
entity_id: !input timer_helper
|
||||
data:
|
||||
duration: !input trigger_two_duration
|
||||
- alias: By-pass is turned on & check by-pass option - turn lights off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t3
|
||||
sequence:
|
||||
- alias: Turn ON the timer helper
|
||||
service: timer.start
|
||||
entity_id: !input timer_helper
|
||||
data:
|
||||
duration: !input trigger_three_duration
|
||||
- alias: By-pass is turned on & check by-pass option - turn lights off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t4
|
||||
sequence:
|
||||
- alias: Turn ON the timer helper
|
||||
service: timer.start
|
||||
entity_id: !input timer_helper
|
||||
data:
|
||||
duration: !input trigger_four_duration
|
||||
- alias: Turn OFF entities after the timer helper is finished
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t5
|
||||
sequence:
|
||||
- alias: Turn OFF the entities
|
||||
service: homeassistant.turn_off
|
||||
target: !input entity_input
|
||||
Reference in New Issue
Block a user