- 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"