UNPKG

@homebridge-plugins/homebridge-smarthq

Version:

The SmartHQ plugin allows you to interact with SmartHQ Devices in HomeKit and with Siri.

125 lines 5.63 kB
import { deviceBase } from './device.js'; export class SmartHQBeverageCenter extends deviceBase { platform; device; constructor(platform, accessory, device) { super(platform, accessory, device); this.platform = platform; this.device = device; this.debugLog(`Beverage Center Features: ${JSON.stringify(accessory.context.device.features)}`); // Beverage Center Temperature Sensor const tempSensor = this.accessory.getService('Beverage Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Beverage Temperature', 'BeverageTemp'); tempSensor.setCharacteristic(this.platform.Characteristic.Name, 'Beverage Temperature'); tempSensor .getCharacteristic(this.platform.Characteristic.CurrentTemperature) .onGet(async () => { try { // TODO: Implement current temperature ERD return 4; } catch (error) { this.warnLog?.(`Beverage Center Temperature error: ${error?.message ?? error}`); return 4; } }); // Beverage Center Door Sensor const doorSensor = this.accessory.getService('Beverage Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Beverage Door', 'BeverageDoor'); doorSensor.setCharacteristic(this.platform.Characteristic.Name, 'Beverage Door'); doorSensor .getCharacteristic(this.platform.Characteristic.ContactSensorState) .onGet(async () => { try { // TODO: Implement door status ERD return this.platform.Characteristic.ContactSensorState.CONTACT_DETECTED; } catch (error) { this.warnLog?.(`Beverage Center Door error: ${error?.message ?? error}`); return this.platform.Characteristic.ContactSensorState.CONTACT_DETECTED; } }); // Beverage Center Thermostat Control const thermostat = this.accessory.getService('Beverage Thermostat') ?? this.accessory.addService(this.platform.Service.Thermostat, 'Beverage Thermostat', 'BeverageThermostat'); thermostat.setCharacteristic(this.platform.Characteristic.Name, 'Beverage Thermostat'); thermostat .getCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState) .onGet(async () => { try { // TODO: Implement cooling state ERD return this.platform.Characteristic.CurrentHeatingCoolingState.COOL; } catch (error) { this.warnLog?.(`Beverage Center State error: ${error?.message ?? error}`); return this.platform.Characteristic.CurrentHeatingCoolingState.OFF; } }); thermostat .getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) .setProps({ validValues: [this.platform.Characteristic.TargetHeatingCoolingState.OFF, this.platform.Characteristic.TargetHeatingCoolingState.COOL], }) .onGet(async () => { try { // TODO: Implement target state ERD return this.platform.Characteristic.TargetHeatingCoolingState.COOL; } catch (error) { this.warnLog?.(`Beverage Center Target State error: ${error?.message ?? error}`); return this.platform.Characteristic.TargetHeatingCoolingState.OFF; } }) .onSet(async (value) => { try { // TODO: Implement target state control ERD this.debugLog(`Beverage Center set to: ${value}`); } catch (error) { this.warnLog?.(`Beverage Center Target State set error: ${error?.message ?? error}`); } }); thermostat .getCharacteristic(this.platform.Characteristic.CurrentTemperature) .onGet(async () => { try { // TODO: Implement current temperature ERD return 4; } catch (error) { this.warnLog?.(`Beverage Center Current Temp error: ${error?.message ?? error}`); return 4; } }); thermostat .getCharacteristic(this.platform.Characteristic.TargetTemperature) .setProps({ minValue: 2, maxValue: 8, minStep: 1, }) .onGet(async () => { try { // TODO: Implement target temperature ERD return 4; } catch (error) { this.warnLog?.(`Beverage Center Target Temp error: ${error?.message ?? error}`); return 4; } }) .onSet(async (value) => { try { // TODO: Implement target temperature control ERD this.debugLog(`Beverage Center temperature set to: ${value}°C`); } catch (error) { this.warnLog?.(`Beverage Center Target Temp set error: ${error?.message ?? error}`); } }); thermostat .getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits) .onGet(async () => this.platform.Characteristic.TemperatureDisplayUnits.CELSIUS) .onSet(async (value) => { this.debugLog(`Beverage Center display units set to: ${value}`); }); } } //# sourceMappingURL=beverageCenter.js.map