1146 lines
116 KiB
JSON
1146 lines
116 KiB
JSON
[
|
|
{
|
|
"id": "alarm_play_loop",
|
|
"result": {
|
|
"structured": "TRIGGER: When alarm indoor timer [timer.alarm_indoor] finishes OR When alarm indoor [input_boolean.alarm_indoor] changes from off to on. CONDITIONS: alarm indoor [input_boolean.alarm_indoor] is on. ACTIONS: Execute alarm play script [script.alarm_play] AND Start alarm indoor timer [timer.alarm_indoor] with a duration of 5 seconds.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers either when the alarm indoor timer [timer.alarm_indoor] finishes, or when the alarm indoor [input_boolean.alarm_indoor] is switched from off to on.",
|
|
"conditions": "The automation only runs if the alarm indoor [input_boolean.alarm_indoor] is currently in the 'on' state.",
|
|
"action": "It plays the alarm sound by running the alarm play script [script.alarm_play] and then immediately restarts the alarm indoor timer [timer.alarm_indoor] for a 5-second delay."
|
|
},
|
|
"human_like": "Plays an alarm sound in a loop whenever the indoor alarm is activated, restarting a short timer to keep the loop going.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "alarm_play_stop",
|
|
"result": {
|
|
"structured": "TRIGGER: When alarm indoor [input_boolean.alarm_indoor] changes from on to off. CONDITIONS: None. ACTIONS: Turn off garage siren [switch.garage_siren_on_event], finish alarm indoor timer [timer.alarm_indoor], stop media playback on home group media player [media_player.home_group], turn off alarm play script [script.alarm_play], and set volume of home group media player [media_player.home_group] to 20%.",
|
|
"natural_language": {
|
|
"trigger": "When the alarm indoor [input_boolean.alarm_indoor] is turned off.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Stops the alarm by turning off the garage siren [switch.garage_siren_on_event], finishing the alarm indoor timer [timer.alarm_indoor], stopping any media playing on the home group media player [media_player.home_group], turning off the alarm play script [script.alarm_play], and resetting the volume of the home group media player [media_player.home_group] to 20%."
|
|
},
|
|
"human_like": "Stops all alarm sounds and resets the system when the indoor alarm is turned off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "alarm_notify",
|
|
"result": {
|
|
"structured": "TRIGGER: When alarm indoor [input_boolean.alarm_indoor] changes from off to on. CONDITIONS: None. ACTIONS: Repeat the following sequence 4 times: 1. Send a Telegram notification with title '🚨👮🆘 Alarm aufgelöst!!!' and message 'Etwas passiert!!!' via notify.telegram_schick_home. 2. Wait for 5 seconds.",
|
|
"natural_language": {
|
|
"trigger": "When the alarm indoor [input_boolean.alarm_indoor] is turned on.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a Telegram alert notification with the title '🚨👮🆘 Alarm aufgelöst!!!' and the message 'Etwas passiert!!!' to the recipient 'telegram_schick_home'. This notification is sent four times in a row, with a five-second pause between each message."
|
|
},
|
|
"human_like": "Sends a repeated Telegram alert when the indoor alarm is activated.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_alarm",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command '/alarm' is received OR When a Telegram callback event with command '/alarm' is received. CONDITIONS: None. ACTIONS: Toggle alarm play switch [switch.alarm_play]. Wait for up to 5 seconds for alarm play switch [switch.alarm_play] to change state (continue if timeout). Execute telegram callback script [script.telegram_callback] with target user ID from trigger, message ID from trigger (or 1000 if not a callback), and a message containing the friendly name and state of alarm play switch [switch.alarm_play].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the command '/alarm' is received.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "First, toggle the alarm play switch [switch.alarm_play]. Then, wait for up to five seconds for the switch's state to change, but continue even if it doesn't. Finally, send a Telegram callback message to the user who triggered the command, using the message ID from the callback event (or a default ID of 1000 if it was a command). The message will include the friendly name and current state of the alarm play switch [switch.alarm_play]."
|
|
},
|
|
"human_like": "Toggles the alarm switch and sends a Telegram confirmation message when the /alarm command is received.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "tasmota_state_on_startup",
|
|
"result": {
|
|
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Publish payload '1' to MQTT topic 'sonoffs/cmnd/state' AND publish payload '1' to MQTT topic 'sonoffs/tele/STATE'.",
|
|
"natural_language": {
|
|
"trigger": "When the Home Assistant system starts up.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Sends two MQTT messages: one with the payload '1' to the topic 'sonoffs/cmnd/state', and another with the payload '1' to the topic 'sonoffs/tele/STATE'."
|
|
},
|
|
"human_like": "Sends a power state command to Tasmota devices when Home Assistant starts up.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "rolladen_auf",
|
|
"result": {
|
|
"structured": "TRIGGER: At sunrise with an offset of 3 hours. CONDITIONS: None. ACTIONS: Set rolladen cover [cover.rolladen] position to 100% AND send a Telegram notification with title '🔼 Rolladen' and message 'Rolladen geöffnet'.",
|
|
"natural_language": {
|
|
"trigger": "Three hours after sunrise.",
|
|
"conditions": "There are no conditions.",
|
|
"action": "Fully opens the rolladen cover [cover.rolladen] and sends a Telegram notification titled '🔼 Rolladen' with the message 'Rolladen geöffnet'."
|
|
},
|
|
"human_like": "Opens the blinds and sends a notification three hours after sunrise.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "rolladen_zu",
|
|
"result": {
|
|
"structured": "TRIGGER: At sunset with an offset of 1 hour and 30 minutes. CONDITIONS: None. ACTIONS: Set rolladen cover [cover.rolladen] to position 0 (closed) AND send a Telegram notification with title '🔽 Rolladen' and message 'Rolladen geschlossen'.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers 1 hour and 30 minutes after sunset.",
|
|
"conditions": "There are no conditions that need to be met.",
|
|
"action": "It closes the rolladen cover [cover.rolladen] and sends a Telegram notification titled '🔽 Rolladen' with the message 'Rolladen geschlossen'."
|
|
},
|
|
"human_like": "Closes the blinds and sends a notification 1.5 hours after sunset.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "garagenlicht_einschalten",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage door position sensor [sensor.torposition] remains above 40% for 5 seconds. CONDITIONS: (The sun is before sunrise with an offset of 15 minutes) OR (The sun is after sunset with an offset of -15 minutes). ACTIONS: Turn on garage light [light.sonoffbnsz01] to 95% brightness, then wait for 10 minutes, then turn off garage light [light.sonoffbnsz01].",
|
|
"natural_language": {
|
|
"trigger": "When the garage door position sensor [sensor.torposition] reports a value above 40% for at least five seconds.",
|
|
"conditions": "If it is either within 15 minutes before sunrise or within 15 minutes after sunset.",
|
|
"action": "Turns on the garage light [light.sonoffbnsz01] to 95% brightness, waits for ten minutes, and then turns the light off."
|
|
},
|
|
"human_like": "Turns on the garage light for 10 minutes when the garage door is opened during dawn or dusk.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "garagenlicht_ausschalten",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage door closed sensor [binary_sensor.tor_ist_geschlossen] becomes on (closed) AND remains for 5 seconds OR when garage door partial [input_boolean.torteil] becomes on AND remains for 5 seconds. CONDITIONS: None. ACTIONS: Turn off garage light [light.sonoffbnsz01].",
|
|
"natural_language": {
|
|
"trigger": "When the garage door closed sensor [binary_sensor.tor_ist_geschlossen] reports the door is closed and stays that way for 5 seconds, or when the garage door partial [input_boolean.torteil] is turned on and stays on for 5 seconds.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Turns off the garage light [light.sonoffbnsz01]."
|
|
},
|
|
"human_like": "Turns off the garage light when the garage door is closed or a partial door state is active for a few seconds.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "camera_garage_richtung",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage door position sensor [sensor.torposition] remains above 30 for 5 seconds OR When garage door position sensor [sensor.torposition] remains below 20 for 5 seconds OR When garage door closed sensor [binary_sensor.tor_ist_geschlossen] becomes 'on' and remains for 3 seconds OR When garage door partial [input_boolean.torteil] becomes 'on' and remains for 5 seconds. CONDITIONS: None. ACTIONS: Choose based on conditions: IF garage door position sensor [sensor.torposition] is above 30 THEN set garage ptz preset [select.garage_ptz_preset] to 'Tor'. ELSE IF garage door distance sensor [sensor.tor_distanz] is below 20 THEN set garage ptz preset [select.garage_ptz_preset] to 'Tuer', wait 30 seconds, then set garage ptz preset [select.garage_ptz_preset] to 'Tuer' again. ELSE do nothing.",
|
|
"natural_language": {
|
|
"trigger": "The automation is triggered when the garage door position sensor [sensor.torposition] stays above 30% for 5 seconds, or when it stays below 20% for 5 seconds. It can also be triggered when the garage door closed sensor [binary_sensor.tor_ist_geschlossen] reports the door is closed ('on') for 3 seconds, or when the garage door partial [input_boolean.torteil] is turned on for 5 seconds.",
|
|
"conditions": "There are no global conditions for this automation.",
|
|
"action": "The automation selects a camera preset based on the trigger. If the garage door position sensor [sensor.torposition] is above 30, it sets the garage ptz preset [select.garage_ptz_preset] to 'Tor'. If the garage door distance sensor [sensor.tor_distanz] is below 20, it sets the garage ptz preset [select.garage_ptz_preset] to 'Tuer', waits for 30 seconds, and then sets the same preset to 'Tuer' again. If neither of these conditions are met, no action is taken."
|
|
},
|
|
"human_like": "Automatically changes the garage camera's preset view based on the position and state of the garage door.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1661601350027'",
|
|
"result": {
|
|
"structured": "TRIGGER: When a tag with ID 4d4d9d64-59ff-4a65-8d8c-d1a088f46599 is scanned. CONDITIONS: None. ACTIONS: Toggle garage door switch [switch.tor].",
|
|
"natural_language": {
|
|
"trigger": "When a specific RFID or NFC tag with the ID 4d4d9d64-59ff-4a65-8d8c-d1a088f46599 is scanned.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Toggles the state of the garage door switch [switch.tor]."
|
|
},
|
|
"human_like": "Toggles the garage door switch when a specific RFID tag is scanned.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1661607357549'",
|
|
"result": {
|
|
"structured": "TRIGGER: When a tag with ID 25cf4f63-039d-47b6-8012-32e9e6cb831d is scanned. CONDITIONS: None. ACTIONS: Toggle sonoff power light 1 [light.sonoffpow_01].",
|
|
"natural_language": {
|
|
"trigger": "When a specific RFID or NFC tag with the ID 25cf4f63-039d-47b6-8012-32e9e6cb831d is scanned.",
|
|
"conditions": "There are no conditions that need to be met.",
|
|
"action": "Toggle the state of the sonoff power light 1 [light.sonoffpow_01] (turn it on if it's off, or off if it's on)."
|
|
},
|
|
"human_like": "Toggles the living room light when a specific tag is scanned.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1668006470208'",
|
|
"result": {
|
|
"structured": "TRIGGER: When car tracker [e26c53c9fa2534a4da69f77b06f7414f] enters zone.home. CONDITIONS: (garage door position sensor [sensor.torposition] is below 15) AND (bluetooth connection sensor [sensor.as25_bluetooth_connection] attribute connected_paired_devices contains '68:4E:05:63:56:10 (VOLKSWAGEN-21ED)' OR bluetooth connection sensor [sensor.as25_bluetooth_connection] attribute connected_paired_devices contains 'B4:EC:02:94:8A:CF (VW BT 1505)'). ACTIONS: Turn on garage door switch [switch.tor] AND send notification 'Die Garage öffnet' to notify.mobile_app_as25.",
|
|
"natural_language": {
|
|
"trigger": "When the car tracker [e26c53c9fa2534a4da69f77b06f7414f] enters the home zone.",
|
|
"conditions": "The garage door position sensor [sensor.torposition] reports a value below 15, indicating the door is not fully open. Additionally, the bluetooth connection sensor [sensor.as25_bluetooth_connection] must show that a specific Volkswagen Bluetooth device is connected. This can be either the device with the address '68:4E:05:63:56:10 (VOLKSWAGEN-21ED)' or the device with the address 'B4:EC:02:94:8A:CF (VW BT 1505)'.",
|
|
"action": "Opens the garage door by turning on the garage door switch [switch.tor] and sends a mobile notification with the text 'Die Garage öffnet' (The garage opens) to the device associated with notify.mobile_app_as25."
|
|
},
|
|
"human_like": "Automatically opens the garage door and sends a notification when the car arrives home, provided the door is not already open and the car's Bluetooth is connected.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1668017327174'",
|
|
"result": {
|
|
"structured": "TRIGGER: When car tracker [e26c53c9fa2534a4da69f77b06f7414f] leaves zone.home. CONDITIONS: (68:4E:05:63:56:10 (VOLKSWAGEN-21ED) is in the connected_paired_devices attribute of bluetooth connection sensor [sensor.as25_bluetooth_connection] OR B4:EC:02:94:8A:CF (VW BT 1505) is in the connected_paired_devices attribute of bluetooth connection sensor [sensor.as25_bluetooth_connection]) AND garage door position sensor [sensor.torposition] is above 15. ACTIONS: Turn on garage door switch [switch.tor]. Send a notification to mobile_app_as25 with title 'Garage' and TTS message 'Die Garage schlisst'. Wait for garage door position sensor [sensor.torposition] to be below 6 for 5 seconds, with a timeout of 30 seconds. If the wait condition is met, send a notification to mobile_app_as25 with title 'Garage' and TTS message 'Die Garage ist geschlossen'.",
|
|
"natural_language": {
|
|
"trigger": "When the car tracker [e26c53c9fa2534a4da69f77b06f7414f] leaves the home zone.",
|
|
"conditions": "If either the Bluetooth device '68:4E:05:63:56:10 (VOLKSWAGEN-21ED)' or 'B4:EC:02:94:8A:CF (VW BT 1505)' is shown as a connected and paired device on the bluetooth connection sensor [sensor.as25_bluetooth_connection], and the garage door position sensor [sensor.torposition] reports a value greater than 15.",
|
|
"action": "The automation will first turn on the garage door switch [switch.tor] to start closing the door. It will then send a voice notification to a mobile device saying 'Die Garage schlisst' (The garage is closing). Next, it will wait for up to 30 seconds for the garage door position sensor [sensor.torposition] to report a value below 6 for at least 5 seconds, indicating the door is nearly or fully closed. If this happens, it sends a final voice notification saying 'Die Garage ist geschlossen' (The garage is closed)."
|
|
},
|
|
"human_like": "Automatically closes the garage door and announces its status when the car leaves home, provided a specific Bluetooth device is connected and the door is open.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "3d_prtint_is_done",
|
|
"result": {
|
|
"structured": "TRIGGER: When 3d printer state [sensor.ender_3_s1_pro_current_print_state] changes to 'complete' AND remains in that state for 10 minutes. CONDITIONS: None. ACTIONS: 1. Take a snapshot from 3d printer camera [camera.ender_3_s1_pro_sony] and save it to '/config/www/screenshots/3dprinter.jpg'. 2. Send a Telegram notification with the message '🏭 3D Druck ist fertig' and attach the saved photo. 3. (Disabled) Send a Telegram notification with the message '🏭 3D Druck ist fertig' and attach the photo from the thumbnail URL attribute of 3d printer thumbnail sensor [sensor.ender_3_s1_pro_thumbnail]. 4. Wait for up to 10 minutes for 3d printer temperature sensor [sensor.ender_3_s1_pro_extruder_temperature] to drop below 70. 5. After the wait, IF 3d printer state [sensor.ender_3_s1_pro_current_print_state] is NOT 'printing' AND NOT 'paused', THEN turn off tuya plug 1 [switch.tuyaplug1] and send a Telegram notification with the message '🏭 3D Drucker ist ausgeschaltet'.",
|
|
"natural_language": {
|
|
"trigger": "The automation starts when the 3d printer state [sensor.ender_3_s1_pro_current_print_state] reports that the print is 'complete' and stays in that state for a continuous period of 10 minutes.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "First, a snapshot is taken from the 3d printer camera [camera.ender_3_s1_pro_sony] and saved locally. A Telegram notification is then sent with the saved photo, announcing the print is done. A second, disabled action would have sent a notification using a live thumbnail from the printer. The automation then waits for up to 10 minutes for the extruder temperature [sensor.ender_3_s1_pro_extruder_temperature] to cool down below 70 degrees. Once the wait is over, it checks that the printer is neither 'printing' nor 'paused'. If true, it turns off the power via tuya plug 1 [switch.tuyaplug1] and sends a final Telegram notification stating the printer is turned off."
|
|
},
|
|
"human_like": "Notifies you when a 3D print finishes, takes a picture, waits for the printer to cool down, and then turns it off if it's not actively printing.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1674336725023'",
|
|
"result": {
|
|
"structured": "TRIGGER: Daily at 18:20:00. CONDITIONS: (sensor.restabfall [sensor.restabfall] reports collection within 1 day) OR (sensor.leichtverpackungen [sensor.leichtverpackungen] reports collection within 1 day) OR (sensor.papier [sensor.papier] reports collection within 1 day). ACTIONS: Send a Telegram notification via notify.telegram_schick_home [notify.telegram_schick_home] with title '🗑️ Müllabfuhr Erinnerung' and message 'Folgender Müll wird morgen abgeholt: ' followed by the list of garbage types due for collection.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers daily at 6:20 PM.",
|
|
"conditions": "It checks if any of the garbage collection sensors (sensor.restabfall [sensor.restabfall], sensor.leichtverpackungen [sensor.leichtverpackungen], or sensor.papier [sensor.papier]) indicate that collection is scheduled for the next day.",
|
|
"action": "If the condition is met, it sends a Telegram notification using notify.telegram_schick_home [notify.telegram_schick_home] with the title '🗑️ Müllabfuhr Erinnerung' and a message listing which garbage types will be collected tomorrow."
|
|
},
|
|
"human_like": "Sends a daily evening reminder via Telegram if any garbage collection is scheduled for the next day.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1704829899531'",
|
|
"result": {
|
|
"structured": "TRIGGER: When any of the listed update entities changes state. CONDITIONS: None. ACTIONS: Send a mobile app notification to the device with ID d65b64c785a29ffed795c6d22780bb9f, and optionally send a notification to Home Assistant, based on the blueprint configuration.",
|
|
"natural_language": {
|
|
"trigger": "When any of the many specified system and integration update entities (like Home Assistant Core, Supervisor, ESPHome, or various add-ons and cards) reports a new available update.",
|
|
"conditions": "There are no additional conditions that must be met for this automation to run.",
|
|
"action": "Sends a push notification to a specific mobile device (ID: d65b64c785a29ffed795c6d22780bb9f) to alert about the available updates. It may also send a notification within Home Assistant itself."
|
|
},
|
|
"human_like": "Sends a notification to a mobile device when system or integration updates become available.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "camera_manage_status_led",
|
|
"result": {
|
|
"structured": "TRIGGER: When sunrise occurs OR When sunset occurs. CONDITIONS: None. ACTIONS: If the trigger was sunrise, turn on status led light [light.innen_status_led]. If the trigger was sunset, turn off status led light [light.innen_status_led].",
|
|
"natural_language": {
|
|
"trigger": "The automation is triggered by the daily sunrise or sunset event.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "When triggered by sunrise, the status led light [light.innen_status_led] is turned on. When triggered by sunset, the status led light [light.innen_status_led] is turned off."
|
|
},
|
|
"human_like": "Turns the indoor status light on at sunrise and off at sunset.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "tv_board_manage",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] changes state AND remains stable for 4 minutes OR every 15 minutes (time_pattern). CONDITIONS: (sony tv media player [media_player.sony_kd55x8505b] is off) OR (Sony KD-55X8505B TV [media_player.sony_kd_55x8505b] is off) OR (samsung tv media player [media_player.gq75qn92catxzg] is off). ACTIONS: IF (tuya plug 2 [switch.tuyaplug2] is on AND (family group [group.family] is not_home OR current hour is less than 12 OR current hour is greater than 22)) THEN turn off tuya plug 2 [switch.tuyaplug2]. ELSE IF (tuya plug 2 [switch.tuyaplug2] is off AND family group [group.family] is home AND (current hour is greater than 11 AND current hour is less than 23)) THEN turn on tuya plug 2 [switch.tuyaplug2].",
|
|
"natural_language": {
|
|
"trigger": "The automation runs when the family group [group.family] changes its state and remains in the new state for four minutes, or it runs every 15 minutes based on a time pattern.",
|
|
"conditions": "At least one of the following TVs must be turned off: the sony tv media player [media_player.sony_kd55x8505b], the Sony KD-55X8505B TV [media_player.sony_kd_55x8505b], or the samsung tv media player [media_player.gq75qn92catxzg].",
|
|
"action": "If the tuya plug 2 [switch.tuyaplug2] is currently on and either nobody is home or it is outside of daytime hours (before 11:00 or after 23:00), then the plug is turned off. Conversely, if the tuya plug 2 [switch.tuyaplug2] is off, someone is home, and it is daytime (between 11:00 and 23:00), then the plug is turned on."
|
|
},
|
|
"human_like": "Manages the TV board power based on whether anyone is home and the time of day, but only if the TVs are off.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "rolladen_close_if_its_hot",
|
|
"result": {
|
|
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: (Sun [sun.sun] azimuth is between 150 and 300) AND (Sun [sun.sun] elevation is greater than 10) AND ((lawn temperature sensor [sensor.rasen_temperature] is greater than 22) OR (terrace temperature sensor [sensor.ble_temperature_temperatur_gt] is greater than 22)) AND (weather sensor [weather.openweathermap] cloud coverage is less than 40). ACTIONS: For each cover in the list COVERS_TO_MANAGE: IF (Sun [sun.sun] azimuth is greater than or equal to the cover's individual azimuth_close_trigger) AND (the cover's current position is greater than its individual current_pos_above) AND (the cover's current position is not equal to its individual target_pos) AND (more than 240 minutes have passed since the cover's last state change) THEN set the cover's position to its individual target_pos.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs every 5 minutes.",
|
|
"conditions": "The sun must be in a specific part of the sky: its azimuth must be between 150 and 300 degrees, and its elevation must be above 10 degrees. Additionally, either the lawn temperature sensor [sensor.rasen_temperature] must be above 22°C, or the terrace temperature sensor [sensor.ble_temperature_temperatur_gt] must be above 22°C. Finally, the cloud coverage reported by the weather sensor [weather.openweathermap] must be less than 40%.",
|
|
"action": "For each of the four configured window blinds (covers), the automation checks if the sun's current azimuth has passed a specific trigger angle for that blind. If it has, and the blind's current position is above a certain level, and it's not already at its target position, and it hasn't been moved in the last 240 minutes, then the blind is lowered to its specified target position (either fully closed or partially closed)."
|
|
},
|
|
"human_like": "Automatically closes specific window blinds when it's hot and sunny to keep rooms cool, using individual sun angle thresholds for each blind.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "markise_control",
|
|
"result": {
|
|
"structured": "TRIGGER: Every 5 minutes OR When rain sensor [binary_sensor.mower_rainsensor_triggered] is on OR When Sun [sun.sun] elevation is below 11 degrees. CONDITIONS: (For first action path) Sun [sun.sun] azimuth is greater than 180 AND Sun [sun.sun] elevation is at least 15 degrees AND terrace temperature sensor [sensor.ble_temperature_temperatur_gt] temperature is greater than 22 AND weather sensor [weather.openweathermap] cloud coverage is less than 40% AND rain sensor [binary_sensor.mower_rainsensor_triggered] is off AND awning cover [cover.markise] current position is not 100 AND more than 60 minutes have passed since awning cover [cover.markise] last changed. (For second action path) rain sensor [binary_sensor.mower_rainsensor_triggered] is on OR Sun [sun.sun] elevation is below 11 degrees AND awning cover [cover.markise] current position is not 0. ACTIONS: If first condition set is true, after a 3-second delay, set awning cover [cover.markise] position to 100. If second condition set is true, after a 3-second delay, set awning cover [cover.markise] position to 0.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs every 5 minutes, or immediately if the rain sensor [binary_sensor.mower_rainsensor_triggered] detects rain, or if the sun's elevation [sun.sun] falls below 11 degrees.",
|
|
"conditions": "The automation checks two possible scenarios. First, to extend the awning: the sun must be in the correct position (azimuth greater than 180 and elevation at least 15 degrees), the temperature from the terrace temperature sensor [sensor.ble_temperature_temperatur_gt] must be above 22 degrees, cloud coverage from the weather sensor [weather.openweathermap] must be below 40%, the rain sensor [binary_sensor.mower_rainsensor_triggered] must be off, the awning cover [cover.markise] must not already be at the sun protection position (100), and at least 60 minutes must have passed since the awning was last moved. Second, to retract the awning: either the rain sensor [binary_sensor.mower_rainsensor_triggered] is on or the sun's elevation [sun.sun] is below 11 degrees, and the awning cover [cover.markise] is not already fully retracted (position 0).",
|
|
"action": "If the conditions for extending the awning are met, it waits 3 seconds and then extends the awning cover [cover.markise] to 100% for sun protection. If the conditions for retracting the awning are met, it waits 3 seconds and then retracts the awning cover [cover.markise] to 0%."
|
|
},
|
|
"human_like": "Automatically extends the terrace awning when it's sunny and hot to provide shade, and retracts it when it rains or the sun is low, with a cooldown period to prevent frequent adjustments.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "vacuum_when_nobody_home",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] remains in state 'not_home' for 10 minutes. CONDITIONS: The date of the last clean start from Robi Last Clean Start Sensor [sensor.robi_last_clean_start] is before today's date. ACTIONS: Execute script.robi_flur.",
|
|
"natural_language": {
|
|
"trigger": "When all members of the family group [group.family] have been away from home for at least 10 minutes.",
|
|
"conditions": "The robot vacuum has not been started for cleaning today, based on the timestamp stored in Robi Last Clean Start Sensor [sensor.robi_last_clean_start].",
|
|
"action": "Starts the robot vacuum by running the script 'robi_flur'."
|
|
},
|
|
"human_like": "Automatically starts the robot vacuum when nobody is home for 10 minutes, but only if it hasn't already run today.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1726090038559'",
|
|
"result": {
|
|
"structured": "TRIGGER: At 04:00:00 daily. CONDITIONS: The certificate expiry sensor [sensor.barma_partia_de_cert_expiry] expiry date is less than 7 days from the current date. ACTIONS: Start the Home Assistant addon core_letsencrypt (disabled) AND restart the Home Assistant addon core_letsencrypt.",
|
|
"natural_language": {
|
|
"trigger": "Every day at 4:00 AM.",
|
|
"conditions": "If the expiry date reported by the certificate expiry sensor [sensor.barma_partia_de_cert_expiry] is within the next 7 days.",
|
|
"action": "Attempts to start the 'core_letsencrypt' addon (though this action is disabled) and then restarts the 'core_letsencrypt' addon to renew the certificate."
|
|
},
|
|
"human_like": "Automatically renews the SSL certificate a week before it expires by restarting the Let's Encrypt addon.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "weihnachten_licht_an",
|
|
"result": {
|
|
"structured": "TRIGGER: At sunset with an offset of -15 minutes. CONDITIONS: family wlan group [group.family_wlan] is home. ACTIONS: Turn on christmas lights switch [switch.weihnachten].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers 15 minutes before sunset.",
|
|
"conditions": "At least one member of the family wlan group [group.family_wlan] must be home.",
|
|
"action": "It turns on the christmas lights switch [switch.weihnachten]."
|
|
},
|
|
"human_like": "Turns on the Christmas lights 15 minutes before sunset, but only if someone is home.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "weihnachten_licht_an_anatolij",
|
|
"result": {
|
|
"structured": "TRIGGER: At 08:20:00. CONDITIONS: (The sun is before sunrise AND after an offset of 15 minutes) AND (The current weekday is Monday OR Tuesday OR Wednesday OR Thursday OR Friday). ACTIONS: Turn on christmas lights switch [switch.weihnachten].",
|
|
"natural_language": {
|
|
"trigger": "At exactly 8:20 AM.",
|
|
"conditions": "If the current time is before sunrise but within 15 minutes after sunrise, and if the current day is a weekday (Monday through Friday).",
|
|
"action": "Turns on the christmas lights switch [switch.weihnachten]."
|
|
},
|
|
"human_like": "Turns on the Christmas lights at 8:20 AM on weekdays, but only if it's within 15 minutes after sunrise.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "weihnachten_licht_an_wenn_jemand_kommt",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] OR family wlan group [group.family_wlan] changes state from 'not_home' to 'home' AND remains in 'home' for 3 minutes. CONDITIONS: Sun [sun.sun] elevation is less than 4 degrees. ACTIONS: Turn on christmas lights switch [switch.weihnachten].",
|
|
"natural_language": {
|
|
"trigger": "When any member of the family group [group.family] or the family wlan group [group.family_wlan] returns home, after having been away, and stays home for at least three minutes.",
|
|
"conditions": "The automation only runs if it is dark enough, specifically when the sun's elevation is below 4 degrees.",
|
|
"action": "Turns on the Christmas lights by activating the switch [switch.weihnachten]."
|
|
},
|
|
"human_like": "Turns on the Christmas lights when someone comes home in the evening or at night.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "weihnachten_licht_aus",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time is 00:00:00 OR When the time is 09:30:00 OR When sunrise occurs with an offset of +15 minutes OR When family group [group.family] OR family wlan group [group.family_wlan] changes from home to not_home AND remains not_home for 5 minutes. CONDITIONS: None. ACTIONS: Turn off christmas lights switch [switch.weihnachten].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at midnight, at 9:30 AM, 15 minutes after sunrise, or when all members of the family group [group.family] or the family wlan group [group.family_wlan] leave home and remain away for five minutes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Turns off the christmas lights switch [switch.weihnachten]."
|
|
},
|
|
"human_like": "Turns off the Christmas lights at scheduled times, after sunrise, or when everyone leaves home.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_home",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Уберись дома'. CONDITIONS: None. ACTIONS: Execute script robi_home [script.robi_home].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to a Yandex device with the specific phrase 'Уберись дома' (Clean up at home).",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the script named robi_home [script.robi_home]."
|
|
},
|
|
"human_like": "Starts a home cleaning routine when a specific voice command is given to Yandex.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_kitchen",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери кухню'. CONDITIONS: None. ACTIONS: Execute the script Robi - Yandex Küche [script.robi_kitchen].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to Yandex with the specific phrase 'Убери кухню' (Clean the kitchen).",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the pre-defined script called Robi - Yandex Küche [script.robi_kitchen]."
|
|
},
|
|
"human_like": "Starts a kitchen cleaning routine when you ask Yandex to clean the kitchen.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_living_room",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери зал'. CONDITIONS: None. ACTIONS: Execute the script Robi - Yandex Wohnzimmer [script.robi_living_room].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to a Yandex device with the specific phrase 'Убери зал'.",
|
|
"conditions": "There are no additional conditions that need to be met.",
|
|
"action": "Runs the script named Robi - Yandex Wohnzimmer [script.robi_living_room]."
|
|
},
|
|
"human_like": "Runs a cleaning or tidying script for the living room when a specific Russian voice command is given to a Yandex device.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_stube",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери гостиную'. CONDITIONS: None. ACTIONS: Execute the script Robi Stube [script.robi_stube].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to a Yandex device with the specific phrase 'Убери гостиную' (Clean the living room).",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the pre-configured script named Robi Stube [script.robi_stube]."
|
|
},
|
|
"human_like": "Cleans the living room by running a script when a specific voice command is given to a Yandex device.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_bedroom",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери спальню'. CONDITIONS: None. ACTIONS: Execute the script Robi - Yandex Schlafzimmer [script.robi_bedroom].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to a Yandex smart assistant with the specific phrase 'Убери спальню' (which translates to 'Clean the bedroom').",
|
|
"conditions": "There are no conditions that must be met for this automation to proceed.",
|
|
"action": "Runs the script named Robi - Yandex Schlafzimmer [script.robi_bedroom]."
|
|
},
|
|
"human_like": "Starts a bedroom cleaning routine when you ask the Yandex assistant to clean the bedroom.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_flur",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with text 'Убери коридор'. CONDITIONS: None. ACTIONS: Execute script Robi - Yandex Flur [script.robi_flur].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is processed by Yandex with the specific phrase 'Убери коридор' (Clean the corridor).",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the predefined script named Robi - Yandex Flur [script.robi_flur]."
|
|
},
|
|
"human_like": "Starts a cleaning routine for the corridor when a specific voice command is given to Yandex.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_hwr",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери кладовку'. CONDITIONS: None. ACTIONS: Execute script Robi HWR [script.robi_hwr].",
|
|
"natural_language": {
|
|
"trigger": "When a Yandex smart home voice command with the specific phrase 'Убери кладовку' is received.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the script named Robi HWR [script.robi_hwr]."
|
|
},
|
|
"human_like": "Runs a specific script when a voice command to clean the storage room is given to Yandex.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_yandex_wc",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Yandex intent event occurs with the text 'Убери туалет'. CONDITIONS: None. ACTIONS: Execute the script Robi WC [script.robi_wc].",
|
|
"natural_language": {
|
|
"trigger": "When a voice command is issued to a Yandex device with the specific phrase 'Убери туалет' (Clean the toilet).",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Runs the pre-configured script named Robi WC [script.robi_wc]."
|
|
},
|
|
"human_like": "Triggers a cleaning routine for the toilet when a specific voice command is given to a Yandex device.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "seitenmarkise_control",
|
|
"result": {
|
|
"structured": "TRIGGER: Every 5 minutes OR When rain sensor [binary_sensor.mower_rainsensor_triggered] is on OR When the Sun [sun.sun] elevation is below 11 degrees. CONDITIONS: (Nested within a choose action). ACTIONS: Choose between two sequences based on conditions. Sequence 1: IF (Sun [sun.sun] azimuth > 180 AND Sun [sun.sun] elevation >= 12 AND terrace temperature sensor [sensor.ble_temperature_temperatur_gt] temperature > 22 AND weather sensor [weather.openweathermap] cloud_coverage < 40 AND rain sensor [binary_sensor.mower_rainsensor_triggered] is off AND side awning cover [cover.seitenmarkise] current_position > 15 AND the time since side awning cover [cover.seitenmarkise] last changed is greater than 120 minutes) THEN set side awning cover [cover.seitenmarkise] position to 15. Sequence 2: IF ((rain sensor [binary_sensor.mower_rainsensor_triggered] is on OR Sun [sun.sun] elevation < 11) AND side awning cover [cover.seitenmarkise] current_position is not 100) THEN set side awning cover [cover.seitenmarkise] position to 100.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs every 5 minutes, or immediately if the rain sensor [binary_sensor.mower_rainsensor_triggered] detects rain, or if the sun's elevation [sun.sun] drops below 11 degrees.",
|
|
"conditions": "The automation evaluates two main scenarios. The first scenario checks if the sun is in the correct position (azimuth greater than 180 degrees and elevation at least 12 degrees), the temperature from the terrace temperature sensor [sensor.ble_temperature_temperatur_gt] is above 22 degrees, the cloud coverage from the weather sensor [weather.openweathermap] is below 40%, the rain sensor [binary_sensor.mower_rainsensor_triggered] is not detecting rain, the side awning cover [cover.seitenmarkise] is currently extended beyond the 15% position, and the awning hasn't been moved in the last 120 minutes. The second scenario checks if it is either raining or the sun's elevation is below 11 degrees, and the side awning cover [cover.seitenmarkise] is not already fully retracted at the 100% position.",
|
|
"action": "If the conditions for the first scenario are met, the side awning cover [cover.seitenmarkise] is partially deployed to 15% to provide sun protection. If the conditions for the second scenario are met, the side awning cover [cover.seitenmarkise] is fully retracted to 100%."
|
|
},
|
|
"human_like": "Automatically adjusts the side awning based on sunlight, temperature, cloud cover, and rain to provide shade when it's sunny and hot, and retract it when it's raining or the sun is low.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1746608947446'",
|
|
"result": {
|
|
"structured": "TRIGGER: When sonoff s20 2 switch [switch.sonoffs20_2] turns on OR when sonoff s20 2 switch [switch.sonoffs20_2] turns off. CONDITIONS: None. ACTIONS: Send a Telegram notification to notify.telegram_bot_anatolij with a message containing the last character of the trigger ID (e.g., '1' or '2').",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sonoff s20 2 switch [switch.sonoffs20_2] is turned on or off.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Sends a notification via Telegram to the bot named notify.telegram_bot_anatolij. The message contains the last character of the trigger ID, which will be '1' if the switch turned on or '2' if the switch turned off."
|
|
},
|
|
"human_like": "Sends a Telegram alert whenever the garden switch is turned on or off, indicating which change occurred.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "garage_smartthing_sync",
|
|
"result": {
|
|
"structured": "TRIGGER: When smartthings virtual switch 1 [switch.st_virtual_switch1] changes state OR when smartthings virtual switch 2 [switch.st_virtual_switch2] changes state. CONDITIONS: None. ACTIONS: If the triggering entity is smartthings virtual switch 1 [switch.st_virtual_switch1], then toggle garage door switch [switch.tor]. If the triggering entity is smartthings virtual switch 2 [switch.st_virtual_switch2], then toggle Garage Tor Teil [switch.torteil].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the smartthings virtual switch 1 [switch.st_virtual_switch1] or the smartthings virtual switch 2 [switch.st_virtual_switch2] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Depending on which switch triggered the automation, it will toggle a different garage door. If the change came from smartthings virtual switch 1, it toggles the main garage door switch. If the change came from smartthings virtual switch 2, it toggles the partial garage door switch."
|
|
},
|
|
"human_like": "This automation synchronizes two virtual switches from SmartThings with two different garage doors, toggling the correct door based on which virtual switch was used.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "set_rolladen_last_action",
|
|
"result": {
|
|
"structured": "TRIGGER: When the state of any of the following cover entities changes: rolladen cover [cover.rolladen], shelly switch 25 10d315 cover [cover.shellyswitch25_10d315], shelly switch 25 10eaa4 cover [cover.shellyswitch25_10eaa4], shelly switch 25 f37a8c cover [cover.shellyswitch25_f37a8c], shelly switch 25 f37b28 cover [cover.shellyswitch25_f37b28], awning cover [cover.markise], side awning cover [cover.seitenmarkise]. CONDITIONS: The previous state of the triggering entity was either 'opening' OR 'closing'. ACTIONS: Set the value of the input_text entity with the ID 'input_text.{{ trigger.to_state.object_id }}_last_action' to the previous state of the triggering entity.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of any of the listed cover entities (rolladen cover [cover.rolladen], shelly switch 25 10d315 cover [cover.shellyswitch25_10d315], shelly switch 25 10eaa4 cover [cover.shellyswitch25_10eaa4], shelly switch 25 f37a8c cover [cover.shellyswitch25_f37a8c], shelly switch 25 f37b28 cover [cover.shellyswitch25_f37b28], awning cover [cover.markise], side awning cover [cover.seitenmarkise]) changes.",
|
|
"conditions": "The condition is that the cover's previous state, before the change, was either 'opening' or 'closing'.",
|
|
"action": "The automation records the last action by setting a corresponding input text helper. It takes the object ID from the entity that triggered the change, appends '_last_action' to it, and sets the value of that input_text helper to the previous state ('opening' or 'closing')."
|
|
},
|
|
"human_like": "Tracks and records the last moving action (opening or closing) for several covers and awnings in the home.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "torteiloffnung_on",
|
|
"result": {
|
|
"structured": "TRIGGER: When Garage Tor Teil [switch.torteil] turns on. CONDITIONS: garage door partial [input_boolean.torteil] is off. ACTIONS: Wait for 2 seconds, then turn on garage door partial [input_boolean.torteil].",
|
|
"natural_language": {
|
|
"trigger": "When the Garage Tor Teil [switch.torteil] is turned on.",
|
|
"conditions": "The garage door partial [input_boolean.torteil] must be in the off state.",
|
|
"action": "After a 2-second delay, the automation turns on the garage door partial [input_boolean.torteil]."
|
|
},
|
|
"human_like": "Turns on the garage door partial status indicator two seconds after the garage door part switch is activated, but only if the indicator was off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_tor",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command /tor OR /torteil is received OR when a Telegram callback event with command /tor OR /torteil is received. CONDITIONS: None. ACTIONS: If the command is /tor, then toggle garage door switch [switch.tor], wait up to 5 seconds for garage door cover [cover.tor] to change state, then run telegram callback script [script.telegram_callback] with a message containing the friendly name of garage door switch [switch.tor] and the current position of garage door cover [cover.tor]. If the command is /torteil, then toggle Garage Tor Teil [switch.torteil], wait up to 5 seconds for garage door cover [cover.tor] to change state, then run telegram callback script [script.telegram_callback] with a message containing the friendly name of Garage Tor Teil [switch.torteil] and the current position of garage door cover [cover.tor].",
|
|
"natural_language": {
|
|
"trigger": "The automation is triggered by receiving a specific Telegram command or callback. The commands can be either '/tor' or '/torteil'.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "Depending on the command received, the automation toggles a different switch. For the '/tor' command, it toggles the garage door switch [switch.tor]. For the '/torteil' command, it toggles the Garage Tor Teil [switch.torteil]. After toggling the switch, it waits for up to five seconds for the garage door cover [cover.tor] to change its state. Finally, it sends a Telegram callback message containing the friendly name of the switch that was toggled and the current position percentage of the garage door cover."
|
|
},
|
|
"human_like": "This automation allows you to control the garage door or a part of it via Telegram commands and provides a status update in response.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "garage_auto_close",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage open too long sensor [binary_sensor.garage_open_too_long] turns on OR Sun [sun.sun] sets (state becomes below_horizon) OR all lights off sensor [binary_sensor.all_lights_off] turns on OR Home Assistant starts. CONDITIONS: Sun [sun.sun] is below_horizon AND all lights off sensor [binary_sensor.all_lights_off] is on AND garage open too long sensor [binary_sensor.garage_open_too_long] is on. ACTIONS: Store the initial position of garage door cover [cover.tor]. Send a Telegram notification that the garage has been open for 30 minutes, it's dark, and all lights are off, with a plan to close in 1 minute and that lights will flash. Then, repeat 12 times (for 1 minute total): Check if the absolute difference between the current position of garage door cover [cover.tor] and the stored initial position is greater than 10%; if true, send a cancellation notification and stop the automation. Otherwise, turn on garage light [light.sonoffbnsz01] for 2.5 seconds, then turn it off for 2.5 seconds. After the loop, check that the position change is 10% or less AND that garage door cover [cover.tor] is open and its current position is greater than 13%. If true, send a notification that the automatic closing procedure is starting. Then, toggle garage door switch [switch.tor] (Attempt 1). Wait 3 seconds. If garage door cover [cover.tor] is closing or closed, send a success notification. If it is opening or open, send a notification and toggle garage door switch [switch.tor] again (Attempt 2). Wait 3 seconds. If closing or closed, send a success notification. If opening or open, send a notification and toggle garage door switch [switch.tor] a third time (Attempt 3), wait 3 seconds, and send a status notification. For any other state after Attempt 1 or Attempt 2, send an error notification. Then, wait up to 2 minutes for garage door cover [cover.tor] to become closed. Set a variable indicating success based on the wait result. Finally, send a final Telegram notification reporting whether the garage was closed successfully or not.",
|
|
"natural_language": {
|
|
"trigger": "The automation can be triggered in four ways: when the garage open too long sensor [binary_sensor.garage_open_too_long] indicates the door has been open too long, when the sun [sun.sun] sets, when the all lights off sensor [binary_sensor.all_lights_off] indicates all lights are off, or when Home Assistant starts up.",
|
|
"conditions": "For the automation to proceed, all of the following must be true: it must be after sunset (the sun [sun.sun] is below the horizon), all lights in the home must be off (all lights off sensor [binary_sensor.all_lights_off] is on), and the garage door must have been reported as open for too long (garage open too long sensor [binary_sensor.garage_open_too_long] is on).",
|
|
"action": "The automation first records the garage door's current position. It then sends a Telegram warning that the garage has been open for 30 minutes, it's dark, and lights are off, and that it will attempt to close the door in one minute, during which the garage light [light.sonoffbnsz01] will flash. During the one-minute waiting period, it continuously checks if the door moves more than 10% from its initial position; if it does, it cancels the procedure and sends a notification. If the door remains relatively still, it proceeds to check that the door is indeed open more than 13%. It then attempts to close the garage door by toggling the garage door switch [switch.tor] up to three times, with status notifications after each attempt. It waits for up to two minutes for the door to fully close and finally sends a summary notification reporting success or failure."
|
|
},
|
|
"human_like": "Automatically closes the garage door if it has been left open for too long after sunset and all house lights are off, with safety checks and notifications.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_set_next_run_time_when_schedule_enabled_or_time_changed",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] turns on OR Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] turns on OR When Irrigation Cycle1 Schedule Time [input_select.irrigation_cycle1_schedule_time] changes state OR Irrigation Cycle2 Schedule Time [input_select.irrigation_cycle2_schedule_time] changes state OR When Irrigation Cycle1 Watering Days [input_select.irrigation_cycle1_watering_days] changes state OR Irrigation Cycle2 Watering Days [input_select.irrigation_cycle2_watering_days] changes state. CONDITIONS: Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] is on AND (Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] is on OR Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] is on). ACTIONS: Set variable 'cycle_num' to '1' if the triggering entity ID contains 'cycle1', otherwise '2'. Then, set the date and time for input_datetime.irrigation_cycle{{ cycle_num }}_next_run_time. The date is set to today if the current time is before the scheduled time for the corresponding cycle, otherwise tomorrow. The time is set to the scheduled time for the corresponding cycle.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when either the Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] or Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] is turned on, or when the schedule time for either cycle (Irrigation Cycle1 Schedule Time [input_select.irrigation_cycle1_schedule_time] or Irrigation Cycle2 Schedule Time [input_select.irrigation_cycle2_schedule_time]) changes, or when the watering days for either cycle (Irrigation Cycle1 Watering Days [input_select.irrigation_cycle1_watering_days] or Irrigation Cycle2 Watering Days [input_select.irrigation_cycle2_watering_days]) change.",
|
|
"conditions": "The automation only runs if the Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] is on, and at least one of the two irrigation cycles is enabled (either Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] or Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] is on).",
|
|
"action": "First, it determines which irrigation cycle (1 or 2) triggered the automation based on the entity ID. Then, it calculates and sets the next run time for that specific cycle. The date is set to today if the current time is before the scheduled time for that cycle, otherwise it's set to tomorrow. The time is set to the scheduled time selected for that cycle."
|
|
},
|
|
"human_like": "Updates the next scheduled run time for an irrigation cycle whenever its schedule is enabled or its timing settings are changed, ensuring the system is ready for the next watering event.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_run_cycle_1",
|
|
"result": {
|
|
"structured": "TRIGGER: When the current time matches the scheduled time set in input_datetime.irrigation_cycle1_next_run_time. CONDITIONS: Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] is on. ACTIONS: Execute script.irrigation_check_a_sensor_data with data {cycle: '1'} AND execute script.irrigation_update_next_runtime with data {cycle: '1'}.",
|
|
"natural_language": {
|
|
"trigger": "At the specific time scheduled in the entity input_datetime.irrigation_cycle1_next_run_time.",
|
|
"conditions": "The automation is only allowed to run if the switch Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] is turned on.",
|
|
"action": "It runs two scripts: first, it executes the script 'irrigation_check_a_sensor_data' for cycle 1, and then it executes the script 'irrigation_update_next_runtime' to schedule the next run for cycle 1."
|
|
},
|
|
"human_like": "Starts the morning irrigation cycle at a scheduled time, provided the cycle is enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_run_cycle_2",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time reaches the value set in input_datetime.irrigation_cycle2_next_run_time. CONDITIONS: Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] is on. ACTIONS: Execute script.irrigation_check_a_sensor_data with data {cycle: '2'} AND execute script.irrigation_update_next_runtime with data {cycle: '2'}.",
|
|
"natural_language": {
|
|
"trigger": "At the scheduled time specified by the input_datetime.irrigation_cycle2_next_run_time.",
|
|
"conditions": "The automation will only run if the Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] is switched on.",
|
|
"action": "It runs two scripts: first, it executes 'irrigation_check_a_sensor_data' for cycle 2, and then it executes 'irrigation_update_next_runtime' for cycle 2."
|
|
},
|
|
"human_like": "Starts the second irrigation cycle at a scheduled time, provided the cycle is enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_run_a_cycle_manually",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] changes from off to on OR When Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run] changes from off to on. CONDITIONS: If Irrigation Cycle2 Running [input_boolean.irrigation_cycle2_running] is off (when the trigger is Irrigation Cycle1 Manual Run) OR If Irrigation Cycle1 Running [input_boolean.irrigation_cycle1_running] is off (when the trigger is Irrigation Cycle2 Manual Run). ACTIONS: Set Irrigation Current Zone [input_text.irrigation_current_zone] to 'Initialisierung...'. Turn off Irrigation Valves [switch.irrigation_valves]. Turn off Irrigation Run a Cycle Script [script.irrigation_run_a_cycle] and Irrigation Irrigate a Zone Script [script.irrigation_irrigate_a_zone]. Save the current state of Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] to Irrigation Cycle1 Enable Saved State [input_boolean.irrigation_cycle1_enable_saved_state]. Save the current state of Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] to Irrigation Cycle2 Enable Saved State [input_boolean.irrigation_cycle2_enable_saved_state]. Turn off Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] and Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable]. Run Irrigation Run a Cycle Script [script.irrigation_run_a_cycle] with parameter cycle set to 1 (if trigger was Irrigation Cycle1 Manual Run) or 2 (if trigger was Irrigation Cycle2 Manual Run). Wait until Irrigation Run a Cycle Script [script.irrigation_run_a_cycle] is off. Turn off Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] and Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run]. Restore the saved state to Irrigation Cycle1 Enable [input_boolean.irrigation_cycle1_enable] from Irrigation Cycle1 Enable Saved State [input_boolean.irrigation_cycle1_enable_saved_state]. Restore the saved state to Irrigation Cycle2 Enable [input_boolean.irrigation_cycle2_enable] from Irrigation Cycle2 Enable Saved State [input_boolean.irrigation_cycle2_enable_saved_state].",
|
|
"natural_language": {
|
|
"trigger": "When either the Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] or the Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run] switch is turned on.",
|
|
"conditions": "The automation checks that the other cycle is not currently running. Specifically, if the trigger was for cycle 1, it ensures cycle 2 is not running. If the trigger was for cycle 2, it ensures cycle 1 is not running.",
|
|
"action": "The automation first sets the current zone status to 'Initialisierung...' and turns off all irrigation valves. It then stops any currently running irrigation scripts. It saves the current enabled states of both irrigation cycles, disables both cycles, and starts the specific irrigation cycle script that was manually triggered (cycle 1 or 2). After waiting for that script to finish, it turns off the manual run switches and finally restores the saved enabled states for both cycles."
|
|
},
|
|
"human_like": "This automation allows you to manually start a specific irrigation cycle, ensuring it runs safely by first disabling other cycles and then restoring the previous settings once it's done.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_cancel_a_manual_cycle",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] OR Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run] changes from on to off. CONDITIONS: None. ACTIONS: Turn off Irrigation Valves [switch.irrigation_valves]; Turn off Irrigation Run a Cycle Script [script.irrigation_run_a_cycle] AND Irrigation Irrigate a Zone Script [script.irrigation_irrigate_a_zone]; Cancel Irrigation Zone Duration Timer [timer.irrigation_zone_duration]; Turn off the corresponding running indicator (input_boolean.irrigation_cycle1_running if trigger was from Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run], otherwise input_boolean.irrigation_cycle2_running); Set Irrigation Current Zone [input_text.irrigation_current_zone] to '-'.",
|
|
"natural_language": {
|
|
"trigger": "When either the Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] or the Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run] is turned off.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "It stops all irrigation activity by turning off the main valve switch, stopping any running irrigation scripts, cancelling the zone duration timer, turning off the corresponding running indicator for the cycle that was cancelled, and resetting the current zone display to a dash."
|
|
},
|
|
"human_like": "Cancels an active manual irrigation cycle, shutting off all valves and resetting the system state.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_cancel_if_it_rains",
|
|
"result": {
|
|
"structured": "TRIGGER: When rain sensor [binary_sensor.mower_rainsensor_triggered] changes to on OR When the template condition 'rain sensor [binary_sensor.mower_rainsensor_triggered] is on' remains true for 1 minute. ACTIONS: Cancel Irrigation Zone Duration Timer [timer.irrigation_zone_duration].",
|
|
"natural_language": {
|
|
"trigger": "When the rain sensor [binary_sensor.mower_rainsensor_triggered] first detects rain, or when the system confirms the rain sensor has been triggered for a full minute.",
|
|
"conditions": "There are no additional conditions for this automation.",
|
|
"action": "Cancels the running Irrigation Zone Duration Timer [timer.irrigation_zone_duration]."
|
|
},
|
|
"human_like": "Cancels the garden irrigation timer if it starts to rain.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_master_control_switch",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] changes state OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Turn off Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] AND turn off Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run]. THEN, if Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] is on, turn on all automations whose names start with 'Irrigation - ' but exclude those containing 'Master Control Switch' or 'Regular pumping'; otherwise, turn them off. THEN, publish MQTT payload '0' to topic 'sonoff4ch/cmnd/pulsetime1', 'sonoff4ch/cmnd/pulsetime2', 'sonoff4ch/cmnd/pulsetime3', and 'sonoff4ch/cmnd/pulsetime4'.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs whenever the state of the Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] changes, or when Home Assistant starts up.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "First, it turns off the manual run switches for both irrigation cycles: Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run] and Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run]. Then, it checks the state of the master switch. If the master switch is on, it enables all other irrigation-related automations (excluding the master control and regular pumping ones). If the master switch is off, it disables those same automations. Finally, it sends commands via MQTT to set the pulse times for four channels on a Sonoff device to zero, effectively stopping any active irrigation pulses."
|
|
},
|
|
"human_like": "This automation acts as a master switch for the irrigation system, resetting manual controls, enabling or disabling all other irrigation automations based on its state, and ensuring irrigation valves are closed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_failsafe_pump_control_switch",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] changes to off. CONDITIONS: None. ACTIONS: Turn off Irrigation Pump [switch.irrigation_pump].",
|
|
"natural_language": {
|
|
"trigger": "When the Irrigation Master Control Switch [input_boolean.irrigation_master_switch] is turned off.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Turn off the Irrigation Pump [switch.irrigation_pump]."
|
|
},
|
|
"human_like": "Safely turns off the irrigation pump whenever the main irrigation automation is disabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_pump_on",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Valves [switch.irrigation_valves] turns on and remains on for 1 second. CONDITIONS: Irrigation Pump [switch.irrigation_pump] is off. ACTIONS: Turn on Irrigation Pump [switch.irrigation_pump].",
|
|
"natural_language": {
|
|
"trigger": "When the Irrigation Valves [switch.irrigation_valves] are turned on and remain in the on state for at least one second.",
|
|
"conditions": "The Irrigation Pump [switch.irrigation_pump] must currently be off.",
|
|
"action": "Turns on the Irrigation Pump [switch.irrigation_pump]."
|
|
},
|
|
"human_like": "Turns on the irrigation pump automatically when the irrigation valves are activated.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_pump_off",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Valves [switch.irrigation_valves] remains off for 4 seconds OR every 15 minutes (at minutes matching pattern /15). CONDITIONS: Irrigation Valves [switch.irrigation_valves] is off AND Irrigation Zone3 Valve [switch.irrigation_zone3_valve] is off. ACTIONS: Turn off Irrigation Pump [switch.irrigation_pump].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers either when the Irrigation Valves [switch.irrigation_valves] have been turned off for at least 4 seconds, or every 15 minutes (at minutes divisible by 15).",
|
|
"conditions": "Both the Irrigation Valves [switch.irrigation_valves] and the Irrigation Zone3 Valve [switch.irrigation_zone3_valve] must be in the off state.",
|
|
"action": "Turns off the Irrigation Pump [switch.irrigation_pump]."
|
|
},
|
|
"human_like": "Turns off the irrigation pump when all valves are closed, with a short delay to allow for zone switching, and also checks every 15 minutes to ensure the pump is off if needed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_regular_pumping",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time pattern matches every 4 hours at 2 minutes past the hour. CONDITIONS: Irrigation Pump [switch.irrigation_pump] is off. ACTIONS: Turn on Irrigation Pump [switch.irrigation_pump], wait for 15 seconds, then turn off Irrigation Pump [switch.irrigation_pump].",
|
|
"natural_language": {
|
|
"trigger": "The automation runs on a schedule, specifically at 2 minutes past the hour, every four hours.",
|
|
"conditions": "The automation only proceeds if the Irrigation Pump [switch.irrigation_pump] is currently switched off.",
|
|
"action": "It turns on the Irrigation Pump [switch.irrigation_pump], waits for 15 seconds, and then turns it off again."
|
|
},
|
|
"human_like": "This automation runs the irrigation pump for 15 seconds every four hours to regularly pump water, but only if the pump is not already on.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_notify",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Switches Zone1 [switch.irrigation_switches_zone1] OR Irrigation Switches Zone2 [switch.irrigation_switches_zone2] OR Irrigation Switches Zone3 [switch.irrigation_switches_zone3] changes from on to off. OR When Irrigation Switches Zone1 [switch.irrigation_switches_zone1] OR Irrigation Switches Zone2 [switch.irrigation_switches_zone2] OR Irrigation Switches Zone3 [switch.irrigation_switches_zone3] changes from off to on. CONDITIONS: None. ACTIONS: Send a notification via notify.telegram_schick_home with title '💦 Bewässerung' and a message containing the action variable ('Start' or 'Ende') and the friendly name of the triggering entity.",
|
|
"natural_language": {
|
|
"trigger": "Whenever any of the irrigation zone switches (Irrigation Switches Zone1 [switch.irrigation_switches_zone1], Irrigation Switches Zone2 [switch.irrigation_switches_zone2], or Irrigation Switches Zone3 [switch.irrigation_switches_zone3]) turns on or turns off.",
|
|
"conditions": "There are no conditions that need to be met.",
|
|
"action": "Sends a Telegram notification with the title '💦 Bewässerung' and a message stating whether the zone started or ended, along with the name of the specific zone."
|
|
},
|
|
"human_like": "Sends a notification when an irrigation zone starts or stops watering.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_failsafe_master_control_switch",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] turns off OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Turn off Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run], Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run], Irrigation Zone1 Valve [switch.irrigation_zone1_valve], Irrigation Zone2 Valve [switch.irrigation_zone2_valve], and Irrigation Zone3 Valve [switch.irrigation_zone3_valve].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the Irrigation Master Control Switch [input_boolean.irrigation_master_control_switch] is turned off, or when the Home Assistant system starts up.",
|
|
"conditions": "There are no conditions that must be met for the action to run.",
|
|
"action": "It turns off the manual run controls for both irrigation cycles and all three irrigation zone valves. Specifically, it turns off Irrigation Cycle1 Manual Run [input_boolean.irrigation_cycle1_manual_run], Irrigation Cycle2 Manual Run [input_boolean.irrigation_cycle2_manual_run], Irrigation Zone1 Valve [switch.irrigation_zone1_valve], Irrigation Zone2 Valve [switch.irrigation_zone2_valve], and Irrigation Zone3 Valve [switch.irrigation_zone3_valve]."
|
|
},
|
|
"human_like": "This automation acts as a safety switch, turning off all irrigation controls and valves when the master switch is disabled or when the system restarts.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_failsafe_valve_1_on",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Zone1 Valve [switch.irrigation_zone1_valve] turns on. CONDITIONS: None. ACTIONS: Turn off Irrigation Zone2 Valve [switch.irrigation_zone2_valve], then wait until Irrigation Zone1 Valve [switch.irrigation_zone1_valve] is off (with a timeout of 2 hours and 15 seconds), then turn off Irrigation Zone1 Valve [switch.irrigation_zone1_valve].",
|
|
"natural_language": {
|
|
"trigger": "When the Irrigation Zone1 Valve [switch.irrigation_zone1_valve] is turned on.",
|
|
"conditions": "There are no conditions that must be met for the actions to run.",
|
|
"action": "Immediately turns off the Irrigation Zone2 Valve [switch.irrigation_zone2_valve]. Then, it waits for the Irrigation Zone1 Valve [switch.irrigation_zone1_valve] to be turned off, but will proceed after a maximum wait time of 2 hours and 15 seconds. Finally, it turns off the Irrigation Zone1 Valve [switch.irrigation_zone1_valve]."
|
|
},
|
|
"human_like": "Acts as a failsafe for irrigation valve 1, ensuring valve 2 is off when valve 1 starts, and then automatically turning off valve 1 after a set time or when it's manually turned off.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "irrigation_failsafe_valve_2_on",
|
|
"result": {
|
|
"structured": "TRIGGER: When Irrigation Zone2 Valve [switch.irrigation_zone2_valve] turns on. CONDITIONS: None. ACTIONS: Turn off Irrigation Zone1 Valve [switch.irrigation_zone1_valve], then wait for Irrigation Zone2 Valve [switch.irrigation_zone2_valve] to turn off, with a timeout of 2 hours and 15 seconds, and then turn off Irrigation Zone2 Valve [switch.irrigation_zone2_valve].",
|
|
"natural_language": {
|
|
"trigger": "When the Irrigation Zone2 Valve [switch.irrigation_zone2_valve] is turned on.",
|
|
"conditions": "There are no conditions that must be met for this automation to run.",
|
|
"action": "First, it turns off the Irrigation Zone1 Valve [switch.irrigation_zone1_valve]. Then, it waits for the Irrigation Zone2 Valve [switch.irrigation_zone2_valve] to turn off on its own. If the valve does not turn off within 2 hours and 15 seconds, the automation will proceed anyway. Finally, it turns off the Irrigation Zone2 Valve [switch.irrigation_zone2_valve]."
|
|
},
|
|
"human_like": "This automation acts as a failsafe for irrigation zone 2, ensuring zone 1 is off when zone 2 starts and automatically turning off zone 2 after a set time or when it stops.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "mower_notify_status",
|
|
"result": {
|
|
"structured": "TRIGGER: When Mower [lawn_mower.mower] changes state. CONDITIONS: The new state of Mower [lawn_mower.mower] is different from its previous state. ACTIONS: Send a Telegram notification to telegram_schick_home with the title '🏎️ Lanroid M500' and a message containing the new state and previous state of Mower [lawn_mower.mower].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the Mower [lawn_mower.mower] changes.",
|
|
"conditions": "The change in state must be a transition to a different value than the previous one.",
|
|
"action": "Sends a notification via Telegram to the recipient 'telegram_schick_home' with a title indicating the mower model and a message showing the new state and the previous state."
|
|
},
|
|
"human_like": "Sends a Telegram notification whenever the lawn mower's operating state changes.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "mower_notify_error",
|
|
"result": {
|
|
"structured": "TRIGGER: When the state of mower error sensor [sensor.mower_error] changes. CONDITIONS: The new state of mower error sensor [sensor.mower_error] is different from its previous state. ACTIONS: Send a Telegram notification via notify.telegram_schick_home with a title '🏎️ Lanroid M500' and a message containing the new and previous error states.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value reported by the mower error sensor [sensor.mower_error] changes.",
|
|
"conditions": "The change must be a genuine state change, meaning the new value is different from the old value.",
|
|
"action": "Sends a notification to a Telegram user or group with the title '🏎️ Lanroid M500' and a message showing the new error state and the previous error state."
|
|
},
|
|
"human_like": "Sends a Telegram alert whenever the robotic mower reports a new error code.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "nataljas_night_shift",
|
|
"result": {
|
|
"structured": "TRIGGER: At 07:00 OR at 19:00. CONDITIONS: natalja schedule calendar [calendar.dienstplan_natalja_schick] state is on. ACTIONS: If the start time of natalja schedule calendar [calendar.dienstplan_natalja_schick] is within the next 24 hours but has not yet started, turn on natalja night shift [input_boolean.nataljas_night_shift]; otherwise, turn it off.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs daily at 7:00 AM and 7:00 PM.",
|
|
"conditions": "It checks if the natalja schedule calendar [calendar.dienstplan_natalja_schick] is currently in an 'on' state.",
|
|
"action": "If the calendar event's start time is within the next 24 hours and has not yet begun, it turns on the natalja night shift [input_boolean.nataljas_night_shift] indicator. Otherwise, it turns the indicator off."
|
|
},
|
|
"human_like": "Manages Natalja's night shift indicator based on her work schedule, updating it twice a day.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "radio_stop",
|
|
"result": {
|
|
"structured": "TRIGGER: When radio station select [input_select.radio_station] changes to 'Stop'. CONDITIONS: None. ACTIONS: Execute script.radio_stop.",
|
|
"natural_language": {
|
|
"trigger": "When the selected radio station [input_select.radio_station] is changed to the 'Stop' option.",
|
|
"conditions": "There are no additional conditions that need to be met.",
|
|
"action": "Runs the script named 'radio_stop' [script.radio_stop]."
|
|
},
|
|
"human_like": "Stops the radio when the 'Stop' option is selected from the station list.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "radio_stream",
|
|
"result": {
|
|
"structured": "TRIGGER: When radio station select [input_select.radio_station] changes state OR When radio player select [input_select.radio_player] changes state. CONDITIONS: None. ACTIONS: Turn off a media player determined by a template. The template maps the previous state of the triggering entity (trigger.from_state) to a media player entity_id from a predefined dictionary. If the previous state is not a key in the dictionary, the default target is nest mini media player [media_player.nest_mini]. Then, execute the script radio [script.radio].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selected radio station [input_select.radio_station] changes, or whenever the selected radio player [input_select.radio_player] changes.",
|
|
"conditions": "There are no conditions that must be met for the actions to run.",
|
|
"action": "First, turn off a specific media player. The player to turn off is chosen based on which entity triggered the automation and its previous state. It uses a mapping of player names to media player entities. If the previous state doesn't match a known player, it defaults to turning off the nest mini media player [media_player.nest_mini]. After that, it runs the 'radio' script [script.radio]."
|
|
},
|
|
"human_like": "Manages radio playback by turning off the previously selected player and starting a radio stream whenever the station or player selection is changed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "radio_volume",
|
|
"result": {
|
|
"structured": "TRIGGER: When radio volume number [input_number.radio_volume] changes state. CONDITIONS: None. ACTIONS: Call service media_player.volume_set. The target entity is determined by a template: if the current state of radio player select [input_select.radio_player] matches a key in a predefined mapping, use the corresponding media player entity; otherwise, use nest mini media player [media_player.nest_mini]. The volume level is set to the current state of radio volume number [input_number.radio_volume].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the radio volume number [input_number.radio_volume] is changed.",
|
|
"conditions": "There are no conditions that must be met for this automation to run.",
|
|
"action": "Sets the volume of a selected media player. The specific player is chosen based on the current selection of the radio player select [input_select.radio_player]. It can target players like the google home 9539 media player [media_player.googlehome9539], nest mini media player [media_player.nest_mini], sound blaster media player [media_player.soundblaster], hallway media player [media_player.flur], kristina media player [media_player.kristina], home group media player [media_player.home_group], or ground floor media player [media_player.erdgeschoss]. If the selection doesn't match any of these, it defaults to the nest mini media player [media_player.nest_mini]. The volume is set to the exact value from the radio volume number [input_number.radio_volume]."
|
|
},
|
|
"human_like": "This automation synchronizes the volume of a chosen radio player with a central volume slider, allowing you to control audio levels from one place.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_kueche",
|
|
"result": {
|
|
"structured": "TRIGGER: When a telegram_command event with command /kuechenlicht is received OR When a telegram_callback event with command /kuechenlicht is received OR When a telegram_command event with command /essecke is received OR When a telegram_callback event with command /essecke is received. CONDITIONS: None. ACTIONS: If the command is /kuechenlicht, toggle kitchen light channel 1 [light.shellyswitch25_10a36d_channel_1], wait up to 1 second for its state to change, then send a Telegram callback message with the light's friendly name and state. If the command is /essecke, toggle kitchen light channel 2 [light.shellyswitch25_10a36d_channel_2], wait up to 1 second for its state to change, then send a Telegram callback message with the light's friendly name and state.",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback event is received with the command '/kuechenlicht' or '/essecke'.",
|
|
"conditions": "There are no additional conditions.",
|
|
"action": "Depending on the command received, the automation toggles a specific kitchen light and sends a status update back to Telegram. For the '/kuechenlicht' command, it toggles the kitchen light channel 1 [light.shellyswitch25_10a36d_channel_1], waits briefly for the state to update, and then sends a message with the light's name and current state. For the '/essecke' command, it performs the same actions for kitchen light channel 2 [light.shellyswitch25_10a36d_channel_2]."
|
|
},
|
|
"human_like": "This automation allows you to control two kitchen lights via Telegram commands, toggling them on or off and getting an immediate status update in the chat.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_rollade_1",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command /rollade_1 is received OR when a Telegram callback event with command /rollade_1 is received. CONDITIONS: None. ACTIONS: Execute script.cover_one_button with data entity_id: shellyswitch25_f37a8c. Then, wait for up to 2 seconds for the state of shelly switch 25 f37a8c cover [cover.shellyswitch25_f37a8c] to change, continuing even if the timeout is reached. Finally, execute telegram callback script [script.telegram_callback] with target set to the chat ID from the trigger event, message_id set to the message ID from the callback event (or 1000 if the trigger was a command event), and a message containing the friendly name and current state of shelly switch 25 f37a8c cover [cover.shellyswitch25_f37a8c].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the specific command '/rollade_1' is received.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "First, it runs the 'cover_one_button' script for the device 'shellyswitch25_f37a8c'. It then waits for up to two seconds for the state of the shelly switch 25 f37a8c cover [cover.shellyswitch25_f37a8c] to change, but will continue even if no change occurs. Finally, it sends a Telegram callback message to the user who triggered it, reporting the current state of the cover."
|
|
},
|
|
"human_like": "Controls a specific roller blind via Telegram and sends a status update back to the user.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_rollade_2",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command '/rollade_2' is received OR when a Telegram callback event with command '/rollade_2' is received. CONDITIONS: None. ACTIONS: First, execute the script 'cover_one_button' with the target entity 'shellyswitch25_f37b28'. Then, wait for up to 2 seconds for the state of shelly switch 25 f37b28 cover [cover.shellyswitch25_f37b28] to change. If the state changes within 2 seconds, proceed immediately; if not, continue after the timeout. Finally, execute the telegram callback script [script.telegram_callback] with the target chat ID from the trigger event, the message ID from the trigger event (or 1000 if the trigger was a command event), and a message containing the friendly name and current state of shelly switch 25 f37b28 cover [cover.shellyswitch25_f37b28].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the specific command '/rollade_2' is received.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "First, it triggers a one-button cover script for the shellyswitch25_f37b28 device. It then waits for up to two seconds for the state of the shelly switch 25 f37b28 cover [cover.shellyswitch25_f37b28] to change. After that, it sends a Telegram callback message to the original chat, including the cover's friendly name and its current state."
|
|
},
|
|
"human_like": "Controls a specific roller shutter via Telegram commands and sends back its status.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_rollade_3",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command '/rollade_3' is received OR when a Telegram callback event with command '/rollade_3' is received. CONDITIONS: None. ACTIONS: Execute script.cover_one_button with entity_id shellyswitch25_10eaa4. Then, wait for a state change on shellyswitch25_10eaa4 cover [cover.shellyswitch25_10eaa4] for up to 2 seconds, proceeding regardless of timeout. Finally, execute telegram callback script [script.telegram_callback] targeting the chat ID from the trigger event, with a message ID derived from the trigger (the original message's ID for a callback event, otherwise 1000), and a message containing the friendly name and current state of shellyswitch25_10eaa4 cover [cover.shellyswitch25_10eaa4].",
|
|
"natural_language": {
|
|
"trigger": "When a user sends the '/rollade_3' command via Telegram, either as a direct command or via a callback interaction.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "First, it triggers a one-button cover action for the shellyswitch25_10eaa4 device. It then waits for up to two seconds for the state of the shellyswitch25 10eaa4 cover [cover.shellyswitch25_10eaa4] to change. After the wait, it sends a Telegram callback message to the user who triggered the command, confirming the action. The message includes the friendly name and current state of the cover."
|
|
},
|
|
"human_like": "Controls a specific roller shutter via Telegram command and sends back a status update.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_rollade_4",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command /rollade_4 is received OR when a Telegram callback event with command /rollade_4 is received. CONDITIONS: None. ACTIONS: First, execute the script cover_one_button for the entity shellyswitch25_10d315. Then, wait for the state of shellyswitch25 10d315 cover [cover.shellyswitch25_10d315] to change, with a timeout of 2 seconds, proceeding regardless of timeout. Finally, execute the script telegram callback [script.telegram_callback] with target set to the chat ID from the trigger event, message ID set to the callback's message ID (or 1000 if triggered by command), and message containing the friendly name and current state of shellyswitch25 10d315 cover [cover.shellyswitch25_10d315].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the specific command /rollade_4 is received.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "First, it triggers the cover_one_button script for the shellyswitch25_10d315 device. It then waits up to two seconds for the state of the terrace cover [cover.shellyswitch25_10d315] to change. Finally, it sends a Telegram callback message to the original chat, reporting the current status of the terrace cover [cover.shellyswitch25_10d315]."
|
|
},
|
|
"human_like": "Controls the terrace roller shutter via Telegram and sends back its current status.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_wohnlicht",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command /wohnlicht is received OR When a Telegram callback event with command /wohnlicht is received. CONDITIONS: None. ACTIONS: Toggle living room light [light.shelly1pmminig3_34b7da8db254_switch_0]. Wait for up to 1 second for the state of living room light [light.shelly1pmminig3_34b7da8db254_switch_0] to change (continue regardless). Then, execute telegram callback script [script.telegram_callback] with a message indicating the friendly name and current state of living room light [light.shelly1pmminig3_34b7da8db254_switch_0], targeting the chat ID from the trigger event.",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the command '/wohnlicht' is received.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "First, toggle the living room light [light.shelly1pmminig3_34b7da8db254_switch_0] on or off. Then, the automation waits briefly (up to one second) for the light's state to update. Finally, it sends a Telegram callback message to the user who triggered the command, confirming the action by stating the light's friendly name and its new state (on or off)."
|
|
},
|
|
"human_like": "Toggles the living room light via a Telegram command and sends a confirmation message back to the user.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_sonoffpow_01",
|
|
"result": {
|
|
"structured": "TRIGGER: When a telegram_command event with command '/wandlicht' is received OR When a telegram_callback event with command '/wandlicht' is received. CONDITIONS: None. ACTIONS: Toggle sonoff power light 1 [light.sonoffpow_01]. Then, wait up to 5 seconds for the state of sonoff power light 1 [light.sonoffpow_01] to change (continue regardless). Then, execute the telegram callback script [script.telegram_callback] with a message containing the friendly name and current state of sonoff power light 1 [light.sonoffpow_01].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the specific command '/wandlicht' is received.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "First, toggle the state of the sonoff power light 1 [light.sonoffpow_01]. Then, wait for up to 5 seconds for the light's state to change, but proceed even if it doesn't. Finally, send a Telegram callback message that includes the light's friendly name and its new state."
|
|
},
|
|
"human_like": "Toggles a specific light and sends a status update to Telegram when a '/wandlicht' command is received.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_sonoffpow_03",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command event with command '/terrassenlicht' is received OR When a Telegram callback event with command '/terrassenlicht' is received. CONDITIONS: None. ACTIONS: Toggle sonoff power light 3 [light.sonoffpow_03]. Wait up to 5 seconds for the state of sonoff power light 3 [light.sonoffpow_03] to change (proceed regardless after timeout). Send a Telegram callback message to the chat ID from the trigger event, with a message ID from the trigger event (or 1000 if it was a command event), containing the friendly name and current state of sonoff power light 3 [light.sonoffpow_03].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback event is received with the specific command '/terrassenlicht'.",
|
|
"conditions": "There are no conditions that must be met for this automation to proceed.",
|
|
"action": "First, it toggles the terrace light, sonoff power light 3 [light.sonoffpow_03]. It then waits for up to five seconds for the light's state to change, but will continue even if it doesn't. Finally, it sends a response back to the Telegram chat, confirming the action by stating the light's friendly name and its new state."
|
|
},
|
|
"human_like": "Toggles the terrace light and sends a confirmation message to Telegram when the '/terrassenlicht' command is used.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_sonoffpow_04",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command '/ambiente_kueche' is received OR When a Telegram callback with command '/ambiente_kueche' is received. CONDITIONS: None. ACTIONS: Toggle sonoff power light 4 [light.sonoffpow_04]. Wait for up to 5 seconds for the state of sonoff power light 4 [light.sonoffpow_04] to change (continue regardless). Then, run the telegram callback script [script.telegram_callback] with a message containing the friendly name and current state of sonoff power light 4 [light.sonoffpow_04], targeting the chat ID from the trigger event.",
|
|
"natural_language": {
|
|
"trigger": "When a specific Telegram command '/ambiente_kueche' is sent via a direct message or as a callback from an inline button.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "First, it toggles the kitchen light named sonoff power light 4 [light.sonoffpow_04] on or off. It then waits briefly (up to 5 seconds) for the light's state to update. Finally, it sends a Telegram callback message back to the user, confirming the action by stating the light's name and its new state."
|
|
},
|
|
"human_like": "Toggles the kitchen light and sends a Telegram confirmation when the '/ambiente_kueche' command is used.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "camera_upload_to_telegram",
|
|
"result": {
|
|
"structured": "TRIGGER: When a folder_watcher event occurs with event_type 'closed'. CONDITIONS: The event path contains the substring 'cams'. ACTIONS: Based on the file type, perform one of three sequences: 1. If the file is a video (ends with '.mp4' and not 'e.mp4'), convert it using shell_command.cam_convert. 2. If the file is a converted video (ends with 'e.mp4'), send a Telegram notification with the video, remove the original video file, and if a camera-specific prompt exists, generate an AI description and send a mobile notification with links. 3. If the file is an image (ends with '.jpg'), send a Telegram notification with the photo, and if a camera-specific prompt exists, generate an AI description and send a mobile notification with links. The camera context (name, icon, prompt, UID) is derived from the folder name (einfahrt, terrasse, garage, or other).",
|
|
"natural_language": {
|
|
"trigger": "When a file is closed in a monitored folder, as indicated by a folder_watcher event.",
|
|
"conditions": "The path of the closed file must contain the word 'cams'.",
|
|
"action": "The automation processes the file based on its type. For a new video, it converts the file. For a converted video, it sends a notification to Telegram, removes the original video file, and if configured for the specific camera, uses AI to generate a description and sends a rich notification to a mobile app. For an image, it sends a photo to Telegram and, if configured, also generates an AI description and sends a mobile notification. The camera's name, icon, and other details are determined by the folder in which the file was found."
|
|
},
|
|
"human_like": "Automatically processes new camera recordings, converting videos and sending smart notifications with AI-generated descriptions to Telegram and a mobile app.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "camera_surveillance_management",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] remains in any state for 4 minutes OR When the time matches a pattern every 15 minutes. CONDITIONS: (Current hour is before 12 OR after 22) OR family group [group.family] is not_home. ACTIONS: Activate Camera Detection On Scene [scene.camera_detection_on].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the family group [group.family] has been in its current state for four minutes, or at regular intervals every 15 minutes.",
|
|
"conditions": "The automation only proceeds if it is either before noon or after 10 PM, or if the family group [group.family] is reported as not_home.",
|
|
"action": "It turns on the Camera Detection On Scene [scene.camera_detection_on]."
|
|
},
|
|
"human_like": "Turns on camera surveillance either when the family is away or during late night/early morning hours, checking every 15 minutes or after a period of inactivity.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "camera_ptz_buttons_control",
|
|
"result": {
|
|
"structured": "TRIGGER: When any of the following button entities change state: garage ptz up button [button.garage_ptz_up], garage ptz down button [button.garage_ptz_down], garage ptz left button [button.garage_ptz_left], garage ptz right button [button.garage_ptz_right], garage ptz zoom in button [button.garage_ptz_zoom_in], garage ptz zoom out button [button.garage_ptz_zoom_out], indoor ptz up button [button.innen_ptz_up], indoor ptz down button [button.innen_ptz_down], indoor ptz left button [button.innen_ptz_left], indoor ptz right button [button.innen_ptz_right], indoor ptz zoom in button [button.innen_ptz_zoom_in], indoor ptz zoom out button [button.innen_ptz_zoom_out]. CONDITIONS: None. ACTIONS: Wait for 1 second, then press garage ptz stop button [button.garage_ptz_stop], then press indoor ptz stop button [button.innen_ptz_stop].",
|
|
"natural_language": {
|
|
"trigger": "When any of the PTZ control buttons for the garage or indoor cameras are pressed or change state.",
|
|
"conditions": "There are no conditions that must be met for this automation to run.",
|
|
"action": "After a one-second delay, the automation presses the stop button for the garage PTZ camera and then presses the stop button for the indoor PTZ camera."
|
|
},
|
|
"human_like": "Stops both the garage and indoor PTZ cameras one second after any of their directional or zoom buttons are used.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "tags_wandlicht_toggle",
|
|
"result": {
|
|
"structured": "TRIGGER: When a tag with ID 4d4d9d64-59ff-4a65-8d8c-d1a088f46599 is scanned (tag_scanned event). CONDITIONS: None. ACTIONS: Toggle sonoff power light 1 [light.sonoffpow_01].",
|
|
"natural_language": {
|
|
"trigger": "When a specific NFC tag with the ID 4d4d9d64-59ff-4a65-8d8c-d1a088f46599 is scanned.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Toggles the state of the sonoff power light 1 [light.sonoffpow_01], turning it on if it's off, or off if it's on."
|
|
},
|
|
"human_like": "Toggles a living room light by scanning a specific NFC tag.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_control",
|
|
"result": {
|
|
"structured": "TRIGGER: When a telegram_callback event occurs OR When a telegram_command event occurs. CONDITIONS: None. ACTIONS: If the command is '/start', send a Telegram message with text 'Tastatur aktiviert' and a keyboard containing '/alarm, /tor, /start, /help' to the chat ID from the event, then execute script.telegram_callback [script.telegram_callback] with a message explaining the start command. If the command is '/help', execute script.telegram_callback [script.telegram_callback] with a detailed help message listing various commands for controlling garage, lights, and blinds.",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram callback or a Telegram command event is received.",
|
|
"conditions": "There are no additional conditions; the automation runs immediately upon receiving the event.",
|
|
"action": "Depending on the command received, the automation responds differently. If the command is '/start', it sends a confirmation message that the keyboard is activated and provides a quick-access keyboard, then sends a follow-up message explaining the start command. If the command is '/help', it sends a comprehensive help message listing all available commands for controlling the garage, various lights, and blinds."
|
|
},
|
|
"human_like": "This automation provides interactive control via Telegram, responding to the /start and /help commands with instructional messages and a control keyboard.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "telegram_tuyaplug3",
|
|
"result": {
|
|
"structured": "TRIGGER: When a Telegram command /ambiente_wohnen is received via event telegram_command OR when a Telegram callback /ambiente_wohnen is received via event telegram_callback. CONDITIONS: None. ACTIONS: Toggle the state of tuya plug 3 light [light.tuyaplug3]. Then, wait for a state change in tuya plug 3 light [light.tuyaplug3] for up to 5 seconds (proceeding regardless). Finally, execute telegram callback script [script.telegram_callback] with target chat ID from the trigger event and a message containing the friendly name and state of tuya plug 3 light [light.tuyaplug3].",
|
|
"natural_language": {
|
|
"trigger": "When a Telegram command or callback with the command '/ambiente_wohnen' is received.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "First, toggle the tuya plug 3 light [light.tuyaplug3] on or off. Then, it waits for up to 5 seconds for the light's state to change, but continues even if no change occurs. Finally, it sends a Telegram callback message to the original chat, reporting the current state of the light."
|
|
},
|
|
"human_like": "Toggles the living room plug light and sends a Telegram confirmation message when the '/ambiente_wohnen' command is received.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "w10_irrigation_manual_control",
|
|
"result": {
|
|
"structured": "TRIGGER: When W10 Irrigation Manual Run [input_boolean.w10_irrigation_manual_run] changes state. CONDITIONS: None. ACTIONS: If W10 Irrigation Manual Run [input_boolean.w10_irrigation_manual_run] is on, then run script W10 Irrigation Run with parameter cycle set to 'manual'. If the new state of W10 Irrigation Manual Run [input_boolean.w10_irrigation_manual_run] is off, then turn on W10 Irrigation Stop Script [script.w10_irrigation_stop].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the manual control switch, W10 Irrigation Manual Run [input_boolean.w10_irrigation_manual_run], changes.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "If the switch is turned on, it starts the irrigation system manually by running the 'W10 Irrigation Run' script. If the switch is turned off, it triggers the 'W10 Irrigation Stop' script to halt the irrigation."
|
|
},
|
|
"human_like": "This automation starts or stops the garden irrigation manually based on a single switch.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "w10_irrigation_scheduled_run",
|
|
"result": {
|
|
"structured": "TRIGGER: At the time specified by input_datetime.w10_irrigation_cycle1_run_time (with variables cycle=cycle1, enable_boolean=input_boolean.w10_irrigation_cycle1_enable) OR At the time specified by input_datetime.w10_irrigation_cycle2_run_time (with variables cycle=cycle2, enable_boolean=input_boolean.w10_irrigation_cycle2_enable). CONDITIONS: (The enable_boolean variable is on) AND (W10 Irrigation Running [input_boolean.w10_irrigation_running] is off) AND (W10 Irrigation Manual Run [input_boolean.w10_irrigation_manual_run] is off) AND (The duration value from input_number.w10_irrigation_<cycle>_duration is greater than 0) AND (sonoff s20 2 switch [switch.sonoffs20_2] is not unavailable) AND (IF W10 Irrigation Use Sensor Data [input_boolean.w10_irrigation_use_sensor_data] is on THEN (lawn temperature sensor [sensor.rasen_temperature] is greater than or equal to W10 Irrigation Temperature Threshold [input_number.w10_irrigation_temperature_threshold] AND Rasen Moisture Sensor [sensor.rasen_moisture] is less than or equal to W10 Irrigation Moisture Threshold [input_number.w10_irrigation_moisture_threshold] AND rain sensor [binary_sensor.mower_rainsensor_triggered] is off) ELSE True). ACTIONS: Execute script.w10_irrigation_run with data: cycle = {{ cycle }}.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at a scheduled time. There are two possible schedules: one for 'cycle1' at the time set in input_datetime.w10_irrigation_cycle1_run_time, and another for 'cycle2' at the time set in input_datetime.w10_irrigation_cycle2_run_time.",
|
|
"conditions": "Several conditions must be met for the irrigation to start. First, the specific cycle (either cycle1 or cycle2) must be enabled via its corresponding input_boolean. Second, the system must not already be running an irrigation (W10 Irrigation Running is off) and there must not be a manual run in progress (W10 Irrigation Manual Run is off). Third, the configured duration for the triggered cycle must be greater than zero. Fourth, the controlling switch (sonoff s20 2 switch) must be available. Finally, if the option to use sensor data (W10 Irrigation Use Sensor Data) is turned on, then additional environmental checks are required: the lawn temperature must be at or above the set threshold, the soil moisture must be at or below the set threshold, and the rain sensor must not be triggered.",
|
|
"action": "If all conditions are satisfied, the automation starts the irrigation by calling the script 'w10_irrigation_run' and passing the relevant cycle (either cycle1 or cycle2) as a parameter."
|
|
},
|
|
"human_like": "This automation starts a scheduled garden irrigation cycle if the system is idle, the cycle is enabled, and environmental conditions (like temperature, soil moisture, and rain) are suitable.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "w10_irrigation_cancel_if_it_rains",
|
|
"result": {
|
|
"structured": "TRIGGER: When rain sensor [binary_sensor.mower_rainsensor_triggered] changes to on OR when rain sensor [binary_sensor.mower_rainsensor_triggered] changes to on and remains on for 1 minute. CONDITIONS: W10 Irrigation Running [input_boolean.w10_irrigation_running] is on. ACTIONS: Execute W10 Irrigation Stop Script [script.w10_irrigation_stop] and send a Telegram notification with a title and a message that depends on which trigger fired.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers either the instant the rain sensor [binary_sensor.mower_rainsensor_triggered] detects rain, or after the rain sensor [binary_sensor.mower_rainsensor_triggered] has been detecting rain for a full minute.",
|
|
"conditions": "The automation only runs if the W10 Irrigation Running [input_boolean.w10_irrigation_running] is currently switched on, indicating the irrigation system is active.",
|
|
"action": "It stops the irrigation by running the W10 Irrigation Stop Script [script.w10_irrigation_stop] and sends a Telegram notification. The message differs based on the trigger: it reports an immediate cancellation if rain was just detected, or a sustained rain stoppage if rain lasted for a minute."
|
|
},
|
|
"human_like": "Cancels the W10 irrigation system if it starts to rain, sending a notification to confirm the action.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "wled_integration_manage",
|
|
"result": {
|
|
"structured": "TRIGGER: When sonoff power light 3 [light.sonoffpow_03] changes state OR When the time matches a pattern every 15 minutes. CONDITIONS: sonoff power light 3 [light.sonoffpow_03] is on OR sonoff power light 3 [light.sonoffpow_03] is off. ACTIONS: If sonoff power light 3 [light.sonoffpow_03] is on, then enable the configuration entry with ID 17c5043bacbffb9c30be8a0fab31ff2f. If sonoff power light 3 [light.sonoffpow_03] is off, then disable the configuration entry with ID 17c5043bacbffb9c30be8a0fab31ff2f.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs whenever the state of the sonoff power light 3 [light.sonoffpow_03] changes, or every 15 minutes on the clock.",
|
|
"conditions": "It only proceeds if the sonoff power light 3 [light.sonoffpow_03] is either turned on or turned off.",
|
|
"action": "Depending on the light's state, it either enables or disables a specific Home Assistant configuration entry (ID: 17c5043bacbffb9c30be8a0fab31ff2f). If the light is on, the entry is enabled. If the light is off, the entry is disabled."
|
|
},
|
|
"human_like": "Enables or disables a WLED integration based on whether a specific terrace light is on or off.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "wled_loop_run",
|
|
"result": {
|
|
"structured": "TRIGGER: When WLED Effects Loop [input_select.wled_effects_loop] changes to 'Nacheinander' OR When WLED Effects Loop [input_select.wled_effects_loop] changes to 'Zufällig'. CONDITIONS: None. ACTIONS: Execute script.wled_loop.",
|
|
"natural_language": {
|
|
"trigger": "When the WLED Effects Loop [input_select.wled_effects_loop] is set to either 'Nacheinander' or 'Zufällig'.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Runs the script named 'wled_loop'."
|
|
},
|
|
"human_like": "Starts the WLED effect loop when the effect mode is set to either sequential or random.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_modus",
|
|
"result": {
|
|
"structured": "TRIGGER: When robi fan speed select [input_select.robi_fan_speed_list] changes state. CONDITIONS: None. ACTIONS: Set the fan speed of robi vacuum [vacuum.robi] to a value determined by a template. The template maps the new state of the trigger to a fan speed string: 'Leise' to 'Silent', 'Standard' to 'Standard', 'Medium' to 'Medium', 'Turbo' to 'Turbo', 'Sanft' to 'Gentle', 'Auto' to 'Auto'. If the new state is not in this mapping, the default fan speed 'Turbo' is used.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selected value in the robi fan speed select [input_select.robi_fan_speed_list] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sets the fan speed of the robi vacuum [vacuum.robi]. The new fan speed is determined by translating the selected value: 'Leise' becomes 'Silent', 'Standard' becomes 'Standard', 'Medium' becomes 'Medium', 'Turbo' becomes 'Turbo', 'Sanft' becomes 'Gentle', and 'Auto' becomes 'Auto'. If the selected value is anything else, the fan speed is set to 'Turbo' as a default."
|
|
},
|
|
"human_like": "Updates the vacuum cleaner's fan speed whenever a different speed is selected from the list.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_raumauswahl",
|
|
"result": {
|
|
"structured": "TRIGGER: When robi zone select [input_select.robi_zone] changes state from 'Raumauswahl'. CONDITIONS: None. ACTIONS: Execute a conditional script based on the current state of robi zone select [input_select.robi_zone]. If state is 'EG', run script.robi_home. If state is 'Küche', run script.robi_kitchen. If state is 'Wohnzimmer', run script.robi_living_room. If state is 'Stube', run script.robi_stube. If state is 'Schlafzimmer', run script.robi_bedroom. If state is 'Flur', run script.robi_flur. If state is 'HWR', run script.robi_hwr. If state is 'WC', run script.robi_wc. Otherwise, do nothing. Then, wait until robi vacuum [vacuum.robi] is in the 'docked' state. Then, wait for a delay of 15 seconds. Then, set robi zone select [input_select.robi_zone] back to 'Raumauswahl'. Then, set robi fan speed select [input_select.robi_fan_speed_list] to 'Turbo'.",
|
|
"natural_language": {
|
|
"trigger": "When the robi zone select [input_select.robi_zone] changes from the 'Raumauswahl' (room selection) option to any other option.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "The automation first runs a specific cleaning script for the selected room based on the new value of the robi zone select. For example, if 'EG' is selected, it runs the 'robi_home' script, or if 'Küche' is selected, it runs the 'robi_kitchen' script, and so on. After starting the cleaning, it waits for the robi vacuum [vacuum.robi] to return to its dock. Once docked, it waits an additional 15 seconds, then resets the robi zone select back to the 'Raumauswahl' option and sets the robi fan speed select [input_select.robi_fan_speed_list] to 'Turbo'."
|
|
},
|
|
"human_like": "Sends the Robi vacuum to clean a selected room and, after it finishes and docks, resets the room selector and sets the fan speed to Turbo.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_schedule_cleaning_on_weekdays",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time reaches the value set in robi start weekdays datetime [input_datetime.robi_start_weekdays]. CONDITIONS: The current weekday is Monday OR Tuesday OR Wednesday OR Thursday OR Friday. ACTIONS: Start cleaning with robi vacuum [vacuum.robi].",
|
|
"natural_language": {
|
|
"trigger": "At the specific time set in the robi start weekdays datetime [input_datetime.robi_start_weekdays].",
|
|
"conditions": "The automation only runs if today is a weekday (Monday, Tuesday, Wednesday, Thursday, or Friday).",
|
|
"action": "Starts the cleaning cycle for the robi vacuum [vacuum.robi]."
|
|
},
|
|
"human_like": "Automatically starts the Robi vacuum cleaner at a scheduled time on weekdays.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi_schedule_cleaning_on_weekends",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time matches the value set in robi start weekends datetime [input_datetime.robi_start_weekends]. CONDITIONS: The current day is Saturday OR Sunday. ACTIONS: Start cleaning with robi vacuum [vacuum.robi].",
|
|
"natural_language": {
|
|
"trigger": "At the specific time set in the robi start weekends datetime [input_datetime.robi_start_weekends].",
|
|
"conditions": "The automation only runs if the current day is a Saturday or a Sunday.",
|
|
"action": "Starts the cleaning cycle for the robi vacuum [vacuum.robi]."
|
|
},
|
|
"human_like": "Starts the Robi vacuum cleaner at a scheduled time on weekends.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "robi__notify",
|
|
"result": {
|
|
"structured": "TRIGGER: When robi vacuum [vacuum.robi] changes state. CONDITIONS: (The new state is different from the old state) AND (The old state is not 'unavailable') AND (The new state is not 'unavailable'). ACTIONS: Send a Telegram notification via notify.telegram_schick_home with title '🐁 Robi' and message containing the status attribute of robi vacuum [vacuum.robi] and the previous state.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the robi vacuum [vacuum.robi] changes.",
|
|
"conditions": "The change must be a real state transition, meaning the new state is different from the old one, and neither the old nor the new state can be 'unavailable'.",
|
|
"action": "Sends a notification to Telegram with the title '🐁 Robi' and a message that includes the vacuum's current status and its previous state."
|
|
},
|
|
"human_like": "Sends a Telegram notification whenever the Robi vacuum's state changes, showing its new status and previous state.",
|
|
"complexity": "low"
|
|
}
|
|
}
|
|
] |