Events
Internally, OVMS raises events whenever significant events occur. An event is a lightweight message of a name plus optionally associated internal binary data. Event names are top-down structured (so can be filtered by prefix) and sufficient to identify the source and type of the event. Individual vehicle types may also issue their own events, and custom user events are also possible.
To bind a script to an event, save the script in directory /store/events/<eventname>
(hint:
directories can be created using the web UI editor). Whenever events are triggered, all the scripts
in the corresponding /store/events/<eventname>
directory are executed. Event scripts are
executed in alphanumerical order of their names. Good practice is to prefix script names with 2-3
digit numbers in steps of 10 or 100 (i.e. first script named 50-…
), so new scripts can easily be
integrated at a specific place. If the event script is written in Javascript, be sure to add the
suffix .js
to the name. Other names will be executed using the standard command interpreter.
If you want to introduce a custom event (e.g. for a plugin), prefix the event name by
usr.<pluginname>.
followed by the event purpose. Example: Foglight
Be aware events are processed in series from a queue, so depending on the system load and the list of registered event listeners, there may be some delay from event generation to e.g. a script execution.
Commands
event list [<key>]
– Show registered listeners for all or events matching a key (part of the name)event trace <on|off>
– Enable/disable logging of events at the “info” level. Without tracing, events are also logged, but at the “debug” level. Ticker events are never logged.event raise [-d<delay_ms>] <event>
– Manually raise an event, optionally with a delay. You can raise any event you like, but you shouldn’t raise system events without good knowledge of their effects.
Standard Events
Event |
Data |
Purpose |
---|---|---|
app.connected |
One or more remote Apps have connected |
|
app.disconnected |
No remote Apps are currently connected |
|
canopen.node.emcy |
<event> |
CANopen node emergency received |
canopen.node.state |
<event> |
CANopen node state change received |
canopen.worker.start |
<worker> |
CANopen bus worker task started |
canopen.worker.stop |
<worker> |
CANopen bus worker task stopping |
clock.HHMM |
Per-minute local time, hour HH, minute MM |
|
clock.dayN |
Per-day local time, day N (0=Sun, 6=Sat) |
|
config.changed |
Configuration has changed |
|
config.mounted |
Configuration is mounted and available |
|
config.unmounted |
Configuration is unmounted and unavailable |
|
config.restore |
Configuration is about to be restored from a backup |
|
egpio.input.<port>.<state> |
EGPIO input port change (port=0…9, state=high/low) |
|
egpio.output.<port>.<state> |
EGPIO output port change (port=0…9, state=high/low) |
|
gps.lock.acquired |
GPS lock has been acquired |
|
gps.lock.lost |
GPS lock has been lost |
|
gps.sq.bad |
GPS position is now unreliable |
|
gps.sq.good |
GPS position is now reliable |
|
housekeeping.init |
Housekeeping has initialised |
|
location.alert.flatbed.moved |
GPS movement of parked vehicle detected |
|
location.enter.<name> |
<name> |
The specified geolocation has been entered |
location.leave.<name> |
<name> |
The specified geolcation has been left |
network.down |
All networks are down |
|
network.interface.change |
Network interface change detected |
|
network.interface.up |
Network connection is established |
|
network.mgr.init |
Network manager has initialised |
|
network.mgr.stop |
Network managed has been stopped |
|
network.modem.down |
Modem network is down |
|
network.modem.up |
Modem network is up |
|
network.reconfigured |
Networking has been reconfigured |
|
network.up |
One or more networks are up |
|
network.wifi.down |
WIFI network is down |
|
network.wifi.sta.bad |
WIFI client has bad signal level |
|
network.wifi.sta.good |
WIFI client has good signal level |
|
network.wifi.up |
WIFI network is up |
|
notify.<type>.<subtype> |
An info / alert / error notification is sent |
|
obd2ecu.start |
Called after the OBD2ECU process is started. |
|
obd2ecu.stop |
Called before the OBD2ECU process is stopped. |
|
retools.cleared.all |
RE frame log has been cleared |
|
retools.cleared.changed |
RE frame change flags cleared |
|
retools.cleared.discovered |
RE frame discovery flags cleared |
|
retools.mode.analyse |
RE switched to analysis mode |
|
retools.mode.discover |
RE switched to discovery mode |
|
retools.started |
RE (reverse engineering) toolkit started |
|
retools.stopped |
RE toolkit stopped |
|
retools.pidscan.start |
RE OBD2 PID scan started |
|
retools.pidscan.stop |
RE OBD2 PID scan stopped |
|
retools.pidscan.done |
RE OBD2 PID scan completed |
|
sd.insert |
The SD card has just been inserted |
|
sd.mounted |
The SD card is mounted and ready to use |
|
sd.remove |
The SD card has just been removed |
|
sd.unmounted |
The SD card has completed unmounting |
|
sd.unmounting |
The SD card is currently unmounting |
|
server.v2.authenticating |
V2 server connection is authenticating |
|
server.v2.connected |
V2 server connection established online |
|
server.v2.connecting |
V2 server connection in progress |
|
server.v2.connectwait |
V2 server is pausing before connection |
|
server.v2.disconnected |
V2 server connection has been lost |
|
server.v2.stopped |
V2 server has been stopped |
|
server.v2.waitnetwork |
V2 server connection is waiting for network |
|
server.v2.waitreconnect |
V2 server is pausing before re-connection |
|
server.v3.authenticating |
V3 server connection is authenticating |
|
server.v3.connected |
V3 server connection established online |
|
server.v3.connecting |
V3 server connection in progress |
|
server.v3.connectwait |
V3 server is pausing before connection |
|
server.v3.disconnected |
V3 server connection has been lost |
|
server.v3.stopped |
V3 server has been stopped |
|
server.v3.waitnetwork |
V3 server connection is waiting for network |
|
server.v3.waitreconnect |
V3 server is pausing before re-connection |
|
server.web.socket.closed |
<cnt> |
Web server lost a websocket client |
server.web.socket.opened |
<cnt> |
Web server has a new websocket client |
system.modem.down |
Modem has been disconnected |
|
system.modem.gotgps |
Modem GPS has obtained lock |
|
system.modem.gotip |
Modem received IP address from DATA |
|
system.modem.installed |
Modem type has been identified, driver installed |
|
system.modem.lostgps |
Modem GPS has lost lock |
|
system.modem.muxstart |
Modem MUX has started |
|
system.modem.netdeepsleep |
Modem is deep sleeping DATA network |
|
system.modem.nethold |
Modem is pausing DATA network |
|
system.modem.netloss |
Modem has lost DATA network |
|
system.modem.netsleep |
Modem is sleeping DATA network |
|
system.modem.netstart |
Modem is starting DATA network |
|
system.modem.netwait |
Modem is pausing before starting DATA |
|
system.modem.poweredon |
Modem is powered on |
|
system.modem.poweringon |
Modem is powering on |
|
system.modem.received.ussd |
<ussd> |
A USSD message has been received |
system.modem.stop |
Modem has been shut down |
|
system.shutdown |
System has been shut down |
|
system.shuttingdown |
System is shutting down |
|
system.start |
System is starting |
|
system.vfs.file.changed |
<path> |
VFS file updated (note: only sent on some file changes) |
system.wifi.ap.sta.connected |
WiFi access point got a new client connection |
|
system.wifi.ap.sta.disconnected |
WiFi access point lost a client connection |
|
system.wifi.ap.sta.ipassigned |
WiFi access point assigned an IP address to a client |
|
system.wifi.ap.start |
WiFi access point mode starting |
|
system.wifi.ap.stop |
WiFi access point mode stopping |
|
system.wifi.down |
WiFi is shutting down |
|
system.wifi.scan.done |
WiFi scan has been finished |
|
system.wifi.sta.connected |
WiFi client is connected to a station |
|
system.wifi.sta.disconnected |
WiFi client has disconnected from a station |
|
system.wifi.sta.gotip |
WiFi client got an IP address |
|
system.wifi.sta.lostip |
WiFi client lost it’s IP address |
|
system.wifi.sta.start |
WiFi client mode starting |
|
ticker.1 |
One second has passed since last ticker |
|
ticker.10 |
Ten seconds have passed |
|
ticker.300 |
Five minutes have passed |
|
ticker.3600 |
One hour has passed |
|
ticker.60 |
One minute has passed |
|
ticker.600 |
Ten minutes have passed |
|
vehicle.alarm.off |
Vehicle alarm has been disarmed |
|
vehicle.alarm.on |
Vehicle alarm has been armed |
|
vehicle.alert.12v.off |
12V system voltage has recovered |
|
vehicle.alert.12v.on |
12V system voltage is below alert threshold |
|
vehicle.alert.12v.low |
12V shutdown voltage level detected |
|
vehicle.alert.12v.operational |
12V recovered above shutdown level |
|
vehicle.alert.12v.shutdown |
12V shutdown threshold reached, entering deep sleep |
|
vehicle.alert.bms |
BMS cell/pack volts/temps exceeded thresholds |
|
vehicle.asleep |
Vehicle systems are asleep |
|
vehicle.awake |
Vehicle systems are awake |
|
vehicle.aux.12v.on |
Vehicle 12V auxiliary system is on (base system awake) |
|
vehicle.aux.12v.off |
Vehicle 12V auxiliary system is off |
|
vehicle.charge.12v.start |
Vehicle 12V battery is charging |
|
vehicle.charge.12v.stop |
Vehicle 12V battery has stopped charging |
|
vehicle.charge.finished |
Vehicle charge has completed normally |
|
vehicle.charge.mode |
<mode> |
Vehicle charge mode has been set |
vehicle.charge.pilot.off |
Vehicle charge pilot signal is off |
|
vehicle.charge.pilot.on |
Vehicle charge pilot signal is on |
|
vehicle.charge.prepare |
Vehicle is preparing to charge |
|
vehicle.charge.start |
Vehicle has started to charge |
|
vehicle.charge.state |
<state> |
Vehicle charge state has changed |
vehicle.charge.stop |
Vehicle has stopped charging |
|
vehicle.charge.timermode.off |
Vehicle charge timer mode has been switched off |
|
vehicle.charge.timermode.on |
Vehicle charge timer mode has been switched on |
|
vehicle.charge.type |
<type> |
Vehicle charge connection type has changed (e.g. ccs/type2/…) |
vehicle.drivemode.<n> |
Vehicle drivemode has been set to profile <n> (vehicle specific) |
|
vehicle.gear.forward |
Vehicle has been put in forward gear |
|
vehicle.gear.neutral |
Vehicle has been put in neutral gear |
|
vehicle.gear.reverse |
Vehicle has been put in reverse gear |
|
vehicle.gen.state |
<state> |
Vehicle generator state has changed |
vehicle.gen.type |
<type> |
Vehicle generator connection type has changed |
vehicle.headlights.off |
Vehicle headlights are off |
|
vehicle.headlights.on |
Vehicle headlights are on |
|
vehicle.locked |
Vehicle has been locked |
|
vehicle.off |
Vehicle has been switched off |
|
vehicle.on |
Vehicle has been switched on |
|
vehicle.require.gps |
A vehicle has indicated it requires GPS |
|
vehicle.require.gpstime |
A vehicle has indicated it requires GPS time |
|
vehicle.type.cleared |
Vehicle module has been unloaded |
|
vehicle.type.set |
<type> |
Vehicle module has been loaded |
vehicle.unlocked |
Vehicle has been unlocked |
|
vehicle.valet.off |
Vehicle valet mode deactivated |
|
vehicle.valet.on |
Vehicle valet mode activated |