# Relatorio Tecnico: Servidor de Recepcao go.ach.ar Rejeitando Dados IoTHub **Data:** 25/02/2026 **Prioridade:** Alta **Destinatario:** Equipe SmartGPS --- ## 1. Resumo do Problema O servidor de recepcao de dados `go.ach.ar:5055` esta **rejeitando todas as requisicoes** enviadas pelo IoTHub com erro **HTTP 400 (Bad Request)** e a mensagem `missing or invalid id`. Nenhum dado dos dispositivos esta sendo recebido com sucesso pelo servidor GO. --- ## 2. Configuracao Atual | Item | Valor | |------|-------| | **Servidor IoTHub (origem)** | 144.76.103.132 | | **Servidor GO (destino)** | go.ach.ar (137.131.138.59) | | **Porta** | 5055 | | **Forward URL** | `http://go.ach.ar:5055` | | **Protocolo** | HTTP POST | | **Content-Type** | `application/x-www-form-urlencoded` | --- ## 3. Evidencia das Falhas ### 3.1 Estatisticas do Push Receiver ``` { "forward": "http://go.ach.ar:5055", "stats": { "received": 45, "forwarded": 45, "fwdOk": 0, <-- ZERO SUCESSOS "fwdFail": 45 <-- 100% FALHA } } ``` **Taxa de sucesso: 0%** - Todas as 45 requisicoes encaminhadas falharam. ### 3.2 Logs de Erro Todos os endpoints retornam o mesmo erro: ``` [FWD] /pushgps GO HTTP 400 (non-JSON) [FWD] /pushhb GO HTTP 400 (non-JSON) ``` ### 3.3 Teste Manual de Conectividade Requisicao enviada: ``` POST http://go.ach.ar:5055/pushgps HTTP/1.1 Host: go.ach.ar:5055 Content-Type: application/x-www-form-urlencoded token=a12341234123&data_list=[{"deviceImei":"862798050567391","lat":...}] ``` Resposta recebida: ``` HTTP/1.1 400 Bad Request Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Origin: * Content-Type: text/plain; charset=utf-8 Content-Length: 22 missing or invalid id ``` ### 3.4 Endpoints Testados (todos falharam com mesmo erro) | Endpoint | HTTP Status | Resposta | |----------|------------|----------| | `POST /pushgps` | 400 | `missing or invalid id` | | `POST /pushhb` | 400 | `missing or invalid id` | | `POST /pushevent` | 400 | `missing or invalid id` | | `GET /` | 400 | `missing or invalid id` | --- ## 4. Formato dos Dados Enviados (Padrao Jimi IoTHub) Os dados sao enviados no formato padrao da API Push do Jimi IoTHub, conforme documentacao oficial. Exemplo de payload `/pushgps`: ``` POST /pushgps Content-Type: application/x-www-form-urlencoded token=a12341234123 &data_list=[{ "deviceImei": "862798050567391", "gpsTime": "2026-02-25 00:30:00", "gateTime": "2026-02-25 00:30:01", "satelliteNum": 8, "lng": -43.172896, "lat": -22.906847, "gpsSpeed": 45, "direction": 180, "acc": 1, "altitude": 25, "postType": 1, "postMethod": 0, "gpsMode": 0, "distance": 1500 }] ``` A resposta esperada pelo IoTHub e: ```json { "code": 0, "msg": "success" } ``` Se o servidor retornar `code` diferente de 0, o IoTHub reenvia os dados ate 3 vezes com intervalo de 2 minutos. --- ## 5. Analise ### 5.1 Conectividade OK O servidor `go.ach.ar:5055` esta **acessivel** e **respondendo** (conexao TCP estabelecida, resposta HTTP recebida). Nao ha problema de rede ou firewall. ### 5.2 Problema no Servidor GO A mensagem `missing or invalid id` indica que o servidor GO: - Espera um parametro `id` que nao esta sendo enviado no formato IoTHub, **OU** - Nao esta implementando a API Push do Jimi IoTHub corretamente, **OU** - O endpoint na porta 5055 nao e compativel com o formato Push do IoTHub (talvez seja outro protocolo como Traccar/OsmAnd) ### 5.3 Resposta em formato errado O servidor responde com `Content-Type: text/plain` ao inves de `application/json`. O IoTHub espera uma resposta JSON com `{"code": 0, "msg": "success"}` para confirmar o recebimento. --- ## 6. Acoes Necessarias 1. **Confirmar se a porta 5055 e o endpoint correto** para receber dados Push do IoTHub Jimi. A porta 5055 e tipicamente usada pelo protocolo OsmAnd/Traccar, que utiliza parametros GET (`?id=IMEI&lat=...`) e nao POST com `data_list`. 2. **Implementar os endpoints Push do IoTHub** no servidor GO conforme a documentacao Jimi: - `POST /pushgps` - Dados GPS - `POST /pushhb` - Heartbeat - `POST /pushevent` - Login/Logout - `POST /pushalarm` - Alarmes - Parametros: `token` (string) e `data_list` (JSON array string) 3. **Retornar resposta JSON valida:** ```json {"code": 0, "msg": "success"} ``` 4. **Informar a porta e path corretos** caso o servidor GO use um endpoint diferente (ex: `http://go.ach.ar:5055/api/jimi/push` ou outra porta). --- ## 7. Referencia A documentacao completa da API Push do Jimi IoTHub esta disponivel em: https://docs.jimicloud.com/integration/integration.html#apis-description Os endpoints que precisam ser implementados no servidor de recepcao sao todos os listados na secao "1 Push APIs" da documentacao. --- **Fim do Relatorio**