UNPKG

homebridge-switcher-platform

Version:
95 lines (80 loc) 2.04 kB
module.exports = function(Characteristic) { class EnergyCharacteristic extends Characteristic { constructor(displayName, UUID, props) { super(displayName, UUID); this.setProps(Object.assign({ format: 'float', minValue: 0, maxValue: 65535, perms: ['pr', 'ev'] }, props)); this.value = this.getDefaultValue(); } } class Amperes extends EnergyCharacteristic { constructor() { super('Amperes', Amperes.UUID, { unit: 'A', minStep: 0.001 }); } } Amperes.UUID = 'E863F126-079E-48FF-8F27-9C2605A29F52'; class KilowattHours extends EnergyCharacteristic { constructor() { super('Total Consumption', KilowattHours.UUID, { unit: 'kWh', minStep: 0.001 }); } } KilowattHours.UUID = 'E863F10C-079E-48FF-8F27-9C2605A29F52'; class KilowattVoltAmpereHour extends EnergyCharacteristic { constructor() { super('Apparent Energy', KilowattVoltAmpereHour.UUID, { format: 'uint32', unit: 'kVAh', minStep: 1 }); } } KilowattVoltAmpereHour.UUID = 'E863F127-079E-48FF-8F27-9C2605A29F52'; class VoltAmperes extends EnergyCharacteristic { constructor() { super('Apparent Power', VoltAmperes.UUID, { format: 'uint16', unit: 'VA', minStep: 1 }); } } VoltAmperes.UUID = 'E863F110-079E-48FF-8F27-9C2605A29F52'; class Volts extends EnergyCharacteristic { constructor() { super('Volts', Volts.UUID, { unit: 'V', minStep: 0.1 }); } } Volts.UUID = 'E863F10A-079E-48FF-8F27-9C2605A29F52'; class Watts extends EnergyCharacteristic { constructor() { super('Consumption', Watts.UUID, { unit: 'W', minStep: 0.1 }); } } Watts.UUID = 'E863F10D-079E-48FF-8F27-9C2605A29F52'; class ResetTotal extends EnergyCharacteristic { constructor() { super('Reset', ResetTotal.UUID, { format: 'uint32', perms: ['pr', 'ev', 'pw'] }); } } ResetTotal.UUID = 'E863F112-079E-48FF-8F27-9C2605A29F52'; return {Amperes, KilowattHours, KilowattVoltAmpereHour, VoltAmperes, Volts, Watts, ResetTotal}; };