Associar query (dataset) ao dispositivo

Boa tarde!
Tenho a seguinte situação:

  • Dispositivo 1, localizado na cidade 1;
  • Dispositivo 2, localizado na cidade 2;
  • Dispositivo 3, que lê a temperatura da cidade 1 e da cidade 2 ao mesmo tempo, com atributos chamados “temperatura_cidade1” e “temperatura_cidade2

Em um dashboard comum aos 3 dispositivos, tenho um custom HTML que mostra tal temperatura.
Existe alguma forma de o atributo lido mudar de acordo com o context (deviceId)? Através de uma tag, por exemplo…

Tentei algo do tipo:
image

em que se a tag retornasse “cidade1”, mostraria a temperatura da cidade1 e o mesmo aconteceria para o caso da “cidade2”. Aparentemente isso não funciona.
Poderiam dar alguma ideia?

Agradeço!

1 Curtida

Boa tarde!

Sim, é possível ter mais variáveis de contexto.
Elas poderiam ser as três cidades.

Outra ideia seria ter a cidade em uma TAG do seu dispositivo. Aí você pode acessar ela e alterar conforme desejado.

Importante:
Não se esqueça de selecionar esta caixa. Desta forma as TAGs e informações do Device ficam disponíveis:

Olá! Agradeço a resposta. O problema é que, ao adicionar um dataset/query a ser lido no custom HTML, o atributo retornado é fixo.
image

Ou seja, se eu mudar o context para o dispositivo referente à cidade 2, ainda estará sendo lido o atributo “temperatura_cidade1”. O que procuro é uma forma de mudar esse atributo lido de acordo com o context de outro dispositivo. Por exemplo:

se o deviceId-0 possuir a tag “cidade = cidade1”, o query de deviceId-2 deve ser “temperatura_cidade1”. Caso o deviceId-0 seja o dispositivo cuja tag é “cidade = cidade2”, o query de deviceId-2 deve ser “temperatura_cidade2”.

1 Curtida

Boa tarde Cesar, tudo bem?

Uma boa prática da Plataforma é sempre definirmos o nome do atributo de forma genérica, para que possamos realizar as consultas de context de forma mais eficiente.

Por favor, tente mudar o nome do seu atributo e ao invés de “temperatura_cidade1” para o device 1 e “temperatura_cidade2” para o device 2, nomeie os atributos de forma genérica como :

"temperatura_cidade"

Dessa forma o atributo irá mudar conforme o ctx.deviceId usado.
Espero poder ter contribuído :grinning_face_with_smiling_eyes:

Olá César!

Fiz um exemplo com três devices num só dashboard.
Conforme o @jfiorin comentou, eu mantive o mesmo nome do atributo para todos os devices.

Este atributo é o “cidade” e carreguei os três valores diferentes para cada Dispositivo conforme figura abaixo:

No dashboard cada objeto terá o contexto diferente (para direcionar ao Dispositivo) mas terá o atributo igual:

Veja abaixo que, se eu “passar” um Dispositivo diferente para o primeiro contexto (ctx.deviceId-0), ele irá trazer o valor do atributo do outro Dispositivo, como esperado:


Como o Device RUW100 não tinha nada em “cidade” retornou “n/a”

Agora para a Experiência de Usuário, veja como defini o acesso a este Dashboard:
Padrão, criei a Page, porém, ao “apontar” para este dashboard a plataforma já me sugere as três vairáveis de contexto. Então, criei os três parâmetros para poder inserir via *query" as três variáveis.
Depois, foi criado um endpoint para acessar a página

Agora na Experiência de usuário, conforme eu for passando estes parâmetros via variáveis de contexto, eu posso mostrar na tela.
Veja no exemplo abaixo, eu “passei invertidos” os *device IDs" dos três devices e o dashboard mostrou invertido, conforme esperado:

1 Curtida

@jfiorin e @Alexandre obrigado pelas dicas esclarecedoras! Já estou as aplicando, porém, minha situação não é diretamente resolvida.
Apenas para exemplificar:

  • Tenho um context fixo, referente ao dispositivo que lê temperaturas de várias cidades;
  • Este dispositivo possui os atributos temperatura_Joinville e temperatura_Curitiba;
  • Tenho um dispositivo com a tag “cidade” = Joinville e outro com “cidade” = Curitiba.

Em um bloco HTML, eu posso simplesmente fazer um query para temperatura_Joinville e um query para temperatura_Curitiba. Então, no código, poderia colocar um condicional simples, em que se o context apontar o device que possui a tag “cidade” = Joinville, seria lido temperatura_Joinville e o mesmo para o outro caso.

Porém, se eu tiver 100 dispositivos em cidades diferentes, seria forçado a fazer 100 queries e adicionar mais de 100 linhas em cada código. Por isso a pergunta: é possível fazer um só query, em que o attribute/dataset lido mude de acordo com um outro context?