AutomationDataset/SenMorgan/automation-descriptions.json

1406 lines
163 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"id": "3d_printer_print_done",
"result": {
"structured": "TRIGGER: When 3D printer printing sensor [binary_sensor.octoprint_printing] changes state from on to off. CONDITIONS: None. ACTIONS: Send a notification via Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '3D Printer' and message '🎉 Печать завершена!'.",
"natural_language": {
"trigger": "When the 3D printer printing sensor [binary_sensor.octoprint_printing] stops printing, changing its state from 'on' to 'off'.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a notification to the mobile device with the title '3D Printer' and the message '🎉 Печать завершена!'."
},
"human_like": "Sends a mobile notification when the 3D printer finishes a print job.",
"complexity": "low"
}
},
{
"id": "3d_printer_print_progress",
"result": {
"structured": "TRIGGER: When 3D printer job percentage sensor [sensor.octoprint_job_percentage] changes state. CONDITIONS: (The new state value is greater than 0) AND (The new state value is different from the previous state value) AND (The new state value is divisible by 10). ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '3D Printer' and message '📈 Деталь готова на X%' where X is the current integer state of 3D printer job percentage sensor [sensor.octoprint_job_percentage].",
"natural_language": {
"trigger": "Whenever the 3D printer job percentage sensor [sensor.octoprint_job_percentage] reports a new value.",
"conditions": "The new percentage value must be greater than zero, it must be different from the previous percentage value, and it must be a multiple of ten (like 10%, 20%, 30%, etc.).",
"action": "Sends a notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] with the title '3D Printer' and a message showing the current print progress percentage."
},
"human_like": "Sends a mobile notification at every 10% milestone during a 3D print job.",
"complexity": "medium"
}
},
{
"id": "3d_printer_print_paused",
"result": {
"structured": "TRIGGER: When 3D printer current state sensor [sensor.octoprint_current_state] changes from 'Printing' to 'Paused' OR 'Pausing'. CONDITIONS: None. ACTIONS: Send a notification via Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '⚠️ 3D Printer' and message 'Печать приостановлена!'.",
"natural_language": {
"trigger": "When the 3D printer current state sensor [sensor.octoprint_current_state] changes from 'Printing' to either 'Paused' or 'Pausing'.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] with the title '⚠️ 3D Printer' and the message 'Печать приостановлена!' (Printing paused!)."
},
"human_like": "Sends a mobile notification when the 3D printer pauses its print job.",
"complexity": "low"
}
},
{
"id": "3d_printer_print_resumed",
"result": {
"structured": "TRIGGER: When 3D printer current state sensor [sensor.octoprint_current_state] changes from Paused OR Pausing to Printing. CONDITIONS: None. ACTIONS: Send a notification via Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '⚠️ 3D Printer' and message 'Печать возобновлена'.",
"natural_language": {
"trigger": "When the 3D printer current state sensor [sensor.octoprint_current_state] transitions from either 'Paused' or 'Pausing' to the 'Printing' state.",
"conditions": "There are no additional conditions for this automation.",
"action": "Sends a notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] with the title '⚠️ 3D Printer' and the message 'Печать возобновлена' (Printing resumed)."
},
"human_like": "Sends a mobile notification when the 3D printer resumes printing after being paused.",
"complexity": "low"
}
},
{
"id": "3d_printer_overheated",
"result": {
"structured": "TRIGGER: When 3D printer actual bed temperature sensor [sensor.octoprint_actual_bed_temp] OR 3D printer actual tool0 temperature sensor [sensor.octoprint_actual_tool0_temp] changes state. CONDITIONS: (3D printer actual bed temperature sensor [sensor.octoprint_actual_bed_temp] is greater than 100°C) OR (3D printer actual tool0 temperature sensor [sensor.octoprint_actual_tool0_temp] is greater than 250°C). ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title '🌡️ 3D Printer перегрелся!' and a message containing the current bed and tool0 temperatures.",
"natural_language": {
"trigger": "Whenever the temperature reading from either the 3D printer actual bed temperature sensor [sensor.octoprint_actual_bed_temp] or the 3D printer actual tool0 temperature sensor [sensor.octoprint_actual_tool0_temp] changes.",
"conditions": "If the bed temperature exceeds 100°C or if the tool0 (hotend) temperature exceeds 250°C.",
"action": "Sends a push notification to a mobile device via Mobile app SM-S901B notification [notify.mobile_app_sm_s901b], alerting the user that the 3D printer is overheating and displaying the current temperatures of both the bed and the hotend."
},
"human_like": "Sends an alert to your phone if the 3D printer's bed or hotend gets too hot.",
"complexity": "low"
}
},
{
"id": "3d_printer_power_on",
"result": {
"structured": "TRIGGER: When 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] changes from off to on. CONDITIONS: 3D printer socket switch [switch.3d_printer_socket] is off. ACTIONS: Turn on 3D printer socket switch [switch.3d_printer_socket].",
"natural_language": {
"trigger": "When the 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] is switched on from an off state.",
"conditions": "The 3D printer socket switch [switch.3d_printer_socket] must currently be off.",
"action": "Powers on the 3D printer by turning on the 3D printer socket switch [switch.3d_printer_socket]."
},
"human_like": "Turns on the 3D printer's power socket when the user toggles the virtual power switch to on.",
"complexity": "low"
}
},
{
"id": "3d_printer_power_sync",
"result": {
"structured": "TRIGGER: When 3D printer socket switch [switch.3d_printer_socket] changes state. CONDITIONS: (The state of 3D printer socket switch [switch.3d_printer_socket] is not equal to the state of 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power]) AND (The attribute 'current' of 3D printer power off automation [automation.3d_printer_power_off] is 0). ACTIONS: If 3D printer socket switch [switch.3d_printer_socket] is on, then turn on 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power]; otherwise, turn off 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power].",
"natural_language": {
"trigger": "Whenever the 3D printer socket switch [switch.3d_printer_socket] changes its state.",
"conditions": "The automation runs only if the current state of the 3D printer socket switch [switch.3d_printer_socket] is different from the state of the 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power], and if the 'current' attribute of the 3D printer power off automation [automation.3d_printer_power_off] is set to 0, indicating that automation is not currently running.",
"action": "If the 3D printer socket switch [switch.3d_printer_socket] is turned on, then the automation will turn on the 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power]. If the switch is turned off, it will turn off the input boolean."
},
"human_like": "This automation keeps a power input boolean in sync with the physical 3D printer socket switch, but only when a separate power-off automation is not active.",
"complexity": "medium"
}
},
{
"id": "3d_printer_power_off",
"result": {
"structured": "TRIGGER: When 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] changes from on to off. CONDITIONS: 3D printer socket switch [switch.3d_printer_socket] is on. ACTIONS: IF 3D printer current state sensor [sensor.octoprint_current_state] is not 'Operational' THEN turn on 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] AND send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a warning that power was not turned off because OctoPrint is not operational. ELSE run Octoprint shutdown script [script.octoprint_shutdown] AND wait up to 3 minutes for 3D printer current state sensor [sensor.octoprint_current_state] to become 'unavailable'. IF after the wait the state is not 'unavailable' THEN turn on 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] AND send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a warning that power was not turned off because shutdown failed. ELSE turn off 3D printer socket switch [switch.3d_printer_socket] AND turn off 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power].",
"natural_language": {
"trigger": "When the 3D printer and octoprint power input boolean [input_boolean.3d_printer_and_octo_power] is turned off.",
"conditions": "The 3D printer socket switch [switch.3d_printer_socket] must be on.",
"action": "First, it checks if the 3D printer current state sensor [sensor.octoprint_current_state] is not 'Operational'. If it isn't, the automation aborts the power-off process by turning the power input boolean back on and sends a warning notification to the mobile app. If the printer is operational, it starts the Octoprint shutdown script [script.octoprint_shutdown] and waits for up to three minutes for the printer state to become 'unavailable'. If the shutdown fails and the state does not become 'unavailable' within that time, it again aborts the process, turns the power input boolean back on, and sends a failure notification. If the shutdown is successful and the state becomes 'unavailable', it proceeds to turn off the 3D printer socket switch [switch.3d_printer_socket] and then turns off the power input boolean."
},
"human_like": "Safely powers down the 3D printer and its OctoPrint server, sending notifications if the shutdown fails or is unsafe.",
"complexity": "high"
}
},
{
"id": "notification_air_quality_bad",
"result": {
"structured": "TRIGGER: When Air quality station IAQ sensor [sensor.air_quality_station_iaq] remains above 200 for 2 minutes. CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off. ACTIONS: IF Yandex station midi media player [media_player.yandex_station_midi] is not playing, THEN play a text-to-speech message on it. The message states that poor air quality has been detected and advises to open a window if Windows binary sensor [binary_sensor.windows] is off, or to close the window in specific rooms (bedroom, kitchen, living room) if it is on. Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with the current air quality value. Turn on Notification air quality restored automation [automation.notification_air_quality_restored] and Notification air quality open window greeting automation [automation.notification_air_quality_open_window_greeting]. Set Air quality open window greeting timeout input datetime [input_datetime.air_quality_open_window_greeting_timeout] to the current time plus 2 minutes. Turn off this automation, Notification air quality bad automation [automation.notification_air_quality_bad].",
"natural_language": {
"trigger": "The automation triggers when the Air quality station IAQ sensor [sensor.air_quality_station_iaq] reports a value above 200 for a continuous period of two minutes.",
"conditions": "The automation only runs if the Home night mode input boolean [input_boolean.home_night_mode] is turned off.",
"action": "If the Yandex station midi media player [media_player.yandex_station_midi] is not currently playing audio, it will play a custom text-to-speech message. This message announces that poor air quality has been detected and provides advice: if the overall windows sensor [binary_sensor.windows] indicates no windows are open, it suggests opening a window. If windows are open, it suggests closing them, listing the specific rooms (bedroom, kitchen, living room) where windows are detected as open. A notification is also sent to a mobile device [notify.mobile_app_sm_s901b] with the current air quality reading. The automation then activates two other automations related to air quality restoration and greetings, sets a two-minute timeout for a follow-up action, and finally turns itself off to prevent repeated notifications."
},
"human_like": "Notifies the household and provides advice when the indoor air quality becomes poor for an extended period, but only when night mode is off.",
"complexity": "medium"
}
},
{
"id": "notification_air_quality_open_window_greeting",
"result": {
"structured": "TRIGGER: When Windows binary sensor [binary_sensor.windows] changes from closed (off) to open (on). CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off. ACTIONS: IF (Current time is before the time stored in Air quality open window greeting timeout input datetime [input_datetime.air_quality_open_window_greeting_timeout]) AND (Yandex station midi media player [media_player.yandex_station_midi] is not playing) THEN play a media message on Yandex station midi media player [media_player.yandex_station_midi] with the text 'Молодец! Рада, что вы заботитесь о своём здоровье.'. THEN turn off Notification air quality open window greeting automation [automation.notification_air_quality_open_window_greeting].",
"natural_language": {
"trigger": "When a window is opened, as detected by the Windows binary sensor [binary_sensor.windows].",
"conditions": "The home night mode must be disabled, indicated by Home night mode input boolean [input_boolean.home_night_mode] being off.",
"action": "If the current time is before a specified timeout stored in Air quality open window greeting timeout input datetime [input_datetime.air_quality_open_window_greeting_timeout] and the Yandex station midi media player [media_player.yandex_station_midi] is not currently playing audio, then the system will play a voice message on the speaker saying 'Молодец! Рада, что вы заботитесь о своём здоровье.' (Great job! I'm glad you're taking care of your health.). Afterwards, the automation will turn itself off."
},
"human_like": "Plays a friendly voice message to encourage opening windows for fresh air, but only during the day and before a set time, then disables itself.",
"complexity": "medium"
}
},
{
"id": "notification_air_quality_restored",
"result": {
"structured": "TRIGGER: When Air quality station IAQ sensor [sensor.air_quality_station_iaq] remains below 50 for 2 minutes. CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off. ACTIONS: IF Yandex station midi media player [media_player.yandex_station_midi] is NOT playing, THEN play media on Yandex station midi media player [media_player.yandex_station_midi] with text 'Качество воздуха в доме вернулось в норму.'. Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '🌬 Качество воздуха' and a message containing the current IAQ value. Turn on Notification air quality bad automation [automation.notification_air_quality_bad]. Turn off Notification air quality restored automation [automation.notification_air_quality_restored] AND Notification air quality open window greeting automation [automation.notification_air_quality_open_window_greeting].",
"natural_language": {
"trigger": "When the Air quality station IAQ sensor [sensor.air_quality_station_iaq] reports a value below 50 for a continuous period of two minutes.",
"conditions": "The automation only runs if the Home night mode input boolean [input_boolean.home_night_mode] is turned off.",
"action": "If the Yandex station midi media player [media_player.yandex_station_midi] is not currently playing audio, it will play a spoken message stating that the air quality has returned to normal. A notification is also sent to the mobile device [notify.mobile_app_sm_s901b] with a title and a message that includes the current air quality index. Finally, it turns on another automation that handles bad air quality notifications and turns off this automation along with another related automation for greeting open windows."
},
"human_like": "Notifies you when the indoor air quality improves to a good level, announces it on a smart speaker if it's quiet, and re-enables the bad air quality alert system.",
"complexity": "medium"
}
},
{
"id": "alert_to_tts_handler",
"result": {
"structured": "TRIGGER: When the state of any of the following alert entities changes: Water leakage bathroom alert [alert.water_leakage_bathroom], Water leakage kitchen alert [alert.water_leakage_kitchen], Carbon monoxide detected alert [alert.carbon_monoxide_detected], or Natural gas detected alert [alert.natural_gas_detected]. CONDITIONS: The new state of the triggered alert is either 'on' OR 'idle'. ACTIONS: Send a high-priority notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] on the 'alarm_stream_max' channel and media stream. The TTS message is 'Внимание! [alert-specific active message]!' if the new state is 'on', or '[alert-specific resolved message].' if the new state is 'idle'.",
"natural_language": {
"trigger": "Whenever the state of any of the four alert entities (Water leakage bathroom alert, Water leakage kitchen alert, Carbon monoxide detected alert, or Natural gas detected alert) changes.",
"conditions": "The condition checks if the new state of the alert that triggered the automation is either 'on' (active) or 'idle' (resolved).",
"action": "Sends a high-priority text-to-speech notification to a mobile device. The spoken message is different depending on whether the alert has just become active or has been resolved, using predefined Russian phrases for each specific alert."
},
"human_like": "Sends a spoken alert to a mobile phone when a water leak, carbon monoxide, or gas leak is detected or resolved.",
"complexity": "medium"
}
},
{
"id": "dcc_ex_enable_power_on_sunset",
"result": {
"structured": "TRIGGER: When Sun sun entity [sun.sun] elevation goes below 4.0 OR When Sen person [person.sen] changes state to home. CONDITIONS: Sen person [person.sen] is home AND Sun sun entity [sun.sun] elevation is below 4.0 AND Home night mode input boolean [input_boolean.home_night_mode] is off. ACTIONS: Turn on EX commandstation tracks power switch [switch.ex_commandstation_tracks_power] AND Turn on Loco SBB cargo RE 482 coupling switch [switch.loco_sbb_cargo_re_482_coupling].",
"natural_language": {
"trigger": "This automation can be triggered in two ways: when the sun's elevation drops below 4 degrees, or when the person Sen [person.sen] arrives home.",
"conditions": "For the action to run, all of the following must be true: Sen [person.sen] must be at home, the sun's elevation must be below 4 degrees, and the Home night mode input boolean [input_boolean.home_night_mode] must be turned off.",
"action": "It turns on the power for the model railway by switching on the EX commandstation tracks power switch [switch.ex_commandstation_tracks_power] and the Loco SBB cargo RE 482 coupling switch [switch.loco_sbb_cargo_re_482_coupling]."
},
"human_like": "Turns on the model railway power at sunset, but only if someone is home and night mode is not active.",
"complexity": "medium"
}
},
{
"id": "dcc_ex_layout_lights_by_motion_sensor",
"result": {
"structured": "TRIGGER: When Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] changes state. CONDITIONS: EX commandstation tracks power switch [switch.ex_commandstation_tracks_power] is on AND the new state of Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] is either 'on' or 'off'. ACTIONS: If the new state is 'on', turn on DCC-EX Vossloh cabin lights switch [switch.dcc_ex_vossloh_cabin_lights] and Loco SBB cargo RE 482 inspection lights switch [switch.loco_sbb_cargo_re_482_inspection_lights]. If the new state is 'off', turn off DCC-EX Vossloh cabin lights switch [switch.dcc_ex_vossloh_cabin_lights] and Loco SBB cargo RE 482 inspection lights switch [switch.loco_sbb_cargo_re_482_inspection_lights].",
"natural_language": {
"trigger": "Whenever the Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] detects a change in its state.",
"conditions": "The EX commandstation tracks power switch [switch.ex_commandstation_tracks_power] must be turned on, and the change in the motion sensor's state must be a valid transition to either 'on' or 'off'.",
"action": "If motion is detected (the sensor turns on), the automation turns on the DCC-EX Vossloh cabin lights switch [switch.dcc_ex_vossloh_cabin_lights] and the Loco SBB cargo RE 482 inspection lights switch [switch.loco_sbb_cargo_re_482_inspection_lights]. If motion is no longer detected (the sensor turns off), it turns both of those light switches off."
},
"human_like": "Turns the train layout lights on when motion is detected in the kitchen and off when motion stops, but only if the train track power is on.",
"complexity": "medium"
}
},
{
"id": "guest_mode_reset",
"result": {
"structured": "TRIGGER: When the scheduled time matches Guest mode disable time input datetime [input_datetime.guest_mode_disable_time] OR when Home Assistant starts. CONDITIONS: Guest mode input boolean [input_boolean.guest_mode] is on AND the current time is greater than or equal to the time set in Guest mode disable time input datetime [input_datetime.guest_mode_disable_time]. ACTIONS: Turn off Guest mode input boolean [input_boolean.guest_mode]. Create a notification variable. Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] stating guest mode is off and offering to re-enable it. Wait for the user to tap the re-enable action in the notification. If the user taps the re-enable action, then turn on Guest mode input boolean [input_boolean.guest_mode], set Guest mode disable time input datetime [input_datetime.guest_mode_disable_time] to 09:00:00 on the next day, and send a confirmation notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b].",
"natural_language": {
"trigger": "The automation runs either at a specific scheduled time defined by the Guest mode disable time input datetime [input_datetime.guest_mode_disable_time], or when Home Assistant starts up.",
"conditions": "It requires that the Guest mode input boolean [input_boolean.guest_mode] is currently turned on, and that the current time has reached or passed the time set in the Guest mode disable time input datetime [input_datetime.guest_mode_disable_time].",
"action": "First, it turns off the Guest mode input boolean [input_boolean.guest_mode]. It then sends a notification to the Mobile app SM-S901B notification [notify.mobile_app_sm_s901b], informing the user that guest mode has been automatically disabled and asking if they want to turn it back on. The automation waits for the user to respond by tapping the 're-enable' button in that notification. If the user does tap that button, it turns guest mode back on, resets the Guest mode disable time input datetime [input_datetime.guest_mode_disable_time] to 9:00 AM the next day, and sends a final notification confirming the mode is active again."
},
"human_like": "Automatically disables guest mode at a scheduled time, but allows the user to easily re-enable it for another day with a single tap on their phone.",
"complexity": "medium"
}
},
{
"id": "notify_yandex_guest_mode_enabled",
"result": {
"structured": "TRIGGER: When Guest mode input boolean [input_boolean.guest_mode] changes from off to on. CONDITIONS: None. ACTIONS: Play media on Yandex station midi media player [media_player.yandex_station_midi] with the text content 'Гостевой режим активирован до 9:00 утра завтрашнего дня'.",
"natural_language": {
"trigger": "When the Guest mode input boolean [input_boolean.guest_mode] is turned on.",
"conditions": "There are no conditions for this automation.",
"action": "Plays a voice announcement on the Yandex station midi media player [media_player.yandex_station_midi] stating that guest mode is activated until 9:00 AM the next day."
},
"human_like": "Announces on the Yandex speaker when guest mode is enabled.",
"complexity": "low"
}
},
{
"id": "stop_heating_by_window_opened",
"result": {
"structured": "TRIGGER: When Windows binary sensor [binary_sensor.windows] changes from closed (off) to open (on) AND remains open for 10 seconds. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Thermostat active binary sensor [binary_sensor.thermostat_active] is on. ACTIONS: Cancel Pause heating timer [timer.pause_heating]. IF Heating quarantine timer [timer.heating_quarantine] is active THEN cancel Heating quarantine timer [timer.heating_quarantine] AND set Heating log input text [input_text.heating_log] to 'Открыто окно → карантин перед включением отопления отменён'. IF Short heating timer [timer.short_heating] is active THEN cancel Short heating timer [timer.short_heating] AND set Heating log input text [input_text.heating_log] to 'Открыто окно → кратковременное отопление отменено' AND play media on Yandex station midi media player [media_player.yandex_station_midi] with content 'Подогрев квартиры окончен из-за открытого окна'. Finally, execute script Thermostat set eco mode script [script.thermostat_set_eco_mode] with data message 'Открыто окно → переход в режим экономии'.",
"natural_language": {
"trigger": "When the Windows binary sensor [binary_sensor.windows] detects that a window has been opened and remains open for at least 10 seconds.",
"conditions": "The heating season must be active, indicated by the Heating season input boolean [input_boolean.heating_season] being on, and the thermostat must be actively heating, indicated by the Thermostat active binary sensor [binary_sensor.thermostat_active] being on.",
"action": "Cancels the Pause heating timer [timer.pause_heating]. If the Heating quarantine timer [timer.heating_quarantine] is running, it is cancelled and a log entry is made. If the Short heating timer [timer.short_heating] is running, it is cancelled, a log entry is made, and an announcement is played on the Yandex station midi media player [media_player.yandex_station_midi]. Finally, the system switches the thermostat to eco mode via the Thermostat set eco mode script [script.thermostat_set_eco_mode]."
},
"human_like": "Stops heating and switches to eco mode when a window is opened during the heating season, cancelling any pending heating timers and making an announcement.",
"complexity": "medium"
}
},
{
"id": "start_quarantine_by_window_closed",
"result": {
"structured": "TRIGGER: When Windows binary sensor [binary_sensor.windows] changes from open (on) to closed (off) AND remains closed for 10 seconds. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on. ACTIONS: Start Heating quarantine timer [timer.heating_quarantine] AND set Heating log input text [input_text.heating_log] value to 'Окна закрыты → карантин перед включением отопления начат'.",
"natural_language": {
"trigger": "When the Windows binary sensor [binary_sensor.windows] changes from being open to being closed and stays closed for at least 10 seconds.",
"conditions": "The Heating season input boolean [input_boolean.heating_season] must be turned on.",
"action": "Starts the Heating quarantine timer [timer.heating_quarantine] and writes a log entry to Heating log input text [input_text.heating_log] stating that the windows are closed and the quarantine before heating start has begun."
},
"human_like": "Starts a heating quarantine timer when the windows are closed during the heating season.",
"complexity": "low"
}
},
{
"id": "restore_heating_after_quarantine",
"result": {
"structured": "TRIGGER: When timer.finished event occurs for Heating quarantine timer [timer.heating_quarantine]. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Windows binary sensor [binary_sensor.windows] is off. ACTIONS: IF (Pause heating timer [timer.pause_heating] is idle) AND (People home binary sensor [binary_sensor.people_home] is on OR Guest mode input boolean [input_boolean.guest_mode] is on) THEN execute Thermostat stop heating script [script.thermostat_stop_heating] with message 'Карантин перед включением отопления окончен → отопление включено'. OTHERWISE set Heating log input text [input_text.heating_log] value to 'Карантин перед включением отопления окончен, но обогрев запрещён → отопление не включено'.",
"natural_language": {
"trigger": "When the Heating quarantine timer [timer.heating_quarantine] finishes.",
"conditions": "The Heating season input boolean [input_boolean.heating_season] must be on, indicating heating season is active, and the Windows binary sensor [binary_sensor.windows] must be off, meaning all windows are closed.",
"action": "If the Pause heating timer [timer.pause_heating] is idle and either the People home binary sensor [binary_sensor.people_home] detects someone is home or the Guest mode input boolean [input_boolean.guest_mode] is on, then the Thermostat stop heating script [script.thermostat_stop_heating] is run to restore heating with a confirmation message. Otherwise, if heating is not allowed, a log entry is written to the Heating log input text [input_text.heating_log] stating that the quarantine has ended but heating was not restored."
},
"human_like": "Restores the heating system after a quarantine period, but only if it's heating season, windows are closed, and someone is home or guest mode is active.",
"complexity": "medium"
}
},
{
"id": "thermostat_freeze_alert_at_night",
"result": {
"structured": "TRIGGER: When Freeze alert at night [binary_sensor.freeze_alert_at_night] changes from off to on AND remains on for 5 minutes OR at the start of every hour (time pattern). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Freeze alert at night [binary_sensor.freeze_alert_at_night] is on AND (People home binary sensor [binary_sensor.people_home] is on OR Guest mode input boolean [input_boolean.guest_mode] is on). ACTIONS: Cancel Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating]; Execute Notify and create persistent notification script [script.notify_and_create_persistent_notification] with title '⚠️ Предупреждение' and message 'Температура упала ниже порога'; Set Heating log input text [input_text.heating_log] value to 'Температура упала ниже порога'; Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '💬 Системное уведомление' and message 'Термостат был снова включен в [current time from sensor.time], чтобы вы не замёрзли'; Execute Thermostat stop heating script [script.thermostat_stop_heating] with message 'Температура упала ниже порога ночью → термостат переведён на 22°C'.",
"natural_language": {
"trigger": "This automation can be triggered in two ways: first, when the Freeze alert at night [binary_sensor.freeze_alert_at_night] sensor turns on and stays on for five minutes. Second, it also runs automatically at the start of every hour.",
"conditions": "For the automation to proceed, several conditions must be met. The heating season must be active, indicated by the Heating season input boolean [input_boolean.heating_season] being on. The Freeze alert at night [binary_sensor.freeze_alert_at_night] must also be on. Finally, at least one person must be home, as indicated by the People home binary sensor [binary_sensor.people_home], or Guest mode input boolean [input_boolean.guest_mode] must be active.",
"action": "When triggered and all conditions are satisfied, the automation performs a series of actions. It first cancels three heating-related timers: Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating]. It then creates a system notification with a warning that the temperature has dropped below the threshold. This event is also logged in the Heating log input text [input_text.heating_log]. A mobile notification is sent to the user's phone, stating the thermostat has been reactivated at the current time to prevent freezing. Finally, it runs a script to adjust the thermostat, setting it to 22°C with a descriptive message."
},
"human_like": "This automation prevents the home from getting too cold at night by restarting the heating system and sending alerts if a freeze warning is active and someone is home.",
"complexity": "medium"
}
},
{
"id": "thermostat_preheat_alert",
"result": {
"structured": "TRIGGER: When Family room climate [climate.family_room] current_temperature remains above 25.0°C for 5 minutes OR every hour (time pattern). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Family room climate [climate.family_room] current_temperature is above 25.0°C AND (Family room climate [climate.family_room] state is 'heat' AND its target temperature attribute is greater than or equal to 25.0). ACTIONS: Execute Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a title and message, then execute Thermostat stop heating script [script.thermostat_stop_heating] with a message.",
"natural_language": {
"trigger": "This automation can be triggered in two ways: either when the current temperature in the Family room climate [climate.family_room] stays above 25.0°C for a continuous period of five minutes, or on a scheduled basis, once every hour.",
"conditions": "For the automation to proceed, several conditions must be met. First, the Heating season input boolean [input_boolean.heating_season] must be switched on. Second, the current temperature of the Family room climate [climate.family_room] must be above 25.0°C at the moment of checking. Finally, the thermostat must be in 'heat' mode and its set target temperature must be at least 25.0°C.",
"action": "The automation performs two actions in sequence. First, it sends a persistent notification with a warning message that includes the current time from the Time sensor [sensor.time]. Second, it runs a script to stop the heating, which will change the thermostat's mode and set its target temperature to 22°C."
},
"human_like": "This automation prevents overheating by switching the thermostat to a cooler setting and sending an alert if the room gets too warm during the heating season.",
"complexity": "medium"
}
},
{
"id": "thermostat_heating_duration_alert",
"result": {
"structured": "TRIGGER: When Thermostat heating binary sensor [binary_sensor.thermostat_heating] changes from off to on AND remains on for 1 hour. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on. ACTIONS: Cancel timer.heating_quarantine [timer.heating_quarantine] AND Cancel timer.short_heating [timer.short_heating] AND Cancel timer.pause_heating [timer.pause_heating]. Execute script.notify_and_create_persistent_notification [script.notify_and_create_persistent_notification] with a warning message. Start timer.pause_heating [timer.pause_heating]. Execute script.thermostat_stop_heating [script.thermostat_stop_heating] to stop heating.",
"natural_language": {
"trigger": "When the Thermostat heating binary sensor [binary_sensor.thermostat_heating] turns on and stays on for a continuous period of one hour.",
"conditions": "The automation only runs if the Heating season input boolean [input_boolean.heating_season] is switched on, indicating the heating season is active.",
"action": "Cancels several heating-related timers, sends a persistent notification warning that the thermostat has been running for over an hour, starts a pause timer to disable heating for an hour, and runs a script to stop the heating system."
},
"human_like": "Sends an alert and temporarily stops heating if the thermostat runs continuously for an hour during the heating season.",
"complexity": "medium"
}
},
{
"id": "short_heating_start",
"result": {
"structured": "TRIGGER: When Thermostat 10 minutes heating input button [input_button.thermostat_10_minutes_heating] is pressed. CONDITIONS: None. ACTIONS: IF (Thermostat heating binary sensor [binary_sensor.thermostat_heating] is on) OR (Short heating timer [timer.short_heating] is active) THEN play the text 'Квартира уже подогревается' on Yandex station midi media player [media_player.yandex_station_midi]. ELSE cancel Heating quarantine timer [timer.heating_quarantine], cancel Short heating timer [timer.short_heating], cancel Pause heating timer [timer.pause_heating], start Short heating timer [timer.short_heating], play the text 'Включен кратковременный подогрев квартиры' on Yandex station midi media player [media_player.yandex_station_midi], and execute Thermostat start heating script [script.thermostat_start_heating] with the message 'Включен кратковременный подогрев квартиры'.",
"natural_language": {
"trigger": "When the Thermostat 10 minutes heating input button [input_button.thermostat_10_minutes_heating] is pressed.",
"conditions": "There are no separate conditions; the logic is handled within the action sequence.",
"action": "The system first checks if the thermostat is already heating or if a short heating timer is already running. If either is true, it plays a voice message on the Yandex station saying 'Квартира уже подогревается' (The apartment is already heating). Otherwise, it cancels several heating-related timers, starts a new short heating timer, plays a different voice message announcing that short-term heating has been activated, and runs a script to start the thermostat heating."
},
"human_like": "Starts a short 10-minute heating cycle when the button is pressed, but only if the heating isn't already on, and announces the action via voice.",
"complexity": "medium"
}
},
{
"id": "short_heating_end",
"result": {
"structured": "TRIGGER: When timer.finished event occurs for Short heating timer [timer.short_heating]. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on. ACTIONS: Play media on Yandex station midi media player [media_player.yandex_station_midi] with content 'Кратковременный подогрев квартиры окончен'. THEN, IF (ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] is off AND Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] is off) THEN execute Thermostat stop heating script [script.thermostat_stop_heating] with data message 'Кратковременный подогрев квартиры окончен'.",
"natural_language": {
"trigger": "When the Short heating timer [timer.short_heating] finishes.",
"conditions": "The Heating season input boolean [input_boolean.heating_season] must be turned on.",
"action": "First, announce the end of the short heating period by playing a text message on the Yandex station midi media player [media_player.yandex_station_midi]. Then, if neither the ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] nor the Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] are requesting heat, the automation will run the Thermostat stop heating script [script.thermostat_stop_heating] to stop the heating system."
},
"human_like": "Announces the end of a short heating boost and stops the heating if no rooms are requesting heat, but only during the heating season.",
"complexity": "medium"
}
},
{
"id": "disable_heating_when_noone_home",
"result": {
"structured": "TRIGGER: When People home binary sensor [binary_sensor.people_home] changes from on to off AND remains off for 5 minutes. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Thermostat active binary sensor [binary_sensor.thermostat_active] is on AND Guest mode input boolean [input_boolean.guest_mode] is off. ACTIONS: Cancel Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating] AND execute Thermostat set eco mode script [script.thermostat_set_eco_mode] with the message 'Никого нет дома → переход в режим экономии'.",
"natural_language": {
"trigger": "When the People home binary sensor [binary_sensor.people_home] indicates that everyone has left (changes from 'on' to 'off') and this state persists for five minutes.",
"conditions": "If the heating season is active (Heating season input boolean [input_boolean.heating_season] is on), the thermostat is currently active (Thermostat active binary sensor [binary_sensor.thermostat_active] is on), and guest mode is not enabled (Guest mode input boolean [input_boolean.guest_mode] is off).",
"action": "Cancels three heating-related timers (Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating]) and runs the Thermostat set eco mode script [script.thermostat_set_eco_mode] to switch the thermostat to an energy-saving mode, with a notification message stating 'Никого нет дома → переход в режим экономии' (No one is home → switching to economy mode)."
},
"human_like": "Turns off the heating and switches to an energy-saving mode when everyone has been away from home for five minutes during the heating season.",
"complexity": "medium"
}
},
{
"id": "restore_heating_when_someone_home",
"result": {
"structured": "TRIGGER: When People home [binary_sensor.people_home] changes from off to on. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Thermostat active [binary_sensor.thermostat_active] is off. ACTIONS: If Windows binary sensor [binary_sensor.windows] is on, then execute Thermostat set eco mode script [script.thermostat_set_eco_mode] with a message. Otherwise, execute Thermostat stop heating script [script.thermostat_stop_heating] with a message.",
"natural_language": {
"trigger": "When the People home [binary_sensor.people_home] sensor changes state to indicate someone has arrived home.",
"conditions": "The heating season must be active, indicated by the Heating season input boolean [input_boolean.heating_season] being on, and the thermostat must not currently be actively heating, indicated by the Thermostat active [binary_sensor.thermostat_active] being off.",
"action": "If any window is reported as open by the Windows binary sensor [binary_sensor.windows], the system will run a script to set the thermostat to eco mode, with a corresponding message. If all windows are closed, the system will run a script to stop the heating, also with a message."
},
"human_like": "Restores the heating when someone comes home, but only if it's heating season and the thermostat is idle. It checks for open windows first to decide whether to turn on the heat or stay in eco mode.",
"complexity": "medium"
}
},
{
"id": "start_heating_by_etrv_request",
"result": {
"structured": "TRIGGER: When ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] changes from off to on AND remains on for 1 minute OR every 2 minutes (time pattern). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] is on AND Windows binary sensor [binary_sensor.windows] is off AND remains off for 5 minutes AND Heating quarantine timer [timer.heating_quarantine] is idle AND Pause heating timer [timer.pause_heating] is idle AND Short heating timer [timer.short_heating] is idle AND (People home binary sensor [binary_sensor.people_home] is on OR Guest mode input boolean [input_boolean.guest_mode] is on) AND Thermostat heating binary sensor [binary_sensor.thermostat_heating] is off. ACTIONS: Execute Thermostat start heating script [script.thermostat_start_heating] AND Turn on Heating allowed input boolean [input_boolean.heating_allowed].",
"natural_language": {
"trigger": "When the ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] first turns on and stays on for at least one minute, or every two minutes on a repeating schedule.",
"conditions": "The heating season must be active, indicated by the Heating season input boolean [input_boolean.heating_season] being on. The ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] must still be on. All windows must be closed, as indicated by the Windows binary sensor [binary_sensor.windows] being off for at least five minutes. Several timers must be inactive: the Heating quarantine timer [timer.heating_quarantine], the Pause heating timer [timer.pause_heating], and the Short heating timer [timer.short_heating] must all be idle. At least one person must be home, indicated by the People home binary sensor [binary_sensor.people_home] being on, or Guest mode must be active. Finally, the heating must not already be running, so the Thermostat heating binary sensor [binary_sensor.thermostat_heating] must be off.",
"action": "Start the heating system by running the Thermostat start heating script [script.thermostat_start_heating] and mark heating as allowed by turning on the Heating allowed input boolean [input_boolean.heating_allowed]."
},
"human_like": "Starts the home heating system when the radiator valves request heat, provided it's heating season, windows are closed, no one is away, and no other heating timers are active.",
"complexity": "medium"
}
},
{
"id": "start_heating_in_bathroom",
"result": {
"structured": "TRIGGER: When Heating request bathroom [binary_sensor.heating_request_bathroom] changes from off to on. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Pause heating timer [timer.pause_heating] is idle AND Short heating timer [timer.short_heating] is idle AND (People home binary sensor [binary_sensor.people_home] is on OR Guest mode input boolean [input_boolean.guest_mode] is on) AND Thermostat heating binary sensor [binary_sensor.thermostat_heating] is off. ACTIONS: Execute Thermostat start heating script [script.thermostat_start_heating].",
"natural_language": {
"trigger": "When the Heating request bathroom [binary_sensor.heating_request_bathroom] sensor indicates a request to start heating, changing from off to on.",
"conditions": "The heating season must be active, indicated by the Heating season input boolean [input_boolean.heating_season] being on. Both the Pause heating timer [timer.pause_heating] and the Short heating timer [timer.short_heating] must be idle, meaning no recent heating pauses or short heating cycles are in effect. Additionally, either someone must be home, as indicated by the People home binary sensor [binary_sensor.people_home], or Guest mode [input_boolean.guest_mode] must be active. Finally, the main thermostat must not already be heating, which is confirmed by the Thermostat heating binary sensor [binary_sensor.thermostat_heating] being off.",
"action": "Starts the heating process by running the Thermostat start heating script [script.thermostat_start_heating]."
},
"human_like": "Starts heating in the bathroom when requested, but only during heating season, if no timers are active, someone is home or guest mode is on, and the thermostat isn't already heating.",
"complexity": "medium"
}
},
{
"id": "stop_heating_by_etrv_request",
"result": {
"structured": "TRIGGER: When ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] changes from on to off AND remains off for 1 minute OR When Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] changes from on to off AND remains off for 1 minute OR Every 2 minutes (time pattern). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] is off AND Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] is off AND Short heating timer [timer.short_heating] is idle AND Thermostat heating binary sensor [binary_sensor.thermostat_heating] is on. ACTIONS: Execute Thermostat stop heating script [script.thermostat_stop_heating] with a message.",
"natural_language": {
"trigger": "The automation triggers when either the ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] or the Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] stops requesting heat (changes from on to off and stays off for one minute). It also triggers every two minutes on a schedule.",
"conditions": "All of the following must be true: the heating season is active (Heating season input boolean [input_boolean.heating_season] is on), no heat is being requested by either the ETRVs [binary_sensor.etrvs_requesting_heat] or the bathroom [binary_sensor.heating_request_bathroom], the Short heating timer [timer.short_heating] is not running, and the thermostat is currently heating (Thermostat heating binary sensor [binary_sensor.thermostat_heating] is on).",
"action": "Runs the Thermostat stop heating script [script.thermostat_stop_heating] to stop the heating system, providing a status message that the ETRVs are not requesting heat and the temperature has been set back to 22°C."
},
"human_like": "Stops the heating when no rooms are requesting heat and the system is idle, ensuring energy is not wasted during the heating season.",
"complexity": "medium"
}
},
{
"id": "start_pause_heating_manually",
"result": {
"structured": "TRIGGER: When Heating allowed input boolean [input_boolean.heating_allowed] changes from on to off. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Thermostat heating binary sensor [binary_sensor.thermostat_heating] is on. ACTIONS: IF Short heating timer [timer.short_heating] is active THEN send text 'Подогрев квартиры окончен раньше вручную' to Yandex station midi media player [media_player.yandex_station_midi]. THEN cancel Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating]. THEN start Pause heating timer [timer.pause_heating]. THEN execute Thermostat stop heating script [script.thermostat_stop_heating] with data message 'Отопление заблокировано вручную → температура возвращена на 22°C'.",
"natural_language": {
"trigger": "When the Heating allowed input boolean [input_boolean.heating_allowed] is manually turned off.",
"conditions": "The automation only runs if the heating season is active, indicated by the Heating season input boolean [input_boolean.heating_season] being on, and the thermostat is currently heating, indicated by the Thermostat heating binary sensor [binary_sensor.thermostat_heating] being on.",
"action": "First, if a short heating cycle is currently active, a voice notification is played on the Yandex station midi media player [media_player.yandex_station_midi] stating that heating was ended early manually. Then, three timers (Heating quarantine timer [timer.heating_quarantine], Short heating timer [timer.short_heating], and Pause heating timer [timer.pause_heating]) are cancelled. The Pause heating timer [timer.pause_heating] is then started to enforce a pause period. Finally, a script is executed to stop the thermostat heating and set the temperature back to 22°C, with a corresponding log message."
},
"human_like": "Manually pauses the home heating system, cancels any active heating timers, and starts a cooldown period, ensuring it only runs during the heating season when the heater is active.",
"complexity": "medium"
}
},
{
"id": "cancel_pause_heating_manually",
"result": {
"structured": "TRIGGER: When Heating allowed input boolean [input_boolean.heating_allowed] changes from off to on. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Pause heating timer [timer.pause_heating] is active. ACTIONS: Cancel Pause heating timer [timer.pause_heating], then play the text 'Блокировка отопления отменена вручную' on Yandex station midi media player [media_player.yandex_station_midi], and set the value of Heating log input text [input_text.heating_log] to 'Блокировка отопления отменена вручную'.",
"natural_language": {
"trigger": "When the Heating allowed input boolean [input_boolean.heating_allowed] is turned on from an off state.",
"conditions": "The heating season must be active, meaning the Heating season input boolean [input_boolean.heating_season] is on, and the Pause heating timer [timer.pause_heating] must be currently running.",
"action": "Cancels the active Pause heating timer [timer.pause_heating], announces 'Блокировка отопления отменена вручную' (Heating pause cancelled manually) via the Yandex station midi media player [media_player.yandex_station_midi], and logs this event by setting the Heating log input text [input_text.heating_log] to the same message."
},
"human_like": "Manually cancels an active heating pause when heating is re-allowed during the heating season, providing a voice announcement and logging the action.",
"complexity": "low"
}
},
{
"id": "log_heating_changes",
"result": {
"structured": "TRIGGER: When any of the following entities changes state: Thermostat heating binary sensor [binary_sensor.thermostat_heating] OR Thermostat active binary sensor [binary_sensor.thermostat_active] OR ETRVs requesting heat binary sensor [binary_sensor.etrvs_requesting_heat] OR Heating request bathroom binary sensor [binary_sensor.heating_request_bathroom] OR Freeze alert at night binary sensor [binary_sensor.freeze_alert_at_night] OR Windows binary sensor [binary_sensor.windows] OR People home binary sensor [binary_sensor.people_home] OR Heating season input boolean [input_boolean.heating_season] OR Guest mode input boolean [input_boolean.guest_mode] OR Heating allowed input boolean [input_boolean.heating_allowed] OR Thermostat new target temperature input number [input_number.thermostat_new_target_temperature] OR Heating quarantine timer [timer.heating_quarantine] OR Short heating timer [timer.short_heating] OR Pause heating timer [timer.pause_heating]. CONDITIONS: The trigger must have a valid previous state and a new state (trigger.from_state is not none AND trigger.to_state is not none). ACTIONS: Set the value of Heating log input text [input_text.heating_log] to a message stating the entity's name changed from its old state to its new state.",
"natural_language": {
"trigger": "Whenever the state changes for any of the heating-related sensors, timers, or settings. This includes the thermostat heating status, thermostat activity, heat requests from valves and the bathroom, freeze alerts, window status, occupancy status, heating season mode, guest mode, heating permission, target temperature, and the heating-related timers.",
"conditions": "The automation only runs if the state change is valid, meaning the entity had a previous state and a new state to report.",
"action": "Logs the change by updating the Heating log input text [input_text.heating_log] with a message that includes the entity's name and the old and new states."
},
"human_like": "Logs any change in the home heating system's status or settings to a central log for monitoring and debugging.",
"complexity": "medium"
}
},
{
"id": "sync_danfoss_etrv_window_contact_kitchen",
"result": {
"structured": "TRIGGER: When Kitchen window contact binary sensor [binary_sensor.kitchen_window_contact] changes state and remains stable for 10 seconds OR at a time pattern matching every 10 minutes. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Kitchen window contact binary sensor [binary_sensor.kitchen_window_contact] state is either 'on' or 'off'. ACTIONS: Turn Danfoss ETRV0103 kitchen external window sensor switch [switch.danfoss_etrv0103_kitchen_external_window_sensor] on or off to match the current state of Kitchen window contact binary sensor [binary_sensor.kitchen_window_contact].",
"natural_language": {
"trigger": "The automation triggers when the Kitchen window contact binary sensor [binary_sensor.kitchen_window_contact] changes to a new state and stays that way for 10 seconds, or on a scheduled basis every 10 minutes.",
"conditions": "The automation only runs if the Heating season input boolean [input_boolean.heating_season] is turned on, and if the Kitchen window contact binary sensor [binary_sensor.kitchen_window_contact] reports a valid state of either 'open' (on) or 'closed' (off).",
"action": "It synchronizes the Danfoss ETRV0103 kitchen external window sensor switch [switch.danfoss_etrv0103_kitchen_external_window_sensor] by turning it on or off to mirror the current state of the window contact sensor."
},
"human_like": "Keeps the kitchen radiator's window sensor in sync with the actual window contact, but only during the heating season.",
"complexity": "medium"
}
},
{
"id": "sync_danfoss_etrv_window_contact_bedroom",
"result": {
"structured": "TRIGGER: When Bedroom window contact binary sensor [binary_sensor.bedroom_window_contact] changes state and remains stable for 10 seconds OR every 10 minutes (on the minute). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Bedroom window contact binary sensor [binary_sensor.bedroom_window_contact] state is either 'on' or 'off'. ACTIONS: Turn Danfoss ETRV0100 bedroom external window sensor switch [switch.danfoss_etrv0100_bedroom_external_window_sensor] on or off to match the current state of Bedroom window contact binary sensor [binary_sensor.bedroom_window_contact].",
"natural_language": {
"trigger": "The automation triggers either when the Bedroom window contact binary sensor [binary_sensor.bedroom_window_contact] changes to a new state and stays that way for 10 seconds, or on a recurring schedule every 10 minutes.",
"conditions": "The automation only runs if the Heating season input boolean [input_boolean.heating_season] is turned on, and if the Bedroom window contact binary sensor [binary_sensor.bedroom_window_contact] is reporting a valid state of either open or closed.",
"action": "It synchronizes the state of the Danfoss ETRV0100 bedroom external window sensor switch [switch.danfoss_etrv0100_bedroom_external_window_sensor] by turning it on or off to match the current state of the window contact sensor."
},
"human_like": "Keeps the Danfoss radiator thermostat's window sensor in sync with the actual bedroom window contact, but only during the heating season.",
"complexity": "medium"
}
},
{
"id": "sync_danfoss_etrv_window_contact_living_room",
"result": {
"structured": "TRIGGER: When Living room window contact binary sensor [binary_sensor.living_room_window_contact] changes state AND remains stable for 10 seconds OR every 10 minutes (on the minute pattern). CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Living room window contact binary sensor [binary_sensor.living_room_window_contact] state is either 'on' or 'off'. ACTIONS: Turn Danfoss ETRV0103 living room external window sensor switch [switch.danfoss_etrv0103_living_room_external_window_sensor] on or off to match the current state of Living room window contact binary sensor [binary_sensor.living_room_window_contact].",
"natural_language": {
"trigger": "The automation runs when the Living room window contact binary sensor [binary_sensor.living_room_window_contact] changes state and remains in that new state for 10 seconds, or it runs every 10 minutes on a scheduled basis.",
"conditions": "The automation only proceeds if the Heating season input boolean [input_boolean.heating_season] is turned on, and if the Living room window contact binary sensor [binary_sensor.living_room_window_contact] reports a valid state of either 'on' or 'off'.",
"action": "It synchronizes the Danfoss ETRV0103 living room external window sensor switch [switch.danfoss_etrv0103_living_room_external_window_sensor] by turning it on or off to match the current state of the window contact sensor."
},
"human_like": "Keeps the Danfoss radiator thermostat's window sensor in sync with the actual window contact sensor, but only during the heating season.",
"complexity": "medium"
}
},
{
"id": "sync_etrvs_heating_available_flag",
"result": {
"structured": "TRIGGER: When Thermostat heating binary sensor [binary_sensor.thermostat_heating] changes state AND remains stable for 10 seconds OR at 0, 10, 20, 30, 40, 50 minutes past every hour. CONDITIONS: Heating season input boolean [input_boolean.heating_season] is on AND Thermostat heating binary sensor [binary_sensor.thermostat_heating] state is either 'on' or 'off'. ACTIONS: Turn Danfoss ETRV0100 bedroom heat available switch [switch.danfoss_etrv0100_bedroom_heat_available], Danfoss ETRV0103 kitchen heat available switch [switch.danfoss_etrv0103_kitchen_heat_available], and Danfoss ETRV0103 living room heat available switch [switch.danfoss_etrv0103_living_room_heat_available] to the same state as Thermostat heating binary sensor [binary_sensor.thermostat_heating].",
"natural_language": {
"trigger": "The automation triggers either when the Thermostat heating binary sensor [binary_sensor.thermostat_heating] changes to a new state and remains in that state for at least 10 seconds, or every 10 minutes (at 0, 10, 20, 30, 40, and 50 minutes past the hour).",
"conditions": "The automation only runs if the Heating season input boolean [input_boolean.heating_season] is turned on, and the Thermostat heating binary sensor [binary_sensor.thermostat_heating] is reporting a valid state of either 'on' or 'off'.",
"action": "Sets the state of three heat availability switches (Danfoss ETRV0100 bedroom heat available switch [switch.danfoss_etrv0100_bedroom_heat_available], Danfoss ETRV0103 kitchen heat available switch [switch.danfoss_etrv0103_kitchen_heat_available], and Danfoss ETRV0103 living room heat available switch [switch.danfoss_etrv0103_living_room_heat_available]) to match the current state of the Thermostat heating binary sensor [binary_sensor.thermostat_heating]."
},
"human_like": "Keeps the heat availability flags for the bedroom, kitchen, and living room ETRV valves in sync with the main thermostat's heating status, but only during the heating season.",
"complexity": "medium"
}
},
{
"id": "hall_lights_and_alice_greeting",
"result": {
"structured": "TRIGGER: When Sen person [person.sen] arrives home OR when Kris person [person.kris] arrives home. CONDITIONS: None. ACTIONS: Wait for Hall door contact binary sensor [binary_sensor.hall_door_contact] to be open (on) for up to 15 minutes. If the trigger was Sen person [person.sen] arriving home, then turn on Hall lights [light.hall_lights]. Wait for Hall door contact binary sensor [binary_sensor.hall_door_contact] to be closed (off) for up to 10 minutes. Then, choose an action sequence based on the following conditions: IF the trigger was Sen person [person.sen] arriving home AND Sen person [person.sen] arrived home after Kris person [person.kris] last arrived home, then delay 1 second, play a welcome message for 'Mr. Morgan' on Yandex station midi media player [media_player.yandex_station_midi] at 80% volume, and if it is after sunset but before sunset offset by 15 minutes, turn on String lights [light.string_lights], delay 1 second, and turn on Kitchen ceiling light [light.kitchen_ceiling_light]. ELSE IF the trigger was Kris person [person.kris] arriving home AND Kris person [person.kris] arrived home after Sen person [person.sen] last arrived home, then play a welcome message for 'Mrs. Morgan' on Yandex station midi media player [media_player.yandex_station_midi] at 60% volume. ELSE IF both Sen person [person.sen] and Kris person [person.kris] are home, then if it is after sunset but before sunset offset by 15 minutes, turn on String lights [light.string_lights], and then play a welcome message for 'Mr. and Mrs. Morgan' on Yandex station midi media player [media_player.yandex_station_midi] at 60% volume. OTHERWISE, run the script Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a warning title and message.",
"natural_language": {
"trigger": "The automation starts when either Sen person [person.sen] or Kris person [person.kris] arrives home.",
"conditions": "There are no explicit conditions that must be true before the actions run; the automation proceeds directly after the trigger.",
"action": "First, the automation waits for the hall door to open, for up to 15 minutes. If Sen arrived home, it turns on the hall lights. Then it waits for the hall door to close, for up to 10 minutes. After that, it determines who arrived and plays a personalized greeting. If Sen arrived last, it welcomes 'Mr. Morgan' and, if it's around sunset, turns on the string lights and kitchen light. If Kris arrived last, it welcomes 'Mrs. Morgan'. If both are already home, it welcomes both and turns on the string lights if it's around sunset. If it cannot determine who arrived, it sends a warning notification."
},
"human_like": "Welcomes specific family members home with personalized greetings and turns on lights, first waiting for the hall door to open and close.",
"complexity": "high"
}
},
{
"id": "home_all_lights_off",
"result": {
"structured": "TRIGGER: When Hall door contact [binary_sensor.hall_door_contact] changes from open (on) to closed (off). CONDITIONS: People home binary sensor [binary_sensor.people_home] is on AND Guest mode input boolean [input_boolean.guest_mode] is off. ACTIONS: Wait until People home binary sensor [binary_sensor.people_home] becomes off, with a timeout of 30 minutes. If the timeout is not reached, then check if Guest mode input boolean [input_boolean.guest_mode] is still off. If true, execute the following sequence: 1. Turn on Turn off all lights script [script.turn_off_all_lights]. 2. Turn on No people home scene [scene.no_people_home]. 3. Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title and a message that depends on the state of Heating season input boolean [input_boolean.heating_season]. The notification includes an action button labeled 'Включить гостевой режим'. 4. Wait for a mobile app notification action event matching the generated action key. 5. If the received action matches the generated key, turn on Enable guest mode script [script.enable_guest_mode].",
"natural_language": {
"trigger": "When the Hall door contact [binary_sensor.hall_door_contact] closes.",
"conditions": "The People home binary sensor [binary_sensor.people_home] must indicate someone is home, and the Guest mode input boolean [input_boolean.guest_mode] must be off.",
"action": "After the door closes, the automation waits for up to 30 minutes for the People home binary sensor [binary_sensor.people_home] to report that everyone has left. If this happens within the timeout, it proceeds only if Guest mode input boolean [input_boolean.guest_mode] is still off. It then turns off all lights via a script, activates a 'no people home' scene, and sends a notification to a mobile device. The notification message varies depending on whether the heating season is active. The notification includes a button to enable guest mode. If this button is pressed, a script to enable guest mode is run."
},
"human_like": "Turns off lights and activates a leaving scene when the hall door is closed and everyone has left home, with an option to enable guest mode via a mobile notification.",
"complexity": "high"
}
},
{
"id": "hall_lights_by_motion_on",
"result": {
"structured": "TRIGGER: When Hall door contact binary sensor [binary_sensor.hall_door_contact] changes to open (on) OR When Aqara hall motion sensor occupancy binary sensor [binary_sensor.aqara_hall_motion_sensor_occupancy] changes to motion detected (on). CONDITIONS: Hall lights [light.hall_lights] is off. ACTIONS: Turn on Hall lights [light.hall_lights] AND Turn on Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion].",
"natural_language": {
"trigger": "When the Hall door contact binary sensor [binary_sensor.hall_door_contact] opens, or when the Aqara hall motion sensor occupancy binary sensor [binary_sensor.aqara_hall_motion_sensor_occupancy] detects motion.",
"conditions": "The automation only runs if the Hall lights [light.hall_lights] are currently off.",
"action": "It turns on the Hall lights [light.hall_lights] and sets the Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion] to on."
},
"human_like": "Turns on the hall lights when motion is detected or the door opens, but only if the lights are currently off.",
"complexity": "low"
}
},
{
"id": "hall_lights_by_motion_off",
"result": {
"structured": "TRIGGER: When Aqara hall motion sensor occupancy binary sensor [binary_sensor.aqara_hall_motion_sensor_occupancy] changes to off. CONDITIONS: Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion] is on. ACTIONS: Turn off Hall lights [light.hall_lights] AND Turn off Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion].",
"natural_language": {
"trigger": "When the Aqara hall motion sensor occupancy binary sensor [binary_sensor.aqara_hall_motion_sensor_occupancy] stops detecting motion and changes its state to off.",
"conditions": "The automation only runs if the Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion] is currently switched on.",
"action": "Turns off the Hall lights [light.hall_lights] and then also turns off the Flag hall lights triggered by motion input boolean [input_boolean.flag_hall_lights_triggered_by_motion]."
},
"human_like": "Turns off the hall lights when motion is no longer detected, but only if the lights were originally turned on by a motion trigger.",
"complexity": "low"
}
},
{
"id": "kitchen_asus_pc_background_lights_on",
"result": {
"structured": "TRIGGER: When Asus PC switch [switch.asus_pc] turns on OR When Sun sun entity [sun.sun] elevation is below 4.0 OR When Weather home assistant blue [weather.home_assistant_blue] changes state. CONDITIONS: Sen person [person.sen] is home AND Asus PC switch [switch.asus_pc] is on AND (Sun sun entity [sun.sun] elevation is below 4.0 OR Weather home assistant blue [weather.home_assistant_blue] state is not sunny or partlycloudy). ACTIONS: Turn on Gyver lamp [light.gyver_lamp] with effect Oгoнь, brightness 150, and RGB color (255, 39, 25). THEN, if Kris person [person.kris] is home, turn off PC backlight sync send switch [switch.pc_backlight_sync_send]; otherwise, turn on Shelf lighting [light.shelf_lighting] and PC backlight [light.pc_backlight], and turn on PC backlight sync send switch [switch.pc_backlight_sync_send].",
"natural_language": {
"trigger": "The automation can be triggered in three ways: when the Asus PC switch [switch.asus_pc] is turned on, when the sun's elevation [sun.sun] drops below 4.0 degrees, or when the weather entity [weather.home_assistant_blue] changes state.",
"conditions": "For the automation to run, Sen person [person.sen] must be at home, the Asus PC switch [switch.asus_pc] must be on, and either the sun is below the horizon (elevation < 4.0) or the weather is not sunny or partly cloudy.",
"action": "First, the Gyver lamp [light.gyver_lamp] is turned on with a specific fire effect, brightness, and color. Then, depending on whether Kris person [person.kris] is home, it either turns off the PC backlight sync send switch [switch.pc_backlight_sync_send] or turns on the Shelf lighting [light.shelf_lighting] and PC backlight [light.pc_backlight] and also turns on the PC backlight sync send switch [switch.pc_backlight_sync_send]."
},
"human_like": "Turns on background lighting in the kitchen when the PC is on and it's dark or cloudy, with different light setups depending on who is home.",
"complexity": "medium"
}
},
{
"id": "kitchen_asus_pc_background_lights_off",
"result": {
"structured": "TRIGGER: When Asus PC switch [switch.asus_pc] changes state from on to off. CONDITIONS: None. ACTIONS: Turn off Gyver lamp [light.gyver_lamp] AND turn off Shelf lighting [light.shelf_lighting].",
"natural_language": {
"trigger": "When the Asus PC switch [switch.asus_pc] is turned off.",
"conditions": "There are no conditions that must be met.",
"action": "Turn off the Gyver lamp [light.gyver_lamp] and the Shelf lighting [light.shelf_lighting]."
},
"human_like": "Turns off the background lights in the kitchen when the PC is switched off.",
"complexity": "low"
}
},
{
"id": "kitchen_clock_disable_by_presence",
"result": {
"structured": "TRIGGER: When People home binary sensor [binary_sensor.people_home] changes to off and remains for 1 minute. CONDITIONS: Guest mode input boolean [input_boolean.guest_mode] is off. ACTIONS: Turn off 7 segment clock light [light.7_seg_clock].",
"natural_language": {
"trigger": "When the People home binary sensor [binary_sensor.people_home] indicates that nobody is home and stays in that state for at least one minute.",
"conditions": "The Guest mode input boolean [input_boolean.guest_mode] must be turned off.",
"action": "Turns off the 7 segment clock light [light.7_seg_clock] in the kitchen."
},
"human_like": "Turns off the kitchen clock light when everyone has been away from home for a minute and guest mode is not active.",
"complexity": "low"
}
},
{
"id": "kitchen_clock_reenable",
"result": {
"structured": "TRIGGER: When 7 segment clock light [light.7_seg_clock] remains off for 5 seconds OR When Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] turns on OR When Home night mode input boolean [input_boolean.home_night_mode] turns off. CONDITIONS: (7 segment clock light [light.7_seg_clock] is off) AND (People home binary sensor [binary_sensor.people_home] is on) AND (time is after 05:00:00 AND before 22:00:00). ACTIONS: Turn on 7 segment clock light [light.7_seg_clock].",
"natural_language": {
"trigger": "The automation can be triggered in three ways: if the 7 segment clock light [light.7_seg_clock] stays off for 5 seconds, if motion is detected by the Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm], or if the Home night mode input boolean [input_boolean.home_night_mode] is turned off.",
"conditions": "For the automation to run, the 7 segment clock light [light.7_seg_clock] must currently be off, the People home binary sensor [binary_sensor.people_home] must indicate someone is home, and the time must be between 5:00 AM and 10:00 PM.",
"action": "Turn on the 7 segment clock light [light.7_seg_clock]."
},
"human_like": "Automatically turns the kitchen clock light back on during the day when someone is home, if it's off and motion is detected or night mode is disabled.",
"complexity": "medium"
}
},
{
"id": "interactive_cz_map_reenable",
"result": {
"structured": "TRIGGER: When Sen person [person.sen] arrives home OR When Asus PC switch [switch.asus_pc] turns on OR When Home night mode input boolean [input_boolean.home_night_mode] turns off. CONDITIONS: Interactive CZ map enable switch [switch.interactive_cz_map_enable] is off AND Sen person [person.sen] is home AND current time is between 05:00:00 and 22:00:00. ACTIONS: Turn on Interactive CZ map enable switch [switch.interactive_cz_map_enable].",
"natural_language": {
"trigger": "The automation can be triggered in three ways: when Sen person [person.sen] arrives home, when the Asus PC switch [switch.asus_pc] is turned on, or when the Home night mode input boolean [input_boolean.home_night_mode] is turned off.",
"conditions": "For the automation to run, the Interactive CZ map enable switch [switch.interactive_cz_map_enable] must be off, Sen person [person.sen] must be at home, and the current time must be between 5:00 AM and 10:00 PM.",
"action": "The automation turns on the Interactive CZ map enable switch [switch.interactive_cz_map_enable]."
},
"human_like": "This automation re-enables the interactive CZ map during daytime when someone is home, triggered by arrival, PC use, or night mode being turned off.",
"complexity": "medium"
}
},
{
"id": "wireless_charger_reenable",
"result": {
"structured": "TRIGGER: When People home binary sensor [binary_sensor.people_home] changes to on. CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off AND Wireless charger light [light.wireless_charger] is off. ACTIONS: Turn on Wireless charger light [light.wireless_charger].",
"natural_language": {
"trigger": "When the People home binary sensor [binary_sensor.people_home] detects that someone is home.",
"conditions": "If the Home night mode input boolean [input_boolean.home_night_mode] is turned off and the Wireless charger light [light.wireless_charger] is currently off.",
"action": "Turns on the Wireless charger light [light.wireless_charger]."
},
"human_like": "Turns the wireless charger back on when someone arrives home, but only if night mode is off and the charger is currently off.",
"complexity": "low"
}
},
{
"id": "parking_lights_on",
"result": {
"structured": "TRIGGER: When Parking light input button [input_button.parking_light] is pressed. CONDITIONS: None. ACTIONS: Run the Switch on parking light script [script.switch_on_parking_light].",
"natural_language": {
"trigger": "When the Parking light input button [input_button.parking_light] is pressed.",
"conditions": "There are no conditions for this automation.",
"action": "Executes the Switch on parking light script [script.switch_on_parking_light]."
},
"human_like": "Turns on the parking lights by running a script when the designated button is pressed.",
"complexity": "low"
}
},
{
"id": "parking_light_emergency_on",
"result": {
"structured": "TRIGGER: When Parking light switch [switch.parking_light] remains off for 3600 seconds (1 hour). CONDITIONS: None. ACTIONS: Repeat the following sequence until Parking light switch [switch.parking_light] is on: 1. Turn on Parking light switch [switch.parking_light]. 2. Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with the message 'Реле освещения парковки было отключено более часа. Автоматическое включение в {{ states('sensor.time') }}'. 3. Wait for 1 minute.",
"natural_language": {
"trigger": "When the Parking light switch [switch.parking_light] has been turned off and stays off for one hour.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "The automation will repeatedly try to turn the Parking light switch [switch.parking_light] back on. Each attempt involves turning the light on, sending a notification to the mobile device [notify.mobile_app_sm_s901b] stating the light was off for over an hour and the time of the automatic turn-on, and then waiting for one minute. This loop continues until the light is successfully confirmed to be on."
},
"human_like": "Automatically turns the parking light back on and sends a notification if it has been off for an hour, retrying until it's on.",
"complexity": "medium"
}
},
{
"id": "kitchen_led_strip_sync_with_spotlights",
"result": {
"structured": "TRIGGER: When Kitchen spotlights [light.kitchen_spotlights] changes state. CONDITIONS: The new state of Kitchen spotlights [light.kitchen_spotlights] is either 'on' OR 'off'. ACTIONS: Turn Kitchen LED strip [light.kitchen_led_strip] to the same state as Kitchen spotlights [light.kitchen_spotlights] (on or off).",
"natural_language": {
"trigger": "Whenever the Kitchen spotlights [light.kitchen_spotlights] change their state.",
"conditions": "The new state of the Kitchen spotlights [light.kitchen_spotlights] must be either fully on or fully off.",
"action": "Set the Kitchen LED strip [light.kitchen_led_strip] to match the new state of the Kitchen spotlights, turning it on or off accordingly."
},
"human_like": "Keeps the kitchen LED strip in sync with the main spotlights, turning it on or off whenever the spotlights are turned on or off.",
"complexity": "low"
}
},
{
"id": "activate_night_mode",
"result": {
"structured": "TRIGGER: When Activate night mode input button [input_button.activate_night_mode] is pressed. CONDITIONS: None. ACTIONS: Run the Activate night mode script [script.activate_night_mode].",
"natural_language": {
"trigger": "When the Activate night mode input button [input_button.activate_night_mode] is pressed.",
"conditions": "There are no conditions that must be met.",
"action": "Starts the Activate night mode script [script.activate_night_mode]."
},
"human_like": "Activates the night mode routine when its dedicated button is pressed.",
"complexity": "low"
}
},
{
"id": "busy_wall_switch_1",
"result": {
"structured": "TRIGGER: When Air quality station digital input 1 binary sensor [binary_sensor.air_quality_station_digital_input_1] changes from off to on OR from on to off. CONDITIONS: Child lock input boolean [input_boolean.child_lock] is off AND Guest mode input boolean [input_boolean.guest_mode] is off. ACTIONS: Toggle Living room ceiling light [light.living_room_ceiling_light].",
"natural_language": {
"trigger": "When the Air quality station digital input 1 binary sensor [binary_sensor.air_quality_station_digital_input_1] changes its state, either turning on or turning off.",
"conditions": "Both the Child lock input boolean [input_boolean.child_lock] and the Guest mode input boolean [input_boolean.guest_mode] must be turned off.",
"action": "Toggle the Living room ceiling light [light.living_room_ceiling_light], turning it on if it's off, or off if it's on."
},
"human_like": "Toggles the living room ceiling light when a wall switch is pressed, but only if child lock and guest mode are disabled.",
"complexity": "medium"
}
},
{
"id": "busy_wall_switch_2",
"result": {
"structured": "TRIGGER: When Air quality station digital input 2 binary sensor [binary_sensor.air_quality_station_digital_input_2] changes from off to on OR When Air quality station digital input 2 binary sensor [binary_sensor.air_quality_station_digital_input_2] changes from on to off. CONDITIONS: None. ACTIONS: Toggle Floor lamp [light.floor_lamp].",
"natural_language": {
"trigger": "When the Air quality station digital input 2 binary sensor [binary_sensor.air_quality_station_digital_input_2] changes its state, either turning on or turning off.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the Floor lamp [light.floor_lamp], turning it on if it's off, or off if it's on."
},
"human_like": "Toggles the floor lamp whenever the wall switch (connected to the air quality station) is pressed.",
"complexity": "low"
}
},
{
"id": "silent_mode_handler",
"result": {
"structured": "TRIGGER: When Silent mode input boolean [input_boolean.silent_mode] changes state. CONDITIONS: None. ACTIONS: If Silent mode input boolean [input_boolean.silent_mode] is on, run Set silent mode script [script.set_silent_mode]. Otherwise, run Reset silent mode script [script.reset_silent_mode].",
"natural_language": {
"trigger": "Whenever the state of the Silent mode input boolean [input_boolean.silent_mode] changes.",
"conditions": "There are no additional conditions for this automation.",
"action": "If the Silent mode input boolean [input_boolean.silent_mode] is turned on, it runs the Set silent mode script [script.set_silent_mode]. If it is turned off, it runs the Reset silent mode script [script.reset_silent_mode]."
},
"human_like": "This automation manages the home's silent mode by running the appropriate setup or reset script whenever the silent mode switch is toggled.",
"complexity": "low"
}
},
{
"id": "night_mode_handler",
"result": {
"structured": "TRIGGER: When Home night mode input boolean [input_boolean.home_night_mode] changes state. CONDITIONS: None. ACTIONS: If Home night mode input boolean [input_boolean.home_night_mode] is on, then run Home night mode script [script.home_night_mode]. Otherwise, run Home day mode script [script.home_day_mode].",
"natural_language": {
"trigger": "Whenever the Home night mode input boolean [input_boolean.home_night_mode] changes its state.",
"conditions": "There are no additional conditions.",
"action": "If the Home night mode input boolean [input_boolean.home_night_mode] is turned on, it runs the Home night mode script [script.home_night_mode]. If it is turned off, it runs the Home day mode script [script.home_day_mode]."
},
"human_like": "Switches the home between night and day mode by running the appropriate script whenever the night mode switch is toggled.",
"complexity": "low"
}
},
{
"id": "home_enable_night_mode_at_evening",
"result": {
"structured": "TRIGGER: When Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] changes from open (on) to closed (off) AND remains closed for 30 seconds OR When the time is exactly 21:00:00. CONDITIONS: The current time is after 20:00:00 AND before 03:00:00 AND People home binary sensor [binary_sensor.people_home] is on. ACTIONS: Turn on Home night mode input boolean [input_boolean.home_night_mode] AND Turn on Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "When the Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] closes and stays closed for 30 seconds, or when the clock reaches 9:00 PM.",
"conditions": "The automation only runs if the current time is between 8:00 PM and 3:00 AM, and the People home binary sensor [binary_sensor.people_home] indicates that someone is home.",
"action": "It enables both the Home night mode input boolean [input_boolean.home_night_mode] and the Silent mode input boolean [input_boolean.silent_mode]."
},
"human_like": "Activates night and silent modes in the evening, either at 9 PM or when the bedroom door closes, provided someone is home.",
"complexity": "medium"
}
},
{
"id": "yandex_volume_increased_handler",
"result": {
"structured": "TRIGGER: When Yandex station midi media player [media_player.yandex_station_midi] changes state. CONDITIONS: Time is between 06:00:00 and 12:00:00 AND Silent mode input boolean [input_boolean.silent_mode] is on AND The new volume level of Yandex station midi media player [media_player.yandex_station_midi] is greater than its previous volume level. ACTIONS: Turn off Home night mode input boolean [input_boolean.home_night_mode] AND Turn off Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "When the state of the Yandex station midi media player [media_player.yandex_station_midi] changes.",
"conditions": "The time is between 6:00 AM and 12:00 PM, the Silent mode input boolean [input_boolean.silent_mode] is turned on, and the volume level of the Yandex station midi media player [media_player.yandex_station_midi] has increased compared to its previous level.",
"action": "Turns off both the Home night mode input boolean [input_boolean.home_night_mode] and the Silent mode input boolean [input_boolean.silent_mode]."
},
"human_like": "Disables night and silent modes if the Yandex station volume is increased during the morning hours.",
"complexity": "medium"
}
},
{
"id": "good_morning_handler",
"result": {
"structured": "TRIGGER: At 09:00:00 daily OR When Cover bedroom [cover.bedroom] opens (state changes to open). CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is on AND The current time is after 06:00:00 AND before 12:00:00. ACTIONS: Turn off Home night mode input boolean [input_boolean.home_night_mode] AND Turn off Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "The automation triggers either at 9:00 AM every day, or when the Cover bedroom [cover.bedroom] is opened.",
"conditions": "Both conditions must be met: the Home night mode input boolean [input_boolean.home_night_mode] must be turned on, and the current time must be between 6:00 AM and 12:00 PM (noon).",
"action": "It turns off both the Home night mode input boolean [input_boolean.home_night_mode] and the Silent mode input boolean [input_boolean.silent_mode]."
},
"human_like": "Disables night and silent modes in the morning, either at a set time or when the bedroom cover is opened.",
"complexity": "medium"
}
},
{
"id": "silent_mode_by_bedroom_door_enable",
"result": {
"structured": "TRIGGER: When Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] becomes closed (off) AND remains closed for 30 seconds. CONDITIONS: None. ACTIONS: Turn on Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "When the Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] is closed and stays closed for 30 seconds.",
"conditions": "There are no additional conditions for this automation.",
"action": "Enables silent mode by turning on the Silent mode input boolean [input_boolean.silent_mode]."
},
"human_like": "Enables silent mode when the bedroom door has been closed for 30 seconds.",
"complexity": "low"
}
},
{
"id": "silent_mode_by_bedroom_door_disable",
"result": {
"structured": "TRIGGER: When Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] becomes open (on) AND remains open for 30 seconds. CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off AND the current time is between 06:00:00 and 20:00:00. ACTIONS: Turn off Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "When the Bedroom door contact binary sensor [binary_sensor.bedroom_door_contact] is opened and stays open for 30 seconds.",
"conditions": "If the Home night mode input boolean [input_boolean.home_night_mode] is off, and the time is between 6:00 AM and 8:00 PM.",
"action": "Turns off the Silent mode input boolean [input_boolean.silent_mode]."
},
"human_like": "Disables silent mode when the bedroom door is opened during daytime hours, provided night mode is not active.",
"complexity": "low"
}
},
{
"id": "prevent_accidental_bedroom_lights_on",
"result": {
"structured": "TRIGGER: When Bedroom ceiling light [light.bedroom_ceiling_light] turns on OR when Bedroom nightlight [light.bedroom_nightlight] turns on. CONDITIONS: Bedroom lights and cover safety switch input boolean [input_boolean.bedroom_lights_and_cover_safety_switch] is on AND the state change was not initiated by a user (trigger context user_id is None). ACTIONS: Turn off the light that triggered the automation (the entity from the trigger).",
"natural_language": {
"trigger": "When either the Bedroom ceiling light [light.bedroom_ceiling_light] or the Bedroom nightlight [light.bedroom_nightlight] is turned on.",
"conditions": "If the Bedroom lights and cover safety switch input boolean [input_boolean.bedroom_lights_and_cover_safety_switch] is enabled, and the light was turned on automatically (not by a user).",
"action": "Immediately turns off the specific light that was just turned on."
},
"human_like": "Prevents the bedroom lights from being turned on accidentally by non-user actions, automatically turning them back off.",
"complexity": "medium"
}
},
{
"id": "prevent_accidental_bedroom_cover_open",
"result": {
"structured": "TRIGGER: When Cover bedroom [cover.bedroom] changes state to open. CONDITIONS: Bedroom lights and cover safety switch input boolean [input_boolean.bedroom_lights_and_cover_safety_switch] is on AND the state change was not initiated by a user (user_id is None) AND the state change was not initiated by a Yandex user (user_id is not a specific Yandex user ID). ACTIONS: Close Cover bedroom [cover.bedroom].",
"natural_language": {
"trigger": "When the Cover bedroom [cover.bedroom] opens.",
"conditions": "The Bedroom lights and cover safety switch input boolean [input_boolean.bedroom_lights_and_cover_safety_switch] must be turned on. The opening of the cover must not have been initiated by a user (i.e., it was automated or accidental). Additionally, the opening must not have been initiated by a specific Yandex user.",
"action": "Immediately close the Cover bedroom [cover.bedroom]."
},
"human_like": "Prevents the bedroom cover from being opened accidentally by automatically closing it if it opens without a user command while the safety switch is active.",
"complexity": "medium"
}
},
{
"id": "prevent_accidental_yandex_volume_increase_at_silent_mode",
"result": {
"structured": "TRIGGER: When Yandex station media player [media_player.yandex_station] changes state OR When Yandex station midi media player [media_player.yandex_station_midi] changes state. CONDITIONS: Silent mode input boolean [input_boolean.silent_mode] is on AND (The new volume level is greater than the previous volume level AND the new volume level is greater than 0.4). ACTIONS: Run script Set volume level repeatedly [script.set_volume_level_repeatedly] with media_player set to Yandex station midi media player [media_player.yandex_station_midi] and volume_level set to 0.2 AND Run script Set volume level repeatedly [script.set_volume_level_repeatedly] with media_player set to Yandex station media player [media_player.yandex_station] and volume_level set to 0.4.",
"natural_language": {
"trigger": "When there is any state change on either the Yandex station media player [media_player.yandex_station] or the Yandex station midi media player [media_player.yandex_station_midi].",
"conditions": "If the Silent mode input boolean [input_boolean.silent_mode] is turned on, and the volume level of the media player that triggered the automation has increased and is now above 0.4.",
"action": "It will run the Set volume level repeatedly script [script.set_volume_level_repeatedly] to lower the volume of the Yandex station midi media player [media_player.yandex_station_midi] to 0.2, and also run the same script to lower the volume of the Yandex station media player [media_player.yandex_station] to 0.4."
},
"human_like": "Prevents the Yandex speakers from getting too loud when silent mode is active by automatically lowering their volume if it's increased above a certain level.",
"complexity": "medium"
}
},
{
"id": "prevent_accidental_yandex_mini_volume_increase",
"result": {
"structured": "TRIGGER: When the state of Yandex station media player [media_player.yandex_station] changes. CONDITIONS: (The state change was NOT initiated by a user) AND (The new volume level is greater than the previous volume level AND the new volume level is greater than 0.6). ACTIONS: Execute the Set volume level repeatedly script [script.set_volume_level_repeatedly] with parameters to set the volume of Yandex station media player [media_player.yandex_station] to 0.6.",
"natural_language": {
"trigger": "Whenever the state of the Yandex station media player [media_player.yandex_station] changes.",
"conditions": "The change must not have been triggered by a user interaction, and the new volume level must be higher than the old volume level and also exceed 0.6.",
"action": "Runs the 'Set volume level repeatedly' script [script.set_volume_level_repeatedly] to lower the volume of the Yandex station back to 0.6."
},
"human_like": "Prevents the Yandex Station from accidentally getting too loud by automatically lowering the volume if it increases above 0.6 without a user command.",
"complexity": "medium"
}
},
{
"id": "notification_snow",
"result": {
"structured": "TRIGGER: When OpenWeatherMap snow sensor [sensor.openweathermap_snow] reports a value above 0. CONDITIONS: None. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title '❄️ Уведомление о снеге' and a message 'Должно выпадать {{ states('sensor.openweathermap_snow') }} мм/ч снега!'.",
"natural_language": {
"trigger": "When the OpenWeatherMap snow sensor [sensor.openweathermap_snow] detects that the snowfall rate is greater than zero.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a push notification to the mobile device via Mobile app SM-S901B notification [notify.mobile_app_sm_s901b]. The notification has a snowflake emoji and a title in Russian meaning 'Snow notification', and the message states the current snowfall rate in mm/h."
},
"human_like": "Sends a mobile notification when snow is forecast to fall.",
"complexity": "low"
}
},
{
"id": "notification_door_opened",
"result": {
"structured": "TRIGGER: When Hall door contact binary sensor [binary_sensor.hall_door_contact] changes to open (on). CONDITIONS: Sen person [person.sen] is NOT at home. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '💬 Системное уведомление' and message 'Входная дверь была открыта в {current time from sensor.time}'.",
"natural_language": {
"trigger": "When the Hall door contact binary sensor [binary_sensor.hall_door_contact] detects the door has been opened.",
"conditions": "Only if Sen person [person.sen] is not at home.",
"action": "Sends a system notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] stating that the entrance door was opened, including the current time from the time sensor [sensor.time]."
},
"human_like": "Sends a notification to a mobile phone when the entrance door is opened while a specific person is not at home.",
"complexity": "low"
}
},
{
"id": "notification_kris_arrived",
"result": {
"structured": "TRIGGER: When Kris person [person.kris] changes state to home. CONDITIONS: Home night mode input boolean [input_boolean.home_night_mode] is off. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title and a message containing the current time from Time sensor [sensor.time]. THEN, IF Sen person [person.sen] is home, run the Notify via kitchen spotlights script [script.notify_via_kitchen_spotlights]. THEN, IF Asus PC switch [switch.asus_pc] is on, set PC backlight preset select [select.pc_backlight_preset] to 'Alarm', wait 10 seconds, then set PC backlight preset select [select.pc_backlight_preset] to 'Gender'.",
"natural_language": {
"trigger": "When Kris person [person.kris] arrives home.",
"conditions": "The home night mode input boolean [input_boolean.home_night_mode] must be turned off.",
"action": "Send a notification to a mobile device [notify.mobile_app_sm_s901b] announcing that Kris has arrived home, including the current time. If Sen person [person.sen] is also home, it will run a script to notify via the kitchen spotlights [script.notify_via_kitchen_spotlights]. Furthermore, if the Asus PC [switch.asus_pc] is on, it will change the PC's backlight preset to 'Alarm', wait for 10 seconds, and then change it to 'Gender'."
},
"human_like": "Sends a notification when Kris arrives home, and if conditions are right, also notifies via lights and changes the PC's backlight.",
"complexity": "medium"
}
},
{
"id": "notification_ads_b_receiver_disconnected",
"result": {
"structured": "TRIGGER: When FR24 feeder receiver connected binary sensor [binary_sensor.fr24_feeder_receiver_connected] changes from on to off AND remains off for 5 minutes. CONDITIONS: None. ACTIONS: Set variable 'timestamp' to the time the trigger state changed, formatted as HH:MM:SS. Execute Notify and create persistent notification script [script.notify_and_create_persistent_notification] with title '⚠️ Предупреждение' and message 'Связь с ADS-B приёмником была потеряна в <timestamp>'. Turn on Notification ADS-B receiver connection restored automation [automation.notification_ads_b_receiver_connection_restored].",
"natural_language": {
"trigger": "When the FR24 feeder receiver connected binary sensor [binary_sensor.fr24_feeder_receiver_connected] changes from being connected (on) to disconnected (off) and stays disconnected for five minutes.",
"conditions": "There are no additional conditions for this automation.",
"action": "First, it records the time the disconnection occurred. Then, it sends a persistent notification with a warning title and a message stating the ADS-B receiver connection was lost at that recorded time. Finally, it enables another automation designed to notify when the connection is restored."
},
"human_like": "Sends a warning notification when the ADS-B receiver loses connection for five minutes and prepares for a restoration alert.",
"complexity": "low"
}
},
{
"id": "notification_ads_b_receiver_connection_restored",
"result": {
"structured": "TRIGGER: When FR24 feeder receiver connected binary sensor [binary_sensor.fr24_feeder_receiver_connected] changes from off to on AND remains on for 1 minute. CONDITIONS: None. ACTIONS: 1. Set variable 'timestamp' to the time of the state change (HH:MM:SS). 2. Execute script Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a title and a message containing the timestamp. 3. Turn off Notification ADS-B receiver connection restored automation [automation.notification_ads_b_receiver_connection_restored].",
"natural_language": {
"trigger": "When the FR24 feeder receiver connected binary sensor [binary_sensor.fr24_feeder_receiver_connected] changes from being disconnected (off) to connected (on) and stays connected for at least one minute.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "First, it records the time the connection was restored. Then, it sends a system notification with a message stating the ADS-B receiver connection was restored at that specific time. Finally, it turns itself off to prevent repeated notifications."
},
"human_like": "Sends a one-time notification when the ADS-B receiver has been reconnected for a full minute.",
"complexity": "low"
}
},
{
"id": "notification_diesel_price_changed",
"result": {
"structured": "TRIGGER: When Diesel price ONO sensor [sensor.diesel_price_ono] changes state. CONDITIONS: (The previous state value is different from the new state value) AND (Both the previous state value and the new state value are numbers). ACTIONS: Execute script Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a title and a message indicating whether the diesel price fell or rose, showing the old and new values, and providing a link to a chart.",
"natural_language": {
"trigger": "Whenever the Diesel price ONO sensor [sensor.diesel_price_ono] reports a new state.",
"conditions": "The automation only proceeds if the new price value is different from the previous price value, and if both the old and new values are valid numbers.",
"action": "Sends a system notification and creates a persistent notification. The message states whether the diesel price fell or rose, shows the old and new price values in Kč/L, and includes a button to open a price chart."
},
"human_like": "Sends a notification whenever the diesel fuel price changes, showing the old and new price and whether it went up or down.",
"complexity": "medium"
}
},
{
"id": "notification_gasoline_price_changed",
"result": {
"structured": "TRIGGER: When Gasoline price ONO sensor [sensor.gasoline_price_ono] changes state. CONDITIONS: (The previous state is different from the new state) AND (Both the previous state and the new state are numeric). ACTIONS: Send a notification to Mobile app SM-G991B notification [notify.mobile_app_sm_g991b] with a title and a message indicating whether the gasoline price increased or decreased, showing the old and new values, and including an action to open a chart.",
"natural_language": {
"trigger": "Whenever the Gasoline price ONO sensor [sensor.gasoline_price_ono] reports a new value.",
"conditions": "The price must have actually changed from its previous value, and both the old and new values must be valid numbers.",
"action": "Sends a push notification to the user's mobile device (Mobile app SM-G991B notification [notify.mobile_app_sm_g991b]). The message states whether the gasoline price has fallen or risen, shows the old and new prices in Czech koruna per liter, and provides a button to open a price chart."
},
"human_like": "Sends a mobile notification whenever the monitored gasoline price changes, informing the user if it went up or down.",
"complexity": "low"
}
},
{
"id": "notification_solar_panel_power_above_threshold",
"result": {
"structured": "TRIGGER: When Solar panel power sensor [sensor.solar_panel_power] remains above 40 W for 5 minutes. CONDITIONS: None. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '🌞 Солнечная панель' and message 'Мощность выше порога: {{ states('sensor.solar_panel_power') }} W'.",
"natural_language": {
"trigger": "When the Solar panel power sensor [sensor.solar_panel_power] reports a power level consistently above 40 watts for at least five minutes.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] with the title '🌞 Солнечная панель' and a message stating the current solar panel power in watts."
},
"human_like": "Sends a phone notification when the solar panel power output has been high for five minutes.",
"complexity": "low"
}
},
{
"id": "notification_washing_finish",
"result": {
"structured": "TRIGGER: When Washing machine washer job state sensor [sensor.washing_machine_washer_job_state] changes to finish. CONDITIONS: The time elapsed since Washing machine washer job state sensor [sensor.washing_machine_washer_job_state] last changed is less than 4 hours (14400 seconds). ACTIONS: Execute Yandex joke after washing clothes script [script.yandex_joke_after_washing_clothes].",
"natural_language": {
"trigger": "When the washing machine's job state sensor [sensor.washing_machine_washer_job_state] reports that the wash cycle has finished.",
"conditions": "The automation only runs if the washing machine finished within the last four hours, ensuring the notification is only sent for recent completions.",
"action": "Plays a joke via the Yandex smart speaker using the script [script.yandex_joke_after_washing_clothes]."
},
"human_like": "Plays a joke announcement when the washing machine finishes its cycle, but only if it completed recently.",
"complexity": "low"
}
},
{
"id": "notification_shopping_list_sen",
"result": {
"structured": "TRIGGER: When Sen person [person.sen] remains at JIP for 2 minutes. CONDITIONS: Todo shopping list [todo.shopping_list] has a count greater than 0. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with the message '🛒 Открыть список покупок?' and a click action opening the shopping list.",
"natural_language": {
"trigger": "When Sen person [person.sen] stays at the location 'JIP' for at least two minutes.",
"conditions": "The Todo shopping list [todo.shopping_list] must have at least one item on it.",
"action": "Sends a push notification to the mobile device (Mobile app SM-S901B notification [notify.mobile_app_sm_s901b]) asking '🛒 Открыть список покупок?' (Open the shopping list?), which, when tapped, opens the shopping list interface."
},
"human_like": "Sends a shopping list reminder to Sen's phone when they arrive at the supermarket and there are items on the list.",
"complexity": "low"
}
},
{
"id": "notification_shopping_list_kris",
"result": {
"structured": "TRIGGER: When Kris person [person.kris] remains at JIP for 2 minutes. CONDITIONS: Todo shopping list [todo.shopping_list] has more than 0 items. ACTIONS: Send a notification to Mobile app SM-G991B notification [notify.mobile_app_sm_g991b] with the message '🛒 Открыть список покупок?' and a click action to open the shopping list.",
"natural_language": {
"trigger": "When Kris person [person.kris] stays at the location 'JIP' for at least two minutes.",
"conditions": "The Todo shopping list [todo.shopping_list] must contain at least one item.",
"action": "Sends a push notification to the mobile device SM-G991B [notify.mobile_app_sm_g991b] asking '🛒 Открыть список покупок?' (Open shopping list?) and provides a link to open the shopping list when tapped."
},
"human_like": "Sends a shopping list reminder to Kris's phone when they arrive at the supermarket and there are items on the list.",
"complexity": "low"
}
},
{
"id": "notification_watch_charged",
"result": {
"structured": "TRIGGER: When Galaxy Watch6 Classic R7DH battery level [sensor.galaxy_watch6_classic_r7dh_battery_level] is above 79%. CONDITIONS: Sen person [person.sen] is home. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '🔋 Часы заряжены' and message 'Твои Galaxy Watch заряжены уже на 80%!'. IF Silent mode input boolean [input_boolean.silent_mode] is off, THEN play media on Yandex station midi media player [media_player.yandex_station_midi] with content 'Часы заряжены на 80%'.",
"natural_language": {
"trigger": "When the Galaxy Watch6 Classic R7DH battery level [sensor.galaxy_watch6_classic_r7dh_battery_level] rises above 79 percent.",
"conditions": "The person Sen [person.sen] must be at home.",
"action": "Sends a notification to the mobile phone SM-S901B [notify.mobile_app_sm_s901b] with the title '🔋 Часы заряжены' and the message 'Твои Galaxy Watch заряжены уже на 80%!'. Additionally, if the silent mode [input_boolean.silent_mode] is turned off, it will play an audio announcement saying 'Часы заряжены на 80%' on the Yandex station midi media player [media_player.yandex_station_midi]."
},
"human_like": "Notifies the user when their Galaxy Watch battery reaches over 80% and announces it on a smart speaker if silent mode is off.",
"complexity": "low"
}
},
{
"id": "update_plants_to_water_on_sensor_change",
"result": {
"structured": "TRIGGER: Every 10 minutes (on minutes divisible by 10). CONDITIONS: None. ACTIONS: Execute Python script update plants to water [python_script.update_plants_to_water].",
"natural_language": {
"trigger": "The automation runs every 10 minutes, at times like 0, 10, 20, 30, 40, and 50 minutes past the hour.",
"conditions": "There are no conditions that must be checked for this automation to run.",
"action": "Runs the Python script named 'update plants to water' [python_script.update_plants_to_water]."
},
"human_like": "Updates the list of plants needing water every 10 minutes by running a script.",
"complexity": "low"
}
},
{
"id": "notify_on_plants_to_water",
"result": {
"structured": "TRIGGER: When Plants to water input text [input_text.plants_to_water] changes state. CONDITIONS: The length of the state of Plants to water input text [input_text.plants_to_water] is greater than 0 AND Schedule plant watering notification [schedule.plant_watering_notification] is on. ACTIONS: Execute Notify and create persistent notification script [script.notify_and_create_persistent_notification] with data: title '🪴 Домашние цветы' and message 'Нужно полить следующие растения: {{ states(''input_text.plants_to_water'') }}'.",
"natural_language": {
"trigger": "Whenever the Plants to water input text [input_text.plants_to_water] is updated.",
"conditions": "The text field must contain some text (its length is greater than zero), and the Schedule plant watering notification [schedule.plant_watering_notification] must be enabled (in the 'on' state).",
"action": "Runs the Notify and create persistent notification script [script.notify_and_create_persistent_notification], which sends a notification with the title '🪴 Домашние цветы' and a message listing the plants that need watering from the text field."
},
"human_like": "Sends a notification with a list of plants that need watering whenever the list is updated and notifications are enabled.",
"complexity": "low"
}
},
{
"id": "scooter_charger_enable",
"result": {
"structured": "TRIGGER: When Scooter charger input boolean [input_boolean.scooter_charger] changes to on. CONDITIONS: None. ACTIONS: Turn on Scooter charger socket switch [switch.scooter_charger_socket] AND Turn on Scooter charger disable when idle automation [automation.scooter_charger_disable_when_idle] AND Set Scooter charger energy start input number [input_number.scooter_charger_energy_start] to the current value of Scooter charger summation delivered sensor [sensor.scooter_charger_summation_delivered] AND Set Scooter charger energy start time input datetime [input_datetime.scooter_charger_energy_start_time] to the current date and time.",
"natural_language": {
"trigger": "When the Scooter charger input boolean [input_boolean.scooter_charger] is turned on.",
"conditions": "There are no conditions for this automation.",
"action": "The automation turns on the Scooter charger socket switch [switch.scooter_charger_socket], enables the Scooter charger disable when idle automation [automation.scooter_charger_disable_when_idle], records the current energy reading from the Scooter charger summation delivered sensor [sensor.scooter_charger_summation_delivered] into the Scooter charger energy start input number [input_number.scooter_charger_energy_start], and logs the current timestamp into the Scooter charger energy start time input datetime [input_datetime.scooter_charger_energy_start_time]."
},
"human_like": "Starts the scooter charger and begins tracking energy usage when the charger is manually enabled.",
"complexity": "low"
}
},
{
"id": "scooter_charger_disable",
"result": {
"structured": "TRIGGER: When Scooter charger input boolean [input_boolean.scooter_charger] changes to off. CONDITIONS: None. ACTIONS: Turn off Scooter charger socket switch [switch.scooter_charger_socket]. IF Scooter charger energy consumed sensor [sensor.scooter_charger_energy_consumed] has a value greater than 0, THEN run Scooter charger energy consumed notify script [script.scooter_charger_energy_consumed_notify]. Turn off Scooter charger disable when idle automation [automation.scooter_charger_disable_when_idle].",
"natural_language": {
"trigger": "When the Scooter charger input boolean [input_boolean.scooter_charger] is turned off.",
"conditions": "There are no conditions that must be met for the main actions to run.",
"action": "It turns off the Scooter charger socket switch [switch.scooter_charger_socket]. Then, it checks if the Scooter charger energy consumed sensor [sensor.scooter_charger_energy_consumed] has recorded any energy consumption. If it has, it runs the Scooter charger energy consumed notify script [script.scooter_charger_energy_consumed_notify]. Finally, it turns off the Scooter charger disable when idle automation [automation.scooter_charger_disable_when_idle]."
},
"human_like": "Disables the scooter charger by turning off its power socket and, if energy was used, sends a notification before deactivating a related idle-monitoring automation.",
"complexity": "medium"
}
},
{
"id": "scooter_charger_disable_when_idle",
"result": {
"structured": "TRIGGER: When Scooter charger active power sensor [sensor.scooter_charger_active_power] remains below 15 for 10 minutes. CONDITIONS: None. ACTIONS: Turn off Scooter charger socket switch [switch.scooter_charger_socket] AND turn off Scooter charger input boolean [input_boolean.scooter_charger] AND (IF Scooter charger energy consumed sensor [sensor.scooter_charger_energy_consumed] is greater than 0, THEN run Scooter charger energy consumed notify script [script.scooter_charger_energy_consumed_notify]) AND turn off Scooter charger disable when idle automation [automation.scooter_charger_disable_when_idle].",
"natural_language": {
"trigger": "When the Scooter charger active power sensor [sensor.scooter_charger_active_power] reports a power consumption below 15 watts for a continuous period of 10 minutes.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "The automation will turn off the Scooter charger socket switch [switch.scooter_charger_socket] and the Scooter charger input boolean [input_boolean.scooter_charger]. If the Scooter charger energy consumed sensor [sensor.scooter_charger_energy_consumed] shows a value greater than zero, it will also run the Scooter charger energy consumed notify script [script.scooter_charger_energy_consumed_notify]. Finally, it will turn off this automation itself [automation.scooter_charger_disable_when_idle] to prevent it from running again."
},
"human_like": "Automatically turns off the scooter charger after it has been idle for 10 minutes, optionally notifying about the energy consumed.",
"complexity": "medium"
}
},
{
"id": "tag_near_pc_was_scanned",
"result": {
"structured": "TRIGGER: When a tag with ID c45d3b71-2ade-45e3-8663-f0028f52b01d is scanned. CONDITIONS: None. ACTIONS: Toggle Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] AND send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '👁️ Режим камер' and a message that states 'Камеры включены' if Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] is on, otherwise 'Камеры выключены'.",
"natural_language": {
"trigger": "When a specific NFC tag with the ID c45d3b71-2ade-45e3-8663-f0028f52b01d is scanned.",
"conditions": "There are no conditions that must be met.",
"action": "Toggle the state of the Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] and send a notification to the Mobile app SM-S901B notification [notify.mobile_app_sm_s901b]. The notification's title is '👁️ Режим камер' and its message indicates whether the cameras are now on or off based on the new state of the input boolean."
},
"human_like": "Toggles the visibility of cameras in the dashboard and sends a confirmation notification when a specific NFC tag is scanned.",
"complexity": "low"
}
},
{
"id": "reenable_cameras_if_hided",
"result": {
"structured": "TRIGGER: When Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] remains off for 1 hour. CONDITIONS: None. ACTIONS: Turn on Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] AND send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with title '👁️ Режим камер' and message 'Камеры включены автоматически в {{ states('sensor.time') }}'.",
"natural_language": {
"trigger": "When the Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] has been turned off and remains in that state for one hour.",
"conditions": "There are no additional conditions that need to be met.",
"action": "The automation will turn the Show cameras in lovelace input boolean [input_boolean.show_cameras_in_lovelace] back on and send a notification to the mobile device [notify.mobile_app_sm_s901b]. The notification will have the title '👁️ Режим камер' and a message stating that the cameras were enabled automatically at the current time."
},
"human_like": "Automatically re-enables the camera display in Lovelace and sends a notification if it has been disabled for an hour.",
"complexity": "low"
}
},
{
"id": "tag_near_entrance_was_scanned",
"result": {
"structured": "TRIGGER: When a tag with ID 5954e702-f87d-4955-969c-5231af33ece8 is scanned. CONDITIONS: None. ACTIONS: Run the script Enable guest mode script [script.enable_guest_mode].",
"natural_language": {
"trigger": "When a specific NFC tag (ID: 5954e702-f87d-4955-969c-5231af33ece8) is scanned near the entrance.",
"conditions": "There are no additional conditions that must be met.",
"action": "Activates the guest mode by running the Enable guest mode script [script.enable_guest_mode]."
},
"human_like": "Scans a specific tag at the entrance to enable guest mode in the home.",
"complexity": "low"
}
},
{
"id": "living_room_tv_lights_by_sunset_or_tv_on",
"result": {
"structured": "TRIGGER: When Sun sun entity [sun.sun] elevation falls below 4.0 OR When Samsung TV media player [media_player.samsung_tv] turns on. CONDITIONS: Samsung TV media player [media_player.samsung_tv] is on AND Sun sun entity [sun.sun] elevation is below 4.0. ACTIONS: Wait up to 1 hour for the following condition to become true: Asus PC switch [switch.asus_pc] is off AND Kitchen spotlights [light.kitchen_spotlights] are off AND Kitchen ceiling light [light.kitchen_ceiling_light] is off AND Bedroom nightlight [light.bedroom_nightlight] is off AND Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] is off. If the wait condition is met before the timeout, then check if Samsung TV media player [media_player.samsung_tv] is still on. If true, activate Movies scene [scene.movies].",
"natural_language": {
"trigger": "The automation triggers either when the sun's elevation drops below 4 degrees, indicating sunset, or when the Samsung TV media player [media_player.samsung_tv] is turned on.",
"conditions": "For the automation to proceed, both conditions must be true: the Samsung TV media player [media_player.samsung_tv] must be on, and the sun's elevation must be below 4 degrees.",
"action": "First, the automation will wait for up to one hour for a specific state: the Asus PC switch [switch.asus_pc] must be off, the Kitchen spotlights [light.kitchen_spotlights] must be off, the Kitchen ceiling light [light.kitchen_ceiling_light] must be off, the Bedroom nightlight [light.bedroom_nightlight] must be off, and the Kitchen motion alarm binary sensor [binary_sensor.kitchen_motion_alarm] must be off. If all these conditions become true within the hour, the automation then checks again if the Samsung TV media player [media_player.samsung_tv] is still on. If it is, it turns on the Movies scene [scene.movies]."
},
"human_like": "Automatically sets the living room to movie-watching lighting at sunset or when the TV is turned on, but only if other lights and devices in the kitchen and bedroom are off.",
"complexity": "medium"
}
},
{
"id": "living_room_speakers_power_on_with_tv",
"result": {
"structured": "TRIGGER: When Samsung TV media player [media_player.samsung_tv] turns on. CONDITIONS: Monolith speakers switch [switch.monolith_speakers] is off. ACTIONS: Turn on Monolith speakers switch [switch.monolith_speakers].",
"natural_language": {
"trigger": "When the Samsung TV media player [media_player.samsung_tv] is turned on.",
"conditions": "If the Monolith speakers switch [switch.monolith_speakers] is currently off.",
"action": "Turns on the Monolith speakers switch [switch.monolith_speakers]."
},
"human_like": "Automatically powers on the living room speakers whenever the TV is turned on, if they are off.",
"complexity": "low"
}
},
{
"id": "living_room_speakers_standby_off",
"result": {
"structured": "TRIGGER: When Monolith speakers above power threshold binary sensor [binary_sensor.monolith_speakers_above_power_threshold] is off AND remains off for 5 minutes. CONDITIONS: Monolith speakers switch [switch.monolith_speakers] is on AND Samsung TV media player [media_player.samsung_tv] is off. ACTIONS: Turn off Monolith speakers switch [switch.monolith_speakers].",
"natural_language": {
"trigger": "When the Monolith speakers above power threshold binary sensor [binary_sensor.monolith_speakers_above_power_threshold] indicates the speakers are below the power threshold (off) and this state persists for five minutes.",
"conditions": "If the Monolith speakers switch [switch.monolith_speakers] is currently turned on, and the Samsung TV media player [media_player.samsung_tv] is off.",
"action": "Turns off the Monolith speakers switch [switch.monolith_speakers]."
},
"human_like": "Automatically turns off the living room speakers when they have been in a low-power standby mode for five minutes and the TV is off.",
"complexity": "low"
}
},
{
"id": "living_room_speakers_auto_power_down",
"result": {
"structured": "TRIGGER: When Monolith speakers switch [switch.monolith_speakers] turns on. ACTIONS: Wait for up to 5 minutes for Monolith speakers above power threshold binary sensor [binary_sensor.monolith_speakers_above_power_threshold] to turn on. After the wait, IF (the wait did NOT complete) AND (Samsung TV media player [media_player.samsung_tv] is off) THEN turn off Monolith speakers switch [switch.monolith_speakers].",
"natural_language": {
"trigger": "When the Monolith speakers switch [switch.monolith_speakers] is turned on.",
"conditions": "The automation does not have explicit conditions. Instead, it performs a conditional check after a waiting period. It waits to see if the Monolith speakers above power threshold binary sensor [binary_sensor.monolith_speakers_above_power_threshold] turns on within 5 minutes, and then checks if the Samsung TV media player [media_player.samsung_tv] is off.",
"action": "After the speakers are turned on, the automation waits for 5 minutes for their power consumption to exceed a threshold. If the threshold is not exceeded within that time and the TV is off, it turns the speakers back off."
},
"human_like": "Automatically turns off the living room speakers if they are powered on but their power consumption remains low for 5 minutes and the TV is not in use.",
"complexity": "medium"
}
},
{
"id": "ups_lost_grid_power_notification",
"result": {
"structured": "TRIGGER: When UPS status data sensor [sensor.ups_status_data] changes to state 'OB DISCHRG'. CONDITIONS: None. ACTIONS: Execute Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a custom title and message containing the current time from Time sensor [sensor.time] and the estimated battery runtime from UPS battery runtime sensor [sensor.ups_battery_runtime]. Then, turn on UPS grid power restored notification automation [automation.ups_grid_power_restored_notification].",
"natural_language": {
"trigger": "When the UPS status data sensor [sensor.ups_status_data] indicates that the UPS has lost grid power and is discharging from the battery (state changes to 'OB DISCHRG').",
"conditions": "There are no conditions for this automation.",
"action": "Sends a persistent notification with an alert title and a message containing the current time and the estimated remaining battery runtime. It then enables another automation that will notify when grid power is restored."
},
"human_like": "Sends an alert when the UPS loses mains power, showing the time of the outage and how long the battery is estimated to last.",
"complexity": "low"
}
},
{
"id": "ups_grid_power_restored_notification",
"result": {
"structured": "TRIGGER: When the value of UPS status data sensor [sensor.ups_status_data] contains the substring 'OL'. CONDITIONS: None. ACTIONS: Execute the Notify and create persistent notification script [script.notify_and_create_persistent_notification] with a title of '🚨 Внимание!' and a message containing the current time from Time sensor [sensor.time], then turn off the UPS grid power restored notification automation [automation.ups_grid_power_restored_notification].",
"natural_language": {
"trigger": "When the UPS status data sensor [sensor.ups_status_data] reports a status that includes the text 'OL'.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Send a notification with a warning title and a message stating the time the power was restored, using the current time from the Time sensor [sensor.time]. Then, the automation turns itself off to prevent repeated notifications."
},
"human_like": "Sends a notification when the UPS indicates grid power has been restored and then disables itself.",
"complexity": "low"
}
},
{
"id": "ups_low_battery_warning_notification",
"result": {
"structured": "TRIGGER: When UPS battery charge sensor [sensor.ups_battery_charge] falls below 21. CONDITIONS: None. ACTIONS: Send a mobile notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title '🚨 Внимание!' and a message containing the current battery charge percentage.",
"natural_language": {
"trigger": "When the UPS battery charge sensor [sensor.ups_battery_charge] reports a value below 21 percent.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a notification to the mobile device SM-S901B [notify.mobile_app_sm_s901b] with a warning title and a message showing the current battery level."
},
"human_like": "Sends a mobile phone alert when the UPS battery charge drops below 21%.",
"complexity": "low"
}
},
{
"id": "ups_shutdown_home_assistant_server",
"result": {
"structured": "TRIGGER: When UPS battery charge [sensor.ups_battery_charge] is below 10 OR When UPS battery runtime [sensor.ups_battery_runtime] is below 300 OR When the template condition 'OB DISCHRG LB' is in the state of UPS status data [sensor.ups_status_data]. CONDITIONS: None. ACTIONS: Send a notification to Mobile app SM-S901B notification [notify.mobile_app_sm_s901b] with a title and message, then wait for 5 seconds, then shut down the Home Assistant host.",
"natural_language": {
"trigger": "The automation triggers if the UPS battery charge [sensor.ups_battery_charge] falls below 10%, or if the estimated UPS battery runtime [sensor.ups_battery_runtime] drops below 300 seconds, or if the UPS status data [sensor.ups_status_data] contains the string 'OB DISCHRG LB'.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "Sends a critical alert notification to a mobile device [notify.mobile_app_sm_s901b], waits for five seconds, and then shuts down the Home Assistant server host."
},
"human_like": "Safely shuts down the Home Assistant server and sends an alert when the UPS battery is critically low or failing.",
"complexity": "medium"
}
},
{
"id": "ups_lost_grid_power_light_notification",
"result": {
"structured": "TRIGGER: When the template condition 'OB' in states('sensor.ups_status_data') evaluates to true. CONDITIONS: None. ACTIONS: Turn on Tradfri bulb [light.tradfri_bulb] with brightness 255 and effect breathe AND turn on UPS grid power restored light notification automation [automation.ups_grid_power_restored_light_notification].",
"natural_language": {
"trigger": "When the UPS status data sensor [sensor.ups_status_data] reports a status containing the text 'OB'.",
"conditions": "There are no additional conditions that must be met.",
"action": "Turn on the Tradfri bulb [light.tradfri_bulb] at maximum brightness with a breathing effect, and enable the UPS grid power restored light notification automation [automation.ups_grid_power_restored_light_notification]."
},
"human_like": "When the UPS loses grid power, it turns on a light with a breathing effect to notify you and enables a follow-up automation for when power is restored.",
"complexity": "low"
}
},
{
"id": "ups_grid_power_restored_light_notification",
"result": {
"structured": "TRIGGER: When UPS status data sensor [sensor.ups_status_data] contains the string 'OL'. CONDITIONS: None. ACTIONS: Turn on Tradfri bulb [light.tradfri_bulb] at full brightness. Wait for UPS status data sensor [sensor.ups_status_data] to no longer contain 'OL', with a timeout of 10 seconds. If, after the wait, UPS status data sensor [sensor.ups_status_data] still contains 'OL', then turn off Tradfri bulb [light.tradfri_bulb]. Finally, turn off UPS grid power restored light notification automation [automation.ups_grid_power_restored_light_notification].",
"natural_language": {
"trigger": "When the UPS status data sensor [sensor.ups_status_data] reports that it contains the status 'OL'.",
"conditions": "There are no conditions that must be met before proceeding with the actions.",
"action": "The automation first turns on the Tradfri bulb [light.tradfri_bulb] at maximum brightness. It then waits for up to 10 seconds for the UPS status data sensor [sensor.ups_status_data] to stop reporting 'OL'. If, after this wait, the sensor still reports 'OL', the bulb is turned off. Finally, the automation turns itself off to prevent further runs."
},
"human_like": "Blinks the office light when grid power is restored to the UPS, turning it off if power remains stable.",
"complexity": "medium"
}
},
{
"id": "wc_accupancy_set",
"result": {
"structured": "TRIGGER: When WC door contact binary sensor [binary_sensor.wc_door_contact] changes from open (on) to closed (off) AND remains closed for a duration defined by WC consider occupied after seconds input number [input_number.wc_consider_occupied_after_seconds] seconds. CONDITIONS: WC occupied input boolean [input_boolean.wc_occupied] is off. ACTIONS: Turn on WC occupied input boolean [input_boolean.wc_occupied].",
"natural_language": {
"trigger": "When the WC door contact binary sensor [binary_sensor.wc_door_contact] transitions from open to closed and stays closed for a specific number of seconds, which is determined by the value of the WC consider occupied after seconds input number [input_number.wc_consider_occupied_after_seconds].",
"conditions": "The automation only runs if the WC occupied input boolean [input_boolean.wc_occupied] is currently off.",
"action": "Sets the WC occupied input boolean [input_boolean.wc_occupied] to on, marking the WC as occupied."
},
"human_like": "Marks the WC as occupied after its door has been closed for a configurable amount of time.",
"complexity": "medium"
}
},
{
"id": "wc_accupancy_reset",
"result": {
"structured": "TRIGGER: When WC door contact binary sensor [binary_sensor.wc_door_contact] changes from closed (off) to open (on) AND remains open for a duration equal to the value of WC consider unoccupied after seconds input number [input_number.wc_consider_unoccupied_after_seconds] (default 0 seconds). CONDITIONS: WC occupied input boolean [input_boolean.wc_occupied] is on. ACTIONS: Turn off WC occupied input boolean [input_boolean.wc_occupied].",
"natural_language": {
"trigger": "When the WC door contact binary sensor [binary_sensor.wc_door_contact] opens and stays open for a specific number of seconds. The duration is taken from the WC consider unoccupied after seconds input number [input_number.wc_consider_unoccupied_after_seconds] setting, defaulting to 0 seconds if not set.",
"conditions": "The WC occupied input boolean [input_boolean.wc_occupied] must currently be in the 'on' state.",
"action": "Turns off the WC occupied input boolean [input_boolean.wc_occupied], marking the WC as unoccupied."
},
"human_like": "Resets the WC's occupied status to unoccupied after the door has been open for a configurable amount of time.",
"complexity": "medium"
}
},
{
"id": "wc_ventilation_start_timer_manually",
"result": {
"structured": "TRIGGER: When WC and bathroom fan [fan.wc_and_bathroom] turns on (from off to on). CONDITIONS: (The calculated end time (now plus the number of minutes from WC ventilate for minutes after manual trigger input number [input_number.wc_ventilate_for_minutes_after_manual_trigger]) is later than the scheduled finish time of WC ventilation timer [timer.wc_ventilation]) OR (WC ventilation timer [timer.wc_ventilation] is idle OR paused). ACTIONS: Start WC ventilation timer [timer.wc_ventilation] for the duration specified by WC ventilate for minutes after manual trigger input number [input_number.wc_ventilate_for_minutes_after_manual_trigger], set WC ventilation state input select [input_select.wc_ventilation_state] to MANUAL_ON, and turn off WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold].",
"natural_language": {
"trigger": "When the WC and bathroom fan [fan.wc_and_bathroom] is switched from off to on.",
"conditions": "If either the new calculated ventilation end time (based on the current time plus the manually set duration) would be later than the timer's currently scheduled finish time, or if the ventilation timer is currently idle or paused.",
"action": "Starts the WC ventilation timer [timer.wc_ventilation] for the duration configured in the input number, sets the ventilation state to 'MANUAL_ON', and disables the automation that would normally stop ventilation based on humidity."
},
"human_like": "Starts a manual ventilation timer for the WC when the fan is turned on, overriding the automatic humidity-based control.",
"complexity": "medium"
}
},
{
"id": "wc_ventilation_stop_timer_manually",
"result": {
"structured": "TRIGGER: When WC and bathroom fan [fan.wc_and_bathroom] changes from on to off. CONDITIONS: WC ventilation timer [timer.wc_ventilation] is active. ACTIONS: Cancel WC ventilation timer [timer.wc_ventilation]. Cancel WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate]. Set WC ventilation state input select [input_select.wc_ventilation_state] to MANUAL_OFF. Turn off WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold].",
"natural_language": {
"trigger": "When the WC and bathroom fan [fan.wc_and_bathroom] is manually turned off.",
"conditions": "The WC ventilation timer [timer.wc_ventilation] must currently be running.",
"action": "Cancels the main ventilation timer and a secondary waiting timer, updates the ventilation state to indicate a manual override, and disables the automation that would normally stop ventilation based on humidity."
},
"human_like": "Handles the manual override of the WC ventilation system, stopping all related timers and updating the system state when the fan is turned off.",
"complexity": "low"
}
},
{
"id": "wc_ventilation_timeout",
"result": {
"structured": "TRIGGER: When WC ventilation timer [timer.wc_ventilation] finishes. CONDITIONS: None. ACTIONS: Turn off WC and bathroom fan [fan.wc_and_bathroom], cancel WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate], set WC ventilation state input select [input_select.wc_ventilation_state] to TIMEOUT, and turn off WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold].",
"natural_language": {
"trigger": "When the WC ventilation timer [timer.wc_ventilation] completes its countdown.",
"conditions": "There are no conditions that need to be met.",
"action": "Turns off the WC and bathroom fan [fan.wc_and_bathroom], stops the WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate], updates the WC ventilation state input select [input_select.wc_ventilation_state] to 'TIMEOUT', and disables the WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold]."
},
"human_like": "Stops the bathroom ventilation fan and related timers after a preset time has elapsed, marking the ventilation cycle as finished.",
"complexity": "low"
}
},
{
"id": "wc_ventilation_start_timeout_for_door_open_state",
"result": {
"structured": "TRIGGER: When WC occupied input boolean [input_boolean.wc_occupied] changes from off to on and remains on for a duration defined by WC consider ventilate when finished if occupied for seconds input number [input_number.wc_consider_ventilate_when_finished_if_occupied_for_seconds]. CONDITIONS: None. ACTIONS: Start WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate] with a duration defined by WC wait for opening after considered to ventilate minutes input number [input_number.wc_wait_for_opening_after_considered_to_ventilate_minutes].",
"natural_language": {
"trigger": "When the WC occupied input boolean [input_boolean.wc_occupied] turns from off to on and stays on for a specific number of seconds, which is determined by the value of the WC consider ventilate when finished if occupied for seconds input number [input_number.wc_consider_ventilate_when_finished_if_occupied_for_seconds].",
"conditions": "There are no additional conditions for this automation.",
"action": "Starts a timer named WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate]. The timer's duration is set to a number of minutes, which is taken from the value of the WC wait for opening after considered to ventilate minutes input number [input_number.wc_wait_for_opening_after_considered_to_ventilate_minutes]."
},
"human_like": "Starts a ventilation countdown timer when the WC has been occupied for a certain amount of time.",
"complexity": "medium"
}
},
{
"id": "wc_ventilation_start_when_unoccupied",
"result": {
"structured": "TRIGGER: When WC occupied input boolean [input_boolean.wc_occupied] changes from on to off. CONDITIONS: WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate] is active AND ( (current time plus WC ventilate for minutes when finished input number [input_number.wc_ventilate_for_minutes_when_finished] minutes is after WC ventilation timer [timer.wc_ventilation] finishes_at time) OR (WC ventilation timer [timer.wc_ventilation] state is idle OR paused) ). ACTIONS: Turn on WC and bathroom fan [fan.wc_and_bathroom] AND cancel WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate] AND start WC ventilation timer [timer.wc_ventilation] for a duration equal to WC ventilate for minutes when finished input number [input_number.wc_ventilate_for_minutes_when_finished] minutes AND set WC ventilation state input select [input_select.wc_ventilation_state] to TOILET_ON.",
"natural_language": {
"trigger": "When the WC occupied input boolean [input_boolean.wc_occupied] changes from on to off, indicating the toilet is no longer occupied.",
"conditions": "The WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate] must be active. Additionally, either the current time plus the configured ventilation duration from WC ventilate for minutes when finished input number [input_number.wc_ventilate_for_minutes_when_finished] is later than the scheduled finish time of the WC ventilation timer [timer.wc_ventilation], or the WC ventilation timer [timer.wc_ventilation] is currently idle or paused.",
"action": "Turns on the WC and bathroom fan [fan.wc_and_bathroom], cancels the WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate], starts the WC ventilation timer [timer.wc_ventilation] for the duration specified by WC ventilate for minutes when finished input number [input_number.wc_ventilate_for_minutes_when_finished], and sets the WC ventilation state input select [input_select.wc_ventilation_state] to TOILET_ON."
},
"human_like": "Starts the toilet ventilation fan for a set duration after the toilet becomes unoccupied, provided a specific waiting timer is active and the ventilation isn't already scheduled to run longer.",
"complexity": "medium"
}
},
{
"id": "wc_ventilation_start_humidity_exceeds_threshold",
"result": {
"structured": "TRIGGER: When BLE humidity ATC bathroom [sensor.ble_humidity_atc_bathroom] remains above WC ventilation start humidity threshold input number [input_number.wc_ventilation_start_humidity_threshold] for 2 minutes. CONDITIONS: None. ACTIONS: Cancel WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate]. Turn on WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold]. Start WC ventilation timer [timer.wc_ventilation] with a duration equal to the value of WC max ventilation duration minutes input number [input_number.wc_max_ventilation_duration_minutes] minutes. Turn on WC and bathroom fan [fan.wc_and_bathroom]. Set WC ventilation state input select [input_select.wc_ventilation_state] to HUMIDITY_ON.",
"natural_language": {
"trigger": "When the BLE humidity ATC bathroom [sensor.ble_humidity_atc_bathroom] sensor reports a humidity level above the set threshold, defined by WC ventilation start humidity threshold input number [input_number.wc_ventilation_start_humidity_threshold], for a continuous period of two minutes.",
"conditions": "There are no additional conditions that must be met for this automation to run.",
"action": "The automation first cancels any pending WC wait for open to ventilate timer [timer.wc_wait_for_open_to_ventilate]. It then activates the companion automation, WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold]. Next, it starts the WC ventilation timer [timer.wc_ventilation] for a duration specified by the WC max ventilation duration minutes input number [input_number.wc_max_ventilation_duration_minutes]. It turns on the WC and bathroom fan [fan.wc_and_bathroom] and finally updates the status selector to indicate the reason for ventilation by setting WC ventilation state input select [input_select.wc_ventilation_state] to 'HUMIDITY_ON'."
},
"human_like": "Starts ventilating the WC by turning on the fan when the bathroom humidity stays too high for two minutes.",
"complexity": "medium"
}
},
{
"id": "wc_ventilation_stop_humidity_below_threshold",
"result": {
"structured": "TRIGGER: When BLE humidity ATC bathroom [sensor.ble_humidity_atc_bathroom] remains below WC ventilation stop humidity threshold input number [input_number.wc_ventilation_stop_humidity_threshold] for 2 minutes. CONDITIONS: None. ACTIONS: Cancel WC ventilation timer [timer.wc_ventilation] AND Turn off WC and bathroom fan [fan.wc_and_bathroom] AND Set WC ventilation state input select [input_select.wc_ventilation_state] to HUMIDITY_OFF AND Turn off WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold].",
"natural_language": {
"trigger": "When the BLE humidity ATC bathroom [sensor.ble_humidity_atc_bathroom] sensor reports a humidity level that stays below the set threshold value from WC ventilation stop humidity threshold input number [input_number.wc_ventilation_stop_humidity_threshold] for a continuous period of two minutes.",
"conditions": "There are no additional conditions that must be met for this automation to run.",
"action": "Cancels the WC ventilation timer [timer.wc_ventilation], turns off the WC and bathroom fan [fan.wc_and_bathroom], changes the WC ventilation state input select [input_select.wc_ventilation_state] to the option 'HUMIDITY_OFF', and finally turns off this automation itself, WC ventilation stop humidity below threshold automation [automation.wc_ventilation_stop_humidity_below_threshold]."
},
"human_like": "Stops the bathroom ventilation fan and related timers when the humidity level drops below a set threshold for two minutes, then disables itself.",
"complexity": "low"
}
},
{
"id": "wc_ventilation_start_timer_emergency",
"result": {
"structured": "TRIGGER: When WC and bathroom fan [fan.wc_and_bathroom] remains on for 1 minute. CONDITIONS: (WC ventilation timer [timer.wc_ventilation] is idle) OR (WC ventilation timer [timer.wc_ventilation] is paused). ACTIONS: Start WC ventilation timer [timer.wc_ventilation] with a duration equal to the value of WC max ventilation duration minutes input number [input_number.wc_max_ventilation_duration_minutes] in minutes AND set WC ventilation state input select [input_select.wc_ventilation_state] to EMERGENCY.",
"natural_language": {
"trigger": "When the WC and bathroom fan [fan.wc_and_bathroom] has been running continuously for at least one minute.",
"conditions": "If the WC ventilation timer [timer.wc_ventilation] is currently idle or paused.",
"action": "Starts the WC ventilation timer [timer.wc_ventilation] for a duration specified by the WC max ventilation duration minutes input number [input_number.wc_max_ventilation_duration_minutes] and changes the WC ventilation state input select [input_select.wc_ventilation_state] to EMERGENCY."
},
"human_like": "Starts an emergency ventilation timer for the WC when the fan runs continuously for a minute, ensuring the timer is not already active.",
"complexity": "low"
}
},
{
"id": "sync_shopping_list",
"result": {
"structured": "TRIGGER: When People home binary sensor [binary_sensor.people_home] becomes 'off' and remains so for 5 minutes. CONDITIONS: None. ACTIONS: 1. Store the current volume level of Yandex station midi media player [media_player.yandex_station_midi] into Volume yandex station input number [input_number.volume_yandex_station]. 2. WHILE (Yandex station midi media player [media_player.yandex_station_midi] volume level is not 0.01 AND repeat count is less than or equal to 3): Set Yandex station midi media player [media_player.yandex_station_midi] volume to 0.01, then wait 0.5 seconds. 3. Run Update shopping list script [script.update_shopping_list]. 4. Wait 1 second. 5. Send a 'stop' command to Yandex station midi media player [media_player.yandex_station_midi]. 6. Wait 1 second. 7. WHILE (Yandex station midi media player [media_player.yandex_station_midi] volume level is not equal to the stored value in Volume yandex station input number [input_number.volume_yandex_station] AND repeat count is less than or equal to 3): Set Yandex station midi media player [media_player.yandex_station_midi] volume to the stored value, then wait 1 second.",
"natural_language": {
"trigger": "This automation starts when the People home binary sensor [binary_sensor.people_home] indicates that no one is home for a continuous period of five minutes.",
"conditions": "There are no additional conditions that must be met for the automation to proceed.",
"action": "First, it saves the current volume level of the Yandex station midi media player [media_player.yandex_station_midi] to a helper input number. Then, it attempts to lower the speaker's volume to a very low level (0.01) up to three times, waiting half a second between attempts, but only if the volume isn't already at that level. Next, it runs a script to update the shopping list. After a one-second delay, it sends a 'stop' command to the media player to halt any playback. Following another one-second delay, it attempts to restore the speaker's volume to its original saved level, again trying up to three times with a one-second delay between attempts, but only if the volume isn't already at the correct level."
},
"human_like": "When everyone leaves home, this automation saves the speaker volume, quiets the speaker, updates the shopping list, stops any playback, and then restores the original volume.",
"complexity": "high"
}
},
{
"id": "aqara_switch_1_handler",
"result": {
"structured": "TRIGGER: When a ZHA event occurs for device Aqara switch device [device_id: 6559eaaf60c9624465f762290ff9e825]. CONDITIONS: None. ACTIONS: Extract the command from the event. Then, based on the command: IF command is 'single' AND Child lock input boolean [input_boolean.child_lock] is off THEN run Activate night mode script [script.activate_night_mode]. IF command is 'double' AND Home night mode input boolean [input_boolean.home_night_mode] is off AND Bedroom nightlight [light.bedroom_nightlight] is off THEN turn on Bedroom nightlight [light.bedroom_nightlight] with brightness 255, ELSE turn off Bedroom nightlight [light.bedroom_nightlight]. IF command is 'hold' THEN turn off Bedroom lights and cover safety switch input boolean [input_boolean.bedroom_lights_and_cover_safety_switch] AND open Cover bedroom [cover.bedroom] AND IF Child lock input boolean [input_boolean.child_lock] is off THEN turn off Home night mode input boolean [input_boolean.home_night_mode] AND turn off Silent mode input boolean [input_boolean.silent_mode].",
"natural_language": {
"trigger": "When the Aqara switch device [device_id: 6559eaaf60c9624465f762290ff9e825] sends a ZHA event.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation reads the command from the event. If the command is a single press and the child lock is off, it activates the night mode script. If the command is a double press and night mode is off and the bedroom nightlight is off, it turns on the nightlight at full brightness; otherwise, it turns the nightlight off. If the command is a hold, it disables the bedroom lights and cover safety switch, opens the bedroom cover, and if the child lock is off, it also turns off both home night mode and silent mode."
},
"human_like": "This automation handles button presses on an Aqara switch to control night mode, a bedroom nightlight, the bedroom cover, and safety features, with child lock protection for some functions.",
"complexity": "medium"
}
},
{
"id": "aqara_cube_1_handler",
"result": {
"structured": "TRIGGER: When a ZHA event is received from the Aqara cube device [device_id: 48fad66663fc601ed1a63ac01e804fab]. CONDITIONS: Cube 1 control input boolean [input_boolean.cube_1_control] is on. ACTIONS: Based on the event data, perform one of the following: IF flip_degrees equals 90, toggle String lights [light.string_lights]; IF flip_degrees equals 180, toggle Floor lamp [light.floor_lamp]; IF command equals 'shake', run Turn off all lights script [script.turn_off_all_lights]; IF command equals 'tap', activate Movies scene [scene.movies]; IF command equals 'slide', turn on Gyver lamp [light.gyver_lamp] AND PC backlight [light.pc_backlight]; IF command equals 'rotate_left' OR 'rotate_right', turn on Floor lamp [light.floor_lamp] with brightness adjusted by adding relative_degrees to its current brightness (ensuring brightness is at least 1).",
"natural_language": {
"trigger": "When the Aqara cube device [device_id: 48fad66663fc601ed1a63ac01e804fab] sends a ZHA event.",
"conditions": "The automation only runs if the Cube 1 control input boolean [input_boolean.cube_1_control] is switched on.",
"action": "Depending on the cube's gesture, different actions are performed: a 90-degree flip toggles the String lights [light.string_lights]; a 180-degree flip toggles the Floor lamp [light.floor_lamp]; shaking the cube runs the Turn off all lights script [script.turn_off_all_lights]; tapping activates the Movies scene [scene.movies]; sliding turns on both the Gyver lamp [light.gyver_lamp] and PC backlight [light.pc_backlight]; rotating the cube adjusts the brightness of the Floor lamp [light.floor_lamp] up or down based on the rotation amount, ensuring it never goes below the minimum brightness."
},
"human_like": "This automation uses an Aqara cube to control various lights and scenes in the home, such as toggling lamps, turning on movie mode, or adjusting brightness, but only when the cube control is enabled.",
"complexity": "medium"
}
},
{
"id": "tradfri_switch_1_handler",
"result": {
"structured": "TRIGGER: When a ZHA event occurs for device Tradfri switch device [device_id: a64c98fa9b0c36e96ebe42160fcf78b5]. CONDITIONS: None. ACTIONS: Extract the command from the event data. If the command equals 'on', then turn on Scooter charger input boolean [input_boolean.scooter_charger]. If the command equals 'off', then turn off Scooter charger input boolean [input_boolean.scooter_charger].",
"natural_language": {
"trigger": "When a ZHA event is received from the Tradfri switch device [device_id: a64c98fa9b0c36e96ebe42160fcf78b5].",
"conditions": "There are no additional conditions.",
"action": "The automation reads the command from the event. If the command is 'on', it turns on the Scooter charger input boolean [input_boolean.scooter_charger]. If the command is 'off', it turns off the Scooter charger input boolean [input_boolean.scooter_charger]."
},
"human_like": "This automation controls the scooter charger status based on button presses from a Tradfri switch.",
"complexity": "low"
}
},
{
"id": "rodret_dimmer_1_handler",
"result": {
"structured": "TRIGGER: When Rodret dimmer device [device_id: 51724530dc1fcac3561d2fcb39f40048] sends specific button press events (on_press, off_press, on_hold, off_hold). CONDITIONS: None. ACTIONS: On 'on_press': Turn on Mi desk lamp [light.mi_desk_lamp] AND Turn on TV lights [light.tv_lights] AND Turn on Monolith speakers switch [switch.monolith_speakers]. On 'off_press': Turn off Mi desk lamp [light.mi_desk_lamp] AND Turn off TV lights [light.tv_lights] AND Turn off Monolith speakers switch [switch.monolith_speakers]. On 'on_hold': Increase brightness of Mi desk lamp [light.mi_desk_lamp] by 4% per step, repeated while held (max 20 loops, 200ms delay). On 'off_hold': Decrease brightness of Mi desk lamp [light.mi_desk_lamp] by 4% per step, repeated while held (max 20 loops, 200ms delay).",
"natural_language": {
"trigger": "The automation is triggered by specific button presses from the Rodret dimmer device [device_id: 51724530dc1fcac3561d2fcb39f40048], including a single press on the 'on' button, a single press on the 'off' button, holding the 'on' button, and holding the 'off' button.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "When the 'on' button is pressed once, it turns on the Mi desk lamp [light.mi_desk_lamp], the TV lights [light.tv_lights], and the Monolith speakers switch [switch.monolith_speakers]. When the 'off' button is pressed once, it turns off the same three devices. When the 'on' button is held down, it gradually increases the brightness of the Mi desk lamp [light.mi_desk_lamp]. When the 'off' button is held down, it gradually decreases the brightness of the Mi desk lamp [light.mi_desk_lamp]. The hold actions repeat while the button is held, with a 200-millisecond delay between each step, up to a maximum of 20 steps."
},
"human_like": "Uses a Rodret dimmer remote to control the desk lamp, TV lights, and speakers; single presses turn them on or off, while holding the buttons adjusts the lamp's brightness.",
"complexity": "medium"
}
}
]