# Input\_select float

**URL:** <https://forum.cpha.pt/t/input-select-float/2229>\
**Category:** Configuração\
**Created:** [2 Abril , 2019 07:40 UTC](https://forum.cpha.pt/t/input-select-float/2229 "2019-04-02T07:40:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mfrodrigues](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/m/e480ec/32.png) [@mfrodrigues](https://forum.cpha.pt/u/mfrodrigues)\
**Post date:** [2 Abril , 2019 07:40 UTC](https://forum.cpha.pt/t/input-select-float/2229/1 "2019-04-02T07:40:12Z")

</div>

Viva,

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.

Está definido assim:

 ![image](https://forum.cpha.pt/uploads/default/original/2X/4/4f97af97fb11de4418756bd2c042d6c7159dac8d.png)

O código do script é o seguinte:

```auto

 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| multiply(0.1)|round(2)}}"
          #volume_level: '0.2'

```

O meu input\_select que se vê na imagem acima é o seguinte:

```auto

  radio_volume:
    name: Volume Inicial Radio
    options:
      - "2"
      - "4"
      - "6"
      - "8"
      - "10"
    initial: "4"

```

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).

Acredito que estou perto, mas não cheguei lá ☹

Podem dar-me alguma dica?

Tks!

---

<div class="post-metadata">

**Author:** ![Maddoctor](https://forum.cpha.pt/user_avatar/forum.cpha.pt/maddoctor/32/1508_2.png) [@Maddoctor](https://forum.cpha.pt/u/Maddoctor)\
**Post date:** [2 Abril , 2019 12:01 UTC](https://forum.cpha.pt/t/input-select-float/2229/2 "2019-04-02T12:01:14Z")

</div>

Tens de tentar a variante em que o float está a seguir ao **state|**  
😉

---

<div class="post-metadata">

**Author:** ![mfrodrigues](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/m/e480ec/32.png) [@mfrodrigues](https://forum.cpha.pt/u/mfrodrigues)\
**Post date:** [2 Abril , 2019 20:30 UTC](https://forum.cpha.pt/t/input-select-float/2229/3 "2019-04-02T20:30:30Z")

</div>

Tinha ideia que já tinha feito, mas insisti novamente os seguintes sem sucesso:

> “{{states.input\_select.radio\_volume.state| float | multiply(0.1)|round(2)}}”  
> “{{states.input\_select.radio\_volume.state| float | round(2)}}”  
> “{{states.input\_select.radio\_volume.state| float | multiply(0.1)|round(2)}}”

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 😕

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [2 Abril , 2019 20:38 UTC](https://forum.cpha.pt/t/input-select-float/2229/4 "2019-04-02T20:38:42Z")

</div>

> [@mfrodrigues](#):
>
> Haverá alguma forma de eu imprimir isto para fazer debug do que está a aparecer?

Explica lá isso mas agora em Português.

---

<div class="post-metadata">

**Author:** ![mfrodrigues](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/m/e480ec/32.png) [@mfrodrigues](https://forum.cpha.pt/u/mfrodrigues)\
**Post date:** [2 Abril , 2019 20:43 UTC](https://forum.cpha.pt/t/input-select-float/2229/5 "2019-04-02T20:43:20Z")

</div>

Aqui vai o contexto. No seguinte script:

```auto
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?

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [2 Abril , 2019 20:45 UTC](https://forum.cpha.pt/t/input-select-float/2229/6 "2019-04-02T20:45:23Z")

</div>

@mfrodrigues conheces os ícones que ficam no rodapé do menu do lado esquerdo do HA e sabes para que servem?

---

<div class="post-metadata">

**Author:** ![mfrodrigues](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/m/e480ec/32.png) [@mfrodrigues](https://forum.cpha.pt/u/mfrodrigues)\
**Post date:** [2 Abril , 2019 20:53 UTC](https://forum.cpha.pt/t/input-select-float/2229/7 "2019-04-02T20:53:18Z")

</div>

Diria que sim, mas estamos sempre a aprender! 🙂

![image](https://forum.cpha.pt/uploads/default/original/2X/0/001d32bb68f7daf3a1f9f6414e4b4caf37f500dc.png)

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)}}”

E o round(2) não faz nada por isso podia tirar.

 ![image](https://forum.cpha.pt/uploads/default/original/2X/2/28174ea2b7fc4b9a84373dc31ddae8bbbe19643d.png)

Não consigo mesmo perceber o motivo de dar o erro no script porque aparentemente está tudo OK.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [2 Abril , 2019 20:56 UTC](https://forum.cpha.pt/t/input-select-float/2229/8 "2019-04-02T20:56:16Z")

</div>

Está a dar um erro porque estás a misturar tudo. Experimenta colocar tudo dentro de parentesis e colocar o `| float` fora.

---

<div class="post-metadata">

**Author:** ![mfrodrigues](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/m/e480ec/32.png) [@mfrodrigues](https://forum.cpha.pt/u/mfrodrigues)\
**Post date:** [2 Abril , 2019 21:19 UTC](https://forum.cpha.pt/t/input-select-float/2229/9 "2019-04-02T21:19:41Z")

</div>

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:

 ![image](https://forum.cpha.pt/uploads/default/original/2X/8/85f816ee10ab512ad3c3426c7a6999f7416d225d.png)

Onde está a amarelo “data:”, deve ser “data\_template:” Foi mesmo erro básico!

Código revisto:

```auto
 play_radio:
    alias: Play Radio
    sequence:
      - service: media_player.volume_set
        data_template:
          entity_id: media_player.myemail_s_echo_dot
          volume_level: "{{ states.input_select.radio_volume.state | float | multiply(0.1) }}"

```

Obrigado pela ajuda!
