Lukasz2
(Lukasz)
6 Listopad 2025 13:53
1
Cześć, interesuje mnie sterowanie głośnością Spotify za pomocą suwaka w HA (komunikacja dwustronna). Wcześniej zrobiłem to za pomocą automatyzacji i input_number ale działało tragicznie więc teraz mam zrobione tak:
template:
- number:
- name: "Spotify Lukasz Volume"
unique_id: spotify_lukasz_volume
icon: mdi:volume-high
min: 0
max: 100
step: 1
unit_of_measurement: "%"
state: >
{{ (state_attr('media_player.spotify_lukasz', 'volume_level') | float(0)) * 100 }}
availability: >
{{ state_attr('media_player.spotify_lukasz', 'volume_level') is not none }}
set_value:
- service: media_player.volume_set
target:
entity_id: media_player.spotify_lukasz
data:
volume_level: "{{ value | float(0) / 100 }}"
Działa ale nie idealnie. Gdy ustawię głośność na przykład na 20% i szybko zmienię na 100% to Spotify jest ustawiony na 20%. Jakieś pomysły? Może ktoś ma już to rozwiązane u siebie? Interesuje mnie rozwiązanie bez instalowania jakichś dodatków/pluginów itp (jeśli się da).
artpc
(artur)
6 Listopad 2025 15:01
2
Sterowanie nie zawiera się od 0-100%
Tak zobacz.
min: 0
max: 1
step: 0.01
Lukasz2
(Lukasz)
6 Listopad 2025 16:00
3
Wiem, dlatego robiłem mnożenie/dzielenie przez 100. Teraz zrobiłem tak:
template:
- number:
- name: "Spotify Lukasz Volume"
unique_id: spotify_lukasz_volume
icon: mdi:volume-high
min: 0
max: 1
step: 0.01
unit_of_measurement: "%"
state: >
{{ (state_attr('media_player.spotify_lukasz', 'volume_level') | float(0)) }}
availability: >
{{ state_attr('media_player.spotify_lukasz', 'volume_level') is not none }}
set_value:
- service: media_player.volume_set
target:
entity_id: media_player.spotify_lukasz
data:
volume_level: "{{ value | float(0) }}"
upewniłem się, że zmiany weszły:
ale efekt jest ten sam. Działa jeśli powoli klikam. Jak zaczynam szybkie klikanie/przeciąganie to nie trzyma synchronizacji. Synchronizacja Spotify⭢HA wydaje się być ok, problem jest z HA⭢Spotify.
artpc
(artur)
6 Listopad 2025 17:51
4
Auto.
alias: Spotify - Adjust Volume
description: spotify slider
triggers:
platform: state
entity_id: input_number.spotify_player_vol
action:
- service: media_player.volume_set
data_template:
entity_id: media_player.spotifyplus_pc_artur
volume_level: '{{ trigger.to_state.state }}'
input_number.spotify_player_vol
min: 0
max: 1
step: 0.01
Lukasz2
(Lukasz)
6 Listopad 2025 19:02
5
Dzięki, sprawdziłem to rozwiązanie ale przy szybkiej zmianie wartości (przesuwanie slidera) występuje identyczny problem. Poza tym to jest jednokierunkowe. Wcześniej kombinowałem z automatyzacjami ale gdy robiłem 2 kierunkowo to zapętlałem
Kombinowałem też z czatem AI i wczoraj i dzisiaj ale jeszcze gorzej wychodziło.
Lukasz2
(Lukasz)
7 Listopad 2025 20:35
6
Chyba się udało, póki co nie widzę z tym problemów.
auto1:
alias: Spotify volume - player to slider
description: ""
triggers:
- entity_id: media_player.spotify_lukasz
attribute: volume_level
trigger: state
conditions:
- condition: template
value_template: >-
{{ state_attr('media_player.spotify_lukasz','volume_level') is not none
}}
- condition: template
value_template: >
{% set player =
(state_attr('media_player.spotify_lukasz','volume_level')|float(0)*100)|int
%} {% set stored = states('input_number.spotify_volume_state')|int %} {{
(player - stored) | abs > 1 }}
actions:
- variables:
player_percent: >
{{
(state_attr('media_player.spotify_lukasz','volume_level')|float(0)*100)|round(0)
}}
- target:
entity_id: input_number.spotify_volume_state
data:
value: "{{ player_percent }}"
action: input_number.set_value
- target:
entity_id: input_number.spotify_volume_slider
data:
value: "{{ player_percent }}"
action: input_number.set_value
mode: queued
max: 10
auto2:
alias: Spotify volume - slider to player
description: ""
triggers:
- entity_id: input_number.spotify_volume_slider
trigger: state
actions:
- wait_for_trigger:
- entity_id: input_number.spotify_volume_slider
trigger: state
timeout:
milliseconds: 250
continue_on_timeout: true
- condition: template
value_template: |
{{ states('input_number.spotify_volume_slider')|int
!= states('input_number.spotify_volume_state')|int }}
- target:
entity_id: media_player.spotify_lukasz
data:
volume_level: >
{{ (states('input_number.spotify_volume_slider')|int / 100) | round(2)
}}
action: media_player.volume_set
- target:
entity_id: input_number.spotify_volume_state
data:
value: "{{ states('input_number.spotify_volume_slider')|int }}"
action: input_number.set_value
mode: restart
input_number:
spotify_volume_slider:
min: 0
max: 100
step: 1
mode: slider
unit_of_measurement: "%"
spotify_volume_state:
min: 0
max: 100
step: 1
mode: slider
unit_of_measurement: "%"
1 polubienie