A node.js api for controlling the BCP EV chargers (Z-Box compatible chargers)
npm install @danielgindi/bcp-charger-api
npm install --save @danielgindi/bcp-charger-api
`
Usage example:
`javascript
import { ChargerController } from '@danielgindi/bcp-charger-api';
let charger = new ChargerController('123456');
// Take the code from the QR on the charger or the Z-Box app, and let's resolve the IP address for the charger.
await charger.sendGetIpAddress('012345678');
// Let's fetch basic info about the charger so that state commands could work.
await charger.sendGetChargerModel();
if (await charger.sendSetChargeState(true)) {
console.log('Charging started!');
} else {
console.log('Charging failed!');
}
`
$3
All methods/properties/events are documented in the code.
#### Methods:
* setHost(ip: string, port: number = 3333)
* async sendGetIpAddress(chargerCode: string): Promise<{port: number, ip: string}>
* async sendHeartbeat(): Promise
* async sendGetChargerModel(): Promise
* async sendSetPassword(password: string): Promise
* async sendSetWifiAccessPoint(ssid: string, password: string): Promise
* async sendSetTimedChargeState(fromTime: string, toTime: string): Promise
* async sendSetRFIDAndApp(rfidEnabled: boolean, appEnabled: boolean): Promise
* async sendSetDLB(enabled: boolean, extremeMode: boolean, maxCurrent: number, nightMode: boolean): Promise
* async sendSetGroundingDetection(enabled: boolean): Promise
* async sendSetMaxCurrent(maxCurrent: number): Promise
* async sendGetFaultStatus(): Promise
* async sendGetRealTimeData(): Promise
* async sendGetControlsState(): Promise
* async sendSetBluetoothConnectionMode(enabled: boolean): Promise
* async sendSwitchIapMode(enabled: boolean): Promise
* async sendSetMaxPower(maxPower: number): Promise
* async sendSetReservation(fromTime: string, toTime: string, daysOfWeek: string): Promise
* async sendSyncTime(): Promise
* async sendGetPowerConsumptionRecords(): Promise
* async sendGetPowerConsumptionRecordsOfMonth(year: number, month: number): Promise
* async sendSetMaxMonthlyPower(maxCurrent: number): Promise
* async sendSetEmergencyStopProtection(enabled: boolean): Promise
#### Properties:
* get host: {port: number, ipAddress: string}
* get modelInfo: ChargerModel|null
* get lastControlsState: ChargerControlsState|null
* get lastRealTimeData: ChargerRealTimeData|null
* get lastFaultStatus: ChargeFaultStatus|null
* get lastKnownState: ChargerState|null
* get canStopCharging: boolean
* get canStartCharging: boolean
#### Events:
* 'malformed_message' (message: Buffer)
* 'charger_error' (code: string)
* 'message' (message: ParsedMessage)
* 'heartbeat' ()
* 'password' (password: string)
* 'ip' (event: { ip: string, port: number })
* 'charger_model' (model: ChargeModel)
* 'fault_status' (status: ChargeFaultStatus)
* 'realtime_data' (data: ChargerRealTimeData)
* 'controls_state' (data: ChargerControlsState)`