# Luau agora disponível para Analysis

> Conheça o Luau para Analysis: processe leituras armazenadas de dispositivos, atualize entities e controle o acesso por políticas, sem gerenciar um Analysis Token.

![Luau agora disponível para Analysis](https://tago.io/og/pt-br/blog/introducing-luau-analysis-runtime.png)

O Luau já está disponível para Analysis na TagoIO. Escreva scripts Luau que leem dados armazenados de dispositivos, calculam novos valores e salvam os resultados com funções integradas. Seu código roda na TagoIO, sem precisar adicionar um SDK nem gerenciar um Analysis Token.

A leitura mais recente de um sensor nem sempre conta a história toda. Você pode precisar da média das últimas temperaturas, de um total acumulado ou de um status calculado a partir de várias leituras. O Luau foi feito para essas tarefas pequenas e frequentes que trabalham com dados já presentes na TagoIO. O script faz o cálculo; o Access Management controla quais recursos ele pode usar.

## Transforme leituras armazenadas em valores úteis

Um sensor de estufa registra temperaturas de 24, 26 e 28 °C. Uma Analysis em Luau pode ler esses registros, calcular a média e salvar 26 °C no dispositivo como `temperature_avg`, mantendo as leituras originais disponíveis.

![Uma Analysis em Luau lê temperaturas armazenadas de 24, 26 e 28 °C, calcula a média de 26 °C e grava temperature_avg no dispositivo](https://tago.io/images/blog/introducing-luau-analysis-runtime/data-flow.svg)

As funções integradas de `Devices` cuidam do acesso aos dispositivos e das operações com dados. `Entities` lê e grava linhas de entities, e `Analysis.list` encontra as Analysis que sua política permite acessar. Não é preciso configurar um cliente de API separado para essas operações.

Outras tarefas úteis seguem o mesmo padrão:

- Calcular o consumo de água a partir de contagens de pulsos armazenadas e salvar o resultado em litros.
- Comparar leituras recentes com um limite e gravar uma variável `status` no dispositivo.
- Salvar uma leitura calculada em uma linha de uma entity ou atualizar uma linha existente.
- Ler parâmetros de configuração e atualizar as configurações de um grupo de dispositivos autorizado.

Use um Payload Parser quando precisar apenas transformar o payload recebido de um dispositivo. Escolha uma Analysis em Luau quando o trabalho também exigir dados armazenados, gravações adicionais ou alterações nas configurações dos dispositivos.

## Trabalhe com resultados de forma síncrona

As chamadas de dispositivos e entities do Luau retornam os resultados diretamente ao seu script. Leia os dados, calcule um valor e salve-o em sequência, sem escrever cadeias de Promises ou callbacks. No exemplo da estufa, a média usa a leitura já concluída, e a gravação termina antes de o script continuar.

Execução síncrona não significa latência zero. Ler dados e fazer cálculos ainda leva tempo, e os acionamentos comuns de Analysis hospedadas não retornam o resultado do script a quem fez a chamada.

**Atualização, 15 de outubro de 2026:** Os [Analysis Endpoints](https://tago.io/blog/introducing-analysis-endpoints) oferecem às Analysis em Luau um fluxo síncrono de requisição e resposta HTTP. Quem faz a chamada aguarda o script e recebe a resposta na mesma requisição. Valide uma entrada, calcule um valor ou leia dados de dispositivos e retorne o resultado assim que o script terminar, sem exigir que a aplicação o busque depois.

## Compare a velocidade dos runtimes na mesma carga de trabalho

Uma comparação do processamento de dados de sensores entre runtimes:

Tempo mediano de execução

| Runtime | 1.000 leituras | 100.000 leituras |
| --- | --- | --- |
| Luau 0.728 | 0,74 ms | 30,60 ms |
| Bun 1.4.2 | 19,21 ms | 27,49 ms |
| Deno 2.4.4 | 30,63 ms | 37,87 ms |
| Node.js 24.21.0 | 29,74 ms | 37,98 ms |
| Python 3.13 | 69,70 ms | 138,52 ms |

Cada runtime usa a versão hospedada pela TagoIO. O Luau roda dentro da TagoIO sem iniciar um processo separado, então seus tempos cobrem apenas o script. Os outros runtimes iniciam um novo processo a cada execução, e essa inicialização responde pela maior parte do tempo com 1.000 leituras.

## Regras de acesso, sem token

Uma Analysis em Luau recebe suas permissões de uma [política do Access Management](https://docs.tago.io/docs/tagoio/analysis/luau-runtime#permissions), não de um Analysis Token. Defina a Analysis como alvo, diretamente ou por uma de suas tags, e permita as ações necessárias nos recursos desejados.

![O Access Management permite que uma Analysis em Luau leia e grave no sensor da estufa, mas bloqueia um dispositivo sem relação com a tarefa, sem Analysis Token](https://tago.io/images/blog/introducing-luau-analysis-runtime/permissions.svg)

Para calcular a média da estufa, conceda permissão para buscar o sensor, ler seus dados e gravar o valor calculado. Isso não concede acesso a um dispositivo sem relação com a tarefa. Uma leitura ou gravação sem a permissão necessária é bloqueada.

## Mantenha cada script focado

O Luau roda apenas na TagoIO. Não tem acesso de saída à internet, a bibliotecas externas ou a arquivos, e não pode enviar e-mails, SMS ou notificações diretamente.

Escolha o Luau para tarefas pequenas que usem apenas as operações integradas de dispositivos, entities e Analysis, como calcular a média de leituras e salvar o resultado. Escolha o [Bun](https://tago.io/blog/introducing-bun-analysis-runtime) quando o script precisar de uma API externa, de um pacote ou de outros recursos da TagoIO.

Se um valor calculado precisar gerar uma ação externa, deixe essa etapa em uma Analysis auxiliar em Deno, Node.js ou Python. Por exemplo, o script da estufa pode iniciar uma Analysis auxiliar de notificação somente quando a média ultrapassar um limite. `Analysis.run` inicia a Analysis auxiliar sem esperar que ela termine e exige a permissão **Run Analysis** no alvo. Não é possível iniciar outra Analysis em Luau com essa chamada.

As execuções em Luau não contam para o [limite mensal do Analysis Service](https://docs.tago.io/docs/tagoio/profiles/services/analysis-service). As operações de dispositivos e entities continuam sujeitas aos limites aplicáveis de serviço, recursos e requisições. O runtime também limita o tempo de execução, a memória e o tamanho do payload; consulte os [limites do Luau](https://docs.tago.io/docs/tagoio/analysis/luau-runtime#limits) ao dimensionar uma tarefa.

## Comece a usar

Comece com uma nova Analysis e um dispositivo de teste que contenha leituras numéricas na mesma unidade.

1. No [Admin](https://admin.tago.io), crie uma Analysis e selecione **Luau** (`luau-rt2026`) em **Runtime**.
2. Configure a política do Access Management antes de executar qualquer operação com dispositivos ou entities.
3. Abra o Script Editor e use o [exemplo de Luau](https://docs.tago.io/docs/tagoio/analysis/luau-runtime#writing-a-luau-analysis). Mantenha os IDs dos dispositivos e as configurações em variáveis de ambiente.
4. Salve o script e clique em **Run**. Inspecione os valores salvos e a saída do console. Use `print(...)` para os logs; os erros de argumento identificam a opção inválida.

Se estiver migrando código existente, leia primeiro os [avisos sobre a troca de runtime](https://docs.tago.io/docs/tagoio/analysis/creating-analysis#runtime): mudar para Luau remove o Analysis Token existente.

Consulte o [guia do runtime Luau](https://docs.tago.io/docs/tagoio/analysis/luau-runtime) para ver as funções disponíveis e as [notas da versão de 16 de setembro](https://changelog.tago.io/server/v10-4-0/) para ler o anúncio.

[llms.txt](https://tago.io/llms.txt)
