Vehicle control (HVAC, SoC…)

Via the companion-MCU route (CAN bus), apps bind the CAN system service and use its interface to command the HVAC and read decoded vehicle values. The most useful discovered signals:

What How (discovered signal)
A/C on/off sendCmd(103, 0/1)
Driver temperature sendCmd(107, code)
Fan speed sendCmd(100, speed)
Front defrost sendCmd(104, …)
Seat heating sendCmd(110…112, …)
State of charge (%) getInt(3335)
Pack A / Pack B SoC getInt(3457) / getInt(3460)
HV voltage / current getInt(3455) / getInt(3456)
Range (km) getInt(3461)
Charge-cable connected getInt(3337)
Speed getInt(3454) × 0.05625 km/h
Traffic-sign state getInt(3505) (3 = sign recognized, 4 = over-speed warning)

The key constraint for remote climate

There is no precondition / remote-climate command and no “time-to-full” value on the head-unit side. A/C control here is live HVAC — only effective while the HV bus is powered (ignition on). Parked pre-conditioning is a VCU/TBox function, not something the head unit can do.

“Time to full” therefore has to be estimated from SoC, pack capacity (~63 kWh) and live HV power (voltage × current), which are readable over CAN.