Open Vehicle Monitor System v3 - Change log ????-??-?? ??? ??????? OTA release - Module: added heap integrity check + alert command for usage in e.g. custom event scripts, enables adding checks on specific system events and/or with higher frequency. Example: perform heap integrity check when the server V2 gets stopped: vfs echo "module check alert" /store/events/server.v2.stopped/90-checkheap Command extension: module check alert -- Check for and send one-off alert on heap corruption - VFS: added echo command to write a line to a file New commands: vfs echo -- Write to , creating/replacing the file - smart EQ: New commands: xsq ed4scan -- Output ED4scan-like BMS diagnostic data (battery health, SOC kernel data, cell resistance, contactor cycles, temperatures, voltages) - Module: add heap tracing tools -- NOTE: heap tracing will for now not be enabled by default on user builds. This is meant to be used by developers to track down heap corruptions. If you encounter many random crashes, ask your maintainer to provide a debug build to you with heap tracing enabled, and let her/him guide you through the usage, or grant him/her remote access to your module. See: https://docs.espressif.com/projects/esp-idf/en/v3.3/api-reference/system/heap_debug.html New commands: module trace start [num_records] -- init & start heap tracing, num_records defaults to 500 module trace stop -- stop heap tracing & cleanup memory module trace pause -- pause heap tracing for inspection module trace resume -- resume heap tracing module trace status -- show current status module trace dump -- dump allocations & frees recorded - Module: added heap integrity alert, added task ownership to heap check report, added task handles to task log, added debug options to web UI (Config → Notifications) New config: [module] debug.heap.alert -- [bool] perform heap check every 5 minutes, send alert on corruption (default: no) New event: system.heap.corrupted -- Heap corruption detected New notification: [alert] debug.heap.corruption -- Heap corruption details Command extension: test heapcorruption -- default: 'restore', use 'keep' to test heap alert History record extension: "*-OVM-DebugTasks" v2: per task record extended by - Module framework: enable remote use of the system's heap corruption test, i.e. command "module check" can now be used within any shell or command channel, not just the USB console. New command(s): test heapcorruption -- test for heap integrity checker - Workaround for iOS Open Vehicle App 1.8.6 Workaround for legacy iOS App, hiding zero/negative temperatures to keep other TPMS data visible. This workaround only manipulates the TPMS temperature metric in message W. - New vehicle: FIAT eDoblo via OBD-II port Initial support added for: VIN, SoC, SoH Door status Odometer HV, LV battery voltage temperatures - TPMS framework: added sensor mapping commands for wheel rotation/swap scenarios New commands: tpms map status -- show current TPMS sensor-to-wheel mapping with details tpms map get -- machine-readable output like message Y without header MP-0 Y tpms map set -- remap sensors using wheel position names (e.g., fl=rr fr=fl rl=fr rr=rl) tpms map reset -- reset mapping to default (e.g. FL=0, FR=1, RL=2, RR=3) Config: [vehicle] tpms.xx (sensor index per wheel position, layout by GetTpmsLayout()) Note: requires vehicle to implement UsesTpmsSensorMapping() returning true - New vehicle: Maxus T90 EV (MT90) via OBD-II port Initial support added for: VIN, SOC, SOH & READY state AC plug / pilot detection Lock status Odometer Temperature metrics - Renault Twizy: support added for standard metric "v.e.aux12v" (base system awake), OBD polling (DTC checks) enabled already with base system awake (= DTC available in STOP conditions) - VW e-Up: enable framework climate preconditioning scheduler web UI (Note: climate control only available with T26 connection) - Vehicle framework: Scheduled precondition control with duration support Centralized implementation for all vehicles with per-vehicle override capability. Supports multiple time slots per day with individual duration settings (5-30 minutes). Global enable/disable switch with config persistence. copy function to duplicate schedules across multiple days. New commands: climatecontrol schedule set -- Set schedule for a day, times format: HH:MM[/duration][,HH:MM[/duration],...] Examples: "07:30", "07:30/10", "07:00/5,17:30/15" Duration in minutes climatecontrol schedule list -- List all configured schedules with next scheduled event climatecontrol schedule clear -- Clear schedule for specific day or all days climatecontrol schedule copy -- Copy schedule from one day to others Examples: "mon tue-fri", "fri sat,sun" Supports range syntax (tue-fri) and comma-separated lists climatecontrol schedule enable -- Enable scheduled precondition (global switch) climatecontrol schedule disable -- Disable scheduled precondition (global switch) climatecontrol schedule status -- Show schedule status and configured times New config: [vehicle] climate.schedule. -- Schedule for day (mon/tue/wed/thu/fri/sat/sun) Format: HH:MM[/duration][,HH:MM[/duration],...] [vehicle] climate.precondition -- Enable/disable scheduled precondition (bool, default false) precondition scheduler features: (ported from ZOE PH2) - Multiple times per day support (comma-separated: "07:30/5,17:45/10") - Individual schedule per weekday - Automatic trigger based on system time - Integration with existing climate control - Web UI configuration page at /cfg/preconditionschedule - Automatic restart mechanism for extended runtime (configurable HVAC duration) - Duplicate prevention (same time won't trigger twice) - Copy function for quick weekly schedule setup - smart EQ: Add multiple CAN frame parsers for energy and charging metrics Add automatic 12V ADC factor recalculation history tracking - Renault Zoe Ph2: New commands: xrz2 preclimate schedule