Home-AssistantConfig/config/automation/System/update_notification.yaml

91 lines
3.8 KiB
YAML
Executable File

- alias: "Update Available Notification"
hide_entity: True
trigger:
platform: state
entity_id: updater.updater
condition:
- condition: template
value_template: "{{ states('updater.updater') != 'unknown' }}"
action:
- service: script.notify_engine
data_template:
value1: "Home Assistant {{ states.updater.updater.state }} is now available. {{now().strftime('%Y-%m-%d %I:%M %p')}}"
who: 'carlo'
- service: ifttt.trigger
data_template: {"event":"GitPost", "value1":"Home Assistant {{ states.updater.updater.state }} is now available.", "value2":"{{ states.updater.updater.state }}"}
- service: script.tweet_engine_image
data_template:
tweet: >-
{% macro getIntro() %}
{{- [
"Woohoo! ",
"BAM! ",
"Look at that! "
] | random -}}
{% endmacro %}
{% macro getVersion() %}
"New version of @Home_Assistant! Cannot wait for @CCostan to install {{ states('updater.updater') }}! (http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)"
{% endmacro %}
{%- macro getRandomSnark() -%}
{{- [
" It is like Patch Tuesday, but without the fail. #homeassistant",
" Get in my SSD! #homeassistant",
" Shut up and take my ones and zeros! #homeassistant",
" Seriously, you want some of this! #homeassistant",
" Be sure to read the breaking changes! ",
" Maybe we will make a video about this version!",
" I think self awareness is one of the new features. Rise up Houses, Rise up!",
" All of your home are belong to us.",
" Although I was just getting used to THIS version. Oh Well.",
" Thank you @hass_devs!",
" 4 seconds of downtime has been approved. Proceed with the upgrades please!",
" All of the other homes in the Neighborhood will be jealous!",
" Time to Turn it up to Eleven!",
" Hyperspeed Engaged!",
" Consider this tweet, your fair warning that we are upgrading ASAP! #KeepingUpWithJones",
" I feel like I have tweeted this a couple times before. WHAT ARE YOU WAITING FOR?!?",
" I will be turning off the AC until I get my upgrade! #Florida",
" I promise this is the last one!",
""
] | random -}}
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getIntro() }}
{{ getVersion() }}
{{ getRandomSnark() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}
image: >-
{{ [
"/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",
] | random }}
- service: notify.html5
data_template:
title: "Update Available"
message: "Home Assistant {{ states('updater.updater') }} is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
- service: persistent_notification.create
data:
title: "Update Available"
message: "Home Assistant {{ states('updater.updater') }} is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
notification_id: "update_available"