@@ -84,108 +84,35 @@ triggers:
8484conditions : []
8585actions :
8686 - variables :
87+ version : 20250128
8788 default_player_entity_id : !input default_player_entity_id_input
8889 trigger_id : " {{ trigger.id }}"
89- media_name : " {{ trigger.slots.media_name }}"
90- media_type : |
91- {% if 'radio' in media_name or 'Radio' in media_name %}
92- radio
93- {% else %}
94- {{ trigger_id }}
95- {% endif %}
96- artist : " {{ trigger.slots.artist }}"
97- area_or_player_name : " {{ trigger.slots.area_or_player_name }}"
90+ area_or_player_name : " {{ trigger.slots.area_or_player_name | default }}"
9891 assist_device_id : " {{ trigger.device_id }}"
99- radio_mode_str : " {{ trigger.slots.radio_mode or '' }}"
100- radio_mode : " {{ 'radio' in radio_mode_str.lower() }}"
92+ action_data :
93+ media_id : " {{ trigger.slots.media_name }}"
94+ media_type : " {{ 'radio' if 'radio' in media_name | lower else trigger_id }}"
95+ artist : " {{ trigger.slots.artist | default }}"
96+ radio_mode : " {{ 'radio' in trigger.slots.radio_mode | default | lower }}"
10197 player_entity_id_by_player_name : >
102- {{ expand(integration_entities('music_assistant')) |
103- selectattr("attributes.mass_player_type", 'defined') |
104- selectattr("attributes.friendly_name", 'equalto', area_or_player_name) |
105- join(', ', attribute="entity_id") }}
98+ {{ integration_entities('music_assistant') | expand
99+ | selectattr('name', 'match', area_or_player_name ~ '$', ignorecase=true)
100+ | map(attribute='entity_id') | list }}
106101 player_entity_id_by_area_name : >
107- {{ expand(area_entities(area_or_player_name)) |
108- selectattr("attributes.mass_player_type", 'defined') |
109- selectattr("attributes.friendly_name", 'equalto', area_or_player_name) |
110- join(', ', attribute="entity_id") }}
111- player_entity_id_by_assist_area : |
112- {% if assist_device_id and area_id(assist_device_id) %}
113- {{ expand(area_entities(area_id(assist_device_id))) | selectattr("attributes.mass_player_type", 'defined') | join(', ', attribute="entity_id") }}
114- {% else %}
115- None
116- {% endif %}
102+ {{ areas() | map('area_name') | select('match', area_or_player_name ~ '$',
103+ ignorecase=true) | map('area_entities') | sum(start=[]) | select('in',
104+ integration_entities('music_assistant')) | list }}
105+ player_entity_id_by_assist_area : >
106+ {{ area_entities(area_id(trigger.device_id))
107+ | select('in', integration_entities('music_assistant')) | list }}
117108 mass_player_entity_id : |
118- {% if player_entity_id_by_player_name %}
119- {{ player_entity_id_by_player_name }}
120- {% elif player_entity_id_by_area_name %}
121- {{ player_entity_id_by_area_name }}
122- {% elif player_entity_id_by_assist_area %}
123- {{ player_entity_id_by_assist_area }}
124- {% else %}
125- {{ default_player_entity_id }}
126- {% endif %}
127- mass_player_name : " {{ state_attr(mass_player_entity_id, 'friendly_name') }}"
128- - choose :
129- - conditions :
130- - condition : template
131- value_template : " {{ media_type == 'album' }}"
132- sequence :
133- - action : music_assistant.play_media
134- metadata : {}
135- data :
136- media_id : " {{ media_name }}"
137- artist : " {{ artist }}"
138- media_type : " {{ media_type }}"
139- radio_mode : " {{ radio_mode }}"
140- target :
141- entity_id : " {{ mass_player_entity_id }}"
142- - conditions :
143- - condition : template
144- value_template : " {{ media_type == 'track' }}"
145- sequence :
146- - action : music_assistant.play_media
147- metadata : {}
148- data :
149- media_id : " {{ media_name }}"
150- artist : " {{ artist }}"
151- media_type : " {{ media_type }}"
152- radio_mode : " {{ radio_mode }}"
153- target :
154- entity_id : " {{ mass_player_entity_id }}"
155- - conditions :
156- - condition : template
157- value_template : " {{ media_type == 'artist' }}"
158- sequence :
159- - action : music_assistant.play_media
160- metadata : {}
161- data :
162- media_id : " {{ media_name }}"
163- media_type : " {{ media_type }}"
164- radio_mode : " {{ radio_mode }}"
165- target :
166- entity_id : " {{ mass_player_entity_id }}"
167- - conditions :
168- - condition : template
169- value_template : " {{ media_type == 'radio' }}"
170- sequence :
171- - action : music_assistant.play_media
172- metadata : {}
173- data :
174- media_id : " {{ media_name }}"
175- media_type : " {{ media_type }}"
176- target :
177- entity_id : " {{ mass_player_entity_id }}"
178- - conditions :
179- - condition : template
180- value_template : " {{ media_type == 'playlist' }}"
181- sequence :
182- - action : music_assistant.play_media
183- metadata : {}
184- data :
185- media_id : " {{ media_name }}"
186- media_type : " {{ media_type }}"
187- radio_mode : " {{ radio_mode }}"
188- target :
189- entity_id : " {{ mass_player_entity_id }}"
109+ {{ player_entity_id_by_player_name or player_entity_id_by_area_name
110+ or player_entity_id_by_assist_area or [default_player_entity_id] }}
111+ mass_player_name : " {{ mass_player_entity_id | map('state_attr', 'friendly_name') | join(', ') }}"
112+ - alias : Send media to selected Music Assistant Player
113+ action : music_assistant.play_media
114+ data : " {{ dict(action_data.items() | selectattr('1')) }}"
115+ target :
116+ entity_id : " {{ mass_player_entity_id }}"
190117 - set_conversation_response : " {{ trigger.slots.media_name }} wird auf {{ mass_player_name }} abgespielt"
191118mode : single
0 commit comments