#------------------------------------------- # This is the configuration account for @BearStoneHA - My Home's automated twitter account. # @CCOSTAN # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig #------------------------------------------- # homeassistant: # customize_glob: # "input_select.log_*": # icon: mdi:bug # # hidden: False #Random number - https://www.random.org/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new notify: - name: BearStoneHA platform: twitter consumer_key: !secret twitter_consumer_key consumer_secret: !secret twitter_consumer_secret access_token: !secret twitter_access_token access_token_secret: !secret twitter_access_token_secret ### Building out some Historical stats for tweeting. ##################### sensor: # - platform: sql # db_url: sqlite:///home-assistant_v2.db # queries: # - name: "Solar 24h" # column: 'solar_kwh' # unit_of_measurement: 'kWh' # query: >- # SELECT ROUND(SUM(solar_kwh), 2) AS solar_kwh # FROM ( # SELECT AVG(state) AS solar_kwh # FROM states # WHERE entity_id = 'sensor.solar_now' # AND state != 'unknown' # AND last_updated >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 24 HOUR) # GROUP BY HOUR(last_updated) # ) AS total_kwh; - platform: history_stats name: Doorbell Presses entity_id: binary_sensor.skybell_stone_door_button state: 'on' type: count end: '{{ now() }}' duration: hours: 24 - platform: history_stats name: Speech time entity_id: media_player.livingroomCC state: 'playing' type: time end: '{{ now() }}' duration: hours: 24 - platform: history_stats name: TV time entity_id: media_player.living_room_ultra state: 'playing' type: time end: '{{ now() }}' duration: hours: 24 - platform: history_stats name: Landscaping Light time entity_id: group.landscaping state: 'on' type: time end: '{{ now() }}' duration: hours: 24 - platform: history_stats name: Bolt Charging time entity_id: sensor.carlojuice_charging_status state: 'charging' type: time end: '{{ now() }}' duration: days: 7 ### Building some interesting stats for tweeting. ### - platform: template sensors: sensor_count: friendly_name: 'Number of Sensors' value_template: > {%- set domains = ['sensor'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} automation_count: friendly_name: 'Number of Automations' value_template: > {%- set domains = ['automation'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} script_count: friendly_name: 'Number of Scripts' value_template: > {%- set domains = ['script'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} binary_sensor_count: friendly_name: 'Number of Binary Sensors' value_template: > {%- set domains = ['binary_sensor'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} tracker_count: friendly_name: 'Number of Devices' value_template: > {%- set domains = ['device_tracker'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} lights_count: friendly_name: 'Number of Lights' value_template: > {%- set domains = ['light'] -%} {%- for domain in domains -%} {%- for item in states[domain] -%} {% if loop.first %} {{loop.length}} {% endif %} {%- endfor -%} {%- endfor -%} protect_count: friendly_name: 'Number of Smoke Detectors' value_template: > {% if states('group.protects') == 'on' %} {% for e in states.group.protects.attributes.entity_id if states(e) == 'on' %} {% if loop.last %} {{ loop.index }} {% endif %} {%- endfor -%} {% else %} 0 {% endif %} group: tweet_stats: entities: - sensor.doorbell_presses - sensor.landscaping_light_time - sensor.hvac_time - sensor.speech_time - sensor.tv_time - sensor.bolt_charging_time - sensor.sensor_count - sensor.script_count - sensor.binary_sensor_count - sensor.automation_count - sensor.lights_count - sensor.tracker_count - sensor.protect_count ############################################################# automation: - alias: 'New Twitter follower!' hide_entity: True trigger: - platform: event event_type: new_follower condition: - condition: state entity_id: group.bed state: 'off' action: - service: media_player.play_media data_template: entity_id: - media_player.livingroomCC - media_player.bedroom_alarm_panel media_content_id: "https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/config/sounds/twitter-chirp.mp3" media_content_type: audio/mp4 - alias: 'Closed Github Issue' hide_entity: True trigger: - platform: event event_type: closed_github action: - service: script.tweet_engine_image data_template: tweet: >- {% set repo = trigger.event.data.repo %} {% set issue = trigger.event.data.issue %} {% set issueurl = trigger.event.data.issueurl %} {% set phrases = [ "New Code: " ~ issue ~ " " ~ issueurl ] %} {% set hashtags = [ "#Github", "#SmartHomeCode" ] %} {{ phrases|random ~ " " ~ hashtags|random }} image: >- {% set pictures = [ "/config/www/custom_ui/floorplan/images/branding/repo_ad.png", "/config/www/custom_ui/floorplan/images/branding/repo_ad2.png", "/config/www/custom_ui/floorplan/images/branding/repo_ad3.png", "/config/www/custom_ui/floorplan/images/branding/repo_ad4.png" ] %} {{ pictures|random }} - alias: 'Random House stats' hide_entity: True trigger: - platform: time hours: '/2' minutes: 45 seconds: 00 condition: - condition: template value_template: > {%- if states.automation.random_house_stats.attributes.last_triggered -%} {{ (as_timestamp(now()) - as_timestamp(states.automation.random_house_stats.attributes.last_triggered)) > 10000 }} {%- else -%} true {%- endif -%} action: - delay: '0{{ range(0,2) | random | int }}:{{ range(10,59) | random | int }}:00' - service: script.tweet_engine_setup data_template: pick: >- {% set pick = [ "minecraft", "solar", "solar", "robot", "robot", "robot", "robot", "robot", "robot", "robot", "robot", "robot","robot","robot","robot", "door", "door", "door", "weather", "weather", "weather", "weather", "weather", "cloud", "internet", "internet", "internet", "internet", "internet", "stocks", "stocks", "stocks", "night", "night", "tv", "tv", "tv" ] %} {{ pick|random }}