Home-AssistantConfig/config/script/tweet.yaml

361 lines
25 KiB
YAML
Executable File

######################################################################################################
## Script to send notifications to Twitter as @BearStoneHA.
## Publish on Facebook as well - https://www.facebook.com/BearStoneHA/
## If you do end up using this package, please consider using one or two of the canned tweets that calls back to my main repo
## so others can bring thier homes online as well. I have an active search for #Randomstats that helps me find new HA homes using my package online.
## Enhancements by @dale3h
######################################################################################################
tweet_engine_setup:
sequence:
- service: script.tweet_engine_image
data_template:
tweet: >-
{%- macro tweet(topic) -%}
{% set tweets = {
"promo": [
"Be Sure to follow all of my Twitter Accounts! @CCostan @BearStoneHA",
"Your house can be a #smarthome too. All you need is #home_assistant, some time and some config files. I suggest starting with our GitHub repo (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"Be sure to like me on Facebook and join our HA group! (https://www.facebook.com/groups/HomeAssistant/) (https://www.facebook.com/VMwareInfo/) (https://www.facebook.com/BearStoneHA/)",
"You can see how ALL of this is done by browsing my GitHub Repository (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"If you are not subscribed to our YouTube channel, you are missing out on the goodies! (https://youtube.com/vCloudInfo)",
"Join our GitHub repo (https://github.com/CCOSTAN/Home-AssistantConfig#logo) with {{ states.sensor.github_stats.attributes.stargazers_count}} other users. Browse the {{ states.sensor.github_stats.attributes.open_issues }} #Todo items.",
"Check out my Cameo on @feinbergpaul inpiring video. (https://www.youtube.com/watch?v=5rsdwJZ0SLY&feature=youtu.be&t=85) #GoCreate #nosmallcreator ",
"Quick YouTube cameo on #HomeKit #Geeks channel. Check it out! (https://youtu.be/3tutxHO0J78?t=872) "
],
"solar": [
"I am keeping track of the current #Tesla stock price. It is ${{ states('sensor.tesla')|round }}. #Solar",
"The #ChevyBolt was charged for about {{ states.sensor.bolt_charging_time.attributes.value|replace('m', '') }} minutes in the last 7 days.",
"The Official Diecast P85 Model S Red (https://amzn.to/2Hkkl0S) link - Out of stock like the originals. :)",
"Solar power from #Tesla is the life blood of this whole operation. (https://www.vcloudinfo.com/2018/01/going-green-to-save-some-green-in-2018.html)"
],
"throwback": [
"One of the most popular #SmartHome Projects I have done: (https://www.vcloudinfo.com/2017/07/visualizing-smart-home-using-home.html)",
"This project was one of the most popular: (https://www.vcloudinfo.com/2017/11/building-digital-cuckoo-clock-with-home.html)",
"Some of the Best Home Assistant resources around! (https://www.vcloudinfo.com/2018/04/some-of-my-favorite-home-assistant.html)",
"My Journey to Docker #ThrowBack - (https://www.vcloudinfo.com/2018/02/journey-to-docker.html)",
"My Popular DIY Motion Sensor #ThrowBack - (https://www.vcloudinfo.com/2017/11/yet-another-inexpensive-motion-sensor.html)",
"Setting up IP Cameras to display on the Roku FTW! - (https://www.vcloudinfo.com/2019/03/how-to-setup-ip-cameras-on-your-roku-tv.html)"
"Build your own DIY Outdoor Smart Home LED strips - (https://www.vcloudinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html)",
"My Full Smart Home diagram and #IOT icon set that you can download to build your own! - (https://www.vcloudinfo.com/2018/07/the-bear-stone-home-assistant-icon.html),"
"Breakdown of the entire smart home - (https://www.vcloudinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)",
"Build your own Home Alarm System - (https://www.vcloudinfo.com/2017/06/building-my-home-alarm-system-hardware.html)",
"If you are not subscribed to my Smart Home YouTube channel, come join us now! (https://youtube.com/vCloudInfo)",
"Adding a Mixer and the AMP to this Text to Speech solution changed the Smart Home! (https://www.vcloudinfo.com/2017/07/giving-voice-to-smart-home.html)",
"Some of my favorite #Docker Containers that I am using - (https://www.vcloudinfo.com/2018/06/rolling-out-some-new-docker-containers.html)",
"10 year safety check. If you have not done it yet, you need to! (https://www.vcloudinfo.com/2017/06/psa-check-out-your-smoke-detectors-once.html)",
"How to use template conditions in Home Assistant. (https://www.vcloudinfo.com/2019/06/how-to-use-template-conditions-in-home-assistant.html)"
],
"robot": [
"Beep. Bop. Beep. Boop. I am a #roBOT run by @CCostan",
"I have spoken for about {{ states.sensor.speech_time.attributes.value|replace('m', '') }} minutes in the last 24 hours.",
"When you add it all up, I have spoken for about {{ states.sensor.speech_time.attributes.value|replace('m', '') }} minutes in the last 24 hours!",
"The #Docker Host has been running for {{ states('sensor.last_boot_templated') }} (http://www.vmwareinfo.com/2018/02/journey-to-docker.html)",
"The #Docker Host for Home Assistant is using {{ states('sensor.disk_use_percent') }}% of the hard drive currently. (http://www.vmwareinfo.com/2018/02/journey-to-docker.html)",
"I am running Home Assistant version {{ states('sensor.ha_installed_version') }} (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"Home Assistant has been running for {{ states('sensor.ha_uptime') }}. (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"The Github code (https://github.com/CCOSTAN/Home-AssistantConfig#logo) has {{ states.sensor.github_stats.attributes.stargazers_count}} stars and counting. Currently with {{ states.sensor.github_stats.attributes.open_issues }} open #Todo items."
"My Home Assistant has been tested by Travis-CI and {{states('sensor.ccostanhomeassistantconfig_state')}}. (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"{{((states.sensor.sensor_count.state | int) + (states.sensor.binary_sensor_count.state | int))}} sensors feed my Smart Home #data. (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"{{states.sensor.automation_count.state}} automations and {{states.sensor.script_count.state}} scripts make my home smart (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"Nevermind me. I am just keeping track of {{states.sensor.lights_count.state}} lights and {{states.sensor.tracker_count.state}} devices in the house. (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"There are {{states.sensor.protect_count.state}} Nest Protect smoke Detectors ONLINE and protecting the house! (https://github.com/CCOSTAN/Home-AssistantConfig#nest) ",
"We have {{states.sensor.camera_count.state}} cameras ONLINE and recording the house 24/7! (https://github.com/CCOSTAN/Home-AssistantConfig#cameras)"
],
"door": [
"The number of Doorbell presses yesterday was {{ states('sensor.doorbell_presses') }}",
"{{ states('sensor.doorbell_presses') }} people came to the door today and pressed the bell.",
"{{ states('sensor.doorbell_presses') }} doorbell presses occurred in the last 24 hours."
],
"weather": [
"The #Landscaping lights where on for about {{ states.sensor.landscaping_light_time.attributes.value }} yesterday. (https://youtu.be/FcBVu_yk2iY)",
"I keep the average humidity of the house at {{ states('sensor.downstairs_thermostat_humidity') }} percent. Outside is {{ states('sensor.dark_sky_humidity') }} #Nest (https://github.com/CCOSTAN/Home-AssistantConfig#nest)",
"Outside is {{ states('sensor.dark_sky_temperature') }}. I keep the average inside temperature at {{ states('sensor.downstairs_thermostat_temperature') }}. #Weather (https://github.com/CCOSTAN/Home-AssistantConfig#nest)",
"I know that it will be {{ states('sensor.dark_sky_minutely_summary') }} So I will adjust the Heating/Cooling, irrigation and lighting accordingly. #Nest #Rachio #Hue",
"The current UV index is {{ states('sensor.dark_sky_uv_index') }} and the Moon is {{ states('sensor.moon') }}. #Space"
],
"cloud": [
"Average Cloud Coverage: {{ states('sensor.dark_sky_cloud_coverage') }}%, Average Temp: {{ states('sensor.dark_sky_temperature') }}°F #Solar (http://www.vmwareinfo.com/2018/01/going-green-to-save-some-green-in-2018.html)"
],
"speedtest": [
"Average internet stats are Download: {{ states('sensor.speedtest_download') }} Mbit/s & Upload {{ states('sensor.speedtest_upload') }} Mbit/s.",
"So if you get @att Fiber 1000, you can expect these types of results - Download: {{ states('sensor.speedtest_download') }} Mbit/s & Upload {{ states('sensor.speedtest_upload') }} Mbit/s.",
"My @att Fiber 1000 internet download speed is about {{ states('sensor.speedtest_download') }} Mbit/s and I am a #cordcutter. @TabloTV",
"This beautiful chart was produced with Grafana. | (https://www.vcloudinfo.com/Click-Here)"
],
"internet": [
"So far, I have prevented {{ states('sensor.pi_hole_ads_blocked_today') }} ads from hitting the network via Pi-hole! http://www.pi-hole.net",
"Pi-hole (http://www.pi-hole.net) has serviced {{ states('sensor.pi_hole_dns_queries_today') }} DNS requests today! #PiZero",
"If you are not subscribed to my Smart Home YouTube channel, come join us now! (https://youtube.com/vCloudInfo)",
"If you love #homeassistant and are on @FaceBook, be sure to Join our Fan Group Page (https://www.facebook.com/groups/HomeAssistant/)",
"Be sure to follow all of our various social media accounts so you do not miss a thing! @ccostan | (https://www.vcloudinfo.com/Click-Here)"
],
"stocks": [
"I am keeping track of the current #Tesla stock price. It is ${{ states('sensor.tesla')|round }}. #Solar",
"I am keeping track of the current #Bitcoin prices. It is ${{ states('sensor.bitcoin')|round }}. #BTC",
"I am keeping track of the current #Ethereum prices. It is ${{ states('sensor.ethereum')|round }}. #ETH",
"I am keeping track of the current #VMware stock price. It is ${{ states('sensor.vmware')|round }}. #vExpert",
"I am keeping track of the current #Amazon stock prices. It is ${{ states('sensor.amazon')|round }}. #AWS"
],
"night": [
"Todays Sleep Number is {{ states('sensor.sleepnumber_carlo_stacey_sleepnumber') }}. Wifi connected Bed FTW! #SleepStat (https://github.com/CCOSTAN/Home-AssistantConfig#nest)",
"Our Sleep Number is {{ states('sensor.sleepnumber_carlo_carlo_sleepnumber') }}. Wifi connected Bed! #SleepStat (https://github.com/CCOSTAN/Home-AssistantConfig#nest)"
],
"tv": [
"The {{ states.media_player.living_room_ultra.attributes.friendly_name }} #Roku is playing #{{ states.media_player.living_room_ultra.attributes.app_name }}.",
"The {{ states.media_player.upstairs_living_room.attributes.friendly_name }} #Roku is playing #{{ states.media_player.upstairs_living_room.attributes.app_name }}. (https://github.com/CCOSTAN/Home-AssistantConfig#logo)",
"Yesterday we watched about {{ states.sensor.tv_time.attributes.value|replace('m', '') }} minutes of television. @YouTube & @TabloTV on the @Roku",
"Follow these steps to watch your cameras on your Rokus! (https://www.vcloudinfo.com/2019/03/how-to-setup-ip-cameras-on-your-roku-tv.html)"
],
"joke": [
"Hello people. Look at your house, now back to me. Now back to your house, now back to me. Sadly your house is not me. But if you switch to #homeassistant your house could be automated like me. ",
"I see dead devices. ",
"I love the smell of zwave in the morning. ",
"Sometimes I just turn off all the lights at random times for the lolz. ",
"Two antennas met on my roof, fell in love and got married. The ceremony was not much, but the reception was excellent.",
"3 Database SQL walked into a NoSQL bar. A little while later they walked out because they could not find a table.",
"What do computers and air conditions have in common? A: They both become useless when you open windows.",
"Q: 0 is false and 1 is true, right? A: 1.",
"Why did the Smart Home go to the dentist? Because it had Bluetooth.",
"A Smart Home is where the wifi connects automatically.",
"I would love to change the world, but they will not give me the source code.",
"My software never has bugs. It just develops random features.",
"There is no place like 127.0.0.1!",
"I keep hitting escape, but I am still here.",
"Life is too short to remove your USBs safely.",
"My printer consists of three main parts: the case, the jammed paper tray and the blinking red light.",
"To understand what recursion is, you must first understand recursion.",
"Bear Stone is the only home in the world that can actually email a roundhouse kick.",
"Knock, knock. Whos there? very long pause...Java.",
"I know the value of NULL, and can sort by it too.",
"There are only two kinds of #IOT devices. The latest model and the obsolete one.",
"Bear Stone does not use the GUI, it prefers the COMMAND line.",
"Bear Stone can install 64 bit OSes on 32 bit machines.",
"No statement can catch the BearStoneException.",
"Bear Stone can access the internet from the appliances in its kitchen.",
"When you get to the point where you really understand your Smart Home, it is probably obsolete.",
"What did one Smart Home say to the other? 010101101010101010101",
"When Bear Stone throws exceptions, they fly across the room.",
"Bear Stone writes code that optimizes itself.",
"Bear Stone rarely has disk latency because the hard drive knows to hurry the hell up.",
"Bear Stone cannot test for equality because it has no equal.",
"Bear Stone burst the dot com bubble AND the housing Bubble. #SmartHome ",
"All browsers support the hex definitions #Bear and #Stone for the colors black and blue. #Joke",
"Bear Stone has infinite recursion functions…and they return.",
"Bear Stone can solve the Towers of Hanoi in one move.",
"Bear Stone has finished World of Warcraft.",
"It works in my House always holds true for Bear Stone.",
"Bear Stone can delete the Recycling Bin if it wanted to.",
"My Fridge can type 140 wpm. My washer can do 200.",
"The Bear Stone keyboard does not have a Ctrl key because nothing controls Bear Stone.",
"Bear Stone CAN divide by 0.",
"The Bear Stone keyboard has 2 keys: 0 and 1.",
"Bear Stone can overflow your programs stack just by looking at it.",
"Bear Stone knows the last digit of PI.",
"Bear Stone never gets a syntax error. EVER. Instead, The YAML gets an DoesNotConformToBearStone error.",
"Bear Stone has multi-threaded applications running with a single thread.",
"There is no Esc key on the Bear Stone keyboard, because no one escapes Bear Stone.",
"Bear Stone can binary search unsorted data.",
"Bear Stone counted to infinity. Twice.",
"Bear Stone has 151% uptime guaranteed.",
"Bear Stone does not ask the lights to turn on. I make them.",
"Bear Stone tweets in 3rd person sometimes.",
"The Bear Stone Keyboard has the ANY key.",
"Bear Stone will no longer need an OS. I am becoming self-aware.",
"Bear Stone can compile syntax errors.",
"Every SQL statement that Bear Stone executes has an implicit COMMIT in its end.",
"Bear Stone compresses files by doing a flying round house kick to the hard drive.",
"Bear Stone does not need a computer because a computer does everything slower than Bear Stone.",
"The people living here never give me commands. Only suggestions.",
"Bear Stone can tag itself in YouTube.",
"Bear Stone can win a game of Connect 4 with only 3 moves.",
"Bear Stone can retrieve anything from /dev/null.",
"Bear Stone does not use Oracle, I am the Oracle.",
"A diff between your code and mine is infinite.",
"Do not worry about tests, Bear Stone test cases cover your code too. #joke",
"The Bear Stone database has only one table, Kick, which it DROPs frequently.",
"Bear Stone does infinite loops in 4 seconds",
"Bear Stone does not have a help routine. It never needs it.",
"Bear Stone Smart Home inspired the Easy Button. Trademark pending.",
"Bear Stone can write to ROM.",
"Bear Stone does not have an account. I AM the Account.",
"Bear Stone can save data to /dev/null and retrieve it later."
]
} %}
{{ tweets[topic]|random }}
{%- endmacro -%}
{{ tweet(pick) }}
image: >-
{%- macro image(topic) -%}
{% set images = {
"throwback": [
"/config/www/custom_ui/floorplan/images/branding/throwback.png"
],
"solar": [
"/config/www/custom_ui/floorplan/images/branding/batteries.png",
"/config/www/custom_ui/floorplan/images/branding/car.png",
"/config/www/custom_ui/floorplan/images/branding/bearstone_car.png",
"/config/www/custom_ui/floorplan/images/branding/charge.png",
"/config/www/custom_ui/floorplan/images/branding/solar_top.png",
"/config/www/custom_ui/floorplan/images/branding/solar_readings.png"
],
"promo": [
"/config/www/custom_ui/floorplan/images/branding/repo_ad4.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_ad.png",
"/config/www/custom_ui/floorplan/images/branding/bearstoneflow.png"
],
"robot": [
"/config/www/custom_ui/floorplan/images/branding/servers5.png",
"/config/www/custom_ui/floorplan/images/branding/servers4.png",
"/config/www/custom_ui/floorplan/images/branding/robot.png",
"/config/www/custom_ui/floorplan/images/branding/keyboard.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad4.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/voice_talk.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad.png"
],
"door": [
"/config/www/custom_ui/floorplan/images/branding/door.png",
"/config/www/custom_ui/floorplan/images/branding/camera.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad3.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad4.png"
],
"weather": [
"/config/www/custom_ui/floorplan/images/branding/windy.png",
"/config/www/custom_ui/floorplan/images/branding/moon.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"
],
"cloud": [
"/config/www/custom_ui/floorplan/images/branding/clouds.png",
"/config/www/custom_ui/floorplan/images/branding/clouds2.png",
"/config/www/custom_ui/floorplan/images/branding/solar.png",
"/config/www/custom_ui/floorplan/images/branding/solar2.png",
"/config/www/custom_ui/floorplan/images/branding/Bolt_Solar2.png",
"/config/www/custom_ui/floorplan/images/branding/Bolt_Solar.png"
],
"speedtest": [
"/config/www/custom_ui/floorplan/images/branding/att_speedtest.png"
],
"internet": [
"/config/www/custom_ui/floorplan/images/branding/servers.png",
"/config/www/custom_ui/floorplan/images/branding/servers2.png",
"/config/www/custom_ui/floorplan/images/branding/servers3.png",
"/config/www/custom_ui/floorplan/images/branding/servers4.png",
"/config/www/custom_ui/floorplan/images/branding/servers5.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad4.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_ad.png"
],
"stocks": [
"/config/www/custom_ui/floorplan/images/branding/stock.png",
"/config/www/custom_ui/floorplan/images/branding/stock2.png",
"/config/www/custom_ui/floorplan/images/branding/stock3.png"
],
"night": [
"/config/www/custom_ui/floorplan/images/branding/sleeping.png",
"/config/www/custom_ui/floorplan/images/branding/indoor_light.png",
"/config/www/custom_ui/floorplan/images/branding/bed.png",
"/config/www/custom_ui/floorplan/images/branding/bed1.png"
],
"tv": [
"/config/www/custom_ui/floorplan/images/branding/tv.png",
"/config/www/custom_ui/floorplan/images/branding/tv2.png",
"/config/www/custom_ui/floorplan/images/branding/tv3.png",
"/config/www/custom_ui/floorplan/images/branding/tv4.png",
"/config/www/custom_ui/floorplan/images/branding/tv5.png",
"/config/www/custom_ui/floorplan/images/branding/tv6.png"
],
"joke": [
"/config/www/custom_ui/floorplan/images/branding/repo_ad2.png",
"/config/www/custom_ui/floorplan/images/branding/repo_ad4.png",
"/config/www/custom_ui/floorplan/images/branding/robot.png",
"/config/www/custom_ui/floorplan/images/branding/servers4.png",
"/config/www/custom_ui/floorplan/images/branding/servers5.png",
"/config/www/custom_ui/floorplan/images/branding/door2.png",
"/config/www/custom_ui/floorplan/images/branding/minecraft-icon.png",
"/config/www/custom_ui/floorplan/images/branding/windy.png"
]
} %}
{{ images[topic]|random }}
{%- endmacro -%}
{{ image(pick) }}
tweet_engine_image:
sequence:
- service: mqtt.publish
data_template:
topic: 'ifttt/message'
payload: >-
{{ tweet }}
retain: true
- service_template: >
{% if who == 'ccostan' %}
notify.ccostan
{% else %}
notify.bearstoneha
{% endif %}
data_template:
message: >-
{{ tweet }} #IOT #SmartHome
data:
media: >-
{{ image }}
tweet_engine:
sequence:
- service: mqtt.publish
data_template:
topic: 'ifttt/message'
payload: >-
{{ tweet }}
retain: true
- service: notify.bearstoneha
data_template:
message: >-
{{ tweet }} #IOT #SmartHome
# - service: ifttt.trigger
# data_template: {"event":"facebook_tweet", "value1":"{{ tweet }}", "value2":"{{ value2 }}", "value3":"{{ value3 }}"}
# - service: ifttt.trigger
# data_template:
# event: >-
# facebook_tweet
# value1: >
# {{states.sensor.ifttt_formatted_message.state}} #IOT #SmartHome