Een Obdlink MX+ is onderweg omdat m'n El Cheapo ELK 327 niet werkt bij mijn Model S (wel in onze voorgaande auto's). Daarnaast heeft de el cheap OBD2 Bluetooth adapter pincode 1234 wat mij niet zo zint.
Wat ik wil doen is:
OBD2 => (bluetooth) => Android App => Queue => Processor
Hoe werken die OBD2 adapters? Is dat een firehose waar je *alles* krijgt of definieer je soort van filters die de OBD2 adapter matches en enkel die via bluetooth stuurt?
De Android app wil ik eigenlijk maar de volgende taken laten doen.
- OBD2 data toevoegen aan ringbuffer
- Indien ringbuffer vol of een timer is gepasseerd, binary copy, compressen, toevoegen aan dispatch wachtrij
- Dispatch wachtrij bevat chunks die elk afzonderlijk verstuurd/gepubliceerd moeten worden naar een queue
Belangrijk is dat als er *geen* verbinding is dat de app local storage als buffer moet gebruiken en dat als de mobiel restart deze data niet weg mag zijn.
Natuurlijk kun je dat nog een storage limiet hanteren op basis van max bytes or max age of een combi.
Ik zelf dacht er aan dit publiceren af te handelen middels MQTT. Het is lightweight en lijkt me goed passen. Ik heb enkel geen Android dev ervaring maar misschien zijn er al goede apps die zoiets al doen.
Iemand ideeen/tips?
Hoi Ramon
Leuk dat steeds meer mensen zich hier mee gaan bezig houden, ik ben er de laatste weken ook erg druk mee.
Het is flink prutsen en uitzoeken maar begin hier al wat succesjes te behalen.
Ik had in eerste instantie ook de OBDlink MX-wifi, maar die heb ik teruggestuurd. Wat een onstabiel kutding.
Forum van obdlink staat er ook vol mee, het is een known problem. Blijf weg bij deze adapter.
De MX+ waar je het over hebt is in feite een LX maar dan met de certificering voor apple, zodat er uiteindelijk IOS apps voor gemaakt kunnen worden.
OBDelm327 is supertraag, de OBDLinks zijn flink rap maar hebben ook STN1100 ondersteuning.
Default krijg je niks, tesla praat helemaal geen OBD maar je gebruikt de adapter om de canbus messages op te vragen en door te zetten.
Bij de ELM327 zit iedere halve seconde de buffer vol en stopt ie, daar moet je filters maken met masks om te krijgen wat je wil en dan met ATMA de stream aanzetten. Je krijgt de boel in hex eruit en met ATH1 kan je de headers aanzetten zodat hij de can-id ervoor zet.
Met STN1100 werkt het een stuk fijner. Je kan daar een hoop filters inzetten en alleen met 'STM' laten streamen wat je wilt zien.
Voor wat betreft die bluetooth 1234 pincode, daar was ik in eerste instantie ook niet blij mee, maar er zit een pair-knopje op, en na indrukken moet je binnen aantal seconden pairen en anders issie niet meer discoverable. Tis dus niet zo dat iedereen zomaar kan connecten zonder fysieke toegang tot het pair-knopje
Ik gebruik ScanMyTesla alleen maar voor het realtime gebeuren, main doel is voor mij om met mijn raspberrypi4 bluetooth connectie te maken met de Obdlink en specifiek een xx aantal pids te capturen en in mysql te zetten voor grafana, om zo mijn grafanadashboards die ik tot nu toe vulde met TeslaFI api data, verder te verrijken. In canbus zit ALLES natuurlijk, kwestie alleen is om het te vinden.
Er zijn wat sheets/overzichten maar alles zit enorm verstopt in 64bits blobs en ook vaak nog half in de ene byte en half in de andere.
Maakt het er allemaal niet makkelijker op. Ook kom ik tegenstrijdige info tegen over het omrekenen van bepaalde readings naar 'reallife' waardes. Het zou tof zijn om een gezamelijke knowledge database/wiki op te zetten met alle info/scriptjes etc die we gebruiken??