Telemetria de carros no Home Assistant

logo

Pessoal ainda não vi nada sobre carros aqui no forum, mas basicamente qualquer carro pode ter dados enviados para o Home Assistant usando este metodo que encontrei no forum da gringa e youtube.

Tutorial em Inglês: Car Telemetry in Home assistant - Robs Blog (childof69.co.uk)
Video Youtube (em inglês): HomeAssistant: Logging Car Data with the #Torque app!

Resolvi buscar algo sobre quando @mauriciosti comentou sobre a o lovelace do @hudsonbrendon no post sobre a tela inicial Lovelace - Tela inicial do Home Assistant divulgando! Compartilhando Ideias! - Lovelace que aparentemente não utiliza dados vindos do carro mas sim calculado dados inseridos manualmente, o que é interessante e totalmente gratuito, não se gasta nada. porém acho que todo mundo está aqui por querer sempre ir além.

BLEnuvem

Basicamente aqui estou traduzindo o que encontrei de material então tudo que digo aqui é de responsabilidade do usuário do forum seguir ou não e em caso de duvida sugiro seguir o tutorial original que coloquei no inicio do post, estou somente expondo mais uma possibilidade de monitoramento de dados e traduzindo pra aqueles que tem certa dificuldade no inglês.

Assim precisaremos de basicamente 3 elementos.

1 - Scanner Automotivo

Essa é a forma que extrairmos os dados do carro. esse scanner comunica através de bluetooth, portanto temos uma forma de leitura. O protocolo é o presente em praticamente todos os carros: OBDII

Comprei o scanner ELM327 V1.5 Scanner Automotivo Elm327 Ultima Versão V1.5 Fullchip

Captura de tela 2022-03-26 095310

Até onde li este scanner pode ficar conectado indefinidamente na porta OBD2 sem problemas. com o carro desligado essa porta não energiza então não há risco de drenar a bateria do carro. mas recomendo que faça sua pesquisa do scanner que resolva comprar.

2 - Aplicativo Torque para celular

Esse aplicativo consegue ler por bluetooth os dados do scanner do passo anterior. (Utilizei a versão paga por ter uma infinidade de opções extras não sei se a versão gratuita funciona)
Com o app instalado vá até as opções e marque como abaixo:

Configurações > Gravação e envio de …
Registro de dados síncronos: Desligado

Intervalo de Gravação de Dados: Escolher 5 segundos.

Iniciar gravação do registro no arranque: Sim

Só quando ligado ao OBD: Sim

Guardar dados do GPS: Sim

Alternar ficheiros de registro: não

Com estas opções marcadas ainda nesta página entre em “Selecione o que deseja registrar” e selecione os dados que deseja enviar ao Home Assistant.
DICA: se vc já tiver conectado o scanner ao celular as opções que seu carro pode enviar aparecerão em verde nessa página.

3 - Aplicativo Automate.

14639130133533829

Esse é o pulo do gato. Esse aplicativo consegue pegar o LOG gerado pelo app Torque e enviar para seu Home Assistant publicando em um tópico MQTT, assumindo que vc tenha MQTT broker instalado em seu Home Assistant.

Pra mim essa parte foi a que menos entendi, mas por sorte já existe um script dentro do aplicativo automate, basta ir na busca em “community” e baixar o script “Car telemetry to home assistant”.
Após instalado, vc pode dar “Start” e serão feitas algumas perguntas.

Nesse ponto vc precisa de um Token de acesso no Home assistant. Pra isso basta ir no seu perfil (onde está seu nome na tela do Home Assistant) e clicar em “Criar Token”. Anote o token criado e salve caso precise utilizar outras vezes.
Você também irá precisar de um acesso remoto seja pelo nabu casa ou duckdns como existem tutoriais aqui no forum.

Nesse momento vc pode preparar o home assistant pra escrever no topico MQTT

### onde estiver "carro" entenda que é o nome do seu carro em letras minusculas
- platform: mqtt
  name: "Carro Torque"
  state_topic: "devices/carro/torque"
  value_template: "{{ state_attr('sensor.carro_torque','GPS Time')}}"
  json_attributes_topic: "devices/carro/torque"

Reinicie seu Home Assistant.

