#------------------------------------------- # # @CCOSTAN # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig ## Garadget_Stuff - [Garadget](http://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: garadget covers: large_garage: device: !secret large_garage_id #username: !secret garadget_username #password: !secret garadget_password access_token: !secret garadget_access_token name: large_garage small_garage: device: !secret small_garage_id #username: !secret garadget_username #password: !secret garadget_password access_token: !secret garadget_access_token name: small_garage sensor: - platform: template sensors: small_garage_status: friendly_name: 'State of the door' entity_id: [] value_template: '{{ states.cover.small_garage.state }}' small_garage_time_in_state: friendly_name: 'Time Since Change' entity_id: [] value_template: '{{ states.cover.small_garage.attributes["time_in_state"] }}' small_garage_wifi_signal_strength: entity_id: [] friendly_name: 'WiFi strength' value_template: '{{ states.cover.small_garage.attributes["wifi_signal_strength"] }}' unit_of_measurement: 'dB' small_garage_reflection_rate: entity_id: [] friendly_name: 'Reflection Rate' value_template: '{{ states.cover.small_garage.attributes["sensor_reflection_rate"] }}' - platform: mqtt name: 'Small Garage Brightness' state_topic: 'garadget/Garadget Small/status' unit_of_measurement: '%' value_template: '{{ value_json.bright }}' - platform: mqtt name: 'Large Garage Brightness' state_topic: 'garadget/Garadget Large/status' unit_of_measurement: '%' value_template: '{{ value_json.bright }}' - platform: template sensors: large_garage_status: friendly_name: 'State of the door' entity_id: [] value_template: '{{ states.cover.large_garage.state }}' large_garage_time_in_state: friendly_name: 'Time Since Change' entity_id: [] value_template: '{{ states.cover.large_garage.attributes["time_in_state"] }}' large_garage_wifi_signal_strength: entity_id: [] friendly_name: 'WiFi strength' value_template: '{{ states.cover.large_garage.attributes["wifi_signal_strength"] }}' unit_of_measurement: 'dB' large_garage_reflection_rate: entity_id: [] friendly_name: 'Reflection Rate' value_template: '{{ states.cover.large_garage.attributes["sensor_reflection_rate"] }}' group: garage_doors: name: Garage Doors entities: - cover.large_garage - cover.small_garage ###################################################################### ## Garage Status Announcements - Only during normal hours. ###################################################################### automation: - alias: 'Update Garage Brightness' trigger: - platform: time_pattern minutes: '/5' action: - service: mqtt.publish data: topic: "garadget/Garadget Small/command" payload: "get-status" - service: mqtt.publish data: topic: "garadget/Garadget Large/command" payload: "get-status" - alias: 'Garage Door State Change' trigger: - platform: state entity_id: - cover.large_garage - cover.small_garage from: 'open' to: 'closed' for: '00:02:00' - platform: state entity_id: - cover.large_garage - cover.small_garage from: 'closed' to: 'open' for: '00:02:30' action: # - service_template: > # {% 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_template: 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' trigger: - platform: numeric_state entity_id: sensor.dark_sky_wind_speed above: 20 condition: - condition: or conditions: - condition: template value_template: "{{ states('cover.large_garage') == 'opened' }}" - condition: template value_template: "{{ states('cover.small_garage') == 'opened'}}" action: - service: input_boolean.turn_on entity_id: input_boolean.alert_mode - service: script.notify_engine data_template: title: 'Check/Close Garage Doors - High Speed Wind Alert:' value1: "Small: {{ states('cover.small_garage')}}" value2: "Large: {{ states('cover.large_garage')}}" apns_id: 'information' who: 'parents' - service: script.speech_engine data_template: 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', 'open') -%} The Large Garage Door is open {% endif -%} {% if is_state('cover.small_garage', 'open') -%} {% if is_state('cover.large_garage', 'open') -%}and {%- endif %} The small Garage Door is open. {% endif %}" - service: script.tweet_engine_image data_template: 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 + "(http://amzn.to/2jQLpVQ)"}} image: >- {{ [ "/config/www/custom_ui/floorplan/images/branding/windy.png" ] | random }}