AutomationDataset/gungorser/description-ready.json

212 lines
17 KiB
JSON

[
{
"id": "banyo_humidity",
"automation": "- id: banyo_humidity\n alias: banyo_humidity\n mode: single\n triggers:\n - trigger: template\n value_template: '{{ states(''sensor.banyo_moisture_humidity'') | float(0) > 45\n }}'\n id: 'on'\n - trigger: template\n value_template: '{{ states(''sensor.banyo_moisture_humidity'') | float(0) <= 45\n }}'\n id: 'off'\n conditions: []\n actions:\n - choose:\n - conditions:\n - condition: trigger\n id:\n - 'on'\n sequence:\n - action: fan.turn_on\n metadata: {}\n data: {}\n target:\n entity_id: fan.banyo_fan\n - conditions: []\n sequence:\n - action: fan.turn_off\n metadata: {}\n data: {}\n target:\n entity_id: fan.banyo_fan",
"config": [
{
"name": "banyo moisture humidity sensor",
"room": "bathroom",
"type": "sensor",
"id": {
"entity_id": "sensor.banyo_moisture_humidity",
"device_id": null
}
},
{
"name": "banyo fan",
"room": "bathroom",
"type": "fan",
"id": {
"entity_id": "fan.banyo_fan",
"device_id": null
}
}
]
},
{
"id": "climate_schedule",
"automation": "- id: climate_schedule\n alias: climate_schedule\n description: ''\n triggers:\n - trigger: calendar\n entity_id: calendar.sercan\n event: start\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.sercan\n event: start\n offset: +0:30:0\n - trigger: calendar\n entity_id: calendar.sercan\n event: end\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.sercan\n event: end\n offset: -0:30:0\n - trigger: calendar\n entity_id: calendar.melike\n event: start\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.melike\n event: start\n offset: +0:30:0\n - trigger: calendar\n entity_id: calendar.melike\n event: end\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.melike\n event: end\n offset: -0:30:0\n - trigger: calendar\n entity_id: calendar.misafir\n event: start\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.misafir\n event: start\n offset: +0:30:0\n - trigger: calendar\n entity_id: calendar.misafir\n event: end\n offset: 0:0:0\n - trigger: calendar\n entity_id: calendar.misafir\n event: end\n offset: -0:30:0\n conditions: []\n actions:\n - variables:\n event_time: \"{% if trigger.event == 'start' %}\\n {% set start_no_offset = trigger.calendar_event.start\\\n \\ %}\\n{% else %}\\n {% set start_no_offset = trigger.calendar_event.end %}\\n\\\n {% endif %} {{ as_local(as_datetime(start_no_offset)) + trigger.offset }}\"\n - action: calendar.get_events\n target:\n entity_id: '{{ states.calendar | map(attribute=''entity_id'') | list }}'\n data:\n start_date_time: '{{ event_time }}'\n duration:\n hours: 0\n minutes: 0\n seconds: 1\n response_variable: after_events\n - action: calendar.get_events\n target:\n entity_id: '{{ states.calendar | map(attribute=''entity_id'') | list }}'\n data:\n start_date_time: '{{ (as_timestamp(event_time)-1) | timestamp_local }}'\n duration:\n hours: 0\n minutes: 0\n seconds: 1\n response_variable: before_events\n - variables:\n room_id: '{{ area_id((trigger.calendar_event.description | from_json)[''room_name''])\n }}\n\n '\n room_temps: \"{# before ve after icin temps, ikisinin birlikte tutuldugu yer\\\n \\ ise temps_all #} {% set ns = namespace(temps=[], temps_all=[]) %} {% for\\\n \\ seq, events in {'before': before_events, 'after': after_events}.items()\\\n \\ %}\\n {# Temps sifirlanir #}\\n {% set ns.temps = [] %} \\n {% set all_events\\\n \\ = events.values() | map(attribute='events') | sum(start=[]) | list %}\\n\\\n \\ {% for event in all_events %}\\n {% set desc = event.description | from_json\\\n \\ %}\\n {# sadece bu eventin odasiyla ilgileniyoruz #}\\n {% if area_id(desc['room_name'])\\\n \\ == room_id %}\\n {% if 'sleep_temp' in desc and\\n ((seq ==\\\n \\ 'before' \\n and as_timestamp(event.start) + 1800 < as_timestamp(event_time)\\\n \\ \\n and as_timestamp(event.end) - 1800 >= as_timestamp(event_time))\\n\\\n \\ or (seq == 'after' \\n and as_timestamp(event.start) +\\\n \\ 1800 <= as_timestamp(event_time) \\n and as_timestamp(event.end)\\\n \\ - 1800 > as_timestamp(event_time))) %}\\n {% set ns.temps = ns.temps\\\n \\ + [ desc['sleep_temp'] ] %}\\n {% else %}\\n {% set ns.temps =\\\n \\ ns.temps + [desc['temp']] %}\\n {% endif %}\\n {% endif %}\\n {% endfor\\\n \\ %}\\n {% set ns.temps_all = ns.temps_all + [ ns.temps ] %}\\n{% endfor %}\\\n \\ {{ ns.temps_all }}\\n\"\n before: '{{ room_temps[0] | max if room_temps[0] else none }}'\n after: '{{ room_temps[1] | max if room_temps[1] else none }}'\n - if: '{{ before != after }}'\n then:\n - action: climate.set_temperature\n data:\n hvac_mode: '{{ ''heat'' if after else ''off'' }}'\n temperature: '{{ after | int(7) }}'\n target:\n area_id: '{{ room_id }}'\n - action: climate.set_hvac_mode\n data:\n hvac_mode: '{{ ''heat'' if after else ''off'' }}'\n target:\n area_id: '{{ room_id }}'\n mode: queued",
"config": [
{
"name": "sercan calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.sercan",
"device_id": null
}
},
{
"name": "melike calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.melike",
"device_id": null
}
},
{
"name": "misafir calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.misafir",
"device_id": null
}
}
]
},
{
"id": "cover_schedule",
"automation": "- id: cover_schedule\n alias: cover_schedule\n description: ''\n triggers:\n - trigger: sun\n event: sunset\n offset: 0\n id: sunset\n - trigger: sun\n event: sunrise\n offset: 0\n id: sunrise\n - trigger: calendar\n entity_id: calendar.sercan\n event: end\n offset: 0:0:0\n id: event_end\n - trigger: calendar\n entity_id: calendar.melike\n event: end\n offset: 0:0:0\n id: event_end\n - trigger: calendar\n entity_id: calendar.misafir\n event: end\n offset: 0:0:0\n id: event_end\n conditions: []\n actions:\n - choose:\n - conditions:\n - condition: trigger\n id:\n - event_end\n sequence:\n - action: calendar.get_events\n target:\n entity_id: '{{ states.calendar | map(attribute=''entity_id'') | list }}'\n data:\n start_date_time: '{% set next_rising = as_datetime(state_attr(''sun.sun'',\n ''next_rising'')) %} {{next_rising - timedelta(days=1) }}\n\n '\n duration:\n hours: 0\n minutes: 0\n seconds: 1\n response_variable: sunrise_events\n - action: calendar.get_events\n target:\n entity_id: '{{ states.calendar | map(attribute=''entity_id'') | list }}'\n data:\n start_date_time: '{{ trigger.calendar_event.end }}'\n duration:\n hours: 0\n minutes: 0\n seconds: 1\n response_variable: after_events\n - action: cover.open_cover\n metadata: {}\n data: {}\n target: \"{% set current_area_id = (trigger.calendar_event.description | from_json).room_name\\\n \\ | area_id %} {# Check if current event is an sunrise event #} {% if sunrise_events.values()\\\n \\ \\n | map(attribute='events') \\n | sum(start=[]) \\n | selectattr('summary',\\\n \\ 'eq', trigger.calendar_event.summary)\\n | selectattr('description', 'eq',\\\n \\ trigger.calendar_event.description)\\n | selectattr('start', 'eq', trigger.calendar_event.start)\\n\\\n \\ | selectattr('end', 'eq', trigger.calendar_event.end)\\n | list %}\\n\\\n \\ {# Search all after events, which are also a sunrise event #}\\n {% set\\\n \\ ns = namespace(after_sunrise_events=[]) %}\\n {% for after_event in after_events.values()\\\n \\ \\n | map(attribute='events') \\n | sum(start=[]) \\n | list\\\n \\ %}\\n {% for sunrise_event in sunrise_events.values() \\n | map(attribute='events')\\\n \\ \\n | sum(start=[]) \\n | list %}\\n {% set desc = after_event.description\\\n \\ | from_json %}\\n {% if desc.room_name | area_id == current_area_id\\\n \\ \\n and after_event.summary == sunrise_event.summary \\n and\\\n \\ after_event.description == sunrise_event.description \\n and after_event.start\\\n \\ == sunrise_event.end \\n and after_event.end == sunrise_event.end\\\n \\ %}\\n {# Both after and sunrise events are found #}\\n {%\\\n \\ set ns.after_sunrise_events = ns.after_sunrise_events + [after_event]\\\n \\ %}\\n {% endif %}\\n {% endfor %}\\n {% endfor %}\\n {{ { \\\"area_id\\\"\\\n : [] if ns.after_sunrise_events else [current_area_id] } }}\\n{% else %}\\n\\\n \\ {{ { \\\"area_id\\\": [] } }}\\n{% endif %}\\n\"\n - conditions:\n - condition: trigger\n id:\n - sunset\n sequence:\n - action: cover.close_cover\n metadata: {}\n data: {}\n target: '{{ {''area_id'': areas() | list} }}'\n - conditions:\n - condition: trigger\n id:\n - sunrise\n sequence:\n - action: calendar.get_events\n target:\n entity_id: '{{ states.calendar | map(attribute=''entity_id'') | list }}'\n data:\n start_date_time: '{{ now() }}'\n duration:\n hours: 0\n minutes: 0\n seconds: 1\n response_variable: sunrise_events\n - action: cover.open_cover\n metadata: {}\n data: {}\n target: \"{{ { \\\"area_id\\\": areas()\\n | reject(\\\"in\\\", sunrise_events.values()\\\n \\ \\n | map(attribute='events') \\n | sum(start=[]) \\n \\\n \\ | map(attribute='description')\\n | map('from_json')\\n \\\n \\ | map(attribute='room_name')\\n | map('area_id')\\n | unique\\\n \\ | list)\\n | list } }}\\n\"\n - delay: 120\n mode: queued",
"config": [
{
"name": "sercan calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.sercan",
"device_id": null
}
},
{
"name": "melike calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.melike",
"device_id": null
}
},
{
"name": "misafir calendar",
"room": null,
"type": "calendar",
"id": {
"entity_id": "calendar.misafir",
"device_id": null
}
},
{
"name": "sun",
"room": null,
"type": "sun",
"id": {
"entity_id": "sun.sun",
"device_id": null
}
}
]
},
{
"id": "kat1_coverclose",
"automation": "- id: kat1_coverclose\n alias: kat1_coverclose\n description: ''\n triggers:\n - domain: mqtt\n device_id: 1d49a19304191ce333202639e9ed74d5\n type: action\n subtype: 1_hold\n trigger: device\n id: button\n - domain: mqtt\n device_id: d3fd09e3b60a91f37e64b9137c1bba7b\n type: action\n subtype: 3_hold\n trigger: device\n id: button\n - domain: mqtt\n device_id: 3b076af749562b3dfa18416768178b40\n type: action\n subtype: 2_hold\n trigger: device\n id: button\n conditions: []\n actions:\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ devices | map(''states'') | reject(''eq'', ''closed'')\n | list | count > 0 }}'\n sequence:\n - action: scene.create\n metadata: {}\n data:\n scene_id: kat1_coverclose\n snapshot_entities: '{{devices}}'\n - action: cover.close_cover\n metadata: {}\n data: {}\n target:\n entity_id: '{{devices}}'\n - conditions: []\n sequence:\n - action: scene.turn_on\n metadata: {}\n data: {}\n target:\n entity_id: scene.kat1_coverclose\n variables:\n devices: '{{ floor_areas(''1_kat'') | map(''area_entities'') | sum(start=[]) |\n select(''in'', states.cover | map(attribute=''entity_id'')| list)| list}}'\n mode: single",
"config": [
{
"name": "mqtt device 1",
"room": null,
"type": "device",
"id": {
"entity_id": null,
"device_id": "1d49a19304191ce333202639e9ed74d5"
}
},
{
"name": "mqtt device 2",
"room": null,
"type": "device",
"id": {
"entity_id": null,
"device_id": "d3fd09e3b60a91f37e64b9137c1bba7b"
}
},
{
"name": "mqtt device 3",
"room": null,
"type": "device",
"id": {
"entity_id": null,
"device_id": "3b076af749562b3dfa18416768178b40"
}
},
{
"name": "kat1 coverclose scene",
"room": null,
"type": "scene",
"id": {
"entity_id": "scene.kat1_coverclose",
"device_id": null
}
}
]
},
{
"id": "thermostat_switch",
"automation": "- alias: thermostat_switch\n id: thermostat_switch\n description: ''\n triggers:\n - value_template: \"{{ ['number.sercan_climate_valve_opening_degree',\\n 'number.yatak_climate_valve_opening_degree',\\n\\\n \\ 'number.melike_climate_valve_opening_degree',\\n 'number.bebek_climate_valve_opening_degree',\\n\\\n \\ 'number.banyo_climate_valve_opening_degree',\\n 'number.misafir_climate_valve_opening_degree']\\\n \\ \\n | map('states') \\n | select('is_number')\\n | map('float') | max > 0\\\n \\ }}\"\n trigger: template\n id: heat\n - value_template: \"{{ ['number.sercan_climate_valve_opening_degree',\\n 'number.yatak_climate_valve_opening_degree',\\n\\\n \\ 'number.melike_climate_valve_opening_degree',\\n 'number.bebek_climate_valve_opening_degree',\\n\\\n \\ 'number.banyo_climate_valve_opening_degree',\\n 'number.misafir_climate_valve_opening_degree']\\\n \\ \\n | map('states') \\n | select('is_number')\\n | map('float') \\n | max\\\n \\ == 0 }}\"\n trigger: template\n id: 'off'\n conditions: []\n actions:\n - choose:\n - conditions:\n - condition: trigger\n id:\n - heat\n sequence:\n - action: switch.turn_on\n metadata: {}\n data: {}\n target:\n entity_id: switch.koridor2_switch\n - conditions: []\n sequence:\n - action: switch.turn_off\n metadata: {}\n data: {}\n target:\n entity_id: switch.koridor2_switch\n mode: restart",
"config": [
{
"name": "sercan climate valve opening degree",
"room": null,
"type": "number",
"id": {
"entity_id": "number.sercan_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "yatak climate valve opening degree",
"room": "bedroom",
"type": "number",
"id": {
"entity_id": "number.yatak_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "melike climate valve opening degree",
"room": null,
"type": "number",
"id": {
"entity_id": "number.melike_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "bebek climate valve opening degree",
"room": "nursery",
"type": "number",
"id": {
"entity_id": "number.bebek_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "banyo climate valve opening degree",
"room": "bathroom",
"type": "number",
"id": {
"entity_id": "number.banyo_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "misafir climate valve opening degree",
"room": "guest",
"type": "number",
"id": {
"entity_id": "number.misafir_climate_valve_opening_degree",
"device_id": null
}
},
{
"name": "koridor2 switch",
"room": "corridor",
"type": "switch",
"id": {
"entity_id": "switch.koridor2_switch",
"device_id": null
}
}
]
}
]