UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

290 lines 16.8 kB
// Homebridge plugin for Home Connect home appliances // Copyright © 2023 Alexander Thoukydides import { DoorState, OperationState, PowerState } from '../api-value-types.js'; import { MockAppliance } from './mock-appliance.js'; // A mock CoffeeMaker (based on a simulated appliance) // https://developer.home-connect.com/simulator/coffee-machine export class MockCoffeeMaker extends MockAppliance { constructor() { super(...arguments); // Mandatory appliance details this.type = 'CoffeeMaker'; this.enumber = 'HCS06COM1/03'; this.brand = 'Bosch'; // Appliance status this.status = [{ key: 'BSH.Common.Status.RemoteControlStartAllowed', value: true }, { key: 'BSH.Common.Status.OperationState', value: OperationState.Ready }, { key: 'BSH.Common.Status.DoorState', value: DoorState.Closed }]; // Appliance settings this.settings = [{ key: 'BSH.Common.Setting.PowerState', type: 'BSH.Common.EnumType.PowerState', value: PowerState.On, constraints: { allowedvalues: [PowerState.On, PowerState.Standby] } }]; // Appliance programs this.programs = [{ key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso', options: [{ key: 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', type: 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', type: 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', type: 'Int', unit: 'ml', constraints: { min: 35, max: 60, stepsize: 5 } }] }, { key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato', options: [{ key: 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', type: 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', type: 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', type: 'Int', unit: 'ml', constraints: { min: 40, max: 60, stepsize: 10 } }] }, { key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee', options: [{ key: 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', type: 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', type: 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', type: 'Int', unit: 'ml', constraints: { min: 60, max: 250, stepsize: 10 } }] }, { key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino', options: [{ key: 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', type: 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', type: 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', unit: 'enum', constraints: { allowedvalues: [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { key: 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', type: 'Int', unit: 'ml', constraints: { min: 100, max: 300, stepsize: 20 } }] }, { key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato', 'options': [{ 'key': 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', 'type': 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', 'unit': 'enum', 'constraints': { 'allowedvalues': [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { 'key': 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', 'type': 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', 'unit': 'enum', 'constraints': { 'allowedvalues': [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { 'key': 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', 'type': 'Int', 'unit': 'ml', 'constraints': { 'min': 200, 'max': 400, 'stepsize': 20 } }] }, { key: 'ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte', 'options': [{ 'key': 'ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature', 'type': 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature', 'unit': 'enum', 'constraints': { 'allowedvalues': [ 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.88C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.92C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.95C', 'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.96C' ] } }, { 'key': 'ConsumerProducts.CoffeeMaker.Option.BeanAmount', 'type': 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount', 'unit': 'enum', 'constraints': { 'allowedvalues': [ 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryMild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Normal', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Strong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShot', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlus', 'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.DoubleShotPlusPlus' ] } }, { 'key': 'ConsumerProducts.CoffeeMaker.Option.FillQuantity', 'type': 'Int', 'unit': 'ml', 'constraints': { 'min': 100, 'max': 400, 'stepsize': 20 } }] }]; } } //# sourceMappingURL=mock-coffeemaker.js.map