homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
193 lines • 10 kB
JavaScript
// 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 Washer (based on a simulated appliance)
// https://developer.home-connect.com/simulator/washer
export class MockWasher extends MockAppliance {
constructor() {
super(...arguments);
// Mandatory appliance details
this.type = 'Washer';
this.enumber = 'HCS03WCH1/03';
this.brand = 'Siemens';
// Appliance status
this.status = [{
'key': 'BSH.Common.Status.RemoteControlActive',
'value': true
}, {
'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]
}
}];
// Appliance programs
this.programs = [{
'key': 'LaundryCare.Washer.Program.Cotton',
options: [{
key: 'LaundryCare.Washer.Option.Temperature',
type: 'LaundryCare.Washer.EnumType.Temperature',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.Temperature.Cold',
'LaundryCare.Washer.EnumType.Temperature.GC20',
'LaundryCare.Washer.EnumType.Temperature.GC30',
'LaundryCare.Washer.EnumType.Temperature.GC40',
'LaundryCare.Washer.EnumType.Temperature.GC50',
'LaundryCare.Washer.EnumType.Temperature.GC60',
'LaundryCare.Washer.EnumType.Temperature.GC70',
'LaundryCare.Washer.EnumType.Temperature.GC80',
'LaundryCare.Washer.EnumType.Temperature.GC90'
]
}
}, {
key: 'LaundryCare.Washer.Option.SpinSpeed',
type: 'LaundryCare.Washer.EnumType.SpinSpeed',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.SpinSpeed.Off',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM600',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM800',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1000',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1200',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1600'
]
}
}]
}, {
'key': 'LaundryCare.Washer.Program.EasyCare',
options: [{
key: 'LaundryCare.Washer.Option.Temperature',
type: 'LaundryCare.Washer.EnumType.Temperature',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.Temperature.Cold',
'LaundryCare.Washer.EnumType.Temperature.GC20',
'LaundryCare.Washer.EnumType.Temperature.GC30',
'LaundryCare.Washer.EnumType.Temperature.GC40',
'LaundryCare.Washer.EnumType.Temperature.GC50',
'LaundryCare.Washer.EnumType.Temperature.GC60'
]
}
}, {
key: 'LaundryCare.Washer.Option.SpinSpeed',
type: 'LaundryCare.Washer.EnumType.SpinSpeed',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.SpinSpeed.Off',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM600',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM800',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1000',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1200'
]
}
}]
}, {
'key': 'LaundryCare.Washer.Program.Mix',
options: [{
key: 'LaundryCare.Washer.Option.Temperature',
type: 'LaundryCare.Washer.EnumType.Temperature',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.Temperature.Cold',
'LaundryCare.Washer.EnumType.Temperature.GC20',
'LaundryCare.Washer.EnumType.Temperature.GC30',
'LaundryCare.Washer.EnumType.Temperature.GC40'
]
}
}, {
key: 'LaundryCare.Washer.Option.SpinSpeed',
type: 'LaundryCare.Washer.EnumType.SpinSpeed',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.SpinSpeed.Off',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM600',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM800',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1000',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1200',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM1600'
]
}
}]
}, {
'key': 'LaundryCare.Washer.Program.DelicatesSilk',
options: [{
key: 'LaundryCare.Washer.Option.Temperature',
type: 'LaundryCare.Washer.EnumType.Temperature',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.Temperature.Cold',
'LaundryCare.Washer.EnumType.Temperature.GC20',
'LaundryCare.Washer.EnumType.Temperature.GC30',
'LaundryCare.Washer.EnumType.Temperature.GC40'
]
}
}, {
key: 'LaundryCare.Washer.Option.SpinSpeed',
type: 'LaundryCare.Washer.EnumType.SpinSpeed',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.SpinSpeed.Off',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM600',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM800'
]
}
}]
}, {
'key': 'LaundryCare.Washer.Program.Wool',
options: [{
key: 'LaundryCare.Washer.Option.Temperature',
type: 'LaundryCare.Washer.EnumType.Temperature',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.Temperature.Cold',
'LaundryCare.Washer.EnumType.Temperature.GC20',
'LaundryCare.Washer.EnumType.Temperature.GC30',
'LaundryCare.Washer.EnumType.Temperature.GC40'
]
}
}, {
key: 'LaundryCare.Washer.Option.SpinSpeed',
type: 'LaundryCare.Washer.EnumType.SpinSpeed',
unit: 'enum',
constraints: {
allowedvalues: [
'LaundryCare.Washer.EnumType.SpinSpeed.Off',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM400',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM600',
'LaundryCare.Washer.EnumType.SpinSpeed.RPM800'
]
}
}]
}];
}
}
//# sourceMappingURL=mock-washer.js.map