estou procurando uma api que permita pegar as informacoes basicas do veiculo como odometro, inicio e termino do carregamento, preciso destas informacoes para automatizar um sistema.
Boa sorte. Se encontrar, posta por aqui.
Sei que tem uma galera que usou uma espécie de scrapper no app, mas até onde eu sei perde a funcionalidade do app. O app só pode rodar em 1 dispositivo por vez.
Ps: da uma lida no tópico sobre home assistant.
Interceptar a comunicação com o App não rola? Eu começaria com um Sniffer. API pública eu não acredito que exista.
este final se semana eu fiz uns testes com o
tasker do android para interceptar as mensagens do app, emulei o app para pegar as informacoes do odometro e mandei para o meu sistema, como prototipo funcionou, agora preciso ver como se comporta no dia a dia
Só funcionaria se a conexão não fosse criptografada. Qualquer conexão https já impede isso. Isso seria um ataque do tipo man in the middle, que seria basicamente um grampo em uma conexão de rede.
Sobre o tasker, acredito que ele funcione mais “lendo” o conteúdo renderizado (exibido na tela), que acho que é a forma que a galera tem feito.
Acho que o problema dessa abordagem é que tu não pode ter o app em 2 dispositivos diferentes ao mesmo tempo. Então o tasker agiria como se fosse um celular, impedindo o uso no seu celular.
eu instalei o tasker no meu celular, quando recebo a notificacao de inicio de carregamento, eu emulo o app, vou para a pagina 2, faço um print screen e posteriormente converto a kilometragem e envio para o meu servidor que eu trato as informacoes
eu comecei fazendo os testes com o macrodoid, depois decidir comprar o tasker, o tasker é mais chatinho, mas acredito que para minha finalidade vai funcionar
Da pra criar um app pra fazer isso, mas voce tem que se cadastrar com desenvolvedor BYD pra poder ter acesso a API de desenvolvimento que da acesso a leitura de praticamente todos os sensores do carro.
Sem falar obviamente, que tem se saber programar em Java ou Kotlin pra poder criar o app.
Sério que a BYD disponibiliza isso? Onde encontrou essa informação? Se disponibilizar isso eu me interesso demais.
Acho que aqui…
Vou dar uma olhada nisso depois. Criar um app simples, que leia os dados do carro e envie para meu broker não deveria ser o fim do mundo. Só questão de entender direito como obter acesso à essa plataforma.
Pensa em usar MQTT para isso, tornando o app apenas um sink?
Na minha visão o ideal seria que disponibilizassem uma API para consumo direto, mesmo que fosse somente leitura. Mas na impossibilidade de fazer isso, conseguir que o app faça um pooling desses dados e envie para um broker MQTT seria o segundo caminho mais interessante.
O “problema” dessa abordagem por app é que, com o carro desligado (durante uma carga, por exemplo) não seria possível obter os dados, mas já é muito melhor que nada…
Baixei o SDK deles aqui, mais tarde vou gastar um tempo brincando com isso. Acho que com a central desbloqueada não precisaria nem do cadastro de desenvolvedor deles. Mas isso é mera especulação até o momento.
acho que o tasker nao conversa com mqtt, estou pensando em mandar em https para o meu sistema.
nao gostei do tasker, muita limitacao. o macrodoid ontem somente não consegui converter a km de imagem para numero, vou manda o print screen e converter no servidor
Isto é interessante. Se quiserem abrir um repo no Github, ficaria feliz em contribuir. Pode disponibilizar o link da SDK por favor? O Google tradutor está com problemas aqui para traduzir de Mandarim para Inglês.
Mando sim. Chegando em casa faço isso.
Caso o caminho da API não seja frutífero (e realmente espero que seja), se tiverem mais interessados, podemos juntar esforços pra fazer via Tasker.
Pre-requisito:
- Celular android dedicado;
- Remover o bloqueio automatico;
- App BYD rodar exclusivamente nesse aparelho;
Ainda em estagio bastante experimental, já consegui:
- Ler informações da tela inicial, repassar pro Node Red;
- Enviar comando de trancar / destrancar;
Objetivo:
- Ter as informações no Home Assistant e controlar as funções do App por lá.
fiz varios testes via tasker e desisti dele, para fazer o ocr da kilometragem o app precisa de root, ou um outro procedimento que não quero alterar o android do meu celular, estou fazendo agora teste com o macrodoid acredito que vai rolar. eu quero apenas interceptar as notificações de inicio e termino de carregamento com a km atual.outra forma talvez mais facil é mandar o print da tela para o node red e fazer o ocr por la.
Eu to usando o AutoInput do Tasker pra ler as variáveis disponíveis no APP. Dai ele salva elas em variáveis do tasker e fica disponível pro Node-Red consultar via http. é um celular original, sem nenhum tipo de root ou modificação, mas precisa ficar dedicado pra isso pra funcionar bem.
Se seu objetivo é só o aviso de Carregando / Parou carregamento, é bem provável que consiga interceptar com o Auto Notification (plugin do Tasker). Eu usei ele pra tentar capturar os “toasts” (aquelas msgs de status que aparecem na tela e desaparecem, que não vão pra barra de notificações), mas não tive sucesso.
Gostei do assunto. Eu também gostaria de ter acesso às variáveis de percentual de bateria e km rodados com uma determinada frequência, enviá-las pelo node-red para o influxdb e visualizar os gráficos no grafana. Com essas duas informações já seria possível montar um bom histórico de performance da bateria ao longo do tempo.
usando o macrodoid com o autoinput consegui automatizar o celular e ja recebo as informações no node-red. Esta solucao somente funciona se o celular estiver com acesso bom na internet. Onde estaciono o carro o sinal é ruim, se o celular estiver comigo as vezes falha, agora se eu deixa-lo dentro de casa funciona perfeitamente. Não gostei da solucao. A BYD deveria permitir autorizar a utilizacao em outros celulares isto facilitaria tanto a automacao como compartilhamento de carro.