homebridge-roborock-vacuum 1.0.15 → 1.2.0
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/dist/vacuum_accessory.js
CHANGED
|
@@ -10,6 +10,8 @@ class RoborockVacuumAccessory {
|
|
|
10
10
|
this.platform = platform;
|
|
11
11
|
this.accessory = accessory;
|
|
12
12
|
this.services = [];
|
|
13
|
+
this.sceneServices = new Map();
|
|
14
|
+
this.currentScenes = [];
|
|
13
15
|
const self = this;
|
|
14
16
|
// Accessory Information
|
|
15
17
|
// https://developers.homebridge.io/#/service/AccessoryInformation
|
|
@@ -26,6 +28,8 @@ class RoborockVacuumAccessory {
|
|
|
26
28
|
this.services['Battery'].setCharacteristic(this.platform.Characteristic.BatteryLevel, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") || 0);
|
|
27
29
|
this.services['Battery'].setCharacteristic(this.platform.Characteristic.StatusLowBattery, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "battery") < 20 ? this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW : this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL);
|
|
28
30
|
this.services['Battery'].setCharacteristic(this.platform.Characteristic.ChargingState, this.platform.roborockAPI.getVacuumDeviceStatus(accessory.context, "charge_status") == 1 ? this.platform.Characteristic.ChargingState.CHARGING : this.platform.Characteristic.ChargingState.NOT_CHARGING);
|
|
31
|
+
// Initialize scene switches
|
|
32
|
+
this.updateSceneSwitches();
|
|
29
33
|
}
|
|
30
34
|
updateDeviceState() {
|
|
31
35
|
try {
|
|
@@ -39,6 +43,103 @@ class RoborockVacuumAccessory {
|
|
|
39
43
|
this.platform.log.error("Error updating device state: " + e);
|
|
40
44
|
}
|
|
41
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Update scene switches based on available scenes for this device
|
|
48
|
+
*/
|
|
49
|
+
updateSceneSwitches() {
|
|
50
|
+
try {
|
|
51
|
+
// Get scenes for this device
|
|
52
|
+
const deviceScenes = this.platform.roborockAPI.getScenesForDevice(this.accessory.context);
|
|
53
|
+
// Check if scenes have changed
|
|
54
|
+
if (this.scenesChanged(deviceScenes)) {
|
|
55
|
+
this.platform.log.debug(`Updating scene switches for device ${this.accessory.context}`);
|
|
56
|
+
// Remove existing scene switches that are no longer available
|
|
57
|
+
this.removeOldSceneSwitches(deviceScenes);
|
|
58
|
+
// Add new scene switches
|
|
59
|
+
this.addNewSceneSwitches(deviceScenes);
|
|
60
|
+
// Update current scenes
|
|
61
|
+
this.currentScenes = deviceScenes;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
this.platform.log.error(`Error updating scene switches: ${error}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if scenes have changed
|
|
70
|
+
*/
|
|
71
|
+
scenesChanged(newScenes) {
|
|
72
|
+
if (this.currentScenes.length !== newScenes.length) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
const currentIds = this.currentScenes.map(scene => scene.id).sort();
|
|
76
|
+
const newIds = newScenes.map(scene => scene.id).sort();
|
|
77
|
+
return JSON.stringify(currentIds) !== JSON.stringify(newIds);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Remove scene switches that are no longer available
|
|
81
|
+
*/
|
|
82
|
+
removeOldSceneSwitches(newScenes) {
|
|
83
|
+
const newSceneIds = new Set(newScenes.map(scene => scene.id.toString()));
|
|
84
|
+
for (const [sceneId, service] of this.sceneServices.entries()) {
|
|
85
|
+
if (!newSceneIds.has(sceneId)) {
|
|
86
|
+
this.platform.log.debug(`Removing scene switch for scene ID: ${sceneId}`);
|
|
87
|
+
this.accessory.removeService(service);
|
|
88
|
+
this.sceneServices.delete(sceneId);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Add new scene switches
|
|
94
|
+
*/
|
|
95
|
+
addNewSceneSwitches(scenes) {
|
|
96
|
+
for (const scene of scenes) {
|
|
97
|
+
const sceneId = scene.id.toString();
|
|
98
|
+
if (!this.sceneServices.has(sceneId) && scene.enabled) {
|
|
99
|
+
this.platform.log.debug(`Adding scene switch for: ${scene.name} (ID: ${sceneId})`);
|
|
100
|
+
const switchService = this.accessory.addService(this.platform.Service.Switch, scene.name, `scene-${sceneId}`);
|
|
101
|
+
switchService.setCharacteristic(this.platform.Characteristic.Name, scene.name);
|
|
102
|
+
switchService.getCharacteristic(this.platform.Characteristic.On)
|
|
103
|
+
.onSet(this.setSceneSwitch.bind(this, sceneId))
|
|
104
|
+
.onGet(this.getSceneSwitch.bind(this, sceneId));
|
|
105
|
+
this.sceneServices.set(sceneId, switchService);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Handle scene switch activation
|
|
111
|
+
*/
|
|
112
|
+
async setSceneSwitch(sceneId, value) {
|
|
113
|
+
try {
|
|
114
|
+
this.platform.log.debug(`Scene switch ${sceneId} set to: ${value}`);
|
|
115
|
+
if (value) {
|
|
116
|
+
// Execute the scene
|
|
117
|
+
await this.platform.roborockAPI.executeScene({ val: sceneId });
|
|
118
|
+
this.platform.log.info(`Executed scene ID: ${sceneId}`);
|
|
119
|
+
// Turn off the switch after execution (momentary switch behavior)
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
const service = this.sceneServices.get(sceneId);
|
|
122
|
+
if (service) {
|
|
123
|
+
service.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
124
|
+
}
|
|
125
|
+
}, 1000);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
this.platform.log.error(`Error executing scene ${sceneId}: ${error}`);
|
|
130
|
+
// Turn off the switch if there was an error
|
|
131
|
+
const service = this.sceneServices.get(sceneId);
|
|
132
|
+
if (service) {
|
|
133
|
+
service.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get scene switch state (always returns false for momentary behavior)
|
|
139
|
+
*/
|
|
140
|
+
async getSceneSwitch(sceneId) {
|
|
141
|
+
return false; // Momentary switch - always return false
|
|
142
|
+
}
|
|
42
143
|
notifyDeviceUpdater(id, data) {
|
|
43
144
|
try {
|
|
44
145
|
if (id == 'CloudMessage' || id == 'LocalMessage') {
|
|
@@ -71,6 +172,8 @@ class RoborockVacuumAccessory {
|
|
|
71
172
|
}
|
|
72
173
|
else if (id == 'HomeData') {
|
|
73
174
|
this.updateDeviceState();
|
|
175
|
+
// Update scene switches when home data changes
|
|
176
|
+
this.updateSceneSwitches();
|
|
74
177
|
}
|
|
75
178
|
}
|
|
76
179
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vacuum_accessory.js","sourceRoot":"","sources":["../src/vacuum_accessory.ts"],"names":[],"mappings":";;AAUA;;;GAGG;AACH,MAAqB,uBAAuB;IAG1C,YACmB,QAA0B,EAC1B,SAAoC;;QADpC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,cAAS,GAAT,SAAS,CAA2B;QAJ/C,aAAQ,GAAc,EAAE,CAAC;QAQ/B,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,wBAAwB;QACxB,kEAAkE;QAClE,MAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,0CACjE,iBAAiB,CACjB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,UAAU,EAEX,iBAAiB,CAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAClC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,SAAS,EAEvF,iBAAiB,CAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,SAAS,EAEpF,iBAAiB,CAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,SAAS,CACpF,CAAC;QAGJ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;eACxE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAG5D,gEAAgE;QAChE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,iBAAiB,CACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,iBAAiB,CAC9F,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aAC1E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAGlC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;eAC9E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,iBAAiB,CACxC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CACnF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,iBAAiB,CACxC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAC1N,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,iBAAiB,CACxC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CACzM,CAAC;IAEH,CAAC;IAIF,iBAAiB;QAEf,IAAG,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CACnN,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CACxF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAC/N,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAC9M,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAG3J,CAAC;QAAA,OAAM,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;IAGH,CAAC;IAED,mBAAmB,CAAC,EAAS,EAAE,IAAI;QAEjC,IAAG,CAAC;YACF,IAAG,EAAE,IAAI,cAAc,IAAI,EAAE,IAAI,cAAc,EAAE,CAAC;gBAEhD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAGvF,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CACjI,CAAC;oBACJ,CAAC;oBAED,IAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,QAAQ,CAAC,OAAO,CACjB,CAAC;wBAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAC7J,CAAC;oBAEJ,CAAC;oBAED,IAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;wBAE5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAC1C,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAC5I,CAAC;oBACJ,CAAC;oBAED,IAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;wBAE1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CACtH,CAAC;oBACJ,CAAC;gBAEH,CAAC;gBAED,IAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAEhE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,qBAAqB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE1K,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAClI,CAAC;gBACJ,CAAC;gBAED,IAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAEhE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,uBAAuB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAGlJ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAChB,CAAC;oBAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAC5J,CAAC;gBACJ,CAAC;YAGH,CAAC;iBACI,IAAG,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,CAAC;QAGH,CAAC;QAAA,OAAM,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IAKH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA0B;QAGxC,IAAG,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAAC;YAEtD,IAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC;iBACI,CAAC;gBAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAEvE,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,KAAK,CACN,CAAC;QAGJ,CAAC;QAAA,OAAM,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IAEH,CAAC;IAED,KAAK,CAAC,SAAS;QAEb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;IACvH,CAAC;IAED,mBAAmB,CAAC,IAAW;QAE7B,MAAM,kBAAkB,GAAG;YACzB,CAAC,EAAE,SAAS;YACZ,CAAC,EAAE,YAAY;YACf,CAAC,EAAE,UAAU;YACb,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,UAAU;YACb,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,aAAa;YAChB,CAAC,EAAE,UAAU;YACb,CAAC,EAAE,gBAAgB;YACnB,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,OAAO;YACX,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,wBAAwB;YAC5B,EAAE,EAAE,iBAAiB;YACrB,EAAE,EAAE,uBAAuB;YAC3B,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,SAAS;YACb,GAAG,EAAE,eAAe;SACrB,CAAC;QAEF,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAE/C,CAAC;IAED,UAAU;QAER,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhH,CAAC;IAED,eAAe,CAAC,KAAY;QAE5B,QAAQ,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,CAAC,iBAAiB;YACzB,KAAK,CAAC,CAAC,CAAC,WAAW;YACnB,KAAK,CAAC,CAAC,CAAC,iBAAiB;YACzB,KAAK,CAAC,CAAC,CAAC,cAAc;YACtB,KAAK,EAAE,CAAC,CAAC,gBAAgB;YACzB,KAAK,EAAE,CAAC,CAAC,UAAU;YACnB,KAAK,EAAE,CAAC,CAAC,QAAQ;YACjB,KAAK,EAAE,CAAC,CAAC,aAAa;YACtB,KAAK,EAAE,CAAC,CAAC,aAAa;YACnB,KAAK,EAAE,CAAC,CAAC,kBAAkB;YAC9B,KAAK,EAAE,EAAE,wBAAwB;gBAChC,OAAO,IAAI,CAAC;YACb;gBACC,OAAO,KAAK,CAAC;QACf,CAAC;IAED,CAAC;CAEF;AAhSD,0CAgSC"}
|
|
1
|
+
{"version":3,"file":"vacuum_accessory.js","sourceRoot":"","sources":["../src/vacuum_accessory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"val": "{\"uid\":1466357,\"tokentype\":\"\",\"token\":\"
|
|
2
|
+
"val": "{\"uid\":1466357,\"tokentype\":\"\",\"token\":\"rr6238c899155830:1JZxT5AINkUhb5JDyL8S+w==:0197442b8fc07eeab8ec99362de5bcc3\",\"rruid\":\"rr6238c899155830\",\"region\":\"us\",\"countrycode\":\"886\",\"country\":\"TW\",\"nickname\":\"tasict\",\"rriot\":{\"u\":\"1RQsQJ2o8bxMCo6F45pICu\",\"s\":\"DSeoyC\",\"h\":\"A6whcnODPe\",\"k\":\"kmat3nT2\",\"r\":{\"r\":\"US\",\"a\":\"https://api-us.roborock.com\",\"m\":\"ssl://mqtt-us.roborock.com:8883\",\"l\":\"https://wood-us.roborock.com\"}},\"tuyaDeviceState\":0,\"avatarurl\":\"https://files.roborock.com/iottest/default_avatar.png\"}",
|
|
3
3
|
"ack": true
|
|
4
4
|
}
|
|
@@ -62,6 +62,8 @@ class Roborock {
|
|
|
62
62
|
this.localDevices = {};
|
|
63
63
|
this.remoteDevices = new Set();
|
|
64
64
|
|
|
65
|
+
this.scenesData = null; // Store scenes data locally
|
|
66
|
+
|
|
65
67
|
this.name = "roborock";
|
|
66
68
|
this.deviceNotify = null;
|
|
67
69
|
this.baseURL = options.baseURL || "usiot.roborock.com";
|
|
@@ -527,6 +529,102 @@ class Roborock {
|
|
|
527
529
|
}
|
|
528
530
|
}
|
|
529
531
|
|
|
532
|
+
/**
|
|
533
|
+
* Get the home ID from the login API
|
|
534
|
+
* @returns {Promise<string>} The home ID
|
|
535
|
+
*/
|
|
536
|
+
async getHomeID() {
|
|
537
|
+
if (!this.loginApi) {
|
|
538
|
+
throw new Error("loginApi is not initialized. Call init() first.");
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
try {
|
|
542
|
+
const homeDetail = await this.loginApi.get("api/v1/getHomeDetail");
|
|
543
|
+
if (homeDetail && homeDetail.data && homeDetail.data.data) {
|
|
544
|
+
return homeDetail.data.data.rrHomeId;
|
|
545
|
+
}
|
|
546
|
+
throw new Error("Failed to get home ID from homeDetail response");
|
|
547
|
+
} catch (error) {
|
|
548
|
+
this.log.error(`Failed to get home ID: ${error.message}`);
|
|
549
|
+
throw error;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Get scenes from the Roborock API
|
|
555
|
+
* @returns {Promise<Object>} The scenes data
|
|
556
|
+
*/
|
|
557
|
+
async getScenes() {
|
|
558
|
+
if (!this.loginApi) {
|
|
559
|
+
throw new Error("loginApi is not initialized. Call init() first.");
|
|
560
|
+
}
|
|
561
|
+
if (!this.api) {
|
|
562
|
+
throw new Error("api is not initialized. Call initializeRealApi() first");
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
try {
|
|
566
|
+
const homeId = await this.getHomeID();
|
|
567
|
+
const response = await this.api.get(`user/scene/home/${homeId}`);
|
|
568
|
+
|
|
569
|
+
// Store scenes data locally
|
|
570
|
+
this.scenesData = response.data;
|
|
571
|
+
|
|
572
|
+
return response.data;
|
|
573
|
+
} catch (error) {
|
|
574
|
+
this.log.error(`Failed to get scenes: ${error.message}`);
|
|
575
|
+
throw error;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* Get scenes for a specific device by duid
|
|
581
|
+
* @param {string} duid - The device unique identifier
|
|
582
|
+
* @returns {Array} Array of scenes for the specified device
|
|
583
|
+
*/
|
|
584
|
+
getScenesForDevice(duid) {
|
|
585
|
+
// If duid provided, filter scenes for that device
|
|
586
|
+
if (!this.scenesData || !this.scenesData.result) {
|
|
587
|
+
this.log.warn(`No scenes data available. Call getScenes() first.`);
|
|
588
|
+
return [];
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
try {
|
|
592
|
+
const deviceScenes = [];
|
|
593
|
+
|
|
594
|
+
for (const scene of this.scenesData.result) {
|
|
595
|
+
if (scene.param) {
|
|
596
|
+
try {
|
|
597
|
+
const param = JSON.parse(scene.param);
|
|
598
|
+
if (param.action && param.action.items) {
|
|
599
|
+
// Check if any item in the scene has the matching entityId (duid)
|
|
600
|
+
const hasMatchingDevice = param.action.items.some(item =>
|
|
601
|
+
item.entityId === duid
|
|
602
|
+
);
|
|
603
|
+
|
|
604
|
+
if (hasMatchingDevice) {
|
|
605
|
+
deviceScenes.push({
|
|
606
|
+
id: scene.id,
|
|
607
|
+
name: scene.name,
|
|
608
|
+
enabled: scene.enabled,
|
|
609
|
+
type: scene.type,
|
|
610
|
+
param: scene.param
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
} catch (parseError) {
|
|
615
|
+
this.log.warn(`Failed to parse scene param for scene ${scene.id}: ${parseError.message}`);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
this.log.debug(`Found ${deviceScenes.length} scenes for device ${duid}`);
|
|
621
|
+
return deviceScenes;
|
|
622
|
+
} catch (error) {
|
|
623
|
+
this.log.error(`Failed to filter scenes for device ${duid}: ${error.message}`);
|
|
624
|
+
return [];
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
|
|
530
628
|
getProductAttribute(duid, attribute) {
|
|
531
629
|
const products = this.products;
|
|
532
630
|
const productID = this.devices.find((device) => device.duid == duid).productId;
|
|
@@ -686,6 +784,7 @@ class Roborock {
|
|
|
686
784
|
await vacuum.getParameter(duid, "get_fw_features");
|
|
687
785
|
|
|
688
786
|
await vacuum.getParameter(duid, "get_multi_maps_list");
|
|
787
|
+
|
|
689
788
|
}
|
|
690
789
|
|
|
691
790
|
clearTimersAndIntervals() {
|
|
@@ -750,6 +849,7 @@ class Roborock {
|
|
|
750
849
|
await this.updateConsumablesPercent(homedata.receivedDevices);
|
|
751
850
|
await this.updateDeviceInfo(homedata.devices);
|
|
752
851
|
await this.updateDeviceInfo(homedata.receivedDevices);
|
|
852
|
+
await this.getScenes();
|
|
753
853
|
} else {
|
|
754
854
|
this.log.warn("homedata failed to download");
|
|
755
855
|
}
|
package/roborockLib/test.js
CHANGED
|
@@ -27,6 +27,17 @@ const Roborock = require('./roborockAPI.js').Roborock;
|
|
|
27
27
|
// console.info("polling status every 10 seconds");
|
|
28
28
|
//}, 10000);
|
|
29
29
|
|
|
30
|
+
//printing all process Scene
|
|
31
|
+
roborock.getScenes().then(function(scenes){
|
|
32
|
+
console.info("All Scenes:", JSON.stringify(scenes, null, 2));
|
|
33
|
+
|
|
34
|
+
// Test getScenesForDevice(duid) for this specific device
|
|
35
|
+
const deviceScenes = roborock.getScenesForDevice(duid);
|
|
36
|
+
console.info(`Scenes for device ${duid}:`, JSON.stringify(deviceScenes, null, 2));
|
|
37
|
+
}).catch(function(error){
|
|
38
|
+
console.error("Error getting scenes:", error.message);
|
|
39
|
+
});
|
|
40
|
+
|
|
30
41
|
});
|
|
31
42
|
|
|
32
43
|
|