# Controle de saídas

Vários modelos de dispositivos vêm equipados com a capacidade de controlar o estado de dispositivos ou motores conectados. Esse recurso pode ser aplicado a diversos componentes, incluindo fechaduras, buzinas, imobilizadores, sistemas de corte de óleo/motor e sistemas automáticos de aquecimento do motor como Webasto. Pode até se estender a aplicações de automação residencial, como tomadas inteligentes e lâmpadas inteligentes, entre outros. Pode ser usado, por exemplo, no seu trailer/casa móvel que é melhor rastrear e controlar via rastreador GPS. O conceito principal aqui é a capacidade de ligar ou desligar uma função ou dispositivo específico remotamente por meio de um comando transmitido por via aérea. Naturalmente, o escopo real desse controle depende do que está conectado à saída do dispositivo.

![Exemplo de widget de controle de saída](https://786860322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fgit-blob-2a8bca84847247dbee45ddd358b1376eb00f08d8%2Fimagen-20230727-155729.png?alt=media)

## Como o controle de saída funciona

O controle de saída na plataforma Navixy funciona da seguinte forma:

O usuário abre o widget do dispositivo na interface do usuário ou no aplicativo X-GPS monitor. Existem três maneiras distintas pelas quais os widgets de controle de saída são exibidos:

* Se um modelo de dispositivo pode retransmitir sua informação de estado de saída de volta para a plataforma, o último estado de saída recebido do dispositivo é exibido. Por exemplo, se a saída estava 'ligada', o usuário terá apenas a opção de enviar um comando 'desligar saída' e vice-versa. Na próxima captura de tela, todas as 4 saídas estão desativadas e o usuário pode apenas ativá-las.

![Como o controle de saída funciona com dispositivo online e estados conhecidos](https://786860322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fgit-blob-5bb3faa13863216e54c458d41ca5a9c1f6ce2b87%2Fimage-20240125-094039.png?alt=media)

* Se o modelo do dispositivo não fornece uma resposta à plataforma ou não inclui o estado da saída em suas mensagens, a plataforma pode enviar qualquer comando, seja para ligar ou desligar o estado da saída. O usuário pode clicar na zona vermelha para enviar um comando 'saída desligada' e na zona verde para enviar um comando 'saída ligada'.

![Como o controle de saída funciona com dispositivos sem estado](https://786860322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fgit-blob-455b52e203e6dd2737817b508b5445625372c27b%2Fimage-20240125-093603.png?alt=media)

* Se o dispositivo estiver offline e o controle de saídas por SMS não estiver disponível para o modelo, o widget exibe os últimos estados conhecidos da saída em modo desbotado, indicando que o controle da saída não é possível.

![Como o controle de saída funciona em dispositivo offline](https://786860322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fgit-blob-8fd54911ca29ffe1bffc68a328ec3c6c15d9d360%2Fimage-20240125-093342.png?alt=media)

Em seguida, o cliente seleciona a saída desejada e altera seu estado. Por exemplo, se o usuário decidir desligar a saída 1, a plataforma solicitará confirmação para evitar ativações acidentais.

![Confirmação de alteração de estado das saídas](https://786860322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIgDb43gtyXcm1Av4h1np%2Fuploads%2Fgit-blob-48b9868c27e1d155833e5a8ec97668eda7defc9d%2Fimage-20240125-095825.png?alt=media)

Confirmar é equivalente a enviar uma solicitação API:

* Será uma chamada de API [/tracker/output/set\_all](https://www.navixy.com/docs/navixy-api/user-api/backend-api/resources/tracking/tracker/output#set_all) se o dispositivo suportar comandos que listem todos os estados simultaneamente. Por exemplo, habilitar a saída 1 em um dispositivo Teltonika com 3 saídas onde todas as saídas estão desligadas no momento, usaria um comando como 'setdigout 1,0,0'.
* Será uma chamada de API [/tracker/output/set](https://www.navixy.com/docs/navixy-api/user-api/backend-api/resources/tracking/tracker/output#set) se o dispositivo suportar o envio de comandos para cada saída individualmente.

Ao usar as APIs, você pode [automatizar o controle de saídas no seu dispositivo](https://www.navixy.com/blog/cloud-functions-for-tailored-vehicle-telematics-solutions/?utm-source=slack), vinculando-o a tipos específicos de eventos ou valores recebidos.

Após iniciar o comando, a plataforma envia o comando de controle de saída ao dispositivo. Isso pode ser verificado através do [Air Console](https://app.gitbook.com/s/KdgeXg71LpaDrwexQYwp/devices/air-console) que está disponível para todos os parceiros no painel Admin.

No caso do widget de saída com estados conhecidos, a plataforma bloqueia temporariamente o widget de controle de saída até que um novo estado de saída seja recebido ou se tenham passado 15 minutos. Isso serve para evitar envio excessivo de comandos, o que poderia causar erros ou mau funcionamento do dispositivo.

Uma vez que um novo estado é recebido, a plataforma atualiza o widget para refletir o novo estado, e o controle de saída fica disponível novamente.

## Como o controle de saída funciona em diferentes modelos de dispositivos

### Maneiras de enviar comandos

Os comandos para gerenciar saídas podem ser enviados de algumas maneiras diferentes, dependendo do dispositivo e suas capacidades:

* SMS: Este método é usado se o dispositivo estiver offline ou suportar apenas mensagens SMS para gerenciar saídas.
* Internet móvel: Isso é aplicável para dispositivos padrão que podem operar controles de saída usando uma conexão à internet.

Modelos de dispositivos podem suportar tanto comandos por SMS quanto por internet. No entanto, o método usado depende da integração do dispositivo. Tipicamente, para dispositivos com controle via internet, esse método é usado exclusivamente, mesmo que o dispositivo também suporte SMS. Isso está relacionado a diferentes lógicas de segurança do controle de saída.

### Diferente lógica de segurança do controle de saída

Vários modelos de dispositivos incorporam lógica de segurança para o controle de saída. Estas são projetadas para prevenir ações como desligar o motor enquanto o veículo está em movimento. Os recursos de segurança são incorporados nos próprios dispositivos, pois a plataforma não inclui essas opções de segurança.

A lógica de segurança pode ser implementada de várias maneiras:

* Omissão por limite de velocidade: O dispositivo pode ignorar comandos de controle de saída se a velocidade do veículo exceder um determinado limite, como 5 km/h.
* Sensor de movimento (acelerômetro): Alguns dispositivos podem desconsiderar comandos de controle de saída se for detectado movimento por um acelerômetro.
* Omissão baseada em cenário: Por exemplo, dispositivos Teltonika permitem que DOUTs sejam vinculados a diferentes cenários para comutação automática, e comandos de controle de saída podem ser omitidos com base nesses cenários.
* Proteção por senha: Comandos podem ser ignorados se não incluírem uma senha específica. Nossa plataforma suporta comandos padrão e senhas padrão.
* Verificação de remetente confiável: Alguns dispositivos aceitam comandos apenas de remetentes confiáveis. Se nossa plataforma não estiver listada como remetente confiável, os comandos podem ser ignorados.
* Configuração de comandos pela internet: Dispositivos podem ignorar comandos pela internet até que estejam devidamente configurados para recebê-los.

É importante notar que alguns dispositivos implementam lógica de segurança apenas para comandos pela internet, mas podem ainda possuir um comando de emergência específico para parar o motor via SMS. Entretanto, não suportamos tais comandos devido a preocupações de segurança. Por exemplo, este é o caso de alguns dispositivos Coban.

## Por que o controle de saída pode não funcionar

Existem várias razões potenciais pelas quais o controle de saída pode não funcionar como esperado.

* Dispositivo offline, SMS não suportado: O dispositivo pode estar offline e, para este modelo em particular, o gerenciamento por SMS pode não ser suportado. Aguarde até que seu dispositivo fique online e tente novamente.
* Dispositivo online, apenas SMS suportado, mas o painel não tem gateway SMS conectado: O dispositivo pode estar online, mas suportar apenas SMS para controle de saída, e o gateway SMS não está conectado ao painel. Nesse caso, você pode solicitar a instalação do seu gateway SMS. Verifique [requisitos para instalação do gateway SMS](https://app.gitbook.com/s/KdgeXg71LpaDrwexQYwp/settings/messaging-gateways#sms-gateway).
* Fundos insuficientes para SMS: O usuário pode não ter crédito suficiente para enviar mensagens SMS, conforme exigido pelo plano do rastreador. Verifique o saldo do usuário e as [opções do plano do rastreador](https://app.gitbook.com/s/KdgeXg71LpaDrwexQYwp/plans).
* Lógica específica de controle de saída: O dispositivo pode ter lógica especializada de controle de saída que afeta sua operação. Por exemplo, lógica de segurança ou de cenários descrita acima.
* Senha não padrão para controle de saída: O dispositivo pode estar configurado com uma senha para controle de saída que não seja a padrão. Nesse caso, verifique as configurações do dispositivo e habilite a senha padrão.
* Dispositivo não configurado para controle de saída via internet: O dispositivo pode não estar configurado adequadamente para receber comandos de controle de saída baseados na internet. Verifique as configurações do dispositivo e habilite o controle de saída.
* Plataforma não confiável para comandos: A plataforma pode não estar listada como remetente confiável de comandos pelo dispositivo. Nesse caso, adicione a plataforma à lista de remetentes confiáveis.
* Fiação incorreta: Pode haver um problema com a fiação, como polaridade incorreta dos fios ou conexão inadequada. Verifique novamente como a saída está conectada. A maneira mais rápida é usar comandos SMS. Se funcionar com SMS, então tudo está conectado corretamente.
* Incompatibilidade de firmware: O dispositivo pode estar executando uma versão de firmware que não suporta os comandos usados pela plataforma, conforme o protocolo e a integração do dispositivo. Isso pode ocorrer se o protocolo e os comandos foram alterados ou alguma outra lógica foi adicionada pelo fabricante.

Se a plataforma enviar o comando no AirConsole e ele estiver alinhado com o protocolo do dispositivo, então a origem do problema provavelmente não é a plataforma. Nesses casos, é aconselhável verificar a lista acima e contatar o fabricante do dispositivo para determinar a causa do mau funcionamento do controle de saída.

Caso o comando não esteja correto, por favor contate nosso [time de suporte](mailto:support@navixy.com).
