@homebridge-plugins/homebridge-sharkiq 1.3.2
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/CHANGELOG.md +12 -0
- package/LICENSE +176 -0
- package/README.md +92 -0
- package/config.schema.json +114 -0
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +131 -0
- package/dist/config.js.map +1 -0
- package/dist/homebridge-ui/public/index.html +201 -0
- package/dist/homebridge-ui/server.d.ts +2 -0
- package/dist/homebridge-ui/server.d.ts.map +1 -0
- package/dist/homebridge-ui/server.js +47 -0
- package/dist/homebridge-ui/server.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/login.d.ts +16 -0
- package/dist/login.d.ts.map +1 -0
- package/dist/login.js +242 -0
- package/dist/login.js.map +1 -0
- package/dist/platform.d.ts +16 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +118 -0
- package/dist/platform.js.map +1 -0
- package/dist/platformAccessory.d.ts +29 -0
- package/dist/platformAccessory.d.ts.map +1 -0
- package/dist/platformAccessory.js +285 -0
- package/dist/platformAccessory.js.map +1 -0
- package/dist/settings.d.ts +3 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +3 -0
- package/dist/settings.js.map +1 -0
- package/dist/sharkiq-js/ayla_api.d.ts +39 -0
- package/dist/sharkiq-js/ayla_api.d.ts.map +1 -0
- package/dist/sharkiq-js/ayla_api.js +289 -0
- package/dist/sharkiq-js/ayla_api.js.map +1 -0
- package/dist/sharkiq-js/const.d.ts +22 -0
- package/dist/sharkiq-js/const.d.ts.map +1 -0
- package/dist/sharkiq-js/const.js +23 -0
- package/dist/sharkiq-js/const.js.map +1 -0
- package/dist/sharkiq-js/properties.d.ts +52 -0
- package/dist/sharkiq-js/properties.d.ts.map +1 -0
- package/dist/sharkiq-js/properties.js +56 -0
- package/dist/sharkiq-js/properties.js.map +1 -0
- package/dist/sharkiq-js/sharkiq.d.ts +59 -0
- package/dist/sharkiq-js/sharkiq.d.ts.map +1 -0
- package/dist/sharkiq-js/sharkiq.js +359 -0
- package/dist/sharkiq-js/sharkiq.js.map +1 -0
- package/dist/type.d.ts +12 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +2 -0
- package/dist/type.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +35 -0
- package/dist/utils.js.map +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/dmt/dmt-component-data.js +1 -0
- package/docs/assets/dmt/dmt-components.css +20 -0
- package/docs/assets/dmt/dmt-components.js +67 -0
- package/docs/assets/dmt/dmt-search.cmp +0 -0
- package/docs/assets/dmt/dmt-theme.css +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +57 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/style.css +1611 -0
- package/docs/functions/default.html +2 -0
- package/docs/index.html +50 -0
- package/docs/modules.html +2 -0
- package/eslint.config.js +49 -0
- package/package.json +87 -0
- package/typedoc.json +21 -0
package/dist/platform.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { Login } from './login.js';
|
|
3
|
+
import { SharkIQAccessory } from './platformAccessory.js';
|
|
4
|
+
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
5
|
+
import { get_ayla_api } from './sharkiq-js/ayla_api.js';
|
|
6
|
+
import { global_vars } from './sharkiq-js/const.js';
|
|
7
|
+
// SharkIQPlatform Main Class
|
|
8
|
+
export class SharkIQPlatform {
|
|
9
|
+
log;
|
|
10
|
+
config;
|
|
11
|
+
api;
|
|
12
|
+
Service;
|
|
13
|
+
Characteristic;
|
|
14
|
+
// this is used to track restored cached accessories
|
|
15
|
+
accessories = [];
|
|
16
|
+
// Device vacuums object array
|
|
17
|
+
vacuumDevices = [];
|
|
18
|
+
constructor(log, config, api) {
|
|
19
|
+
this.log = log;
|
|
20
|
+
this.config = config;
|
|
21
|
+
this.api = api;
|
|
22
|
+
this.Service = this.api.hap.Service;
|
|
23
|
+
this.Characteristic = this.api.hap.Characteristic;
|
|
24
|
+
this.log.debug('Finished initializing platform:', this.config.name);
|
|
25
|
+
// Start plugin and attempt to login
|
|
26
|
+
this.api.on('didFinishLaunching', () => {
|
|
27
|
+
const serialNumbers = config.vacuums;
|
|
28
|
+
if (!Array.isArray(serialNumbers) || serialNumbers.length === 0) {
|
|
29
|
+
log.error('List of your vacuum DSNs you want to be added must be present in the config');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.login().then((devices) => {
|
|
33
|
+
for (let i = 0; i < devices.length; i++) {
|
|
34
|
+
if (serialNumbers.includes(devices[i]._dsn)) {
|
|
35
|
+
this.vacuumDevices.push(devices[i]);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (this.vacuumDevices.length === 0) {
|
|
39
|
+
log.warn('None of the DSNs provided matched the vacuum(s) on your account.');
|
|
40
|
+
}
|
|
41
|
+
this.discoverDevices();
|
|
42
|
+
}).catch((error) => {
|
|
43
|
+
log.error('Error with login.');
|
|
44
|
+
log.error(error);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Attempt to login and fetch devices.
|
|
49
|
+
login = async () => {
|
|
50
|
+
const europe = this.config.europe || false;
|
|
51
|
+
const storagePath = this.api.user.storagePath();
|
|
52
|
+
const auth_file = join(storagePath, global_vars.FILE);
|
|
53
|
+
const oauth_file = join(storagePath, global_vars.OAUTH.FILE);
|
|
54
|
+
const oAuthCode = this.config.oAuthCode || '';
|
|
55
|
+
const email = this.config.email || '';
|
|
56
|
+
const password = this.config.password || '';
|
|
57
|
+
if (!email || typeof email !== 'string' || !password || typeof password !== 'string') {
|
|
58
|
+
this.log.warn('Email and password not present in the config. Using OAuth code login method instead.');
|
|
59
|
+
this.log.info('Please provide email and password in the config if you want to use email/password login method.');
|
|
60
|
+
}
|
|
61
|
+
else if (email !== '' && password === '') {
|
|
62
|
+
return Promise.reject(new Error('Password must be present in the config if email is provided.'));
|
|
63
|
+
}
|
|
64
|
+
else if (email === '' && password !== '') {
|
|
65
|
+
return Promise.reject(new Error('Email must be present in the config if password is provided.'));
|
|
66
|
+
}
|
|
67
|
+
const login = new Login(this.log, auth_file, oauth_file, email, password, oAuthCode);
|
|
68
|
+
try {
|
|
69
|
+
await login.checkLogin();
|
|
70
|
+
const ayla_api = get_ayla_api(auth_file, this.log, europe);
|
|
71
|
+
await ayla_api.sign_in();
|
|
72
|
+
const devices = await ayla_api.get_devices();
|
|
73
|
+
return devices;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return Promise.reject(error);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
// Restore accessory cache.
|
|
80
|
+
configureAccessory(accessory) {
|
|
81
|
+
this.log.info('Loading accessory from cache:', accessory.displayName);
|
|
82
|
+
this.accessories.push(accessory);
|
|
83
|
+
}
|
|
84
|
+
// Add vacuums to Homebridge.
|
|
85
|
+
discoverDevices() {
|
|
86
|
+
const devices = [];
|
|
87
|
+
const unusedDeviceAccessories = this.accessories;
|
|
88
|
+
const invertDockedStatus = this.config.invertDockedStatus || false;
|
|
89
|
+
const dockedUpdateInterval = this.config.dockedUpdateInterval || 5000;
|
|
90
|
+
this.vacuumDevices.forEach((vacuumDevice) => {
|
|
91
|
+
const uuid = this.api.hap.uuid.generate(vacuumDevice._dsn.toString());
|
|
92
|
+
let accessory = unusedDeviceAccessories.find(accessory => accessory.UUID === uuid);
|
|
93
|
+
if (accessory) {
|
|
94
|
+
unusedDeviceAccessories.splice(unusedDeviceAccessories.indexOf(accessory), 1);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
accessory = new this.api.platformAccessory(vacuumDevice._name.toString(), uuid);
|
|
98
|
+
devices.push(accessory);
|
|
99
|
+
}
|
|
100
|
+
let accessoryInformationService = accessory.getService(this.Service.AccessoryInformation);
|
|
101
|
+
if (!accessoryInformationService) {
|
|
102
|
+
accessoryInformationService = accessory.addService(this.Service.AccessoryInformation);
|
|
103
|
+
}
|
|
104
|
+
accessoryInformationService
|
|
105
|
+
.setCharacteristic(this.Characteristic.Manufacturer, 'Shark')
|
|
106
|
+
.setCharacteristic(this.Characteristic.Model, vacuumDevice._vac_model_number || 'Unknown')
|
|
107
|
+
.setCharacteristic(this.Characteristic.SerialNumber, vacuumDevice._dsn);
|
|
108
|
+
new SharkIQAccessory(this, accessory, vacuumDevice, this.api.hap.uuid, this.log, invertDockedStatus, dockedUpdateInterval);
|
|
109
|
+
});
|
|
110
|
+
this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, devices);
|
|
111
|
+
unusedDeviceAccessories.forEach((unusedDeviceAccessory) => {
|
|
112
|
+
this.log.info(`Removing unused accessory with name ${unusedDeviceAccessory.displayName}`);
|
|
113
|
+
this.accessories.splice(this.accessories.indexOf(unusedDeviceAccessory), 1);
|
|
114
|
+
});
|
|
115
|
+
this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, unusedDeviceAccessories);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CharacteristicValue, Logger, PlatformAccessory, uuid } from 'homebridge';
|
|
2
|
+
import type { SharkIQPlatform } from './platform.js';
|
|
3
|
+
import type { SharkIqVacuum } from './sharkiq-js/sharkiq.js';
|
|
4
|
+
export declare class SharkIQAccessory {
|
|
5
|
+
private readonly platform;
|
|
6
|
+
private readonly accessory;
|
|
7
|
+
private device;
|
|
8
|
+
private readonly log;
|
|
9
|
+
private readonly invertDockedStatus;
|
|
10
|
+
private readonly dockedUpdateInterval;
|
|
11
|
+
private dockedDelay;
|
|
12
|
+
private service;
|
|
13
|
+
private dockedStatusService;
|
|
14
|
+
private vacuumPausedService;
|
|
15
|
+
constructor(platform: SharkIQPlatform, accessory: PlatformAccessory, device: SharkIqVacuum, UUIDGen: typeof uuid, log: Logger, invertDockedStatus: boolean, dockedUpdateInterval: number, dockedDelay?: number);
|
|
16
|
+
retrieveVacuumStateInterval(): Promise<void>;
|
|
17
|
+
retrieveDockedStatus(): Promise<boolean>;
|
|
18
|
+
retrieveOperatingMode(): Promise<void>;
|
|
19
|
+
retrievePowerMode(): Promise<void>;
|
|
20
|
+
retrieveVacuumStates(): Promise<void>;
|
|
21
|
+
updateStates(): void;
|
|
22
|
+
getPaused(): Promise<boolean>;
|
|
23
|
+
setPaused(value: CharacteristicValue): Promise<void>;
|
|
24
|
+
getVacuumActive(): Promise<boolean>;
|
|
25
|
+
setVacuumActive(value: CharacteristicValue): Promise<void>;
|
|
26
|
+
getFanSpeed(): Promise<number>;
|
|
27
|
+
setFanSpeed(value: CharacteristicValue): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=platformAccessory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAW,IAAI,EAAE,MAAM,YAAY,CAAA;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAI5D,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,WAAW;IAZrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,mBAAmB,CAAS;gBAGjB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,EACrC,MAAM,EAAE,aAAa,EAC7B,OAAO,EAAE,OAAO,IAAI,EACH,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,OAAO,EAC3B,oBAAoB,EAAE,MAAM,EACrC,WAAW,GAAE,MAAU;IAuD3B,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBxC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC3C,YAAY,IAAI,IAAI;IAgBd,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7B,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpD,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYnC,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1D,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB9B,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsC7D"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { OperatingModes, PowerModes, Properties } from './sharkiq-js/sharkiq.js';
|
|
2
|
+
export class SharkIQAccessory {
|
|
3
|
+
platform;
|
|
4
|
+
accessory;
|
|
5
|
+
device;
|
|
6
|
+
log;
|
|
7
|
+
invertDockedStatus;
|
|
8
|
+
dockedUpdateInterval;
|
|
9
|
+
dockedDelay;
|
|
10
|
+
service;
|
|
11
|
+
dockedStatusService;
|
|
12
|
+
vacuumPausedService;
|
|
13
|
+
constructor(platform, accessory, device, UUIDGen, log, invertDockedStatus, dockedUpdateInterval, dockedDelay = 0) {
|
|
14
|
+
this.platform = platform;
|
|
15
|
+
this.accessory = accessory;
|
|
16
|
+
this.device = device;
|
|
17
|
+
this.log = log;
|
|
18
|
+
this.invertDockedStatus = invertDockedStatus;
|
|
19
|
+
this.dockedUpdateInterval = dockedUpdateInterval;
|
|
20
|
+
this.dockedDelay = dockedDelay;
|
|
21
|
+
// Get device serial number
|
|
22
|
+
const serial_number = device._dsn;
|
|
23
|
+
const vacuumUUID = UUIDGen.generate(`${serial_number}-vacuum`);
|
|
24
|
+
this.service = this.accessory.getService('Vacuum')
|
|
25
|
+
|| this.accessory.addService(this.platform.Service.Fanv2, 'Vacuum', vacuumUUID);
|
|
26
|
+
// Vacuum Name - Default is device name
|
|
27
|
+
this.service.setCharacteristic(this.platform.Characteristic.Name, device._name.toString());
|
|
28
|
+
// // Vacuum Active
|
|
29
|
+
this.service.getCharacteristic(this.platform.Characteristic.Active)
|
|
30
|
+
.onSet(this.setVacuumActive.bind(this))
|
|
31
|
+
.onGet(this.getVacuumActive.bind(this));
|
|
32
|
+
// Vacuum Power (Eco, Normal, Max)
|
|
33
|
+
this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed)
|
|
34
|
+
.setProps({
|
|
35
|
+
minStep: 30,
|
|
36
|
+
minValue: 0,
|
|
37
|
+
maxValue: 90,
|
|
38
|
+
})
|
|
39
|
+
.onSet(this.setFanSpeed.bind(this))
|
|
40
|
+
.onGet(this.getFanSpeed.bind(this));
|
|
41
|
+
// Vacuum Docked Status
|
|
42
|
+
this.dockedStatusService = this.accessory.getService('Vacuum Docked')
|
|
43
|
+
|| this.accessory.addService(this.platform.Service.ContactSensor, 'Vacuum Docked', 'Docked');
|
|
44
|
+
this.dockedStatusService.setCharacteristic(this.platform.Characteristic.Name, `${device._name.toString()} Docked`);
|
|
45
|
+
this.dockedStatusService.getCharacteristic(this.platform.Characteristic.ContactSensorState)
|
|
46
|
+
.onGet(this.retrieveDockedStatus.bind(this));
|
|
47
|
+
// Vacuum Paused Status
|
|
48
|
+
this.vacuumPausedService = this.accessory.getService('Vacuum Paused')
|
|
49
|
+
|| this.accessory.addService(this.platform.Service.Switch, 'Vacuum Paused', 'Paused');
|
|
50
|
+
this.vacuumPausedService.setCharacteristic(this.platform.Characteristic.Name, `${device._name.toString()} Paused`);
|
|
51
|
+
// Vacuum Paused getting and setting state
|
|
52
|
+
this.vacuumPausedService.getCharacteristic(this.platform.Characteristic.On)
|
|
53
|
+
.onSet(this.setPaused.bind(this))
|
|
54
|
+
.onGet(this.getPaused.bind(this));
|
|
55
|
+
this.updateStates();
|
|
56
|
+
// Retrieve vacuum states
|
|
57
|
+
this.retrieveVacuumStates().then(() => {
|
|
58
|
+
this.retrieveVacuumStateInterval();
|
|
59
|
+
}).catch(() => {
|
|
60
|
+
this.log.debug('Promise Rejected with first interval update.');
|
|
61
|
+
this.retrieveVacuumStateInterval();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Retrieve vacuum states interval function
|
|
65
|
+
async retrieveVacuumStateInterval() {
|
|
66
|
+
setInterval(async () => {
|
|
67
|
+
await this.retrieveVacuumStates()
|
|
68
|
+
.catch(() => {
|
|
69
|
+
this.log.debug('Promise Rejected with interval update.');
|
|
70
|
+
});
|
|
71
|
+
}, this.dockedUpdateInterval + this.dockedDelay);
|
|
72
|
+
}
|
|
73
|
+
// Retrieve docked status
|
|
74
|
+
async retrieveDockedStatus() {
|
|
75
|
+
this.log.debug('Triggering GET Docked Status');
|
|
76
|
+
await this.device.update(Properties.DOCKED_STATUS);
|
|
77
|
+
const docked_status = this.device.docked_status();
|
|
78
|
+
let vacuumDocked = false;
|
|
79
|
+
if (!this.invertDockedStatus) {
|
|
80
|
+
vacuumDocked = docked_status === 1;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
vacuumDocked = docked_status !== 1;
|
|
84
|
+
}
|
|
85
|
+
return vacuumDocked;
|
|
86
|
+
}
|
|
87
|
+
// Retrieve operating mode
|
|
88
|
+
async retrieveOperatingMode() {
|
|
89
|
+
this.log.debug('Triggering GET Operating Mode');
|
|
90
|
+
await this.device.update(Properties.OPERATING_MODE)
|
|
91
|
+
.then((delay) => {
|
|
92
|
+
this.dockedDelay = delay;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// Retrieve power mode
|
|
96
|
+
async retrievePowerMode() {
|
|
97
|
+
this.log.debug('Triggering GET Power Mode');
|
|
98
|
+
await this.device.update(Properties.POWER_MODE)
|
|
99
|
+
.then((delay) => {
|
|
100
|
+
this.dockedDelay = delay;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// Monitor vacuum state function
|
|
104
|
+
async retrieveVacuumStates() {
|
|
105
|
+
this.log.debug('Triggering GET Vacuum States');
|
|
106
|
+
let vacuumDocked = false;
|
|
107
|
+
await this.device.update([Properties.DOCKED_STATUS, Properties.OPERATING_MODE, Properties.POWER_MODE])
|
|
108
|
+
.then((delay) => {
|
|
109
|
+
this.dockedDelay = delay;
|
|
110
|
+
});
|
|
111
|
+
const docked_status = this.device.docked_status();
|
|
112
|
+
if (!this.invertDockedStatus) {
|
|
113
|
+
vacuumDocked = docked_status === 1;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
vacuumDocked = docked_status !== 1;
|
|
117
|
+
}
|
|
118
|
+
const power_mode = this.device.power_mode();
|
|
119
|
+
const mode = this.device.operating_mode();
|
|
120
|
+
const vacuumActive = mode === OperatingModes.START || mode === OperatingModes.STOP;
|
|
121
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, vacuumActive);
|
|
122
|
+
if (vacuumActive) {
|
|
123
|
+
if (power_mode === PowerModes.MAX) {
|
|
124
|
+
this.service.updateCharacteristic(this.platform.Characteristic.RotationSpeed, 90);
|
|
125
|
+
}
|
|
126
|
+
else if (power_mode === PowerModes.ECO) {
|
|
127
|
+
this.service.updateCharacteristic(this.platform.Characteristic.RotationSpeed, 30);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
this.service.updateCharacteristic(this.platform.Characteristic.RotationSpeed, 60);
|
|
131
|
+
}
|
|
132
|
+
if (mode === OperatingModes.STOP) {
|
|
133
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, true);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.service.updateCharacteristic(this.platform.Characteristic.RotationSpeed, 0);
|
|
141
|
+
}
|
|
142
|
+
this.dockedStatusService.updateCharacteristic(this.platform.Characteristic.ContactSensorState, vacuumDocked);
|
|
143
|
+
this.log.debug('Vacuum Docked:', vacuumDocked, 'Vacuum Active:', vacuumActive, 'Power Mode:', power_mode);
|
|
144
|
+
}
|
|
145
|
+
// Update paused and active state on switch
|
|
146
|
+
updateStates() {
|
|
147
|
+
const mode = this.device.operating_mode();
|
|
148
|
+
if (mode === OperatingModes.START || mode === OperatingModes.STOP) {
|
|
149
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, this.platform.Characteristic.Active.ACTIVE);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, this.platform.Characteristic.Active.INACTIVE);
|
|
153
|
+
}
|
|
154
|
+
if (mode === OperatingModes.STOP) {
|
|
155
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, true);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Get paused state
|
|
162
|
+
async getPaused() {
|
|
163
|
+
this.log.debug('Triggering GET Paused');
|
|
164
|
+
await this.retrieveOperatingMode();
|
|
165
|
+
const mode = this.device.operating_mode();
|
|
166
|
+
this.log.debug('State:', mode);
|
|
167
|
+
if (mode === OperatingModes.STOP) {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Set paused state
|
|
175
|
+
async setPaused(value) {
|
|
176
|
+
this.log.debug('Triggering SET Paused. Paused:', value);
|
|
177
|
+
const mode = this.device.operating_mode();
|
|
178
|
+
if (mode === OperatingModes.START || mode === OperatingModes.STOP) {
|
|
179
|
+
if (value) {
|
|
180
|
+
await this.device.set_operating_mode(OperatingModes.STOP)
|
|
181
|
+
.catch(() => {
|
|
182
|
+
this.log.debug('Promise Rejected with setting operating mode.');
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
await this.device.set_operating_mode(OperatingModes.START)
|
|
187
|
+
.catch(() => {
|
|
188
|
+
this.log.debug('Promise Rejected with setting operating mode.');
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
setTimeout(() => {
|
|
194
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
195
|
+
}, 100);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Check if the vacuum is active for UI
|
|
199
|
+
async getVacuumActive() {
|
|
200
|
+
this.log.debug('Triggering GET Vacuum Active');
|
|
201
|
+
const mode = this.device.operating_mode();
|
|
202
|
+
if (mode === OperatingModes.START || mode === OperatingModes.STOP) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Set the vacuum state by UI
|
|
210
|
+
async setVacuumActive(value) {
|
|
211
|
+
this.log.debug('Triggering SET Vacuum Active');
|
|
212
|
+
if (!value) {
|
|
213
|
+
const mode = this.device.operating_mode();
|
|
214
|
+
if (mode === OperatingModes.START || mode === OperatingModes.STOP) {
|
|
215
|
+
await this.setFanSpeed(0)
|
|
216
|
+
.catch(() => {
|
|
217
|
+
this.log.debug('Promise Rejected with setting fan speed.');
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Get vacuum power for UI
|
|
223
|
+
async getFanSpeed() {
|
|
224
|
+
this.log.debug('Triggering GET Fan Speed');
|
|
225
|
+
await this.retrievePowerMode();
|
|
226
|
+
const mode = this.device.operating_mode();
|
|
227
|
+
const vacuumActive = mode === OperatingModes.START || mode === OperatingModes.STOP;
|
|
228
|
+
if (vacuumActive) {
|
|
229
|
+
const power_mode = this.device.power_mode();
|
|
230
|
+
if (power_mode === PowerModes.MAX) {
|
|
231
|
+
return 90;
|
|
232
|
+
}
|
|
233
|
+
else if (power_mode === PowerModes.ECO) {
|
|
234
|
+
return 30;
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
return 60;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
return 0;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Set vacuum power from UI (and start/stop vacuum if needed)
|
|
245
|
+
async setFanSpeed(value) {
|
|
246
|
+
this.log.debug('Triggering SET Fan Speed. Value:', value);
|
|
247
|
+
let power_mode = PowerModes.NORMAL;
|
|
248
|
+
if (value === 30) {
|
|
249
|
+
power_mode = PowerModes.ECO;
|
|
250
|
+
}
|
|
251
|
+
else if (value === 90) {
|
|
252
|
+
power_mode = PowerModes.MAX;
|
|
253
|
+
}
|
|
254
|
+
else if (value === 0) {
|
|
255
|
+
await this.device.cancel_clean()
|
|
256
|
+
.catch(() => {
|
|
257
|
+
this.log.debug('Promise Rejected with cancel cleaning update.');
|
|
258
|
+
});
|
|
259
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, this.platform.Characteristic.Active.INACTIVE);
|
|
260
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const isPaused = await this.getPaused();
|
|
264
|
+
if (isPaused) {
|
|
265
|
+
await this.device.set_operating_mode(OperatingModes.START)
|
|
266
|
+
.catch(() => {
|
|
267
|
+
this.log.debug('Promise Rejected with setting operating mode.');
|
|
268
|
+
});
|
|
269
|
+
this.vacuumPausedService.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
270
|
+
}
|
|
271
|
+
await this.device.set_property_value(Properties.POWER_MODE, power_mode)
|
|
272
|
+
.catch(() => {
|
|
273
|
+
this.log.debug('Promise Rejected with powermode update.');
|
|
274
|
+
});
|
|
275
|
+
const mode = this.device.operating_mode();
|
|
276
|
+
if (mode !== OperatingModes.START && mode !== OperatingModes.STOP) {
|
|
277
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, this.platform.Characteristic.Active.ACTIVE);
|
|
278
|
+
await this.device.clean_rooms([])
|
|
279
|
+
.catch(() => {
|
|
280
|
+
this.log.debug('Promise Rejected with start cleaning update.');
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=platformAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,WAAW,uBAAuB,CAAA"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Logger } from 'homebridge';
|
|
2
|
+
import type { AuthData } from '../type.js';
|
|
3
|
+
import { SharkIqVacuum } from './sharkiq.js';
|
|
4
|
+
interface APIResponse {
|
|
5
|
+
status: number;
|
|
6
|
+
response: string;
|
|
7
|
+
ok: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function get_ayla_api(auth_file_path: string, log: Logger, europe?: boolean): AylaApi;
|
|
10
|
+
declare class AylaApi {
|
|
11
|
+
_auth_file_path: string;
|
|
12
|
+
_access_token: string | null;
|
|
13
|
+
_refresh_token: string | null;
|
|
14
|
+
_auth_expiration: Date | null;
|
|
15
|
+
_is_authed: boolean;
|
|
16
|
+
_app_id: string;
|
|
17
|
+
_app_secret: string;
|
|
18
|
+
log: Logger;
|
|
19
|
+
europe: boolean;
|
|
20
|
+
constructor(auth_file_path: any, app_id: any, app_secret: any, log: any, europe?: boolean);
|
|
21
|
+
get exit_error_message(): string;
|
|
22
|
+
makeRequest(method: string, url: string, data: object | null, auth_header: string | null): Promise<APIResponse>;
|
|
23
|
+
_set_credentials(login_result: AuthData): void;
|
|
24
|
+
sign_in(): Promise<boolean>;
|
|
25
|
+
refresh_auth(): Promise<boolean>;
|
|
26
|
+
get sign_out_data(): object;
|
|
27
|
+
_clear_auth(): void;
|
|
28
|
+
sign_out(): Promise<void>;
|
|
29
|
+
auth_expiration(): Promise<Date | null>;
|
|
30
|
+
token_expired(): Promise<boolean>;
|
|
31
|
+
token_expiring_soon(): Promise<boolean>;
|
|
32
|
+
check_auth(): Promise<boolean>;
|
|
33
|
+
attempt_refresh(attempt: number): Promise<boolean>;
|
|
34
|
+
auth_header(): Promise<string | null>;
|
|
35
|
+
list_devices(attempt?: number): Promise<object[]>;
|
|
36
|
+
get_devices(update?: boolean): Promise<SharkIqVacuum[]>;
|
|
37
|
+
}
|
|
38
|
+
export { AylaApi, get_ayla_api };
|
|
39
|
+
//# sourceMappingURL=ayla_api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ayla_api.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/ayla_api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAO1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,OAAO,CAAA;CACZ;AAGD,iBAAS,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAMlF;AAED,cAAM,OAAO;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,OAAO,CAAA;gBAGH,cAAc,KAAA,EAAE,MAAM,KAAA,EAAE,UAAU,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,UAAQ;IAanE,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAGK,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCrH,gBAAgB,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI;IAUxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAa3B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAqCtC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAGD,WAAW,IAAI,IAAI;IASb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzB,eAAe,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAcvC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAUjC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUvC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAmB9B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBlD,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrC,YAAY,CAAC,OAAO,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmC5C,WAAW,CAAC,MAAM,UAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAkB3D;AAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA"}
|