← Tilbage til projekterIoT · Home Assistant · OBD2
Xpeng G6 Gateway

Xpeng G6 Gateway — bilens data ind i Home Assistant over mobilnettet

Der findes ingen integration mellem Xpeng bilen og Home Assistant. Man kan gå gennem Enode, men dette kræver en udviklerlicens og det koster penge. Så jeg har lavet mit eget IoT projekt, der hiver oplysninger fra bilen.

Bilen ved præcis, hvor meget strøm den bruger, men tallene bliver i bilen. Jeg ville have dem ind i Home Assistant derhjemme, så jeg kunne sammenligne bilens forbrug og rækkevidde med mine egne beregninger.

Jeg byggede en lille gateway af en ESP32-C3, en Bluetooth-OBD2-adapter og et LTE-modem. Den sidder i bilen, læser data fra OBD2-porten og sender dem hjem gennem en krypteret tunnel.

Hvad den gør

Sådan virker det

Adapteren, en Vgate iCar Pro, sidder i OBD2-porten og taler Bluetooth. ESP’en spørger bilens batteristyring og drivlinje om værdier. Den spørger kun; den styrer ingenting.

Samtidig henter ESP’en internet fra LTE-modemmet, tænder WireGuard-tunnelen til min UniFi-router og forbinder til MQTT-serveren derhjemme. Home Assistant viser beskederne som én enhed, “Xpeng G6”.

ESP’en får kun strøm fra bilens USB, når bilen er vågen, så hver session er en kold opstart. Derfor starter Bluetooth i en baggrundstråd, mens modem, tunnel og MQTT kommer op ved siden af. Adapteren kan ikke vækkes af en elbil, så jeg har slået dens egen dvale fra. Prisen er, at den trækker strøm hele tiden.

Der er ingen AI i selve gatewayen. Den regner med faste formler, og jeg afgør, hvad der er rigtigt, ved at sammenligne med bilens display og justere konstanterne.

Det der var svært

Ingen strøm, når bilen er låst. Når jeg låser bilen, forsvinder strømmen, og ESP’en mister turens data. Den når aldrig at opleve turens slutning, så den lærer og gemmer løbende i flash. Opstarten er skåret ned, så jeg ikke skal vente, før alt er oppe.

Mine tal passede ikke med bilens. Først tabte jeg kilometer, fordi målinger indimellem manglede, og det skævvred forbruget. Bilens egne 20- og 100-kilometerværdier kan jeg slet ikke genskabe. Så jeg regner energien ud fra batteriets ladetilstand og har tilpasset rækkevidden mod bilens tal. Bilens formel kender jeg ikke, så jeg ligger tæt på, men rammer den ikke. Hver testtur tæller på årets kilometertal, så jeg genafspillede optagne ture mod forskellige modeller i stedet for at køre nye.

Bilen blev ved med at vågne om natten. På 12 V-grafen kunne jeg se, at bilen tændte og slukkede hele natten, uden at jeg forstod hvorfor. Så slog jeg min telefons Bluetooth fra en nat, og så vågnede bilen slet ikke. Min telefon er bilens nøgle, og den kan åbenbart lige nå bilen inde fra huset.

Teknikken, kort

Hvad jeg tager med

Det er svært at ramme tallene rigtigt når der ikke ligger nogle formler tilgængeligt fra bilproducenten. Så det kræver meget test og mange køreture for at komme frem til noget der matcher bare nogenlunde.