Skip to content

Commit 5c63a52

Browse files
committed
Update to new air quality mapping
1 parent 9491447 commit 5c63a52

File tree

4 files changed

+25
-13
lines changed

4 files changed

+25
-13
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"dependencies": {
6262
"@homebridge/plugin-ui-utils": "^1.0.1",
6363
"async-lock": "^1.4.1",
64-
"winix-api": "1.5.5"
64+
"winix-api": "1.6.1"
6565
},
6666
"devDependencies": {
6767
"@types/async-lock": "^1.4.2",

src/accessory.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CharacteristicValue, PlatformAccessory, Service } from 'homebridge';
2-
import { Airflow, AirQuality, Mode, Plasmawave, Power } from 'winix-api';
2+
import { Airflow, AirQuality, Mode, Plasmawave, Power, StaticAirQuality } from 'winix-api';
33
import { DeviceContext, WinixPurifierPlatform } from './platform';
44
import { DeviceOverride, WinixPlatformConfig } from './config';
55
import { CharacteristicManager } from './characteristic';
@@ -492,14 +492,26 @@ export class WinixPurifierAccessory {
492492
}
493493

494494
private toAirQuality(airQuality: AirQuality): CharacteristicValue {
495+
// Check if airQuality is a number
496+
if (typeof airQuality === 'number') {
497+
if (airQuality > 2.0) {
498+
return this.Characteristic.AirQuality.POOR;
499+
}
500+
501+
if (airQuality > 1.0) {
502+
return this.Characteristic.AirQuality.FAIR;
503+
}
504+
505+
return this.Characteristic.AirQuality.GOOD;
506+
}
507+
508+
// Air quality is one of the static values
495509
switch (airQuality) {
496-
case AirQuality.Good:
497-
return this.Characteristic.AirQuality.GOOD;
498-
case AirQuality.GoodAlternate:
510+
case StaticAirQuality.Good:
499511
return this.Characteristic.AirQuality.GOOD;
500-
case AirQuality.Fair:
512+
case StaticAirQuality.Fair:
501513
return this.Characteristic.AirQuality.FAIR;
502-
case AirQuality.Poor:
514+
case StaticAirQuality.Poor:
503515
return this.Characteristic.AirQuality.POOR;
504516
default:
505517
return this.Characteristic.AirQuality.UNKNOWN;

src/device.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Airflow, AirQuality, DeviceStatus, Mode, Plasmawave, Power, WinixAPI } from 'winix-api';
1+
import { Airflow, AirQuality, DeviceStatus, Mode, Plasmawave, Power, StaticAirQuality, WinixAPI } from 'winix-api';
22
import { DeviceLogger } from './logger';
33
import AsyncLock from 'async-lock';
44

@@ -21,7 +21,7 @@ export class Device {
2121
power: Power.Off,
2222
mode: Mode.Auto,
2323
airflow: Airflow.Low,
24-
airQuality: AirQuality.Good,
24+
airQuality: StaticAirQuality.Good,
2525
plasmawave: Plasmawave.Off,
2626
ambientLight: 0,
2727
filterHours: 0,

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3684,10 +3684,10 @@ why-is-node-running@^2.3.0:
36843684
siginfo "^2.0.0"
36853685
stackback "0.0.2"
36863686

3687-
winix-api@1.5.5:
3688-
version "1.5.5"
3689-
resolved "https://registry.yarnpkg.com/winix-api/-/winix-api-1.5.5.tgz#ade63683e9f2f87fddb1df827ecf18eb526f7c88"
3690-
integrity sha512-opzE/eVbZ1ofoF8Tnb+S2VK9aH4zKaVHCbbESYLu4GF8ZnjkJUdGMrwT1acT1ob2xdsnXFeAqFzrEo9yPZUHww==
3687+
winix-api@1.6.1:
3688+
version "1.6.1"
3689+
resolved "https://registry.yarnpkg.com/winix-api/-/winix-api-1.6.1.tgz#33b66859e159d9ef8f1487c6efd8b045af2375a8"
3690+
integrity sha512-fi3zqcFFVMJLSmaEhH8fbpNGzYJzMRezp/9qXardw1j/PtRphk3S/yGVfzA8hKPr8ikeXjpzVR76gGgEd43Izg==
36913691
dependencies:
36923692
"@aws-sdk/client-cognito-identity-provider" "3.716.0"
36933693
axios "1.7.9"

0 commit comments

Comments
 (0)