Skip to content

Commit

Permalink
improve
Browse files Browse the repository at this point in the history
  • Loading branch information
OlivierZal committed Jun 29, 2024
1 parent 90a2126 commit 526c85f
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 6 deletions.
4 changes: 4 additions & 0 deletions src/facades/device.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ export default abstract class<T extends keyof typeof DeviceType>
return this.model.data
}

public get power(): boolean {
return this.data.Power
}

get #setData(): Omit<UpdateDeviceData[T], 'EffectiveFlags'> {
return Object.fromEntries(
Object.entries(this.data).filter(([key]) => key in this.setDataMapping),
Expand Down
30 changes: 29 additions & 1 deletion src/facades/device_ata.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
import { flagsAta, setDataMappingAta, setKeyMappingAta } from '../types'
import {
type FanSpeed,
type Horizontal,
type OperationMode,
type Vertical,
flagsAta,
setDataMappingAta,
setKeyMappingAta,
} from '../types'
import BaseDeviceFacade from './device'

export default class extends BaseDeviceFacade<'Ata'> {
Expand All @@ -7,4 +15,24 @@ export default class extends BaseDeviceFacade<'Ata'> {
protected readonly setDataMapping = setDataMappingAta

protected readonly setKeyMapping = setKeyMappingAta

public get fan(): FanSpeed {
return this.data.FanSpeed
}

public get horizontal(): Horizontal {
return this.data.VaneHorizontalDirection
}

public get mode(): OperationMode {
return this.data.OperationMode
}

public get temperature(): number {
return this.data.SetTemperature
}

public get vertical(): Vertical {
return this.data.VaneVerticalDirection
}
}
47 changes: 46 additions & 1 deletion src/facades/device_atw.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { flagsAtw, setDataMappingAtw, setKeyMappingAtw } from '../types'
import {
type OperationModeZone,
flagsAtw,
setDataMappingAtw,
setKeyMappingAtw,
} from '../types'
import BaseDeviceFacade from './device'

export default class extends BaseDeviceFacade<'Atw'> {
Expand All @@ -7,4 +12,44 @@ export default class extends BaseDeviceFacade<'Atw'> {
protected readonly setDataMapping = setDataMappingAtw

protected readonly setKeyMapping = setKeyMappingAtw

public get coolFlowTemperature(): number {
return this.data.SetCoolFlowTemperatureZone1
}

public get coolFlowTemperatureZone2(): number {
return this.data.SetCoolFlowTemperatureZone2
}

public get forcedHotWater(): boolean {
return this.data.ForcedHotWaterMode
}

public get heatFlowTemperature(): number {
return this.data.SetHeatFlowTemperatureZone1
}

public get heatFlowTemperatureZone2(): number {
return this.data.SetHeatFlowTemperatureZone2
}

public get hotWaterTemperature(): number {
return this.data.SetTankWaterTemperature
}

public get mode(): OperationModeZone {
return this.data.OperationModeZone1
}

public get modeZone2(): OperationModeZone {
return this.data.OperationModeZone2
}

public get temperature(): number {
return this.data.SetTemperatureZone1
}

public get temperatureZone2(): number {
return this.data.SetTemperatureZone2
}
}
8 changes: 8 additions & 0 deletions src/facades/device_erv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,12 @@ export default class extends BaseDeviceFacade<'Erv'> {
protected readonly setDataMapping = setDataMappingErv

protected readonly setKeyMapping = setKeyMappingErv

public get fan(): number {
return this.data.SetFanSpeed
}

public get mode(): number {
return this.data.VentilationMode
}
}
8 changes: 4 additions & 4 deletions src/types/atw.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export interface EnergyDataAtw {
export interface SetKeysAtw extends BaseSetKeys {
readonly coolFlowTemperature?: number
readonly coolFlowTemperatureZone2?: number
readonly forceHotWater?: boolean
readonly forcedHotWater?: boolean
readonly heatFlowTemperature?: number
readonly heatFlowTemperatureZone2?: number
readonly hotWaterTemperature?: number
Expand All @@ -121,7 +121,7 @@ export interface SetKeysAtw extends BaseSetKeys {
export const flagsAtw: Record<keyof SetKeysAtw, number> = {
coolFlowTemperature: 0x1000000000000,
coolFlowTemperatureZone2: 0x1000000000000,
forceHotWater: 0x10000,
forcedHotWater: 0x10000,
heatFlowTemperature: 0x1000000000000,
heatFlowTemperatureZone2: 0x1000000000000,
hotWaterTemperature: 0x1000000000020,
Expand All @@ -136,7 +136,7 @@ export const setDataMappingAtw: Record<
NonFlagsKeyOf<UpdateDeviceDataAtw>,
keyof SetKeysAtw
> = {
ForcedHotWaterMode: 'forceHotWater',
ForcedHotWaterMode: 'forcedHotWater',
OperationModeZone1: 'mode',
OperationModeZone2: 'modeZone2',
Power: 'power',
Expand All @@ -155,7 +155,7 @@ export const setKeyMappingAtw: Record<
> = {
coolFlowTemperature: 'SetCoolFlowTemperatureZone1',
coolFlowTemperatureZone2: 'SetCoolFlowTemperatureZone2',
forceHotWater: 'ForcedHotWaterMode',
forcedHotWater: 'ForcedHotWaterMode',
heatFlowTemperature: 'SetHeatFlowTemperatureZone1',
heatFlowTemperatureZone2: 'SetHeatFlowTemperatureZone2',
hotWaterTemperature: 'SetTankWaterTemperature',
Expand Down

0 comments on commit 526c85f

Please sign in to comment.