Tenho um input select que me determina qual é o volune default do rádio, mas não estou a conseguir que fique operacional. Tentei várias maneiras, mas dá-me sempre erro de float, a indicar que não estou a passar um número float para o volume do rádio.
O volume level:0.2 hard-coded que está comentado funciona muito bem. O outro dá erro na conversão para float, mas não consigo saber o que está a ser passado para lá.
O erro é o seguinte
voluptuous.error.MultipleInvalid: expected float for dictionary value @ data[‘volume_level’]
Outras variantes que já tentei sem sucesso:
volume_level: “{{states.input_select.radio_volume.state| multiply(0.1) | float }”
volume_level: ‘{{states.input_select.radio_volume.state| multiply(0.1)|round(2) | float}}’
Aceder à variável de outra forma: “{{ states(‘input_select.radio_volume’) }}”
(…)
(também tentei o mais fácil que foi colocar o input_select com valores entre 0 e 1 e passar diretamente, mas também foi sem sucesso).
Haverá alguma forma de eu imprimir isto para fazer debug do que está a aparecer? Tenho um conjunto de outros inputs de texto que funcionam sem problemas
play_radio:
alias: Play Radio
sequence:
- service: media_player.volume_set
data:
entity_id: media_player.myemail_s_echo_dot
volume_level: "{{states.input_select.radio_volume.state| float | multiply(0.1)|round(2)}}"
Estou a receber o seguinte erro:
voluptuous.error.MultipleInvalid: expected float for dictionary value @ data[‘volume_level’]
Eu queria saber se existe alguma forma de eu saber o que está a ser retornado nesta variável, para conseguir perceber o porqué de me estar a dar um erro de data type.
Há alguma forma de eu imprimir o valor daquela variável {{states.input_select.radio_volume.state| float | multiply(0.1)|round(2)}} para perceber o que vem dentro e que poderá estar a originar o erro?
Por exemplo, tenho o valor 4 definido. O media player aceita entre 0 e 1 e então faço o seguinte:
“{{states.input_select.radio_volume.state| float | multiply(0.1)|round(2)}}”
Isto é um cast normal, não podia ser pelo cast. E quando vejo o preview na linguagem de templating aparece direitinho. Portanto tinha de ser uma coisa mais absurda. E de facto era!
O script recebia um string e não float porque não estava a processar em templating, porque eu tinha deixado ficar data: