# Controlar volume do Google Nest com botão de dim

**URL:** <https://forum.cpha.pt/t/controlar-volume-do-google-nest-com-botao-de-dim/9447>\
**Category:** Node-Red\
**Created:** [31 Janeiro , 2022 22:24 UTC](https://forum.cpha.pt/t/controlar-volume-do-google-nest-com-botao-de-dim/9447 "2022-01-31T22:24:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tmarquespt](https://forum.cpha.pt/user_avatar/forum.cpha.pt/tmarquespt/32/16063_2.png) [@tmarquespt](https://forum.cpha.pt/u/tmarquespt)\
**Post date:** [31 Janeiro , 2022 22:24 UTC](https://forum.cpha.pt/t/controlar-volume-do-google-nest-com-botao-de-dim/9447/1 "2022-01-31T22:24:21Z")

</div>

Este flow permite utilizar um botão de dim (tipo IKEA E1743) para controlar o volume de um Google Nest através de um cast node.

Precisam de ter instaladas as seguintes palettes:

- node-red-contrib-cast
- node-red-contrib-time-based-dimmer

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

Os 3 inject nodes dentro do círculo estão a simular o interruptor. Dependendo da plataforma zigbee que estejam a utilizar a informação que chega ao NR será diferente e terão de adaptar dentro do node “dimmer”.

Esta configuração está feita para responder ao comportamento do E1743 em long press que envia sinalização dim-up ou dim-down enquanto está pressionado e dim-stop quando deixamos de pressionar.

No inicio do flow temos um StateNode para obter o volume actual do Nest e actualizar o node dimmer caso exista uma alteração de volume externa ao flow.

O function node pega no valor do atributo volume e coloca-o no msg.payload para ser lido pelo dimmer node. Pelo meio faz a conversão do volume 0-1 para 0-100 de forma a ser aceite pelo cast node.

```auto
var nestlevel = Number(((msg.data.new_state.attributes.volume_level * 100)).toFixed(0))
msg.payload = nestlevel                           
return msg;

```

No dimmer node têm de configurar os comandos de up/down/stop para que correspondam ao que o vosso comando envia.

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

O dimmer node está a incrementar o volume de 5 em 5. Podem alterar este valor no campo Step e também podem alterar o intervalo.

Por fim temos de mover o payload para msg.payload.volume para o Cast node o assumir.

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

[https://gist.github.com/tmarquespt/20674700769c7d4ba60c96bca22f9fd8.js](https://gist.github.com/tmarquespt/20674700769c7d4ba60c96bca22f9fd8.js)
