homebridge-blueair-purifier 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +3 -0
- package/config.schema.json +25 -11
- package/dist/accessory/AirPurifierAccessory.d.ts.map +1 -1
- package/dist/accessory/AirPurifierAccessory.js +30 -23
- package/dist/accessory/AirPurifierAccessory.js.map +1 -1
- package/dist/api/BlueAirAwsApi.d.ts.map +1 -1
- package/dist/api/BlueAirAwsApi.js +21 -9
- package/dist/api/BlueAirAwsApi.js.map +1 -1
- package/dist/api/Consts.d.ts.map +1 -1
- package/dist/api/Consts.js +1 -1
- package/dist/api/Consts.js.map +1 -1
- package/dist/api/GigyaApi.d.ts.map +1 -1
- package/dist/api/GigyaApi.js +6 -5
- package/dist/api/GigyaApi.js.map +1 -1
- package/dist/device/BlueAirDevice.d.ts +3 -3
- package/dist/device/BlueAirDevice.d.ts.map +1 -1
- package/dist/device/BlueAirDevice.js +4 -7
- package/dist/device/BlueAirDevice.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +16 -12
- package/dist/platform.js.map +1 -1
- package/dist/platformUtils.d.ts +4 -3
- package/dist/platformUtils.d.ts.map +1 -1
- package/dist/platformUtils.js +1 -0
- package/dist/platformUtils.js.map +1 -1
- package/homebridge-ui/public/index.html +5 -4
- package/homebridge-ui/server.js +3 -1
- package/package.json +1 -1
package/.gitattributes
ADDED
package/config.schema.json
CHANGED
|
@@ -1,27 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pluginAlias": "blueair-purifier",
|
|
3
3
|
"pluginType": "platform",
|
|
4
|
+
"customUi": true,
|
|
4
5
|
"singular": true,
|
|
5
6
|
"schema": {
|
|
6
7
|
"type": "object",
|
|
7
8
|
"properties": {
|
|
8
9
|
"username": {
|
|
9
10
|
"title": "Username",
|
|
10
|
-
"description": "Username for BlueAir account",
|
|
11
|
-
"type": "string"
|
|
12
|
-
"required": true
|
|
11
|
+
"description": "Username for BlueAir account. This should be filled in autometically in the discovery process.",
|
|
12
|
+
"type": "string"
|
|
13
13
|
},
|
|
14
14
|
"password": {
|
|
15
15
|
"title": "Password",
|
|
16
|
-
"description": "Password for BlueAir account",
|
|
16
|
+
"description": "Password for BlueAir account. This should be filled in autometically in the discovery process.",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"region": {
|
|
20
|
+
"title": "Region",
|
|
21
|
+
"description": "Region for BlueAir account. This should be filled in autometically in the discovery process.",
|
|
17
22
|
"type": "string",
|
|
23
|
+
"enum": ["Default (all other regions)", "Australia", "China", "Russia", "USA"],
|
|
24
|
+
"default": "Default (all other regions)",
|
|
18
25
|
"required": true
|
|
19
26
|
},
|
|
27
|
+
"accountUuid": {
|
|
28
|
+
"title": "Account UUID",
|
|
29
|
+
"description": "Account UUID for BlueAir account. This should be filled in autometically in the discovery process.",
|
|
30
|
+
"type": "string"
|
|
31
|
+
},
|
|
20
32
|
"verboseLogging": {
|
|
21
33
|
"title": "Verbose Logging",
|
|
22
34
|
"description": "Enable to receive detailed log messages. Useful for troubleshooting.",
|
|
23
35
|
"type": "boolean"
|
|
24
36
|
},
|
|
37
|
+
"uiDebug": {
|
|
38
|
+
"title": "UI Debug",
|
|
39
|
+
"description": "Enable to show debug information in the Homebridge UI.",
|
|
40
|
+
"type": "boolean"
|
|
41
|
+
},
|
|
25
42
|
"devices": {
|
|
26
43
|
"title": "Devices",
|
|
27
44
|
"type": "array",
|
|
@@ -38,11 +55,6 @@
|
|
|
38
55
|
"type": "string",
|
|
39
56
|
"required": true
|
|
40
57
|
},
|
|
41
|
-
"isAWSDevice": {
|
|
42
|
-
"title": "AWS Device",
|
|
43
|
-
"description": "Enable AWS integration. This is required for devices like DustMagnet, HealthProtect, and Blue Pure.",
|
|
44
|
-
"type": "boolean"
|
|
45
|
-
},
|
|
46
58
|
"led": {
|
|
47
59
|
"title": "LED",
|
|
48
60
|
"description": "Toggles if the LED switch service is created with the accessory.",
|
|
@@ -95,7 +107,10 @@
|
|
|
95
107
|
"items": [
|
|
96
108
|
"username",
|
|
97
109
|
"password",
|
|
98
|
-
"
|
|
110
|
+
"region",
|
|
111
|
+
"accountUuid",
|
|
112
|
+
"verboseLogging",
|
|
113
|
+
"uiDebug"
|
|
99
114
|
]
|
|
100
115
|
},
|
|
101
116
|
{
|
|
@@ -105,7 +120,6 @@
|
|
|
105
120
|
"items": [
|
|
106
121
|
"devices[].name",
|
|
107
122
|
"devices[].id",
|
|
108
|
-
"devices[].enableAWS",
|
|
109
123
|
"devices[].led",
|
|
110
124
|
"devices[].airQualitySensor",
|
|
111
125
|
"devices[].co2Sensor",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirPurifierAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/AirPurifierAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,qBAAa,oBAAoB;IAK7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAN5C,OAAO,CAAC,OAAO,CAAU;gBAGJ,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"AirPurifierAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/AirPurifierAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,qBAAa,oBAAoB;IAK7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAN5C,OAAO,CAAC,OAAO,CAAU;gBAGJ,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,YAAY;IA4C5C,SAAS,IAAI,mBAAmB;IAMhC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAIpC,0BAA0B,IAAI,mBAAmB;IAWjD,yBAAyB,IAAI,mBAAmB;IAMhD,yBAAyB,CAAC,KAAK,EAAE,mBAAmB;IAIpD,uBAAuB,IAAI,mBAAmB;IAM9C,uBAAuB,CAAC,KAAK,EAAE,mBAAmB;IAIlD,gBAAgB,IAAI,mBAAmB;IAMvC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;IAI3C,yBAAyB,IAAI,mBAAmB;IAWhD,kBAAkB,IAAI,mBAAmB;IAIzC,qBAAqB,IAAI,mBAAmB;IAI5C,0BAA0B,IAAI,mBAAmB;CAGlD"}
|
|
@@ -15,38 +15,43 @@ class AirPurifierAccessory {
|
|
|
15
15
|
this.accessory.addService(this.platform.Service.AirPurifier);
|
|
16
16
|
this.service.setCharacteristic(this.platform.Characteristic.Name, this.configDev.name);
|
|
17
17
|
this.service.getCharacteristic(this.platform.Characteristic.Active)
|
|
18
|
-
.
|
|
19
|
-
.
|
|
18
|
+
.onGet(this.getActive.bind(this))
|
|
19
|
+
.onSet(this.setActive.bind(this));
|
|
20
20
|
this.service.getCharacteristic(this.platform.Characteristic.CurrentAirPurifierState)
|
|
21
|
-
.
|
|
21
|
+
.onGet(this.getCurrentAirPurifierState.bind(this));
|
|
22
22
|
this.service.getCharacteristic(this.platform.Characteristic.TargetAirPurifierState)
|
|
23
|
-
.
|
|
24
|
-
.
|
|
23
|
+
.onGet(this.getTargetAirPurifierState.bind(this))
|
|
24
|
+
.onSet(this.setTargetAirPurifierState.bind(this));
|
|
25
25
|
this.service.getCharacteristic(this.platform.Characteristic.LockPhysicalControls)
|
|
26
|
-
.
|
|
27
|
-
.
|
|
26
|
+
.onGet(this.getLockPhysicalControls.bind(this))
|
|
27
|
+
.onSet(this.setLockPhysicalControls.bind(this));
|
|
28
28
|
this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed)
|
|
29
|
-
.
|
|
30
|
-
.
|
|
31
|
-
this.service.getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
|
|
32
|
-
|
|
33
|
-
this.service.getCharacteristic(this.platform.Characteristic.FilterLifeLevel)
|
|
34
|
-
|
|
35
|
-
this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
|
|
36
|
-
|
|
37
|
-
this.service.getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity)
|
|
38
|
-
|
|
29
|
+
.onGet(this.getRotationSpeed.bind(this))
|
|
30
|
+
.onSet(this.setRotationSpeed.bind(this));
|
|
31
|
+
// this.service.getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
|
|
32
|
+
// .onGet(this.getFilterChangeIndication.bind(this));
|
|
33
|
+
// this.service.getCharacteristic(this.platform.Characteristic.FilterLifeLevel)
|
|
34
|
+
// .onGet(this.getFilterLifeLevel.bind(this));
|
|
35
|
+
// this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
|
|
36
|
+
// .onGet(this.getCurrentTemperature.bind(this));
|
|
37
|
+
// this.service.getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity)
|
|
38
|
+
// .onGet(this.getCurrentRelativeHumidity.bind(this));
|
|
39
39
|
}
|
|
40
40
|
getActive() {
|
|
41
|
-
return this.device.state.standby ?
|
|
41
|
+
return this.device.state.standby ?
|
|
42
|
+
this.platform.Characteristic.Active.INACTIVE :
|
|
43
|
+
this.platform.Characteristic.Active.ACTIVE;
|
|
42
44
|
}
|
|
43
45
|
setActive(value) {
|
|
44
|
-
this.device.setState('standby', value === this.platform.Characteristic.Active.
|
|
46
|
+
this.device.setState('standby', value === this.platform.Characteristic.Active.INACTIVE);
|
|
45
47
|
}
|
|
46
48
|
getCurrentAirPurifierState() {
|
|
47
|
-
|
|
48
|
-
this.platform.Characteristic.CurrentAirPurifierState.
|
|
49
|
-
|
|
49
|
+
if (this.device.state.standby) {
|
|
50
|
+
return this.platform.Characteristic.CurrentAirPurifierState.INACTIVE;
|
|
51
|
+
}
|
|
52
|
+
return this.device.state.automode && this.device.state.fanspeed === 0 ?
|
|
53
|
+
this.platform.Characteristic.CurrentAirPurifierState.IDLE :
|
|
54
|
+
this.platform.Characteristic.CurrentAirPurifierState.PURIFYING_AIR;
|
|
50
55
|
}
|
|
51
56
|
getTargetAirPurifierState() {
|
|
52
57
|
return this.device.state.automode ?
|
|
@@ -65,7 +70,9 @@ class AirPurifierAccessory {
|
|
|
65
70
|
this.device.setState('childlock', value === this.platform.Characteristic.LockPhysicalControls.CONTROL_LOCK_ENABLED);
|
|
66
71
|
}
|
|
67
72
|
getRotationSpeed() {
|
|
68
|
-
return this.device.state.
|
|
73
|
+
return this.device.state.standby === false ?
|
|
74
|
+
this.device.state.fanspeed || 0 :
|
|
75
|
+
0;
|
|
69
76
|
}
|
|
70
77
|
setRotationSpeed(value) {
|
|
71
78
|
this.device.setState('fanspeed', value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirPurifierAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirPurifierAccessory.ts"],"names":[],"mappings":";;;AAKA,MAAa,oBAAoB;IAI/B,YACqB,QAAyB,EACzB,SAA4B,EAC5B,MAAqB,EACrB,SAAuB;QAHvB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAmB;QAC5B,WAAM,GAAN,MAAM,CAAe;QACrB,cAAS,GAAT,SAAS,CAAc;QAE1C,IAAI,CAAC,SAAS;aACX,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACvD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC;aACvE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aAChE,
|
|
1
|
+
{"version":3,"file":"AirPurifierAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirPurifierAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlueAirAwsApi.d.ts","sourceRoot":"","sources":["../../src/api/BlueAirAwsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMpC,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAQF,eAAO,MAAM,0BAA0B;;;;;;;;;CAStC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAa;IAW9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAE7C,OAAO,CAAC,UAAU,CAAS;gBAGzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACG,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"BlueAirAwsApi.d.ts","sourceRoot":"","sources":["../../src/api/BlueAirAwsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMpC,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAQF,eAAO,MAAM,0BAA0B;;;;;;;;;CAStC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAa;IAW9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAE7C,OAAO,CAAC,UAAU,CAAS;gBAGzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACG,MAAM,EAAE,MAAM;IAqB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,UAAU,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAe/C,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAwCrF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB9F,iBAAiB;YAmBjB,OAAO;CA0BtB"}
|
|
@@ -22,6 +22,8 @@ class BlueAirAwsApi {
|
|
|
22
22
|
constructor(username, password, region, logger) {
|
|
23
23
|
this.logger = logger;
|
|
24
24
|
const config = Consts_1.BLUEAIR_CONFIG[platformUtils_1.RegionMap[region]].awsConfig;
|
|
25
|
+
this.logger.debug(`Creating BlueAir API instance with config: ${JSON.stringify(config)} and username: ${username}\
|
|
26
|
+
and region: ${region}`);
|
|
25
27
|
this.gigyaApi = new GigyaApi_1.default(username, password, region, logger);
|
|
26
28
|
this.blueairAxios = axios_1.default.create({
|
|
27
29
|
baseURL: `https://${config.restApiId}.execute-api.${config.awsRegion}.amazonaws.com/prod/c`,
|
|
@@ -35,22 +37,26 @@ class BlueAirAwsApi {
|
|
|
35
37
|
this.last_login = 0;
|
|
36
38
|
}
|
|
37
39
|
async login() {
|
|
40
|
+
this.logger.debug('Logging in...');
|
|
38
41
|
const { token, secret } = await this.gigyaApi.getGigyaSession();
|
|
39
42
|
const { jwt } = await this.gigyaApi.getGigyaJWT(token, secret);
|
|
40
43
|
const { accessToken } = await this.getAwsAccessToken(jwt);
|
|
41
44
|
this.last_login = Date.now();
|
|
42
45
|
this.blueairAxios.defaults.headers['Authorization'] = `Bearer ${accessToken}`;
|
|
43
46
|
this.blueairAxios.defaults.headers['idtoken'] = accessToken;
|
|
47
|
+
this.logger.debug('Logged in');
|
|
44
48
|
}
|
|
45
49
|
async checkTokenExpiration() {
|
|
46
50
|
if (Consts_1.LOGIN_EXPIRATION < Date.now() - this.last_login) {
|
|
51
|
+
this.logger.debug('Token expired, logging in again');
|
|
47
52
|
return await this.login();
|
|
48
53
|
}
|
|
49
54
|
return;
|
|
50
55
|
}
|
|
51
56
|
async getDevices() {
|
|
52
57
|
await this.checkTokenExpiration();
|
|
53
|
-
|
|
58
|
+
this.logger.debug('Getting devices...');
|
|
59
|
+
const response = await this.apiCall('/registered-devices', undefined, 'GET');
|
|
54
60
|
if (!response.data.devices) {
|
|
55
61
|
throw new Error('getDevices error: no devices in response');
|
|
56
62
|
}
|
|
@@ -79,10 +85,10 @@ class BlueAirAwsApi {
|
|
|
79
85
|
return acc;
|
|
80
86
|
}, {}),
|
|
81
87
|
state: device.states.reduce((acc, state) => {
|
|
82
|
-
if (state.v) {
|
|
88
|
+
if (state.v !== undefined) {
|
|
83
89
|
acc[state.n] = state.v;
|
|
84
90
|
}
|
|
85
|
-
else if (state.vb) {
|
|
91
|
+
else if (state.vb !== undefined) {
|
|
86
92
|
acc[state.n] = state.vb;
|
|
87
93
|
}
|
|
88
94
|
else {
|
|
@@ -109,11 +115,12 @@ class BlueAirAwsApi {
|
|
|
109
115
|
else {
|
|
110
116
|
throw new Error(`setDeviceStatus: unknown value type ${typeof value}`);
|
|
111
117
|
}
|
|
112
|
-
await this.apiCall(`/${uuid}/a/${state}`, body);
|
|
118
|
+
const response = await this.apiCall(`/${uuid}/a/${state}`, body);
|
|
119
|
+
this.logger.debug(`setDeviceStatus response: ${JSON.stringify(response.data)}`);
|
|
113
120
|
}
|
|
114
121
|
async getAwsAccessToken(jwt) {
|
|
115
122
|
this.logger.debug('Getting AWS access token...');
|
|
116
|
-
const response = await this.apiCall('/login', undefined, {
|
|
123
|
+
const response = await this.apiCall('/login', undefined, 'POST', {
|
|
117
124
|
'Authorization': `Bearer ${jwt}`,
|
|
118
125
|
'idtoken': jwt,
|
|
119
126
|
});
|
|
@@ -126,9 +133,14 @@ class BlueAirAwsApi {
|
|
|
126
133
|
};
|
|
127
134
|
}
|
|
128
135
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
|
-
async apiCall(url, data, headers, retries = 3) {
|
|
136
|
+
async apiCall(url, data, method = 'POST', headers, retries = 3) {
|
|
130
137
|
try {
|
|
131
|
-
const response = await this.blueairAxios.
|
|
138
|
+
const response = await this.blueairAxios.request({
|
|
139
|
+
url,
|
|
140
|
+
method,
|
|
141
|
+
data,
|
|
142
|
+
headers,
|
|
143
|
+
});
|
|
132
144
|
if (response.status !== 200) {
|
|
133
145
|
throw new Error(`API call error with status ${response.status}: ${response.statusText}, ${JSON.stringify(response.data)}`);
|
|
134
146
|
}
|
|
@@ -136,10 +148,10 @@ class BlueAirAwsApi {
|
|
|
136
148
|
}
|
|
137
149
|
catch (error) {
|
|
138
150
|
if (retries > 0) {
|
|
139
|
-
return this.apiCall(url, data, headers, retries - 1);
|
|
151
|
+
return this.apiCall(url, data, method, headers, retries - 1);
|
|
140
152
|
}
|
|
141
153
|
else {
|
|
142
|
-
throw new Error(`API call failed after ${retries} retries`);
|
|
154
|
+
throw new Error(`API call failed after ${3 - retries} retries with error: ${error}`);
|
|
143
155
|
}
|
|
144
156
|
}
|
|
145
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlueAirAwsApi.js","sourceRoot":"","sources":["../../src/api/BlueAirAwsApi.ts"],"names":[],"mappings":";;;;;;AACA,oDAA6C;AAC7C,kDAA4D;AAC5D,0DAAkC;AAClC,qCAA8G;AAsDjG,QAAA,0BAA0B,GAAG;IACxC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,UAAU;IACb,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,CAAC,EAAE,aAAa;IAChB,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAqB,aAAa;IAOhC,YACE,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACG,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAE/B,MAAM,MAAM,GAAG,uBAAc,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3D,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,eAAK,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,WAAW,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,uBAAuB;YAC3F,OAAO,EAAE;gBACP,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,YAAY;gBAC1B,iBAAiB,EAAE,mBAAmB;aACvC;YACD,OAAO,EAAE,4BAAmB;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QAET,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"BlueAirAwsApi.js","sourceRoot":"","sources":["../../src/api/BlueAirAwsApi.ts"],"names":[],"mappings":"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"}
|
package/dist/api/Consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consts.d.ts","sourceRoot":"","sources":["../../src/api/Consts.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAkBF,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA0BF,KAAK,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAChC,SAAS,EAAE,cAAc,CAAC;QAC1B,WAAW,EAAE,gBAAgB,CAAC;KAC/B,CAAC;CAAE,CAAC;AAEL,eAAO,MAAM,cAAc,WAMP,CAAC;
|
|
1
|
+
{"version":3,"file":"Consts.d.ts","sourceRoot":"","sources":["../../src/api/Consts.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAkBF,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA0BF,KAAK,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAChC,SAAS,EAAE,cAAc,CAAC;QAC1B,WAAW,EAAE,gBAAgB,CAAC;KAC/B,CAAC;CAAE,CAAC;AAEL,eAAO,MAAM,cAAc,WAMP,CAAC;AAGrB,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AACjD,eAAO,MAAM,mBAAmB,QAAW,CAAC;AAE5C,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE;YACb,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;SACH,CAAC;QACF,UAAU,EAAE;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;SACX,EAAE,CAAC;QACJ,MAAM,EAAE;YACN,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,CAAC,EAAE,MAAM,CAAC;YACX,EAAE,CAAC,EAAE,OAAO,CAAC;SACd,EAAE,CAAC;KAEL,EAAE,CAAC;CACL,CAAC"}
|
package/dist/api/Consts.js
CHANGED
|
@@ -46,5 +46,5 @@ exports.BLUEAIR_CONFIG = Object.values(platformUtils_1.RegionMap).reduce((acc, r
|
|
|
46
46
|
},
|
|
47
47
|
}), {});
|
|
48
48
|
exports.LOGIN_EXPIRATION = 3600 * 1000 * 24; // n hours in milliseconds
|
|
49
|
-
exports.BLUEAIR_API_TIMEOUT =
|
|
49
|
+
exports.BLUEAIR_API_TIMEOUT = 5 * 1000; // n seconds in milliseconds
|
|
50
50
|
//# sourceMappingURL=Consts.js.map
|
package/dist/api/Consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../src/api/Consts.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAQ7C,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,YAAY;KACxB;CACF,CAAC;AAQF,MAAM,YAAY,GAAiB;IACjC,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;CACF,CAAC;AAOW,QAAA,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;IACtF,GAAG,GAAG;IACN,CAAC,MAAM,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACvE,WAAW,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;KAChF;CACF,CAAC,EAAE,EAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../src/api/Consts.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAQ7C,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,YAAY;KACxB;CACF,CAAC;AAQF,MAAM,YAAY,GAAiB;IACjC,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,oEAAoE;KAC7E;CACF,CAAC;AAOW,QAAA,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;IACtF,GAAG,GAAG;IACN,CAAC,MAAM,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACvE,WAAW,EAAE,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;KAChF;CACF,CAAC,EAAE,EAAe,CAAC,CAAC;AAGR,QAAA,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,0BAA0B;AAC/D,QAAA,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,4BAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GigyaApi.d.ts","sourceRoot":"","sources":["../../src/api/GigyaApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpC,MAAM,CAAC,OAAO,OAAO,QAAQ;IAMzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAGxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EACjC,MAAM,EAAE,MAAM,EACG,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"GigyaApi.d.ts","sourceRoot":"","sources":["../../src/api/GigyaApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpC,MAAM,CAAC,OAAO,OAAO,QAAQ;IAMzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAGxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EACjC,MAAM,EAAE,MAAM,EACG,MAAM,EAAE,MAAM;IAkBpB,eAAe,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAqB7D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC;YAmBjE,OAAO;CAiBtB"}
|
package/dist/api/GigyaApi.js
CHANGED
|
@@ -12,6 +12,7 @@ class GigyaApi {
|
|
|
12
12
|
this.password = password;
|
|
13
13
|
this.logger = logger;
|
|
14
14
|
const config = Consts_1.BLUEAIR_CONFIG[platformUtils_1.RegionMap[region]].gigyaConfig;
|
|
15
|
+
this.logger.debug(`Creating Gigya API instance with config: ${JSON.stringify(config)} and username: ${username} and region: ${region}`);
|
|
15
16
|
this.api_key = config.apiKey;
|
|
16
17
|
this.gigyaAxios = axios_1.default.create({
|
|
17
18
|
baseURL: `https://accounts.${config.gigyaRegion}.gigya.com`,
|
|
@@ -30,13 +31,13 @@ class GigyaApi {
|
|
|
30
31
|
targetEnv: 'mobile',
|
|
31
32
|
});
|
|
32
33
|
const response = await this.apiCall('/accounts.login', params.toString());
|
|
33
|
-
if (!response.data.
|
|
34
|
-
throw new Error(
|
|
34
|
+
if (!response.data.sessionInfo) {
|
|
35
|
+
throw new Error(`Gigya session error: sessionInfo in response: ${JSON.stringify(response.data)}`);
|
|
35
36
|
}
|
|
36
37
|
this.logger.debug('Gigya session received');
|
|
37
38
|
return {
|
|
38
|
-
token: response.data.
|
|
39
|
-
secret: response.data.
|
|
39
|
+
token: response.data.sessionInfo.sessionToken,
|
|
40
|
+
secret: response.data.sessionInfo.sessionSecret,
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
43
|
async getGigyaJWT(token, secret) {
|
|
@@ -47,7 +48,7 @@ class GigyaApi {
|
|
|
47
48
|
});
|
|
48
49
|
const response = await this.apiCall('/accounts.getJWT', params.toString());
|
|
49
50
|
if (!response.data.id_token) {
|
|
50
|
-
throw new Error(
|
|
51
|
+
throw new Error(`Gigya JWT error: no id_token in response: ${JSON.stringify(response.data)}`);
|
|
51
52
|
}
|
|
52
53
|
this.logger.debug('Gigya JWT received');
|
|
53
54
|
return {
|
package/dist/api/GigyaApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GigyaApi.js","sourceRoot":"","sources":["../../src/api/GigyaApi.ts"],"names":[],"mappings":";;;;;AAAA,kDAA4D;AAE5D,qCAA0C;AAC1C,oDAA6C;AAE7C,MAAqB,QAAQ;IAK3B,YACmB,QAAgB,EAChB,QAAgB,EACjC,MAAc,EACG,MAAc;QAHd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,WAAM,GAAN,MAAM,CAAQ;QAE/B,MAAM,MAAM,GAAG,uBAAc,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"GigyaApi.js","sourceRoot":"","sources":["../../src/api/GigyaApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventEmitter from 'events';
|
|
3
|
-
import { BlueAirDeviceSensorData, BlueAirDeviceState } from '../api/BlueAirAwsApi';
|
|
3
|
+
import { BlueAirDeviceSensorData, BlueAirDeviceState, BlueAirDeviceStatus } from '../api/BlueAirAwsApi';
|
|
4
4
|
export declare class BlueAirDevice extends EventEmitter {
|
|
5
|
-
private readonly id;
|
|
6
5
|
state: BlueAirDeviceState;
|
|
7
6
|
sensorData: BlueAirDeviceSensorData;
|
|
8
|
-
|
|
7
|
+
private readonly id;
|
|
8
|
+
constructor(device: BlueAirDeviceStatus);
|
|
9
9
|
setState(state: string, value: number | boolean | string): void;
|
|
10
10
|
private updateState;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlueAirDevice.d.ts","sourceRoot":"","sources":["../../src/device/BlueAirDevice.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"BlueAirDevice.d.ts","sourceRoot":"","sources":["../../src/device/BlueAirDevice.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAExG,qBAAa,aAAc,SAAQ,YAAY;IAEtC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,UAAU,EAAE,uBAAuB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;gBAG1B,MAAM,EAAE,mBAAmB;IAQtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAS/D,OAAO,CAAC,WAAW;CAIpB"}
|
|
@@ -6,14 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.BlueAirDevice = void 0;
|
|
7
7
|
const events_1 = __importDefault(require("events"));
|
|
8
8
|
class BlueAirDevice extends events_1.default {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(device) {
|
|
10
10
|
super();
|
|
11
|
-
this.id = id;
|
|
12
|
-
this.state =
|
|
13
|
-
this.sensorData =
|
|
14
|
-
this.on('state', (state) => {
|
|
15
|
-
this.updateState(state);
|
|
16
|
-
});
|
|
11
|
+
this.id = device.id;
|
|
12
|
+
this.state = device.state;
|
|
13
|
+
this.sensorData = device.sensorData;
|
|
17
14
|
}
|
|
18
15
|
setState(state, value) {
|
|
19
16
|
if (state in this.state === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlueAirDevice.js","sourceRoot":"","sources":["../../src/device/BlueAirDevice.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAGlC,MAAa,aAAc,SAAQ,gBAAY;
|
|
1
|
+
{"version":3,"file":"BlueAirDevice.js","sourceRoot":"","sources":["../../src/device/BlueAirDevice.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAGlC,MAAa,aAAc,SAAQ,gBAAY;IAO7C,YACE,MAA2B;QAE3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,QAAQ,CAAC,KAAa,EAAE,KAAgC;QAC7D,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;IACrD,CAAC;IAEO,WAAW,CAAC,KAA0B;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACrC,CAAC;CACF;AA7BD,sCA6BC"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,qBAAa,eAAgB,SAAQ,YAAa,YAAW,qBAAqB;aAW9D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAZ1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAGzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,qBAAa,eAAgB,SAAQ,YAAa,YAAW,qBAAqB;aAW9D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAZ1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAGzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAsB1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAQzC,sBAAsB;IAqB5B,SAAS,CAAC,MAAM,EAAE,mBAAmB;CA+BtC"}
|
package/dist/platform.js
CHANGED
|
@@ -23,21 +23,15 @@ class BlueAirPlatform extends events_1.default {
|
|
|
23
23
|
this.accessories = [];
|
|
24
24
|
this.platformConfig = (0, lodash_1.defaultsDeep)(config, platformUtils_1.defaultConfig);
|
|
25
25
|
if (!this.platformConfig.username || !this.platformConfig.password || !this.platformConfig.accountUuid) {
|
|
26
|
-
this.log.error(
|
|
27
|
-
config.json file
|
|
26
|
+
this.log.error(`Missing required configuration options! Please do the device discovery in the configuration UI and/or check your\
|
|
27
|
+
config.json file`);
|
|
28
28
|
}
|
|
29
29
|
this.blueAirApi = new BlueAirAwsApi_1.default(this.platformConfig.username, this.platformConfig.password, this.platformConfig.region, log);
|
|
30
30
|
this.api.on('didFinishLaunching', async () => {
|
|
31
31
|
await this.getInitialDeviceStates();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
this.
|
|
35
|
-
try {
|
|
36
|
-
await this.blueAirApi.setDeviceStatus(id, state, value);
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
this.log.error(`[${id}] Error setting state: ${state} = ${value}`, error);
|
|
40
|
-
}
|
|
32
|
+
// setInterval(async () => {
|
|
33
|
+
// await this.getInitialDeviceStates();
|
|
34
|
+
// }, this.platformConfig.pollingInterval * 1000);
|
|
41
35
|
});
|
|
42
36
|
}
|
|
43
37
|
configureAccessory(accessory) {
|
|
@@ -57,6 +51,7 @@ class BlueAirPlatform extends events_1.default {
|
|
|
57
51
|
for (const uuid of uuids) {
|
|
58
52
|
this.log.warn(`[${uuid}] Device not found in AWS API response!`);
|
|
59
53
|
}
|
|
54
|
+
this.log.info('All configured devices have been added!');
|
|
60
55
|
}
|
|
61
56
|
catch (error) {
|
|
62
57
|
this.log.error('Error getting initial device states:', error);
|
|
@@ -70,7 +65,16 @@ class BlueAirPlatform extends events_1.default {
|
|
|
70
65
|
this.log.error(`[${device.id}] Device configuration not found!`);
|
|
71
66
|
return;
|
|
72
67
|
}
|
|
73
|
-
const blueAirDevice = new BlueAirDevice_1.BlueAirDevice(device
|
|
68
|
+
const blueAirDevice = new BlueAirDevice_1.BlueAirDevice(device);
|
|
69
|
+
blueAirDevice.on('setState', async ({ id, state, value }) => {
|
|
70
|
+
this.log.info(`[${id}] Setting state: ${state} = ${value}`);
|
|
71
|
+
try {
|
|
72
|
+
await this.blueAirApi.setDeviceStatus(id, state, value);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
this.log.error(`[${id}] Error setting state: ${state} = ${value}`, error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
74
78
|
if (existingAccessory) {
|
|
75
79
|
this.log.info(`[${deviceConfig.name}] Restoring existing accessory from cache: ${existingAccessory.displayName}`);
|
|
76
80
|
new AirPurifierAccessory_1.AirPurifierAccessory(this, existingAccessory, blueAirDevice, deviceConfig);
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAwD;AACxD,mDAAwD;AACxD,mCAAsC;AACtC,wEAAyE;AACzE,0DAAuD;AACvD,2EAAwE;AACxE,oDAAkC;AAElC,MAAa,eAAgB,SAAQ,gBAAY;IAU/C,YACkB,GAAW,EACX,MAAsB,EACtB,GAAQ;QAExB,KAAK,EAAE,CAAC;QAJQ,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAZV,YAAO,GAAmB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/C,mBAAc,GAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAEpF,oDAAoD;QACpC,gBAAW,GAAwB,EAAE,CAAC;QAWpD,IAAI,CAAC,cAAc,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,6BAAa,CAAC,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACvG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;uBACE,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/platformUtils.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export type Config = {
|
|
2
|
-
verboseLogging: boolean;
|
|
3
|
-
uiDebug: boolean;
|
|
4
2
|
username: string;
|
|
5
3
|
password: string;
|
|
6
|
-
accountUuid: string;
|
|
7
4
|
region: Region;
|
|
5
|
+
accountUuid: string;
|
|
6
|
+
verboseLogging: boolean;
|
|
7
|
+
uiDebug: boolean;
|
|
8
|
+
pollingInterval: number;
|
|
8
9
|
devices: DeviceConfig[];
|
|
9
10
|
};
|
|
10
11
|
export type DeviceConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformUtils.d.ts","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,
|
|
1
|
+
{"version":3,"file":"platformUtils.d.ts","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,MAAM;IAChB,EAAE,gCAAgC;IAClC,EAAE,cAAc;IAChB,EAAE,UAAU;IACZ,EAAE,WAAW;IACb,EAAE,QAAQ;CACX;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAS3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAUjC,CAAC"}
|
package/dist/platformUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformUtils.js","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"platformUtils.js","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":";;;AAuBA,IAAY,MAMX;AAND,WAAY,MAAM;IAChB,4CAAkC,CAAA;IAClC,0BAAgB,CAAA;IAChB,sBAAY,CAAA;IACZ,uBAAa,CAAA;IACb,oBAAU,CAAA;AACZ,CAAC,EANW,MAAM,sBAAN,MAAM,QAMjB;AAEY,QAAA,SAAS,GAAG;IACvB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI;IACjB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI;IACjB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI;IACjB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI;IACjB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI;CAClB,CAAC;AAEW,QAAA,aAAa,GAAW;IACnC,OAAO,EAAE,KAAK;IACd,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,MAAM,CAAC,EAAE;IACjB,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEW,QAAA,mBAAmB,GAAiB;IAC/C,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,KAAK;IACV,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;CACjB,CAAC"}
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
<option value="China">China</option>
|
|
34
34
|
<option value="Russia">Russia</option>
|
|
35
35
|
<option value="USA">USA</option>
|
|
36
|
+
</select>
|
|
36
37
|
</div>
|
|
37
38
|
<button class="btn btn-primary btn-login" type="submit" id="discoverBtn" style="border: 0;">
|
|
38
39
|
Discover Devices on account
|
|
@@ -42,9 +43,9 @@
|
|
|
42
43
|
<table class="table table-sm" id="discoverTable">
|
|
43
44
|
<thead>
|
|
44
45
|
<tr>
|
|
46
|
+
<th scope="col">Name</th>
|
|
45
47
|
<th scope="col">Id</th>
|
|
46
48
|
<th scope="col">Mac</th>
|
|
47
|
-
<th scope="col">Account UUID</th>
|
|
48
49
|
<th scope="col">Add / Update</th>
|
|
49
50
|
</tr>
|
|
50
51
|
</thead>
|
|
@@ -180,7 +181,7 @@
|
|
|
180
181
|
|
|
181
182
|
console.info(`Request login...`);
|
|
182
183
|
try {
|
|
183
|
-
const devices = await homebridge.request('/
|
|
184
|
+
const devices = await homebridge.request('/discover', { username, password, region });
|
|
184
185
|
debugLog(`Discovered devices:\n${JSON.stringify(devices, null, 2)}`);
|
|
185
186
|
const table = document.getElementById('discoverTable').getElementsByTagName('tbody')[0];
|
|
186
187
|
table.innerHTML = '';
|
|
@@ -206,11 +207,11 @@
|
|
|
206
207
|
const state = initialStates.find((s) => s.id === device.uuid);
|
|
207
208
|
const tr = table.insertRow();
|
|
208
209
|
const td = tr.insertCell();
|
|
209
|
-
td.appendChild(document.createTextNode(
|
|
210
|
+
td.appendChild(document.createTextNode(state.name));
|
|
210
211
|
td.setAttribute('scope', 'row');
|
|
211
212
|
|
|
213
|
+
tr.insertCell().appendChild(document.createTextNode(device.uuid));
|
|
212
214
|
tr.insertCell().appendChild(document.createTextNode(device.mac));
|
|
213
|
-
tr.insertCell().appendChild(document.createTextNode(device.name));
|
|
214
215
|
|
|
215
216
|
const addCell = tr.insertCell();
|
|
216
217
|
if (currentConfig.devices.find((d) => d.id === device.uuid)) {
|
package/homebridge-ui/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { HomebridgePluginUiServer, RequestError } = require('@homebridge/plugin-ui-utils');
|
|
2
2
|
const { defaultConfig, defaultDeviceConfig } = require('../dist/platformUtils.js');
|
|
3
|
-
const
|
|
3
|
+
const BlueAirAwsApi = require('../dist/api/BlueAirAwsApi.js').default;
|
|
4
4
|
|
|
5
5
|
var _ = require('lodash');
|
|
6
6
|
|
|
@@ -96,6 +96,7 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
96
96
|
return devices;
|
|
97
97
|
} catch (e) {
|
|
98
98
|
const msg = e instanceof Error ? e.stack : e;
|
|
99
|
+
this.logger.error(`Device discovery failed:\n${msg}`);
|
|
99
100
|
throw new RequestError(`Device discovery failed:\n${msg}`);
|
|
100
101
|
}
|
|
101
102
|
});
|
|
@@ -105,6 +106,7 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
105
106
|
return await this.api.getDeviceStatus(accountUuid, uuids);
|
|
106
107
|
} catch (e) {
|
|
107
108
|
const msg = e instanceof Error ? e.stack : e;
|
|
109
|
+
this.logger.error(`Failed to get initial device states:\n${msg}`);
|
|
108
110
|
throw new RequestError(`Failed to get initial device states:\n${msg}`);
|
|
109
111
|
}
|
|
110
112
|
});
|
package/package.json
CHANGED