diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000..e755149 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,71 @@ +name: Bug report +about: Report an issue with a project of this repository to help me find a fix +labels: bug +assignees: etiennec78 +body: + - type: markdown + attributes: + value: | + ## Bug description + - type: textarea + validations: + required: true + attributes: + label: Describe the bug + description: >- + Provide a clear and concise description of what the problem is + - type: textarea + attributes: + label: Expected behavior + description: >- + Provide a clear and concise description of what you expected to happen + - type: markdown + attributes: + value: | + ## Logs + - type: textarea + attributes: + label: Blueprint configuration + description: >- + You can get your blueprint configuration by going into : + *[Settings > Automations & scenes](https://my.home-assistant.io/redirect/automations) > Blueprint name > Three dots (top right) > Edit in YAML* + - type: textarea + attributes: + label: Blueprint traces + description: >- + You can download your blueprint traces by going into : + *[Settings > Automations & scenes](https://my.home-assistant.io/redirect/automations) > Blueprint name > Traces (top right) > Three dots (top right) > Download trace* + - type: markdown + attributes: + value: | + ## Environment + - type: input + id: version + validations: + required: true + attributes: + label: What version of Home Assistant are you running ? + placeholder: core- + description: > + Can be found in: [Settings > System > Repairs > Three Dots in Upper Right > System information](https://my.home-assistant.io/redirect/system_health/). + - type: dropdown + validations: + required: true + attributes: + label: What type of installation are you running? + description: > + Can be found in: [Settings > System > Repairs > Three Dots in Upper Right > System information](https://my.home-assistant.io/redirect/system_health/). + options: + - Home Assistant OS + - Home Assistant Container + - Home Assistant Supervised + - Home Assistant Core + - type: markdown + attributes: + value: | + ## Additional information + - type: textarea + attributes: + label: Additional information + description: > + Add any other context about the problem here diff --git a/Automatic Gate/Extra/Automations/README.md b/Automatic Gate/Extra/Automations/README.md index 0c52035..09ca53c 100644 --- a/Automatic Gate/Extra/Automations/README.md +++ b/Automatic Gate/Extra/Automations/README.md @@ -1,6 +1,4 @@ -# Automations πŸ€– - -## Itinerary tracker notification πŸ“ +# Itinerary tracker notification πŸ“ ### Description πŸ“ @@ -18,9 +16,12 @@ A blueprint that **notifies** all selected users when another one is **driving h [![Import itinerary tracker notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fitinerary-tracker-notification.yaml) +### Example πŸ“Œ + + -## Gate left open notification πŸ”“ +# Gate left open notification πŸ”“ ### Description πŸ“ @@ -34,14 +35,17 @@ A blueprint that **notifies** selected users when the gate has been **left open* * Speakers TTS support πŸ”Š * Adjustable notifications πŸ’¬ - ### Import the blueprint πŸ—ΊοΈ [![Import gate left open notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fgate-left-open-notification.yaml) +### Example πŸ“Œ + + -## Gate offline notification 🌐 + +# Gate offline notification 🌐 ### Description πŸ“ @@ -58,3 +62,8 @@ A blueprint that **notifies** selected users when the gate has been **unavailabl ### Import the blueprint πŸ—ΊοΈ [![Import gate offline notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fgate-offline-notification.yaml) + +### Example πŸ“Œ + + + diff --git a/Automatic Gate/Extra/Automations/gate-left-open-notification.yaml b/Automatic Gate/Extra/Automations/gate-left-open-notification.yaml index 72b2211..c4f30da 100644 --- a/Automatic Gate/Extra/Automations/gate-left-open-notification.yaml +++ b/Automatic Gate/Extra/Automations/gate-left-open-notification.yaml @@ -16,7 +16,7 @@ blueprint: * Adjustable notifications πŸ’¬ ## More info ℹ️ - * Version : 1.0.6 + * Version : 1.0.7 * Set up sensors : [click here](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md) * Github : [click here](https://github.com/etiennec78/Home-Automation/tree/master/Automatic%20Gate/Extra/Automations) * Discord : etiennec78 @@ -101,6 +101,7 @@ blueprint: variables: gate: !input gate + left_open_delay: !input left_open_delay persistent_notification: !input persistent_notification speaker_tts_devices: !input speaker_tts_devices speaker_tts_service: !input speaker_tts_service diff --git a/Automatic Gate/Extra/Automations/gate-offline-notification.yaml b/Automatic Gate/Extra/Automations/gate-offline-notification.yaml index 5a820fe..aab6ed9 100644 --- a/Automatic Gate/Extra/Automations/gate-offline-notification.yaml +++ b/Automatic Gate/Extra/Automations/gate-offline-notification.yaml @@ -16,7 +16,7 @@ blueprint: * Adjustable notifications πŸ’¬ ## More info ℹ️ - * Version : 1.0.6 + * Version : 1.0.7 * Set up sensors : [click here](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md) * Github : [click here](https://github.com/etiennec78/Home-Automation/tree/master/Automatic%20Gate/Extra/Automations) * Discord : etiennec78 @@ -101,6 +101,7 @@ blueprint: variables: gate: !input gate + offline_delay: !input offline_delay persistent_notification: !input persistent_notification speaker_tts_devices: !input speaker_tts_devices speaker_tts_service: !input speaker_tts_service diff --git a/Automatic Gate/Extra/Automations/itinerary-tracker-notification.yaml b/Automatic Gate/Extra/Automations/itinerary-tracker-notification.yaml index 6e05376..74f4c9c 100644 --- a/Automatic Gate/Extra/Automations/itinerary-tracker-notification.yaml +++ b/Automatic Gate/Extra/Automations/itinerary-tracker-notification.yaml @@ -16,7 +16,7 @@ blueprint: * Adjustable notifications πŸ’¬ ## More info ℹ️ - * Version : 1.0.6 + * Version : 1.0.7 * Set up sensors : [click here](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md) * Flowchart : [click here](https://miro.com/app/board/uXjVMpH4Tno=/) * Github : [click here](https://github.com/etiennec78/Home-Automation/tree/master/Automatic%20Gate/Extra/Automations) @@ -97,6 +97,24 @@ blueprint: target: entity: domain: tts + last_notification_sensor: + name: πŸ“… Last notification sensor + description: |- + An empty **[input datetime](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#last-notification-) helper** which will store the **last time** a **tracking notification was sent** to your devices + *Note : You may mute this sensor in your logs as detailed in the wiki* + selector: + entity: + filter: + domain: input_datetime + notif_refresh_rate: + name: πŸ” Notification refresh rate + description: The minimum time between sending two tracking notifications, to avoid quickly reaching the notification quota if your position is updated frequently + default: 3 + selector: + number: + min: 0 + max: 60 + unit_of_measurement: minutes itinerary_started_message: name: πŸ’¬ Itinerary started notification description: |- @@ -129,6 +147,8 @@ variables: devices_to_notify: !input notify_devices speaker_tts_devices: !input speaker_tts_devices speaker_tts_service: !input speaker_tts_service + last_notification_sensor: !input last_notification_sensor + notif_refresh_rate: !input notif_refresh_rate trigger: - platform: state @@ -206,6 +226,15 @@ action: # Only continue the loop if the wait_for_trigger was triggered by a travel time update - condition: template value_template: "{{ wait.trigger.id == 'travel_time' }}" + # Only continue the sequence if the user has not received a notification recently + - condition: template + value_template: "{{ as_timestamp(states(last_notification_sensor)) + notif_refresh_rate*60 >= as_timestamp(now()) }}" + # Set last notification sensor to the current time + - service: input_datetime.set_datetime + target: + entity_id: !input last_notification_sensor + data: + datetime: "{{ now() }}" # Calculate ETA - variables: remaining: "{{ state_attr(travel_time_sensor, 'duration') * 60 }}" @@ -227,7 +256,7 @@ action: alert_once: true timeout: "{{ remaining | int }}" chronometer: true - when: "{{ arrival_timestamp }}" + when: "{{ arrival_timestamp | int }}" # If "Track travel time" boolean input is set to false else: # Wait for the user to leave his vehicle diff --git a/Automatic Gate/Extra/Ble car device/README.md b/Automatic Gate/Extra/Ble car device/README.md index f3eea20..ed190e3 100644 --- a/Automatic Gate/Extra/Ble car device/README.md +++ b/Automatic Gate/Extra/Ble car device/README.md @@ -3,7 +3,9 @@ ## Description πŸ“ A really small Arduino code to let an [ESP32](https://amzn.to/44BPk0g) sit in your car and show up as a **BLE device** so that your phone can connect to it and monitor if you are in your car + Useful if your car does not support Bluetooth or Android Auto + *Note : Please ensure that the USB ports in your car are powered off when the engine is turned off* ## How to install πŸš€ diff --git a/Automatic Gate/Extra/Esphome gate firmware/README.md b/Automatic Gate/Extra/Esphome gate firmware/README.md index 85859ee..b098e09 100644 --- a/Automatic Gate/Extra/Esphome gate firmware/README.md +++ b/Automatic Gate/Extra/Esphome gate firmware/README.md @@ -12,7 +12,7 @@ Supports the following features : * Opening and closing **even while moving**, by sending a double pulse, and inverting time taken to move to the current position πŸ”„ * **Error reporting** in HA, to see why the gate decided not to move β›” * **BLE scanner**, with automatically turns entity status to unavailable after no signal for 25s πŸ“‘ -* **BLE switch**, which allows you to **turn off** the continuous BLE scanning ⏻ +* **BLE switch**, which allows you to **turn off** the continuous BLE scanning ⏯️ *Note : Since this gate firmware relies on a single opening pin without any extra sensors, please keep in mind that it won't be able to register any state change from another source than itself. If you open your gate with your remote, please also close it with your remote, as closing with your esp32 would invert the virtual state of the gate* @@ -22,7 +22,7 @@ Supports the following features : ## How to install πŸš€ -### Prerequisites 🏁 +### Prerequisites πŸ“ 1. An [ESP32 with relay](https://amzn.to/3y2UtCr) 2. [ESPHome installed](https://esphome.io/guides/installing_esphome.html) diff --git a/Automatic Gate/README.md b/Automatic Gate/README.md index dd2cfeb..5e71ea5 100644 --- a/Automatic Gate/README.md +++ b/Automatic Gate/README.md @@ -60,8 +60,8 @@ Customize the options to tailor the system to your exact needs | [BLE transmitter](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-transmitter-) | none | Companion | Yes | Companion app ble transmitter to automatically close gate upon leaving | | [BLE entities](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-entities-) |signal_strength | Any | Yes | Each BLE entity to monitor, to close the gate when it goes to unavailable. Could be from my [esphome firmware](Extra/Esphome%20gate%20firmware) or else | | [BLE scanner switch](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-scanner-switch-) | switch | Any | No | A switch which can turn on/off your BLE scanner. Not useful if you want your BLE scanner running 24/7 | +| [Nearest distance](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#last-notification-) | input_datetime | Helper | No | Only necessary for [itinerary tracker notification](Extra/Automations). Stores the timestamp of the last tracking notification sent | | [Notify all devices](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#notify-all-devices-group-) | group | Group | No | Only necessary for [esphome firmware](Extra/Esphome%20gate%20firmware). Allows it to notify all devices when opening on in case of an error | -| [Nearest distance](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#nearest-distance-sensor-) | sensor | Proximity | No | Only necessary for [esphome firmware](Extra/Esphome%20gate%20firmware). Gives the distance of the nearest person from your gate | ## How to update πŸ” diff --git a/Automatic Gate/automatic-gate.yaml b/Automatic Gate/automatic-gate.yaml index d711ccf..a0ba8e5 100644 --- a/Automatic Gate/automatic-gate.yaml +++ b/Automatic Gate/automatic-gate.yaml @@ -33,322 +33,384 @@ blueprint: * Multiple gates supported by reusing the blueprint ♻️ ## More info ℹ️ - * Version : 1.0.6 + * Version : 1.0.7 * Set up sensors : [click here](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md) * Flowchart : [click here](https://miro.com/app/board/uXjVMpH4Tno=/) * Github : [click here](https://github.com/etiennec78/Home-Automation/tree/master/Automatic%20Gate) * Discord : etiennec78 [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png)](https://www.buymeacoffee.com/etiennec78) + homeassistant: + min_version: 2024.6.0 input: - gate: - name: ⛩️ Gate - description: The **switch** or **cover** which controls your **[gate](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#gate-%EF%B8%8F)** - selector: - entity: - filter: - domain: - - switch - - cover - gate_location: - name: πŸ“ Gate location - description: The zone where your gate is located, to detect whether you are leaving or arriving - default: "zone.home" - selector: - entity: - filter: - domain: zone - lead_time: - name: πŸ•“ Lead time - description: The **lead time** to open the gate **before your arrival** (take your gate movement time & a margin into account) - default: 75 - selector: - number: - min: 10 - max: 300 - unit_of_measurement: seconds - safety_delay: - name: πŸ”’ Auto-close delay - description: The time the gate will wait before **automatically closing** if you haven't left or didn't arrive - default: 5 - selector: - number: - min: 2 - max: 30 - unit_of_measurement: minutes - timeout_delay: - name: βŒ› Timeout delay - description: |- - The time the automation will wait before **stopping** if your phone **times out** and doesn't send new position updates, while being in the activation zone - *Note : If your position provider doesn't let you use a high accuracy mode (like iOS), please increase this value* - default: 2 - selector: - number: - min: 0.5 - max: 30 - unit_of_measurement: minutes - opening_notification: - name: πŸ‘ Opening notification - description: |- - Should the automation notify you when your gate opens? - *Note : If your gate already notifies you like my esphome firmware, you can turn this off* - default: true - selector: - boolean: - persons: - name: πŸ‘€ Tracked users - description: |- - Each **user** which should be **[tracked](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#gps-location-trackers-)** for **position updates** (same order) - *Notes :* - *⚠️ Use high precision while driving in your ETA zone or you could time out* - *If your tracker has report latency (wifi/ble), and you plug Android Auto just after leaving, your gate could open thinking you are still there* - selector: - entity: - multiple: true - filter: - domain: person - driving_sensors: - name: πŸš— Driving sensors - description: Each **[driving sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#driving-sensors-)** which should trigger the automation (same order) - selector: - entity: - multiple: true - filter: - domain: binary_sensor - travel_time_sensors: - name: ✈️ Travel time sensors - description: |- - Each **[travel time sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#travel-time-sensors-%EF%B8%8F)** monitoring each user **time left before arrival** (same order) - **⚠️ Please set a [custom polling interval](https://www.home-assistant.io/integrations/waze_travel_time/#defining-a-custom-polling-interval)** - selector: - entity: - multiple: true - filter: - domain: sensor - device_class: duration - proximity_sensors: - name: πŸ“ Proximity sensors - description: Each **[proximity sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#proximity-sensors-)** from the proximity integration to calculate user distance from your gate (same order) - selector: - entity: - multiple: true - filter: - integration: proximity - domain: sensor - device_class: distance - notify_devices: - name: πŸ’¬ Notify services - description: Each **[service](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#notify-services-)** of **device to notify** (Find the service ids by going into [Developer tools > Services tab](https://my.home-assistant.io/redirect/developer_states/) > searching for "notify.") (same order) - selector: - text: - multiple: true - prefix: notify.mobile_app_ - itinerary_sensors: - name: πŸ—ΊοΈ Itinerary sensors - description: Each empty **[itinerary input text](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#itinerary-sensors-%EF%B8%8F)** helper to store each user **itinerary state** (same order) - selector: - entity: - multiple: true - filter: - domain: input_text - eta_sensor: - name: πŸ“… Planned time of opening sensor - description: An empty **[input datetime](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#planned-opening-) helper** which will be used to set an **ETA** and plan the **opening of your gate** (see wiki) - selector: - entity: - filter: - domain: input_datetime - travel_time_rate: - name: πŸ”„ Travel time refresh rate + essential_sensors: + name: Essential sensors + icon: "mdi:gate" + collapsed: true + input: + gate: + name: ⛩️ Gate + description: The **switch** or **cover** which controls your **[gate](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#gate-%EF%B8%8F)** + selector: + entity: + filter: + domain: + - switch + - cover + gate_location: + name: πŸ“ Gate location + description: The zone where your gate is located, to detect whether you are leaving or arriving + default: "zone.home" + selector: + entity: + filter: + domain: zone + lead_time: + name: πŸ•“ Lead time + description: The **lead time** to open the gate **before your arrival** (take your gate movement time & a margin into account) + default: 75 + selector: + number: + min: 10 + max: 300 + unit_of_measurement: seconds + eta_sensor: + name: πŸ“… Planned time of opening + description: An empty **[input datetime](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#planned-opening-) helper** which will be used to set an **ETA** and plan the **opening of your gate** (see wiki) + selector: + entity: + filter: + domain: input_datetime + + per_person_sensors: + name: Per person sensors + icon: mdi:account-multiple + collapsed: true description: |- - Calculate the Travel time & ETA + ⚠️ Please enter the same amount of entires in each input, and place users in the same order + input: + persons: + name: πŸ‘€ Tracked users + description: |- + Each **user** which should be **[tracked](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#gps-location-trackers-)** for **position updates** + *Notes :* + *⚠️ Use high precision while driving in your ETA zone or you could time out* + *If your tracker has report latency (wifi/ble), and you plug Android Auto just after leaving, your gate could open thinking you are still there* + selector: + entity: + multiple: true + filter: + domain: person + driving_sensors: + name: πŸš— Driving sensors + description: Each **[driving sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#driving-sensors-)** which should trigger the automation + selector: + entity: + multiple: true + filter: + domain: binary_sensor + travel_time_sensors: + name: ✈️ Travel time sensors + description: |- + Each **[travel time sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#travel-time-sensors-%EF%B8%8F)** monitoring each user **time left before arrival** + *⚠️ Please set a [custom polling interval](https://www.home-assistant.io/integrations/waze_travel_time/#defining-a-custom-polling-interval)* + selector: + entity: + multiple: true + filter: + domain: sensor + device_class: duration + proximity_sensors: + name: πŸ“ Proximity sensors + description: Each **[proximity sensor](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#proximity-sensors-)** from the proximity integration to calculate user distance from your gate + selector: + entity: + multiple: true + filter: + integration: proximity + domain: sensor + device_class: distance + notify_devices: + name: πŸ’¬ Notify services + description: Each **[service](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#notify-services-)** of **device to notify** (Find the service ids by going into [Developer tools > Services tab](https://my.home-assistant.io/redirect/developer_states/) > searching for "notify.") + selector: + text: + multiple: true + prefix: notify.mobile_app_ + itinerary_sensors: + name: πŸ—ΊοΈ Itinerary sensors + description: Each empty **[itinerary input text](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#itinerary-sensors-%EF%B8%8F)** helper to store each user **itinerary state** + selector: + entity: + multiple: true + filter: + domain: input_text - - **Continuously** during the whole itinerary (custom refresh interval while away) - - Only while the vehicle is **near home** - - Only **once** when the vehicle gets near home + automation_settings: + name: Automation settings + icon: mdi:cog + collapsed: true + input: + travel_time_rate: + name: πŸ”„ Travel time refresh rate + description: |- + Calculate the Travel time & ETA - **"Continuously"** can use more Waze/Maps credits, but can be useful to display a precise ETA on your dashboard when far from your destination - **"While near home"** allows to monitor if you drive near your gate without entering to abort the itinerary, or if there are traffic jams near home to open later (recommended) - **"Only once"** uses the less amount of credits, but could trigger if you come near your gate without entering (not recommended) - default: While near home - selector: - select: - options: - - Continuously - - While near home - - Once when near home - continuously_refresh_interval: - name: ⏳ Continuously refresh interval - description: Your travel time **refresh interval** while away. Only active with a refresh rate set to **"Continously"** - default: 5 - selector: - number: - min: 1 - max: 60 - unit_of_measurement: minutes - eta_zone: - name: πŸš€ ETA planning zone - description: |- - At which **distance** from gate should your vehicle start planning its **Estimated Time of Arrival** to **open your gate** ? - This should be the same value as your ["High accuracy mode trigger range for zone"](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#gps-location-trackers-) - default: 1000 - selector: - number: - min: 200 - max: 5000 - unit_of_measurement: meters - activation_zone: - name: πŸ”’ Gate activation zone - description: At which **maximal distance** should your vehicle be able to automatically **open your gate** ? It will automatically **close** if you **leave** this zone - default: 1200 - selector: - number: - min: 300 - max: 5000 - unit_of_measurement: meters - automatic_closing_arrival: - name: πŸ”’ Automatic closing - description: |- - Should the gate automatically **close** ? - *Warning : All auto-closing securities will not be operational if turned off* - default: true - selector: - boolean: - ble_entities: - name: πŸ”Ž iBeacon tracker entities (optional) - description: |- - Each **[BLE rssi tracker entity](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-entities-)** to monitor your distance from the gate while leaving, to close it when you're out of reach - Needs [bluetooth transmitters](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-transmitter-) set on companion apps - *Note : Let empty if no ble* - default: [] - selector: - entity: - multiple: true - filter: - domain: sensor - device_class: signal_strength - ble_scanner_switch: - name: ⏻ iBeacon scanner activator switch (optional) - description: |- - The **[switch](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-scanner-switch-)** you want to use to turn on and off your **iBeacon scanner** when a vehicle is leaving - *Note : Let empty if no ble / want to always keep iBeacon running* - default: "" - selector: - entity: - filter: - domain: switch - ble_transmitter_phone_control: - name: πŸ“΅ Phone iBeacon control - description: |- - Should your **phone iBeacon transmitter** automatically be turned **off** while not being used by the gate ? - *Note : Only necessary if ble tracker entities are set* - *Please manually set your [iBeacon transmitter](https://github.com/etiennec78/Home-Automation/blob/dev/Automatic%20Gate/sensors.md#bluetooth-transmitter-) to on in companion settings if disabled* - default: true - selector: - boolean: - itinerary_update_title: - name: πŸ“ƒπŸ›ˆ Itinerary status update title - description: The **title** displayed on the notification you will receive when the **status of your itinerary** changes - default: "Itinerary πŸ›ˆ" - selector: - text: - itinerary_canceled_title: - name: πŸ“ƒβŒ Itinerary canceled title - description: The **title** displayed on the notification you will receive when your **itinerary gets canceled** - default: "Itinerary canceled ❌" - selector: - text: - gate_opening_title: - name: πŸ“ƒπŸ”“ Gate opening notification title - description: The **title** displayed on the notification you will receive when your **gate is opening** - default: "Gate opening πŸ”“" - selector: - text: - gate_closing_title: - name: πŸ“ƒπŸ”’ Gate closing notification title - description: The **title** displayed on the notification you will receive when your **gate is closing** - default: "Gate closing πŸ”’" - selector: - text: - awaiting_title: - name: πŸ“ƒπŸ’€ Gate awaiting user notification title - description: |- - The **title** displayed on the notification you will receive when your gate is **awaiting another user** - *Note : {{awaiting_persons}} will be replaced by the lists of the users being awaited* - default: "Gate awaiting {{ awaiting_persons }} πŸ’€" - selector: - text: - itinerary_started_message: - name: πŸ’¬πŸ Itinerary started notification - description: The **content** of the notification you will receive when your **itinerary starts** - default: "Your itinerary has been started" - selector: - text: - automatic_opening_message: - name: πŸ’¬πŸ”“ Automatic opening notification - description: The **content** of the notification you will receive when your gate is **automatically opening** - default: "Automatic opening of the gate" - selector: - text: - multiline: true - automatic_closing_message: - name: πŸ’¬πŸ”’ Automatic closing notification - description: The **content** of the notification you will receive when your gate is **automatically closing** - default: "Automatic closing of the gate" - selector: - text: - multiline: true - awaiting_message: - name: πŸ’¬πŸ’€ Gate awaiting user notification - description: The **content** of the notification you will receive when your gate is **awaiting another user** - default: "The gate will close once all users have entered/exited" - selector: - text: - multiline: true - vehicle_left_message: - name: πŸ’¬βš οΈ Vehicle left notification - description: The **content** of the notification you will receive if you **leave your vehicle** - default: "You have left your vehicle" - selector: - text: - multiline: true - did_not_leave_message: - name: πŸ’¬βš οΈ User did not leave notification - description: |- - The **content** of the notification you will receive if you **don't leave in time** - *Note : {{safety_delay}} will be replaced by your auto-close delay you have set above* - default: "The vehicle did not leave in less than {{ safety_delay }} minutes" - selector: - text: - multiline: true - did_not_arrive_message: - name: πŸ’¬βš οΈ User did not arrive notification - description: |- - The **content** of the notification you will receive if you **don't arrive in time** - *Note : {{safety_delay}} will be replaced by your auto-close delay you have set above* - default: "The vehicle did not arrive in less than {{ safety_delay }} minutes" - selector: - text: - multiline: true - timed_out_message: - name: πŸ’¬βš οΈ Timed out notification + - **Continuously** during the whole itinerary (custom refresh interval while away) + - Only while the vehicle is **near home** + - Only **once** when the vehicle gets near home + + **"Continuously"** can use more Waze/Maps credits, but can be useful to display a precise ETA on your dashboard when far from your destination + **"While near home"** allows to monitor if you drive near your gate without entering to abort the itinerary, or if there are traffic jams near home to open later (recommended) + **"Only once"** uses the less amount of credits, but could trigger if you come near your gate without entering (not recommended) + default: While near home + selector: + select: + options: + - Continuously + - While near home + - Once when near home + continuously_refresh_interval: + name: ⏳ Continuously refresh interval + description: Your travel time **refresh interval** while away. Only active with a refresh rate set to **"Continuously"** + default: 5 + selector: + number: + min: 1 + max: 60 + unit_of_measurement: minutes + eta_zone: + name: πŸš€ ETA planning zone + description: |- + At which **distance** from gate should your vehicle start planning its **Estimated Time of Arrival** to **open your gate** ? + default: 1000 + selector: + number: + min: 200 + max: 5000 + unit_of_measurement: meters + activation_zone: + name: πŸ”’ Gate activation zone + description: At which **maximal distance** should your vehicle be able to automatically **open your gate** ? It will automatically **close** if you **leave** this zone + default: 1200 + selector: + number: + min: 300 + max: 5000 + unit_of_measurement: meters + automatic_closing: + name: πŸ”’ Automatic closing behavior + description: |- + Gate automatic **closing** behavior + + - **Automatically close** your gate after you reach your destination (or leave if ble sensors are set) + - **Only close for safety mechanism**, in case you don't want your gate to close automatically but want to keep safety features + - **Never close** at all, in case your gate doesn't support closing. This will disable almost all safety features + default: "on" + selector: + select: + options: + - label: Automatically close + value: "on" + - label: Only close for safety mechanism + value: "only-safety" + - label: Never close + value: "off" + safety_delay: + name: πŸ”’ Auto-close safety delay + description: The time the gate will wait before **automatically closing** after you have arrived home and left your car + default: 5 + selector: + number: + min: 2 + max: 30 + unit_of_measurement: minutes + timeout_delay: + name: βŒ› Timeout delay + description: |- + The time the automation will wait before **stopping** if your phone **times out** and doesn't send new position updates, while being in the activation zone + *Note : If your position provider doesn't let you use a high accuracy mode (like iOS), please increase this value* + default: 2 + selector: + number: + min: 0.5 + max: 30 + unit_of_measurement: minutes + auto_close_arrival_delay: + name: πŸ“¬ Auto-close delay after arrival + description: |- + The time the gate will wait before **automatically closing** after you arrive home and you have left your car + *Note : Can be useful if you plan to collect mail or put away groceries after arriving* + default: 0 + selector: + number: + min: 0 + max: 30 + unit_of_measurement: minutes + + notification_settings: + name: Notification settings + icon: mdi:bell + collapsed: true description: |- - The **content** of the notification you will receive if you **time out** - *Note : {{timeout_delay}} will be replaced by your auto-close delay you have set above* - default: "Your position has not been updated in {{ timeout_delay }} minutes" - selector: - text: - multiline: true - vehicle_away_message: - name: πŸ’¬βš οΈ Vehicle not in activation zone notification - description: The **content** of the notification you will receive if **you are not in your activation zone** - default: "The vehicle is not in the activation zone" - selector: - text: - multiline: true - travel_time_did_not_respond: - name: πŸ’¬βš οΈ Travel time integration did not respond - description: The **content** of the notification you will receive if your **travel time integraton did not respond** during the itinerary - default: "Your travel time integration did not respond during your itinerary" + Notification settings to translate texts or change notification behavior + input: + opening_notification: + name: πŸ‘ Opening notification + description: |- + Should the automation notify you when your gate opens? + *Note : If your gate already notifies you like my esphome firmware, you can turn this off* + default: true + selector: + boolean: + itinerary_update_title: + name: πŸ“ƒβ„ΉοΈ Itinerary status update title + description: The **title** displayed on the notification you will receive when the **status of your itinerary** changes + default: "Itinerary ℹ️" + selector: + text: + itinerary_canceled_title: + name: πŸ“ƒβŒ Itinerary canceled title + description: The **title** displayed on the notification you will receive when your **itinerary gets canceled** + default: "Itinerary canceled ❌" + selector: + text: + gate_opening_title: + name: πŸ“ƒπŸ”“ Gate opening notification title + description: The **title** displayed on the notification you will receive when your **gate is opening** + default: "Gate opening πŸ”“" + selector: + text: + gate_closing_title: + name: πŸ“ƒπŸ”’ Gate closing notification title + description: The **title** displayed on the notification you will receive when your **gate is closing** + default: "Gate closing πŸ”’" + selector: + text: + awaiting_title: + name: πŸ“ƒπŸ’€ Gate awaiting user notification title + description: |- + The **title** displayed on the notification you will receive when your gate is **awaiting another user** + *Note : {{awaiting_persons}} will be replaced by the list of the users being awaited* + default: "Gate awaiting {{ awaiting_persons }} πŸ’€" + selector: + text: + itinerary_started_message: + name: πŸ’¬πŸš€ Itinerary started notification + description: The **content** of the notification you will receive when your **itinerary starts** + default: "Your itinerary has been started" + selector: + text: + user_arrival_message: + name: πŸ’¬πŸ User arrival notification + description: The **content** of the notification you will receive when you **arrive at your destination** + default: "You have arrived at your destination" + selector: + text: + multiline: true + automatic_opening_message: + name: πŸ’¬πŸ”“ Automatic opening notification + description: The **content** of the notification you will receive when your gate is **automatically opening** + default: "Automatic opening of the gate" + selector: + text: + multiline: true + automatic_closing_message: + name: πŸ’¬πŸ”’ Automatic closing notification + description: The **content** of the notification you will receive when your gate is **automatically closing** + default: "Automatic closing of the gate" + selector: + text: + multiline: true + awaiting_message: + name: πŸ’¬πŸ’€ Gate awaiting user notification + description: The **content** of the notification you will receive when your gate is **awaiting another user** + default: "The gate will close once all users have entered/exited" + selector: + text: + multiline: true + vehicle_left_message: + name: πŸ’¬βš οΈ Vehicle left notification + description: The **content** of the notification you will receive if you **leave your vehicle** + default: "You have left your vehicle" + selector: + text: + multiline: true + did_not_leave_message: + name: πŸ’¬βš οΈ User did not leave notification + description: |- + The **content** of the notification you will receive if you **don't leave in time** + *Note : {{safety_delay}} will be replaced by your auto-close delay you have set above* + default: "The vehicle did not leave in less than {{ safety_delay }} minutes" + selector: + text: + multiline: true + did_not_arrive_message: + name: πŸ’¬βš οΈ User did not arrive notification + description: |- + The **content** of the notification you will receive if you **don't arrive in time** + *Note : {{safety_delay}} will be replaced by your auto-close delay you have set above* + default: "The vehicle did not arrive in less than {{ safety_delay }} minutes" + selector: + text: + multiline: true + timed_out_message: + name: πŸ’¬βš οΈ Timed out notification + description: |- + The **content** of the notification you will receive if you **time out** + *Note : {{timeout_delay}} will be replaced by your auto-close delay you have set above* + default: "Your position has not been updated in {{ timeout_delay }} minutes" + selector: + text: + multiline: true + vehicle_away_message: + name: πŸ’¬βš οΈ Vehicle not in activation zone notification + description: The **content** of the notification you will receive if **you are not in your activation zone** + default: "The vehicle is not in the activation zone" + selector: + text: + multiline: true + travel_time_did_not_respond: + name: πŸ’¬βš οΈ Travel time integration did not respond + description: The **content** of the notification you will receive if your **travel time integraton did not respond** during the itinerary + default: "Your travel time integration did not respond during your itinerary" + + optional_sensors: + name: Optional sensors + icon: mdi:dots-horizontal-circle-outline + collapsed: true + input: + ble_entities: + name: πŸ”Ž iBeacon tracker entities + description: |- + Each **[BLE rssi tracker entity](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-entities-)** to monitor your distance from the gate while leaving, to close it when you're out of reach + Needs [bluetooth transmitters](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-transmitter-) set on companion apps + *Note : Let empty if no ble* + default: [] + selector: + entity: + multiple: true + filter: + domain: sensor + device_class: signal_strength + ble_scanner_switch: + name: ⏯️ iBeacon scanner activator switch + description: |- + The **[switch](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-scanner-switch-)** you want to use to turn on and off your **iBeacon scanner** when a vehicle is leaving + *Note : Let empty if no ble / want to always keep iBeacon running* + default: "" + selector: + entity: + filter: + domain: switch + ble_transmitter_phone_control: + name: πŸ“΅ Phone iBeacon control + description: |- + Should your **phone iBeacon transmitter** automatically be turned **off** while not being used by the gate ? + *Note : Only necessary if ble tracker entities are set* + *Please manually set your [iBeacon transmitter](https://github.com/etiennec78/Home-Automation/blob/master/Automatic%20Gate/sensors.md#bluetooth-transmitter-) to on in companion settings if disabled* + default: true + selector: + boolean: variables: gate: !input gate @@ -371,7 +433,7 @@ variables: ble_entities: !input ble_entities ble_scanner_switch: !input ble_scanner_switch ble_transmitter_phone_control: !input ble_transmitter_phone_control - automatic_closing_arrival: !input automatic_closing_arrival + automatic_closing: !input automatic_closing trigger: # Triggers when one of the users connect to a vehicle (if you have more than one, make a custom vehcle sensor : example in sensors.md) @@ -459,7 +521,7 @@ action: # Notify the user that the gate is opening automatically - service: "{{ notify_device }}" data: - title: !input gate_closing_title + title: !input gate_opening_title message: !input automatic_opening_message data: car_ui: true @@ -468,10 +530,10 @@ action: importance: high tag: gate-movement timeout: 300 - # If the automatic closing input is set to true + # If automatic closing is enabled - if: - condition: template - value_template: !input automatic_closing_arrival + value_template: "{{ automatic_closing == 'on' }}" then: # Wait for the gate to be closed by the user, or the iBeacon to be out of reach for 20s, or the vehicle to be left, or the user to leave, all while not waiting more than the auto-close delay - wait_for_trigger: @@ -631,7 +693,7 @@ action: message: clear_notification data: tag: gate-movement - # If the automatic closing input is set to false + # If automatic closing is disabled else: # Wait for the user to leave - wait_for_trigger: @@ -846,7 +908,7 @@ action: # Notify the user that the gate is opening automatically - service: "{{ notify_device }}" data: - title: !input gate_closing_title + title: !input gate_opening_title message: !input automatic_opening_message data: car_ui: true @@ -855,10 +917,10 @@ action: importance: high tag: gate-movement timeout: 300 - # If the automatic closing input is set to true + # If automatic closing is not fully disabled - if: - condition: template - value_template: !input automatic_closing_arrival + value_template: "{{ automatic_closing != 'off' }}" then: # Wait for the gate to be closed manually, or the vehicle to be left, or the user to leave the activation zone, all while not waiting more than the auto-close delay - wait_for_trigger: @@ -962,6 +1024,27 @@ action: importance: high tag: gate-movement timeout: 300 + # If the user has stopped his car, arrived, and auto-closing is enabled + - conditions: + - condition: template + value_template: "{{ wait.trigger.id == 'vehicle_left' and + is_state(person, [state_attr(gate_location, 'friendly_name'), states[gate_location].object_id]) and + automatic_closing == 'on' }}" + sequence: + # Notify the user that the gate will close automatically since he has arrived + - service: "{{ notify_device }}" + data: + title: !input gate_closing_title + message: !input user_arrival_message + data: + car_ui: true + notification_icon: mdi:flag-checkered + channel: Gate alerts + importance: high + tag: gate-movement + timeout: 300 + - delay: + minutes: !input auto_close_arrival_delay # If the user has left his car - conditions: - condition: template @@ -979,18 +1062,16 @@ action: importance: high tag: gate-movement timeout: 300 + # If the user has arrived but don't have automatic gate enabled default: - # Notify the user that the gate will close automatically + # Remove the notification received by the user when his itinerary was started - service: "{{ notify_device }}" data: - message: !input automatic_closing_message + message: clear_notification data: - car_ui: true - notification_icon: mdi:gate - channel: Gate alerts - importance: high - tag: gate-movement - timeout: 300 + tag: itinerary-status + # Stop the whole script as it was successful + - stop: Successful # Close the gate - choose: - conditions: @@ -1015,7 +1096,7 @@ action: tag: itinerary-status # Stop the whole script as it was successful - stop: Successful - # If the automatic closing input is set to false + # If automatic closing is disabled else: # Wait for the user to stop his car - wait_for_trigger: diff --git a/Automatic Gate/sensors.md b/Automatic Gate/sensors.md index 84fa210..4eb3928 100644 --- a/Automatic Gate/sensors.md +++ b/Automatic Gate/sensors.md @@ -23,7 +23,7 @@ Could be from my [esphome firmware](Extra/Esphome%20gate%20firmware/gate.yaml) o * *⚠️ Use high precision while driving in your ETA calculation zone or you could time out* * *If your location tracker has report latency (wifi/ble), and you plug Android Auto just after leaving, your gate could open thinking you are still there* -* *Your High accuracy mode trigger range should be the same as your ETA planning zone in your blueprint config* +* *If high precision mode does not trigger, please increase its range (try 2500m if you don't use Android Auto)* Install through [companion app](https://companion.home-assistant.io/docs/core/location/) settings : *Settings > Companion app > Manage sensors > Background location βœ”* @@ -76,6 +76,13 @@ template: {{ '00:00:00:00:00:00 (BT-Device)' in state_attr('sensor.user0_bluetooth_connection', 'connected_paired_devices') }} ``` +*Note : If your vehicle repeatedly cuts the USB power supply during engine start-up, you should add `delay_off: 00:00:03` in binary_sensor attributes (e.g, after state:)* + +* `00:00:00:00:00:00:00` is your vehicle mac address +* `Bt-Device` is the device name of your vehicle +* `sensor.user0_bluetooth_connection` is your bluetooth companion sensor +* `connected_paired_devices` needs to be left untouched + ### Option 3 : Both (for multiple vehicles) Install sensors from options 1 & 2 @@ -227,6 +234,40 @@ Could be from my [esphome firmware](Extra/Esphome%20gate%20firmware) or any othe **A switch which can turn on/off your BLE scanner. Not useful if you want your BLE scanner running 24/7** +## Last notification πŸ”” + +Only necessary for itinerary tracker notification [automation](Extra/Automations) + +**An empty input datetime helper which will store the last time a tracking notification was sent to your devices** + +Install an [input datetime helper](https://www.home-assistant.io/integrations/input_datetime/) through the UI : *[Settings > Devices & services > Helpers tab](https://my.home-assistant.io/redirect/helpers/) > Create helper > Date and/or time* + +Settings : + +* Name : `Last notification` +* Icon : `mdi:bell` +* What do you want to input : `Date and time` + +Or in your [configuration.yaml](https://www.home-assistant.io/docs/configuration/) file : + +```yaml +input_datetime: + planned_opening: + name: Last notification + icon : mdi:bell + has_date: true + has_time: true +``` + +Then you may mute this sensor by adding this line to your [configuration.yaml](https://www.home-assistant.io/docs/configuration/) file + +```yaml +logbook: + exclude: + entities: + - input_datetime.last_notification +``` + ## Notify all devices group πŸ”” **A group which allows my [esphome firmware](Extra/Esphome%20gate%20firmware) to notify all users in case of an event like your gate opening** diff --git a/Esphome Phillips LivingColors/README.md b/Esphome Phillips LivingColors/README.md new file mode 100644 index 0000000..b1745c0 --- /dev/null +++ b/Esphome Phillips LivingColors/README.md @@ -0,0 +1,36 @@ +# Esphome Phillips LivingColors firmware πŸ’‘ + +## Description πŸ“ + +A simple ESPHome configuration to hack a Phillips LivingColors Mini with an ESP32 + +Has both E1.31 and WLED protocols enabled by default for light software control (e.g.: [Artemis](https://github.com/Artemis-RGB/Artemis)) + +## How to Install πŸš€ + +### Prerequisites πŸ“ + +1. An [ESP32](https://amzn.to/44BPk0g) +2. [ESPHome installed](https://esphome.io/guides/installing_esphome.html) +3. Pins +, -, R, G, B from the led controller soldered onto the ESP32 as shown in [this tutorial](https://thewerner.medium.com/a-brain-for-the-light-c5b290c2e31a) + +### Steps πŸ“œ + +1. Clone this repo + * Run : `git clone https://github.com/etiennec78/Home-Automation.git` +2. Edit [the file](livingcolors.yaml) to fill your needs + * Change GPIO pins + * Replace any "!secret" line with your own information + * Remove E1.31 or WLED if you don't need them +3. Flash your ESP32 + * Plug it into your computer + * Run : `python -m esphome run livingcolors.yaml` +4. Connect your ESP32 to Home Assistant + * Home Assistant should detect your ESPHome device automatically on your LAN + * Connect it and enter your api_key + +## Pictures πŸ“· + +| | | | +| :---: | :---: | :---: | +| First lamp components view | Second lamp components view | Third lamp components view | diff --git a/Esphome Phillips LivingColors/livingcolors.yaml b/Esphome Phillips LivingColors/livingcolors.yaml new file mode 100644 index 0000000..49f82b4 --- /dev/null +++ b/Esphome Phillips LivingColors/livingcolors.yaml @@ -0,0 +1,70 @@ +esphome: + name: phillips-livingcolors + friendly_name: Phillips LivingColors + platform: esp32 + board: esp32dev #ESP32-WROOM-32 (version printed on the chip) + +# Enable logging +logger: + level: WARN # Change to DEBUG if needed + +# Enable Home Assistant API +api: + encryption: + key: !secret api_key + +ota: + password: !secret ota_password + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + manual_ip: + # Adapt this to your own network + static_ip: 192.168.0.71 + gateway: 192.168.0.254 + subnet: 255.255.255.0 + +# Enable E1.31 lighting protocol +e131: + method: unicast + +# Enable wled lighting protocol +wled: + +# Each led GPIO address +output: + - platform: ledc + id: led_R + pin: GPIO15 + - platform: ledc + id: led_G + pin: GPIO21 + - platform: ledc + pin: GPIO17 + id: led_B + +light: + # Real light component + - platform: rgb + id: base_light + internal: true + red: led_R + green: led_G + blue: led_B + + # Fake light component to simulate a led strip + - platform: partition + id: livingcolors + name: Phillips LivingColors + segments: + - single_light_id: base_light + effects: + - random: + name: "Random" + transition_length: 3s + update_interval: 3s + - e131: + universe: 1 + channels: RGB + - wled: diff --git a/README.md b/README.md index c5a708f..c4ee7e7 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ To implement it in your home, you'll have to [install Home Assistant](https://ww | Automation | Description | Quick install | | :-------------------------------: | :---------: | :-----------: | | Automatic Gate ⛩️ | [Read More](Automatic%20Gate) | [![Quickly import Automatic Gate blueprint](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2Fautomatic-gate.yaml) | -| Itinerary Tracker Notification πŸ—ΊοΈ | [Read More](Automatic%20Gate/Extra/Automations) | [![Quickly import itinerary tracker notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fitinerary-tracker-notification.yaml) | +| Itinerary Tracker Notification πŸ“ | [Read More](Automatic%20Gate/Extra/Automations) | [![Quickly import itinerary tracker notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fitinerary-tracker-notification.yaml) | | Gate left open notification πŸ”“ | [Read More](Automatic%20Gate/Extra/Automations) | [![Quickly import gate left open notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fgate-left-open-notification.yaml) | | Gate offline notification 🌐 | [Read More](Automatic%20Gate/Extra/Automations) | [![Quickly import gate offline notification](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fetiennec78%2FHome-Automation%2Fblob%2Fmaster%2FAutomatic+Gate%2FExtra%2FAutomations%2Fgate-offline-notification.yaml) |