Pensei a mesma coisa. Se o app consegue coletar esses dados é bem provável que consiga enviar para um broker MQTT da vida.
Vou analisar com calma pra entender como esses dados são trafegados porque, se tiver todos os recursos que afirmam ter, o app pode ter poderes até demais…
No post original tem um vídeo já, não muito detalhado, mas demonstra a funcionalidade.
Sobre as minhas preocupações quanto ao tráfego de dados, gostaria de levantar uma “inconsistência” aqui.
No site menciona uma “comunicação ponto a ponto” entre carro e celular. Porém, o app envia notificações, mas isso geralmente envolve alguma comunicação app <> servidor, até porque o app (que é uma PWA - aplicação WEB progressiva) não fica rodando em segundo plano. Sendo assim, o app precisa enviar eventos para um serviço de notificações (servidor) onde o app “se registra” para receber as notificações.
Então, mesmo que durante a execução o app use uma conexão P2P, esse app ainda vai enviar eventos para um serviço (provavelmente de terceiros) para o envio de notificações.
Ainda não tive tempo de instalar e testar pessoalmente, logo não tive como “debugar” essa parte de comunicação ainda. Vou ver se consigo um tempo para isso durante o final de semana.
@dawtaylor tô no whats do desenvolvedor (não sei por quanto tempo, ler 1000 mensagens por hora já tá enchendo). Ele escreveu sobre isso:
Bom dia! Toda a comunicação é feita do carro para o seu celular com protocolo ponto a ponto e criptografia. Com isso, nenhuma informação passa pelo nosso servidor, garantindo a segurança dos dados e fazendo que a gente não precise de uma infraestrutura de múltiplos servidores, o que faria a operação ficar cara demais.
Caso alguém queira pesquisar mais a fundo, o protocolo que usamos é o WebRTC
É o que o @hobojoe falou. Webrtc pode ser usado para a comunicação em primeiro plano, mas paras as notificações ainda é preciso falar com algum serviço.
Para esclarecimento. Quando o celular recebe uma notificação via push não é o aplicativo que recebe mas sim o sistema operacional. Então o aplicativo precisa “falar” com o serviço onde o dispositivo foi registrado para a notificação, esse serviço comunica com o celular e a notificação chega.
Não é o celular que comunica diretamente com o carro, e sim o APK que você instala na central.
Imagino que funcione assim: O APK se comunica com o carro para ler os sensores. O APK também deve ser um servidor que expõe umas APIS dele pra se comunicar com o app celular.
O app do celular é uma página web (cliente PWA) que acessa via conexão HTTPS (ou qualquer outra criptografia) o APK do carro (backend) para ler as informações pra mostrar na tela. Imagino que não tenha servidor externo, visto que o APK faz o lado do servidor.
Pra enviar notificações ele deve usar uma conexão socket, não são notificações push reais.
Não sei a solução do Rory para o app, mas pelo que conheço, o problema é quando o app no celular não está ativo. O sistema operacional pode derrubar a conexão WebSocket/WebRTC em background.
A solução é fazer um push para acordar o app. Essas notificações do Android são via sistema operacional, usando Firebase Cloud Messaging (FCM), que obrigatoriamente requer um servidor.
O próprio desenvolvedor já mencionou que faz uso do WebRTC. Porém, em uma PWA, a notificação só funcionaria com a PWA ativa, em primeiro plano ou executando em segundo plano.
O “problema” aí é que o sistema operacional VAI fazer offload e matar essa execução em segundo plano. Matando junto as notificações.
PWA também consegue receber push real. Como já mencionado pelo @julio, é possível usar um serviço para esse fim, no final o mesmo serviço que envia push para app também pode enviar para PWA. O push é do sistema operacional.
Notificações somente com app rodando são completamente inúteis. O usuário precisa dela quando o app NÃO está rodando.
A PWA consegue acionar o firebase diretamente. Mas o ponto aí é, se o app aciona o firebase, provavelmente precisa armazenar algo ainda que temporariamente nem que seja no próprio firebase.
Enfim. Vou pegar no final de semana e instalar essa PWA e inspecionar o tráfego dela pra ver qual é que é.
Até aí ok, minha dúvida é, o apk no carro consegue fazer um push diretamente? Até onde eu sei o apk teria que enviar para um servidor backend e este servidor que envia o push para o celular com PWA.
Meu amigo instalou o etectro igual eu fez recarga de balanceamento e a saude de bateria dele de 99% foi para 94%… o meu foi de 100% a 91%, coencidencia? Ou esse app ta baixando os ah do carro que sao usados para aferir saude nesses app como vc mesmo explicou num outro topico? Aconselho todos a verificarem a saudade da baea apos descarga de 10% e carga completa ate 100% apos instalar esse app ai