# The EVTasker catalogue Every condition a rule can test and every action it can run, straight out of `ConditionType` and `ActionType`. *Firmware* is what the entry is annotated for; "any" means it depends on no vehicle firmware at all, not that it needs nothing — a notification still needs the permission, a call still needs a paired phone. The car's own Diagnostic screen stays the only answer for the car in front of you. ## Conditions ### Context | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Bluetooth phone connected | `BT_DEVICE_CONNECTED` | a paired phone | any | | Any Bluetooth device connected | `ANY_BT_CONNECTED` | on / off | any | | Phone on board (Bluetooth) | `BT_DEVICE_ONBOARD` | a paired phone | any | | Bluetooth hands-free phone | `BT_DEVICE_HANDSFREE` | a paired phone | any | | Time of day | `TIME_OF_DAY` | a start and an end time | any | | Day of week | `DAY_OF_WEEK` | weekdays | any | | Exact date | `DATE` | a calendar date | any | | Firmware generation | `FIRMWARE_GEN` | a list the app fills in | any | | Near a place | `LOCATION_WITHIN` | a point and a radius (m) | any | | Physical buttons | `PHYSICAL_BUTTON` | a button, short or long press | any | | Wi-Fi network | `WIFI_SSID` | free text | any | | Call in progress | `IN_CALL` | on / off | any | | Drive duration | `DRIVE_DURATION` | 0…600 min (=, <, >) | any | | Random chance | `RANDOM_CHANCE` | 1…100 % | any | | Doors locked | `DOORS_LOCKED` | on / off | SWI68, SWI165 | | Front door open | `FRONT_DOOR_OPEN` | on / off | SWI133 | | Data used today | `DATA_USED_TODAY` | 0…100000 MB (=, <, >) | any | | Data used this month | `DATA_USED_MONTH` | 0…100000 MB (=, <, >) | any | ### Environment | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Outside temperature | `OUTSIDE_TEMP` | -30…50 °C (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Weather | `WEATHER_NOW` | Clear, Cloudy, Rain, Snow, Thunderstorm, Fog, Wind | any | ### Driving | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Ignition state | `IGNITION_STATE` | Locked, Off, Accessory, Running, Starting | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Gear in P | `IN_PARK` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Speed | `SPEED` | 0…200 km/h (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Drive mode | `DRIVE_MODE` | Eco, Normal, Sport, Snow, Custom | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Regeneration | `REGEN_LEVEL` | Low, Medium, High, Adaptive, Off, One pedal | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Odometer | `ODOMETER` | 0…500000 km (=, <, >) | any | | Energy saving | `ENERGY_SAVING` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Energy | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Battery level | `BATTERY_LEVEL` | 0…100 % (=, <, >) | SWI68, SWI165 | | Charging | `CHARGING` | on / off | SWI68, SWI165 | | Charge limit | `CHARGE_LIMIT` | 0…100 % (=, <, >) | SWI68, SWI165 | | Charging state | `CHARGING_STATUS` | Unplugged, Charging (AC), Charging (DC), Plugged in, not charging, Charge complete, Charging fault | SWI68, SWI165 | | Scheduled charging on | `CHARGE_SCHEDULE_ENABLED` | on / off | SWI68, SWI165 | | Charging starts at | `CHARGE_WINDOW_START` | a time of day (=, <, >) | SWI68, SWI165 | | Charging stops at | `CHARGE_WINDOW_STOP` | a time of day (=, <, >) | SWI68, SWI165 | | Remaining range | `RANGE_ESTIMATE` | 0…600 km (=, <, >) | SWI68, SWI165 | | Battery pre-heating on | `BATTERY_PREHEAT` | on / off | SWI68, SWI165 | ### Climate | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Climate on | `CLIMATE_ON` | on / off | SWI68, SWI165 | | Air conditioning on | `AC_ON` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Climate AUTO on | `HVAC_AUTO` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Air recirculation on | `RECIRC` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Fan speed | `FAN_SPEED` | 0…11 (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Set temperature | `TEMPERATURE_SET` | 17…33 °C (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Passenger temperature | `PASSENGER_TEMP` | 17…33 °C (=, <, >) | SWI68, SWI165 | | ECON mode on | `ECON_MODE` | on / off | SWI68, SWI165 | | Windscreen defroster on | `FRONT_DEFROST` | on / off | SWI68, SWI165 | | Rear window defroster on | `REAR_DEFROST` | on / off | SWI68, SWI165 | | A window is open | `WINDOW_OPEN` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Window opening | `WINDOW_POSITION` | 0…100 % (=, <, >) | SWI68, SWI165 | | Driver window opening | `WINDOW_DRIVER` | 0…100 % (=, <, >) | SWI68, SWI165 | | Passenger window opening | `WINDOW_PASSENGER` | 0…100 % (=, <, >) | SWI68, SWI165 | | Rear left window opening | `WINDOW_REAR_LEFT` | 0…100 % (=, <, >) | SWI68, SWI165 | | Rear right window opening | `WINDOW_REAR_RIGHT` | 0…100 % (=, <, >) | SWI68, SWI165 | ### Comfort | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Left seat heating | `SEAT_HEAT_LEFT` | 0…3 (=, <, >) | SWI133, SWI68, SWI165 | | Right seat heating | `SEAT_HEAT_RIGHT` | 0…3 (=, <, >) | SWI133, SWI68, SWI165 | | Steering wheel heating | `STEERING_HEAT` | on / off | SWI133, SWI68, SWI165 | | Screen brightness | `SCREEN_BRIGHTNESS` | 5…100 % (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Audio | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Media playing | `MEDIA_PLAYING` | on / off | any | | Radio playing | `RADIO_PLAYING` | on / off | SWI68, SWI165 | | Media volume | `MEDIA_VOLUME` | 0…max (=, <, >) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Driver assistance | Condition | Entry | Tested against | Firmware | |---|---|---|---| | Emergency braking (AEB) | `AEB_ENABLED` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | AEB mode | `AEB_MODE` | Alert only, Alert + braking | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | AEB sensitivity | `AEB_SENSITIVITY` | Low, Standard, High | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ELK mode | `ELK_MODE` | Off, Warning (LDW), Assist (LDP), Emergency keeping (ELK) | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ELK sensitivity | `ELK_SENSITIVITY` | Low, Standard, High | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ACC / TJA mode | `ACC_TJA_MODE` | Off, Adaptive cruise (ACC), Traffic jam assist (TJA) | SWI68, SWI165, SWI69, SWI131, SWI132 | | Speed limiter | `LIMITER_MODE` | Off, Manual, Intelligent | SWI68, SWI165, SWI69, SWI131, SWI132 | | Traffic sign recognition (TSR) | `TSR` | on / off | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Overspeed alarm | `OVERSPEED_ALARM` | on / off | SWI133, SWI132 | | Speed limit tone | `SPEED_LIMIT_TONE` | on / off | SWI133, SWI132 | | ADAS sound warning | `SOUND_WARNING` | on / off | SWI68, SWI165, SWI69, SWI131, SWI132 | A reading the car does not answer makes the rule **not evaluable**: it does not fire, and it does not count as false. ## Actions ### Profile | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Apply a profile | `APPLY_PROFILE` | an EVProfile profile | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Ask for a profile | `SHOW_PROFILE_PICKER` | — | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Driving | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Drive mode | `SET_DRIVE_MODE` | Eco, Normal, Sport, Snow, Custom | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Regeneration | `SET_REGEN_LEVEL` | Low, Medium, High, Adaptive, Off, One pedal | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | One pedal driving | `SET_ONE_PEDAL` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Energy saving | `SET_ENERGY_SAVING` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Comfort | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Left seat heating | `SET_SEAT_HEAT_LEFT` | 0…3 | — | SWI133, SWI68, SWI165 | | Right seat heating | `SET_SEAT_HEAT_RIGHT` | 0…3 | — | SWI133, SWI68, SWI165 | | Steering wheel heating | `SET_STEERING_HEAT` | on / off | — | SWI133, SWI68, SWI165 | | Screen brightness | `SET_SCREEN_BRIGHTNESS` | 5…100 % | — | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | ### Climate | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Climate on/off | `SET_CLIMATE_POWER` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Cabin temperature | `SET_CABIN_TEMP` | 17…33 °C | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Passenger temperature | `SET_PASSENGER_TEMP` | 17…33 °C | — | SWI68, SWI165 | | Air conditioning | `SET_AC` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | ECON mode | `SET_ECON` | on / off | — | SWI68, SWI165 | | Climate AUTO | `SET_CLIMATE_AUTO` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Air recirculation | `SET_RECIRCULATION` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Fan level | `SET_FAN_LEVEL` | 0…11 | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Windscreen defroster | `SET_FRONT_DEFROST` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | Rear window defroster | `SET_REAR_DEFROST` | on / off | — | SWI68, SWI165, SWI69, SWI131, SWI132 | | All windows ⚠️ | `SET_WINDOWS` | Closed, Open | yes | SWI68, SWI165 | | Driver window ⚠️ | `SET_WINDOW_DRIVER` | Closed, Open | yes | SWI68, SWI165 | | Passenger window ⚠️ | `SET_WINDOW_PASSENGER` | Closed, Open | yes | SWI68, SWI165 | | Rear left window ⚠️ | `SET_WINDOW_REAR_LEFT` | Closed, Open | yes | SWI68, SWI165 | | Rear right window ⚠️ | `SET_WINDOW_REAR_RIGHT` | Closed, Open | yes | SWI68, SWI165 | | Door locks | `SET_DOOR_LOCK` | on / off | — | SWI68, SWI165 | ### Energy | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Charge limit | `SET_CHARGE_LIMIT` | 40…100 % | — | SWI68, SWI165 | | Allow charging | `SET_CHARGING_ENABLED` | on / off | — | SWI68, SWI165 | | Scheduled charging | `SET_CHARGE_SCHEDULE` | on / off | — | SWI68, SWI165 | | Charging window | `SET_CHARGE_WINDOW` | a start and an end time | — | SWI68, SWI165 | | Battery pre-heating | `SET_BATTERY_PREHEAT` | on / off | — | SWI68, SWI165 | ### Audio | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Media volume | `SET_MEDIA_VOLUME` | 0…max | — | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Media volume, step | `ADJUST_MEDIA_VOLUME` | -30…30 | — | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Left / right balance | `SET_AUDIO_BALANCE` | -9…9 | — | SWI69, SWI131, SWI132 | | Front / rear fader | `SET_AUDIO_FADER` | -9…9 | — | SWI69, SWI131, SWI132 | | Tone | `SET_TONE_CONTROL` | -9…9 | — | SWI69, SWI131, SWI132 | | Bose sound profile | `SET_BOSE_SOUND_TYPE` | 0…3 | — | SWI69, SWI131, SWI132 | | 3D effect | `SET_3D_EFFECT` | 0…3 | — | SWI69, SWI131, SWI132 | | Speed-adaptive volume | `SET_SPEED_VOLUME` | 0…3 | — | SWI69, SWI131, SWI132 | | Play the radio | `PLAY_RADIO` | — | — | SWI68, SWI165 | | Radio band and station | `TUNE_RADIO` | band (AM, FM, DAB), frequency, play | — | SWI68, SWI165 | | Next radio station | `RADIO_NEXT_STATION` | — | — | SWI68, SWI165 | | Previous radio station | `RADIO_PREV_STATION` | — | — | SWI68, SWI165 | | Silence the radio | `PAUSE_RADIO` | — | — | SWI68, SWI165 | | Radio play/pause | `RADIO_PLAY_PAUSE` | — | — | SWI68, SWI165 | | Open the radio screen | `OPEN_RADIO_SCREEN` | — | yes | SWI68, SWI165 | ### Driver assistance | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Emergency braking (AEB) | `SET_AEB_ENABLED` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | AEB mode | `SET_AEB_MODE` | Alert only, Alert + braking | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | AEB sensitivity | `SET_AEB_SENSITIVITY` | Low, Standard, High | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Stability control (ESC) | `SET_ESC` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Drowsiness warning | `SET_DROWSINESS` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Drowsiness warning sensitivity | `SET_DROWSINESS_SENSITIVITY` | Low, Standard, High | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ELK mode | `SET_ELK_MODE` | Off, Warning (LDW), Assist (LDP), Emergency keeping (ELK) | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ELK sensitivity | `SET_ELK_SENSITIVITY` | Low, Standard, High | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | ACC / TJA mode | `SET_ACC_TJA_MODE` | Off, Adaptive cruise (ACC), Traffic jam assist (TJA) | yes | SWI68, SWI165, SWI69, SWI131, SWI132 | | Speed limiter | `SET_LIMITER_MODE` | Off, Manual, Intelligent | yes | SWI68, SWI165, SWI69, SWI131, SWI132 | | Traffic sign recognition (TSR) | `SET_TSR` | on / off | yes | SWI133, SWI68, SWI165, SWI69, SWI131, SWI132 | | Overspeed alarm | `SET_OVERSPEED_ALARM` | on / off | yes | SWI133, SWI132 | | Speed limit tone | `SET_SPEED_LIMIT_TONE` | on / off | yes | SWI133, SWI132 | | ADAS sound warning | `SET_SOUND_WARNING` | on / off | yes | SWI68, SWI165, SWI69, SWI131, SWI132 | | Lane departure sound warning | `SET_LAS_WARNING_SOUND` | on / off | — | SWI132 | | Lane departure steering vibration | `SET_LAS_WARNING_VIBRATION` | on / off | — | SWI132 | ### System | Action | Entry | Asks for | When stopped only | Firmware | |---|---|---|:--:|---| | Launch an app | `LAUNCH_APP` | an installed app | — | any | | Show a notification | `SHOW_NOTIFICATION` | free text | — | any | | Speak a message | `SPEAK_TEXT` | free text | — | any | | Navigate to | `NAVIGATE_TO` | an address or coordinates | — | any | | Ask for confirmation | `ASK_CONFIRM` | a question, and how long to wait | — | any | | Send a text message | `SEND_SMS` | a number or a contact, and a message | — | any | | Enable a rule | `ENABLE_RULE` | one of your rules | — | any | | Disable a rule | `DISABLE_RULE` | one of your rules | — | any | | Media control | `MEDIA_CONTROL` | Play / pause, Next track, Previous track | — | any | | Bluetooth | `SET_BLUETOOTH` | on / off | — | any | | Wi-Fi | `SET_WIFI` | on / off | — | any | | Call webhook | `WEBHOOK` | a URL, and an optional body | — | any | | Wait | `DELAY` | 1…60 s | — | any | | Call | `CALL_NUMBER` | a number or a contact | — | SWI68, SWI165 | | Call a contact | `CALL_CONTACT` | a number or a contact | — | SWI68, SWI165 | ⚠️ — the firmware carries the property, but nothing establishes that writing it does anything (`ActionType.writeProven`). Those actions are hidden from the editor and refused by the executor until one is observed to work. The per-generation grid is in [firmware-matrix.md](firmware-matrix.md), generated from the same annotations.