Após clicar em START no script do Automate:

  • insira o nome do seu carro (letras minusculas como criado no codigo acima)
  • insira o link externo do seu home assistant https://seuendereço.duckdns.org
    NOTA: caso não comunique tente inserir o endereço publicando no mqtt diretamente ( https://seu endereço.duckdns.org/api/service/mqtt/publish ou o endereço nabu casa se tiver assinatura)
  • inserir o token. antes do token deve estar escrito "Bearer " (note o espaço após a palavra Bearer), de forma que fique “Bearer seutokencriado”
  • insira a frequencia de atualizações: 10
  • aparecerá então o resumo das informações e se deve clicar em confirm.

Após isso o Automate irá iniciar o app Torque, e ele deve conectar com o scanner bluetooth, caso a conexão esteja ok irá enviar o app torque pro background seus dados começarão a aparecer no Home Assistant como abaixo:

Note que toda informação aparecerá como atributo no sensor criado, e utilizando templates vc pode criar sensores individuais para que esses dados tenham alguma utilidade e também possam ser utilizados no Grafana ou mesmo no histórico do home assistant.

# Exemplo de templates para extrair informações
- platform: template
  sensors:
    carro_kpl:
      friendly_name: "Carro Kilometer Per Litre"
      value_template: "{{ state_attr('sensor.carro_torque', 'Kilometers Per Litre(Instant)(kpl)') | round(1) }}"
      unit_of_measurement: kpl

    carro_speed:
      friendly_name: "Carro Speed"
      value_template: "{{ state_attr('sensor.carro_torque', 'Speed (OBD)(km/h)') | round(1) }}"
      unit_of_measurement: kph

    carro_rpm:
      friendly_name: "Carro RPM"
      value_template: "{{ state_attr('sensor.carro_torque', 'Engine RPM(rpm)') | round(1) }}"
      unit_of_measurement: rpm

    carro_battery:
      friendly_name: "Carro Battery"
      value_template: "{{ state_attr('sensor.carro_torque', 'Voltage (OBD Adapter)(V)') | round(1) }}"
      unit_of_measurement: v

Exemplo do tutorial: (ainda não tenho muitos dados pra apresentar, no exemplo fica melhor visualizado)

Deixem dúvidas abaixo!
Um abraço!

11 curtidas

Adicionando imagem do painel que criei no grafana. o método está funcionando bem, é uma boa pra quem quiser acompanhar o desempenho do carro.

Será que funciona com o iPhone? Meu OBDII só consegui fazer funcionar com o Android.

1 curtida

seus maiores problemas seriam o app Automate e o app Torque, somente disponíveis pra android. acredito que existam OBD2 pra iphone mas se existir vai ser uma solução bem diferente dessa.

Prezado amigo, como eu tinha dispositivo OBD2 resolvi fazer o tutorial. Fiz a compra do Torque Pro e do Automate. Estou com uma dificuldade no Automate, quando dou start ele me pede para colocar o nome do arquivo gerado pelo Torque (trackLog.csv) mas não sobre as informações para o Home Assistant.


Minha dúvida é você digita o nome do arquivo ou somente diz o local onde está? Fiz das duas formas é não funcionou ainda.

2 curtidas

Parei para olhar melhor a documentação, o log está enviando os pacotes segundo a documentação

03-18 22:27:16.819 I 2786@1379: HTTP request
03-18 22:27:17.100 I 2784@1353: Expression true?
03-18 22:27:17.101 U 2784@1356: Rest Post Success : owntracks : 200
03-18 22:27:17.101 I 2784@0: Stopped at end
03-18 22:27:17.144 I 2785@1363: Expression true?
03-18 22:27:17.144 U 2785@1365: Rest Post Success : device data :200
03-18 22:27:17.145 I 2785@0: Stopped at end
03-18 22:27:17.170 I 2786@1371: Expression true?
03-18 22:27:17.170 U 2786@1373: Rest Post Success : Torque data :200
03-18 22:27:17.170 I 2786@0: Stopped at end
03-18 22:27:18.102 I 2631@1504: Variable set
03-18 22:27:18.103 U 2631@1970: Problem with internet: Google ping fail
03-18 22:27:18.127 I 2631@1507: Atomic store
03-18 22:27:18.149 I 2631@1503: Expression true?

No MQTT Moskito pelo que entendi não esta autenticando:
1647651002: New client connected from 172.30.33.11 as mqttjs_abec7b8d (p2, c1, k60, u’mqttmarcelo’).
1647651002: Socket error on client , disconnecting.

Estou desconfiado que é devido a senha do meu MQTT, ainda não localizei onde colocar no Automate ou Torque
Se alguém souber, por favor deixe um comentário

1 curtida

Vc tem que inserir o nome que vc deu pro seu carro, por exemplo se no perfil do Torque vc criou como “corolla”, vc tem que colocar o nome do arquivo como “corolla”

lembrando que a configuração mqtt com o exemplo acima deve ficar como abaixo:

- platform: mqtt
  name: "Corolla"
  state_topic: "devices/corolla/torque"
  value_template: "{{ state_attr('sensor.corolla_torque','GPS Time')}}"
  json_attributes_topic: "devices/corolla/torque"
1 curtida

Sim eu coloquei o nome foi dado ao carro no perfil. Em alguma configuração você informa seu usuário mqtt e senha?

2 curtidas

não informo usuario e senha… acredito que o token gerado tenha algum papel na autorização do envio dos dados para o tópcio mqtt, mas somente vendo o código pra saber…

bom dois detalhes que vc pode ver, o link pra acesso externo do seu home assistant não pode ter barra no final, tem que ser do tipo “https:\meuhomeassistant.duckdns.org”.
dá uma olhada na opção “Alternar ficheiros de registro: não” no seu aplicativo Torque, vi algumas pessoas tendo problema por não desativar essa opção.
Sugiro deletar o script do app automate e refazer o processo.

2 curtidas

Vou refazer o processo do script no app. Essa opção de Alternar ficheiros de registos está certinho com o não no palicativo Torque.
uma coisa que está diferente é o linhk no meu caso uso a porta 8123 ficando assim:

https://meuhomeassistant.duckdns.org:8123

1 curtida

Tenta jogar direto pro endereço de publicação no tópico
https://seu endereço.duckdns.org/api/service/mqtt/publish
Caso este não entre refaz incluindo a porta 8123. Acho que seu problema está sendo somente acertar esse endereço. O meu link nabucasa não faz uso da porta, então não sei se precisa incluir ou não.

1 curtida

Tudo certo parceiro.
Eu resolvi apontando para a pasta “Android/data/org.prowl.torque/files/torqueLogs”

Também modifiquei o flow do automate, depois de ter gerado a primeira configuração, para ele não pedir toda vez o apontamento da pasta. Vou tentar compartilhar o arquivo por aqui.

Feito isso tudo funcionou como esperado (Meu App é a ultima versão do torque PRO)

Segue link do flow modificado Flow Modificado Automate

1 curtida

Que bom que conseguiu! depois compartilha sua dashboard aí com a gente pra ver como ficou!

1 curtida

Meu HA aceita o link terminando com /api, mas quando vou para service/mqtt/publish ele retorna o erro 404: Not found.

Onde posso configurar ele?

Estou usando o Mosquito broker.

Será que é alguma dessas portas?

2 curtidas

Onde vc esta escrevendo esse endereço?

1 curtida

Estou tentando o endereço abaixo no automate e postman.

https://ha.meudominio.com.br/api/service/mqtt/publish

O endereço abaixo também não é possível dentro da minha rede.

http://192.168.2.33:8123/api/service/mqtt/publish

1 curtida

Não sei se mudou em alguma versão…

Mas aqui no meu não existe o /api/service, e sim o /api/services

Teria que verificar se mudou, ou se o tutorial que está incorreto.

Abraços.

Para o iphone o OBDII tem que ser wifi. O meu funciona, mas as vezes dá conflito com a conexão com o carro. Ainda não achei um programa gratuito para conectar no home assistant.

2 curtidas

Meu nobre, o meu está pegando a informação do torque mas o sensores não. Alguma dica?

Torque HA

2 curtidas

o seu ip interno não vai funcionar mesmo, o aplicativo precisa acessar externamente pra publicar no seu MQTT, por isso é necessario gerar o token de acesso e inserir o endereço correto do seu HA.
pode tentar somente com https://ha.meudominio.com.br (sem a barra no final e sem /api/service/mqtt/publish)