84 lines
2.1 KiB
Nix
84 lines
2.1 KiB
Nix
# Inputs:
|
|
# binary_sensor.playlist_button_good
|
|
# binary_sensor.playlist_button_bad
|
|
|
|
# outputs
|
|
# rest_command
|
|
# automation
|
|
# sensor
|
|
{
|
|
rest_command = {
|
|
good_song = {
|
|
url = "http://prism.r:8001/good";
|
|
method = "POST";
|
|
};
|
|
bad_song = {
|
|
url = "http://prism.r:8001/skip";
|
|
method = "POST";
|
|
};
|
|
};
|
|
automation = [
|
|
{
|
|
alias = "playlist song publish";
|
|
trigger = {
|
|
#platform = "event";
|
|
#event_data.entity_id = "sensor.the_playlist_song";
|
|
platform = "state";
|
|
entity_id = "sensor.the_playlist_song";
|
|
};
|
|
action = {
|
|
service = "mqtt.publish";
|
|
data = {
|
|
topic = "/ham/the_playlist/song";
|
|
payload_template = "{{ states.sensor.the_playlist_song.state }}";
|
|
};
|
|
};
|
|
}
|
|
{
|
|
alias = "playlist upvote on button";
|
|
trigger = {
|
|
platform = "state";
|
|
entity_id = "binary_sensor.playlist_button_good";
|
|
from = "off";
|
|
to = "on";
|
|
};
|
|
action.service = "rest_command.good_song";
|
|
}
|
|
{
|
|
alias = "playlist downvote on button";
|
|
trigger = {
|
|
platform = "state";
|
|
entity_id = "binary_sensor.playlist_button_bad";
|
|
from = "off";
|
|
to = "on";
|
|
};
|
|
action.service = "rest_command.bad_song";
|
|
}
|
|
];
|
|
sensor = [
|
|
{ platform = "rest";
|
|
name = "pl";
|
|
resource = "http://prism.r:8001/current";
|
|
scan_interval = 30;
|
|
value_template = "1";
|
|
json_attributes = [ "name" "filename" "youtube" ];
|
|
}
|
|
{ platform = "template";
|
|
sensors = {
|
|
the_playlist_song = {
|
|
friendly_name = "Current Song";
|
|
value_template = ''{{ states.sensor.pl.attributes['name'] }}'';
|
|
};
|
|
the_playlist_url = {
|
|
friendly_name = "Song Youtube URL";
|
|
value_template = ''{{ states.sensor.pl.attributes['youtube'] }}'';
|
|
};
|
|
the_playlist_filename = {
|
|
friendly_name = "Song Filename";
|
|
value_template = ''{{ states.sensor.pl.attributes['filename'] }}'';
|
|
};
|
|
};
|
|
}
|
|
];
|
|
}
|