Pular para o conteúdo
Conteúdo técnicopara integradores e desenvolvedores. Para usar o sistema no dia a dia, veja os manuais dos apps e equipamentos.

/aa/udp: enviar mensagem UDP

A ação /aa/udp faz o equipamento enviar uma mensagem por UDP para outro aparelho da rede. Use-a para acionar dispositivos externos.

Parâmetro Conteúdo
ip IP de destino.
port Porta de destino, de 1 a 65535.
payload Conteúdo da mensagem, em hexadecimal: 2 caracteres por byte (ex.: 0D = Enter), até 256 caracteres (128 bytes). Os separadores :, - e . são ignorados, mas contam no limite: 41:42-43 envia ABC.
_su Identificador livre, de até 8 caracteres. Veja os parâmetros de controle.

Com @0 e os parâmetros, o equipamento envia a mensagem na hora. Exemplo: enviar ligar para 192.168.0.50, na porta 5000.

$72B0>/aa/udp@0?ip=192.168.0.50&port=5000&payload=6C69676172<48230# — Dispositivo: $72B0, Ação: >/aa/udp, Protocolo: @0, Valores: ?ip=192.168.0.50&port=5000&payload=6C69676172, Sequência: <48230, Fim: #

No exemplo, 6C69676172 é a palavra “ligar” em hexadecimal.

Parâmetro que não vai na mensagem fica com o último valor usado. Envie sempre ip, port e payload.

A resposta chega logo depois do pedido, antes da entrega:

$72B0>/aa/udp@0?code=1111&ip=192.168.0.50&port=5000&payload=&_su=&bytes=5&err=0<3395745# — Dispositivo: $72B0, Ação: >/aa/udp, Protocolo: @0, Valores: ?code=1111&ip=192.168.0.50&port=5000&payload=&_su=&bytes=5&err=0, Sequência: <3395745, Fim: #
Parâmetro da resposta Conteúdo
bytes Quantos bytes o equipamento colocou na fila de envio.
err 0 = mensagem aceita para envio. 1 = payload inválido (caractere que não é hexadecimal, número ímpar de caracteres ou mais de 128 bytes). 2 = sem ip. 3 = fila de envio cheia. 4 = sem memória. Com erro, nada é enviado.

O payload vem sempre vazio na resposta. err=0 confirma que o equipamento aceitou a mensagem, mas não que o destino a recebeu.

Para o envio acontecer quando um botão é pressionado, grave a ação como item da cena do botão (/cs/btN). No item, path é /aa/udp e query traz os parâmetros separados por ;. Exemplo: o item 3 da cena do botão 0 envia ligar para 192.168.1.50, na porta 8008.

$72B0>/cs/bt0@6?code=1001&_n=3&id=72B0&path=/aa/udp&query=ip%3D192.168.1.50;payload%3D6C69676172;port%3D8008&invertToOff=off&offOnRelease=off&_ts=1792695679&version=0<3627659#
$72B0>/aa/udp@0?_to=192.168.0.10<99999# — Dispositivo: $72B0, Ação: >/aa/udp, Protocolo: @0, Valores: ?, Destino: _to=192.168.0.10, Sequência: <99999, Fim: #

A consulta não envia nada. Ela devolve code=1001 e os parâmetros da ação:

$72B0>/aa/udp@0?code=1001&ip=192.168.0.50&port=5000&payload=&_su=&bytes=0&err=0&_to=192.168.0.10<3378459# — Dispositivo: $72B0, Ação: >/aa/udp, Protocolo: @0, Valores: ?code=1001&ip=192.168.0.50&port=5000&payload=&_su=&bytes=0&err=0, Destino: &_to=192.168.0.10, Sequência: <3378459, Fim: #