Compare commits

...

2 Commits

Author SHA1 Message Date
Neil Hanlon
35e54024c0
Add connect command 2023-03-31 18:16:05 -04:00
Neil Hanlon
409d822978
Update onstarjs to 2.3.18 (fixes #262) 2023-03-31 09:32:56 -04:00
3 changed files with 132 additions and 117 deletions

14
package-lock.json generated
View File

@ -12,7 +12,7 @@
"async-mqtt": "^2.6.3", "async-mqtt": "^2.6.3",
"convert-units": "^2.3.4", "convert-units": "^2.3.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"onstarjs": "^2.3.16", "onstarjs": "^2.3.18",
"uuid": "^9.0.0", "uuid": "^9.0.0",
"winston": "^3.8.2" "winston": "^3.8.2"
}, },
@ -5243,9 +5243,9 @@
} }
}, },
"node_modules/onstarjs": { "node_modules/onstarjs": {
"version": "2.3.16", "version": "2.3.18",
"resolved": "https://registry.npmjs.org/onstarjs/-/onstarjs-2.3.16.tgz", "resolved": "https://registry.npmjs.org/onstarjs/-/onstarjs-2.3.18.tgz",
"integrity": "sha512-tGqHJGliiC79C1YnYp+Sdp7ouM7MjNOHvPFBWwFmOPairtuaAaN3gTE8Dd/UTyTwu5qGcV1TWPN2yFFS+x6oNw==", "integrity": "sha512-veTeNono7cTu7psLC7MmSLg/s9G5zFvDMb7R2Ju+A5ECuwEFASfCUSTbTEjU+TDVkZSbV/wM6V4caBccI57SQw==",
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.1",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^8.5.1",
@ -10440,9 +10440,9 @@
} }
}, },
"onstarjs": { "onstarjs": {
"version": "2.3.16", "version": "2.3.18",
"resolved": "https://registry.npmjs.org/onstarjs/-/onstarjs-2.3.16.tgz", "resolved": "https://registry.npmjs.org/onstarjs/-/onstarjs-2.3.18.tgz",
"integrity": "sha512-tGqHJGliiC79C1YnYp+Sdp7ouM7MjNOHvPFBWwFmOPairtuaAaN3gTE8Dd/UTyTwu5qGcV1TWPN2yFFS+x6oNw==", "integrity": "sha512-veTeNono7cTu7psLC7MmSLg/s9G5zFvDMb7R2Ju+A5ECuwEFASfCUSTbTEjU+TDVkZSbV/wM6V4caBccI57SQw==",
"requires": { "requires": {
"axios": "^0.21.1", "axios": "^0.21.1",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^8.5.1",

View File

@ -32,7 +32,7 @@
"async-mqtt": "^2.6.3", "async-mqtt": "^2.6.3",
"convert-units": "^2.3.4", "convert-units": "^2.3.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"onstarjs": "^2.3.16", "onstarjs": "^2.3.18",
"uuid": "^9.0.0", "uuid": "^9.0.0",
"winston": "^3.8.2" "winston": "^3.8.2"
}, },

View File

@ -1,126 +1,141 @@
class Commands { class Commands {
static CONSTANTS = { static CONSTANTS = {
ALERT_ACTION: { ALERT_ACTION: {
FLASH: 'Flash', FLASH: "Flash",
HONK: 'Honk', HONK: "Honk",
}, },
ALERT_OVERRIDE: { ALERT_OVERRIDE: {
DOOR_OPEN: 'DoorOpen', DOOR_OPEN: "DoorOpen",
IGNITION_ON: 'IgnitionOn' IGNITION_ON: "IgnitionOn",
}, },
CHARGE_OVERRIDE: { CHARGE_OVERRIDE: {
CHARGE_NOW: 'CHARGE_NOW', CHARGE_NOW: "CHARGE_NOW",
CANCEL_OVERRIDE: 'CANCEL_OVERRIDE' CANCEL_OVERRIDE: "CANCEL_OVERRIDE",
}, },
CHARGING_PROFILE_MODE: { CHARGING_PROFILE_MODE: {
DEFAULT_IMMEDIATE: 'DEFAULT_IMMEDIATE', DEFAULT_IMMEDIATE: "DEFAULT_IMMEDIATE",
IMMEDIATE: 'IMMEDIATE', IMMEDIATE: "IMMEDIATE",
DEPARTURE_BASED: 'DEPARTURE_BASED', DEPARTURE_BASED: "DEPARTURE_BASED",
RATE_BASED: 'RATE_BASED', RATE_BASED: "RATE_BASED",
PHEV_AFTER_MIDNIGHT: 'PHEV_AFTER_MIDNIGHT' PHEV_AFTER_MIDNIGHT: "PHEV_AFTER_MIDNIGHT",
}, },
CHARGING_PROFILE_RATE: { CHARGING_PROFILE_RATE: {
OFFPEAK: 'OFFPEAK', OFFPEAK: "OFFPEAK",
MIDPEAK: 'MIDPEAK', MIDPEAK: "MIDPEAK",
PEAK: 'PEAK' PEAK: "PEAK",
}, },
DIAGNOSTICS: { DIAGNOSTICS: {
ENGINE_COOLANT_TEMP: 'ENGINE COOLANT TEMP', ENGINE_COOLANT_TEMP: "ENGINE COOLANT TEMP",
ENGINE_RPM: 'ENGINE RPM', ENGINE_RPM: "ENGINE RPM",
LAST_TRIP_FUEL_ECONOMY: 'LAST TRIP FUEL ECONOMY', LAST_TRIP_FUEL_ECONOMY: "LAST TRIP FUEL ECONOMY",
EV_ESTIMATED_CHARGE_END: 'EV ESTIMATED CHARGE END', EV_ESTIMATED_CHARGE_END: "EV ESTIMATED CHARGE END",
EV_BATTERY_LEVEL: 'EV BATTERY LEVEL', EV_BATTERY_LEVEL: "EV BATTERY LEVEL",
OIL_LIFE: 'OIL LIFE', OIL_LIFE: "OIL LIFE",
EV_PLUG_VOLTAGE: 'EV PLUG VOLTAGE', EV_PLUG_VOLTAGE: "EV PLUG VOLTAGE",
LIFETIME_FUEL_ECON: 'LIFETIME FUEL ECON', LIFETIME_FUEL_ECON: "LIFETIME FUEL ECON",
HOTSPOT_CONFIG: 'HOTSPOT CONFIG', HOTSPOT_CONFIG: "HOTSPOT CONFIG",
LIFETIME_FUEL_USED: 'LIFETIME FUEL USED', LIFETIME_FUEL_USED: "LIFETIME FUEL USED",
ODOMETER: 'ODOMETER', ODOMETER: "ODOMETER",
HOTSPOT_STATUS: 'HOTSPOT STATUS', HOTSPOT_STATUS: "HOTSPOT STATUS",
LIFETIME_EV_ODOMETER: 'LIFETIME EV ODOMETER', LIFETIME_EV_ODOMETER: "LIFETIME EV ODOMETER",
EV_PLUG_STATE: 'EV PLUG STATE', EV_PLUG_STATE: "EV PLUG STATE",
EV_CHARGE_STATE: 'EV CHARGE STATE', EV_CHARGE_STATE: "EV CHARGE STATE",
TIRE_PRESSURE: 'TIRE PRESSURE', TIRE_PRESSURE: "TIRE PRESSURE",
AMBIENT_AIR_TEMPERATURE: 'AMBIENT AIR TEMPERATURE', AMBIENT_AIR_TEMPERATURE: "AMBIENT AIR TEMPERATURE",
LAST_TRIP_DISTANCE: 'LAST TRIP DISTANCE', LAST_TRIP_DISTANCE: "LAST TRIP DISTANCE",
INTERM_VOLT_BATT_VOLT: 'INTERM VOLT BATT VOLT', INTERM_VOLT_BATT_VOLT: "INTERM VOLT BATT VOLT",
GET_COMMUTE_SCHEDULE: 'GET COMMUTE SCHEDULE', GET_COMMUTE_SCHEDULE: "GET COMMUTE SCHEDULE",
GET_CHARGE_MODE: 'GET CHARGE MODE', GET_CHARGE_MODE: "GET CHARGE MODE",
EV_SCHEDULED_CHARGE_START: 'EV SCHEDULED CHARGE START', EV_SCHEDULED_CHARGE_START: "EV SCHEDULED CHARGE START",
FUEL_TANK_INFO: 'FUEL TANK INFO', FUEL_TANK_INFO: "FUEL TANK INFO",
HANDS_FREE_CALLING: 'HANDS FREE CALLING', HANDS_FREE_CALLING: "HANDS FREE CALLING",
ENERGY_EFFICIENCY: 'ENERGY EFFICIENCY', ENERGY_EFFICIENCY: "ENERGY EFFICIENCY",
VEHICLE_RANGE: 'VEHICLE RANGE', VEHICLE_RANGE: "VEHICLE RANGE",
} },
} };
constructor(onstar) { constructor(onstar) {
this.onstar = onstar; this.onstar = onstar;
} }
async getAccountVehicles() { async getAccountVehicles() {
return this.onstar.getAccountVehicles(); return this.onstar.getAccountVehicles();
} }
async startVehicle() { async startVehicle() {
return this.onstar.start(); return this.onstar.start();
} }
async cancelStartVehicle() { async cancelStartVehicle() {
return this.onstar.cancelStart(); return this.onstar.cancelStart();
} }
async alert({action = [Commands.CONSTANTS.ALERT_ACTION.FLASH], async connect() {
delay = 0, duration = 1, override = []}) { return this.onstar.connect();
return this.onstar.alert({ }
action,
delay,
duration,
override
});
}
async cancelAlert() { async alert(
return this.onstar.cancelAlert(); {
} action = [Commands.CONSTANTS.ALERT_ACTION.FLASH],
delay = 0,
duration = 1,
override = [],
},
) {
return this.onstar.alert({
action,
delay,
duration,
override,
});
}
async lockDoor({delay = 0}) { async cancelAlert() {
return this.onstar.lockDoor({delay}); return this.onstar.cancelAlert();
} }
async unlockDoor({delay = 0}) { async lockDoor({ delay = 0 }) {
return this.onstar.unlockDoor({delay}); return this.onstar.lockDoor({ delay });
} }
async chargeOverride({mode = Commands.CONSTANTS.CHARGE_OVERRIDE.CHARGE_NOW}) { async unlockDoor({ delay = 0 }) {
return this.onstar.chargeOverride({mode}); return this.onstar.unlockDoor({ delay });
} }
async cancelChargeOverride({mode = Commands.CONSTANTS.CHARGE_OVERRIDE.CANCEL_OVERRIDE}) { async chargeOverride(
return this.onstar.chargeOverride({mode}); { mode = Commands.CONSTANTS.CHARGE_OVERRIDE.CHARGE_NOW },
} ) {
return this.onstar.chargeOverride({ mode });
}
async getChargingProfile() { async cancelChargeOverride(
return this.onstar.getChargingProfile(); { mode = Commands.CONSTANTS.CHARGE_OVERRIDE.CANCEL_OVERRIDE },
} ) {
return this.onstar.chargeOverride({ mode });
}
async setChargingProfile() { async getChargingProfile() {
return this.onstar.setChargingProfile(); return this.onstar.getChargingProfile();
} }
async getLocation() { async setChargingProfile() {
return this.onstar.location(); return this.onstar.setChargingProfile();
} }
async diagnostics({diagnosticItem = [ async getLocation() {
Commands.CONSTANTS.DIAGNOSTICS.ODOMETER, return this.onstar.location();
Commands.CONSTANTS.DIAGNOSTICS.TIRE_PRESSURE, }
Commands.CONSTANTS.DIAGNOSTICS.AMBIENT_AIR_TEMPERATURE,
Commands.CONSTANTS.DIAGNOSTICS.LAST_TRIP_DISTANCE async diagnostics({
]}) { diagnosticItem = [
return this.onstar.diagnostics({diagnosticItem}); Commands.CONSTANTS.DIAGNOSTICS.ODOMETER,
} Commands.CONSTANTS.DIAGNOSTICS.TIRE_PRESSURE,
Commands.CONSTANTS.DIAGNOSTICS.AMBIENT_AIR_TEMPERATURE,
Commands.CONSTANTS.DIAGNOSTICS.LAST_TRIP_DISTANCE,
],
}) {
return this.onstar.diagnostics({ diagnosticItem });
}
} }
module.exports = Commands; module.exports = Commands;