Closed BeardedTinker closed 1 year ago
Here is excellent automation Jonny created. Of course, you still need individual YT Channel sensors before this will work:
alias: Youtube Live Stream
description: ''
trigger:
- platform: state
entity_id:
- sensor.beardedtinker
- sensor.unexpected_maker
- sensor.unexpected_streams
- sensor.bitluni
- sensor.bitluni_s_trash
- sensor.superhousetv
- sensor.intermit_tech
- sensor.simple_electronics
attribute: channel_is_live
to: true
for:
hours: 0
minutes: 0
seconds: 0
condition: []
action:
- service: notify.mobile_app_jonny
data:
message: >
{{state_attr(trigger.entity_id, 'friendly_name')}} is live, video title
{{ trigger.to_state.state }}
- service: tts.cloud_say
data:
entity_id: media_player.kontor
message: >
{{state_attr(trigger.entity_id, 'friendly_name')}} is live, video title
{{ trigger.to_state.state }}
mode: single
And it goes in hand with these sensors that tracks if any of the channels is live:
- platform: template
sensors:
beardedtinker_live:
unique_id: yt00001
friendly_name: "{{ state_attr('sensor.beardedtinker', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.beardedtinker', 'channel_is_live') }}"
unexpected_maker_live:
unique_id: yt00002
friendly_name: "{{ state_attr('sensor.unexpected_maker', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.unexpected_maker', 'channel_is_live') }}"
unexpected_streams_live:
unique_id: yt00003
friendly_name: "{{ state_attr('sensor.unexpected_streams', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.unexpected_streams', 'channel_is_live') }}"
bitluni_live:
unique_id: yt00004
friendly_name: "{{ state_attr('sensor.bitluni', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.bitluni', 'channel_is_live') }}"
bitluni_s_trash_live:
unique_id: yt00005
friendly_name: "{{ state_attr('sensor.bitluni_s_trash', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.bitluni_s_trash', 'channel_is_live') }}"
superhousetv_live:
unique_id: yt00006
friendly_name: "{{ state_attr('sensor.superhousetv', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.superhousetv', 'channel_is_live') }}"
simple_electronics_live:
unique_id: yt00008
friendly_name: "{{ state_attr('sensor.simple_electronics', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.simple_electronics', 'channel_is_live') }}"
intermit_tech_live:
unique_id: yt00007
friendly_name: "{{ state_attr('sensor.intermit_tech', 'friendly_name') Live }}"
value_template: "{{ state_attr('sensor.intermit_tech', 'channel_is_live') }}"
youtube_live:
unique_id: ytallchannels
friendly_name: "Youtube Live"
value_template: >
{{ state_attr('sensor.beardedtinker', 'channel_is_live') == True or
state_attr('sensor.unexpected_maker', 'channel_is_live') == True or
state_attr('sensor.unexpected_streams', 'channel_is_live') == True or
state_attr('sensor.bitluni', 'channel_is_live') == True or
state_attr('sensor.bitluni_s_trash', 'channel_is_live') == True or
state_attr('sensor.superhousetv', 'channel_is_live') == True or
state_attr('sensor.intermit_tech', 'channel_is_live') == True }}
Created issue on component repository: https://github.com/custom-components/youtube/issues/56
I'll link here some of the YouTube channel that create content that I watch with their Channel IDs, so anyone can use it for their Home Assistant integration: