summaryrefslogtreecommitdiffstats
path: root/custom/scripts/play-playlist.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'custom/scripts/play-playlist.yaml')
-rw-r--r--custom/scripts/play-playlist.yaml144
1 files changed, 144 insertions, 0 deletions
diff --git a/custom/scripts/play-playlist.yaml b/custom/scripts/play-playlist.yaml
new file mode 100644
index 0000000..719958c
--- /dev/null
+++ b/custom/scripts/play-playlist.yaml
@@ -0,0 +1,144 @@
+# We can get media_content_id from kodi web interface on port 8080
+
+play_playlist:
+ alias: Play PlayList
+ description: Send one of pre-generated playlists to media player
+ fields:
+ media_player:
+ name: Media Player
+ description: "Media Player"
+ required: true
+ selector:
+ entity:
+ domain: media_player
+ volume:
+ name: Volume
+ description: "Audio Volume: 0 - 1"
+ default: 0.7
+ selector:
+ number:
+ min: 0
+ max: 1
+ step: 0.05
+ playlist:
+ name: Playlist
+ description: "PlayList to play"
+ default: darksoft
+ selector:
+ select:
+ options:
+ - label: DarkSoft Collections
+ value: darksoft
+ - label: Asgard Music
+ value: asgard
+ - label: Asgard Downloads
+ value: downloads
+ - label: Custom
+ value: custom
+ custom:
+ name: Custom
+ description: "Location of custom playlist"
+ default: []
+ selector:
+ media:
+
+ variables:
+ subfolders: [ "Best", "French", "Russian", "Armenian", "Slavic", "Power", "Irish", "Instrumental" ]
+ current: 'input_number.smartpi_playlist'
+ vol: '{{ volume | default(0.7) | float }}'
+ list: '{{ playlist | default("darksoft") }}'
+
+ mode: single
+
+ sequence:
+ - alias: Turn on player
+ service: media_player.turn_on
+ target:
+ entity_id: '{{ media_player }}'
+
+ - service: media_player.volume_set
+ data:
+ volume_level: '{{ vol }}'
+ target:
+ entity_id: '{{ media_player }}'
+
+ - choose:
+ - conditions:
+ - condition: template
+ value_template: '{{ list == "darksoft" }}'
+ sequence:
+ - if:
+ - condition: template
+ value_template: '{{ states(current) | float >= (subfolders | length) }}'
+ then:
+ - service: input_number.set_value
+ data:
+ value: 0
+ target:
+ entity_id: '{{ current }}'
+
+ - alias: Iterate Darksoft Playlists
+ service: media_player.play_media
+ target:
+ entity_id:
+ - '{{ media_player }}'
+ data:
+ media_content_type: DIRECTORY
+ enqueue: play
+ media_content_id: '{{ "/home/csa/Music/" + subfolders[states(current) | int] }}'
+
+ - service: input_number.increment
+ target:
+ entity_id: '{{ current }}'
+
+ - conditions:
+ - condition: template
+ value_template: '{{ list == "asgard" }}'
+ sequence:
+ - alias: Play Asgard Music
+ service: media_player.play_media
+ target:
+ entity_id:
+ - '{{ media_player }}'
+ data:
+ media_content_type: DIRECTORY
+ enqueue: play
+ media_content_id: "upnp://4d696e69-444c-164e-9d41-3c7c3f4af5b0/64%240%246%243/"
+
+ - conditions:
+ - condition: template
+ value_template: '{{ list == "download" }}'
+ sequence:
+ - alias: Play Asgard Downloads
+ service: media_player.play_media
+ target:
+ entity_id:
+ - '{{ media_player }}'
+ data:
+ media_content_type: DIRECTORY
+ enqueue: play
+ media_content_id: "upnp://4d696e69-444c-164e-9d41-3c7c3f4af5b0/64%240%241%240/"
+
+ - conditions:
+ - condition: template
+ value_template: '{{ list == "custom" }}'
+ sequence:
+ - alias: Play Asgard Downloads
+ service: media_player.play_media
+ target:
+ entity_id:
+ - '{{ media_player }}'
+ data: '{{ custom }}'
+
+
+ - service: media_player.shuffle_set
+ data:
+ shuffle: true
+ target:
+ entity_id: '{{ media_player }}'
+
+ - service: media_player.repeat_set
+ data:
+ repeat: true
+ target:
+ entity_id: '{{ media_player }}'