#------------------------------------------- # # @CCOSTAN # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig ## Garadget_Stuff - [Garadget](https://amzn.to/2jQLpVQ) - Garage Door opener/sensor # Video and Write Up - https://www.vcloudinfo.com/2019/03/how-to-add-garadget-to-home-assistant.html # Switch to Access_Tokens - https://www.vcloudinfo.com/2020/05/fixing-garadget-in-home-assistant.html #------------------------------------------- cover: - platform: mqtt name: "Small Garage Door" device_class: 'garage' command_topic: "garadget/GSmall/command" state_topic: "garadget/GSmall/status" value_template: >- {% if value_json.status == 'closed' %} closed {% else %} open {% endif %} payload_open: "open" payload_close: "close" payload_stop: "stop" - platform: mqtt name: "Large Garage Door" device_class: 'garage' command_topic: "garadget/GLarge/command" state_topic: "garadget/GLarge/status" value_template: >- {% if value_json.status == 'closed' %} closed {% else %} open {% endif %} payload_open: "open" payload_close: "close" payload_stop: "stop" sensor: - platform: mqtt name: "Large Garage Door Since" state_topic: "garadget/GLarge/status" value_template: '{{ value_json.time }}' - platform: mqtt name: "Large Garage Door Brightness" state_topic: "garadget/GLarge/status" unit_of_measurement: '%' value_template: '{{ value_json.bright }}' - platform: mqtt name: "Small Garage Door Since" state_topic: "garadget/GSmall/status" value_template: '{{ value_json.time }}' - platform: mqtt name: "Small Garage Door Brightness" state_topic: "garadget/GSmall/status" unit_of_measurement: '%' value_template: '{{ value_json.bright }}' group: garage_doors: # This group is used to check if doors are open or Closed. name: Garage Doors entities: - cover.large_garage_door - cover.small_garage_door ###################################################################### ## Garage Status Announcements - Only during normal hours. ###################################################################### automation: - alias: 'Update Garage Get-Status' id: 2b9e8359-c189-4399-b415-50107513fe90 trigger: - platform: time_pattern minutes: '/1' action: - service: mqtt.publish data: topic: "garadget/GSmall/command" payload: "get-status" - service: mqtt.publish data: topic: "garadget/GLarge/command" payload: "get-status" - alias: 'Garage Door State Change' id: afec0987-edb1-4341-a524-a00ae4df9fb7 trigger: - platform: state entity_id: - cover.large_garage_door - cover.small_garage_door from: 'open' to: 'closed' for: '00:02:00' - platform: state entity_id: - cover.large_garage_door - cover.small_garage_door from: 'closed' to: 'open' for: '00:02:30' action: # - service: > # {% set hour=states("sensor.time").split(':')[0] | int %} # {% if hour >= 7 and hour <= 9 and states.input_boolean.school_mode.state == 'on'%} # input_boolean.turn_off # {% else %} # input_boolean.turn_on # {% endif %} # entity_id: input_boolean.alert_mode - service: script.speech_engine data: DoorClosed: "The {{ trigger.entity_id.split('.')[1]|replace('_', ' ') }} is now {{ (trigger.to_state.state)|replace('_', ' ') }}." call_garage_check: 1 ################################### ## Garadget Wind Door Checks - [Garadget](https://amzn.to/2jQLpVQ) ################################### - alias: 'Wind Speed Garage Door Check' id: 2819207a-1716-4552-be34-a8e0f7af004e trigger: - platform: numeric_state entity_id: sensor.dark_sky_wind_speed above: 20 condition: - condition: or conditions: - condition: state entity_id: cover.large_garage_door state: 'opened' - condition: state entity_id: cover.small_garage_door state: 'opened' action: - service: input_boolean.turn_on entity_id: input_boolean.alert_mode - service: script.notify_engine data: title: 'Check/Close Garage Doors - High Speed Wind Alert:' value1: "Small: {{ states('cover.small_garage_door')}}" value2: "Large: {{ states('cover.large_garage_door')}}" apns_id: 'information' who: 'parents' - service: script.speech_engine data: value1: > "The winds are picking up outside. The wind speed is {{ states('sensor.dark_sky_wind_speed')|round}} miles per hour. For safety, please close the garage doors. {% if is_state('cover.large_garage_door', 'open') -%} The Large Garage Door is open {% endif -%} {% if is_state('cover.small_garage_door', 'open') -%} {% if is_state('cover.large_garage_door', 'open') -%}and {%- endif %} The small Garage Door is open. {% endif %}" - service: script.tweet_engine_image data: tweet: > {{ [ "Wind speed is {{ states('sensor.dark_sky_wind_speed')|round}} miles per hour. For safety, I'm going to close the @garadget doors.", "Getting pretty windy! {{ states('sensor.dark_sky_wind_speed')|round}}MPH. Time to ask @Garadget to close the garage doors." ] | random + "(https://amzn.to/2jQLpVQ)"}} image: >- {{ [ "/config/www/custom_ui/floorplan/images/branding/windy.png" ] | random }} ############################################################################## - alias: Is the Garage door Open at night - Checks every 30 minutes or 5 minutes after we drive away. id: 4eb3e83e-4484-4102-a4ca-6bacd5b3cbdd trigger: - platform: time_pattern minutes: '/45' - platform: state entity_id: group.family to: not_home for: 00:05:00 - platform: state entity_id: input_boolean.tv_time to: 'on' from: 'off' condition: condition: or conditions: - condition: and conditions: - condition: state entity_id: group.family state: not_home for: 00:05:00 - condition: or conditions: - condition: template value_template: "{{ states('cover.large_garage_door') == 'opened' }}" - condition: template value_template: "{{ states('cover.small_garage_door') == 'opened' }}" - condition: and conditions: - condition: state entity_id: sun.sun state: 'below_horizon' - condition: or conditions: - condition: template value_template: "{{ states('cover.large_garage_door') == 'opened' }}" - condition: template value_template: "{{ states('cover.small_garage_door') == 'opened'}}" action: - service: script.notify_engine data: title: 'Check Garage Doors:' value1: "Small: {{ states('cover.small_garage_door')}}" value2: "Large: {{ states('cover.large_garage_door')}}" who: "family" camera_entity: "camera.camera2" apns_id: 'information' - service: script.speech_engine data: value1: "Please check the garage doors. The Small garage is {{ states('cover.small_garage_door')}} and the large garage is {{ states('cover.large_garage_door')}}"