matterbridge-ha-roborock 3.1.0 → 3.3.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.
@@ -0,0 +1,123 @@
1
+ #!/bin/bash
2
+
3
+ SERVER="root@10.10.10.167"
4
+ PASSWORD="19940725"
5
+ VERSION=$(node -p "require('./package.json').version")
6
+ PACKAGE_FILE="matterbridge-ha-roborock-${VERSION}.tgz"
7
+
8
+ echo "🚀 部署 matterbridge-ha-roborock v${VERSION} 到服务器..."
9
+ echo ""
10
+
11
+ # 检查包文件是否存在
12
+ if [ ! -f "$PACKAGE_FILE" ]; then
13
+ echo "❌ 包文件不存在: $PACKAGE_FILE"
14
+ echo "请先运行: npm pack"
15
+ exit 1
16
+ fi
17
+
18
+ echo "📦 1/4 上传包到服务器..."
19
+ expect << EOF
20
+ set timeout 30
21
+ spawn scp $PACKAGE_FILE $SERVER:/tmp/
22
+ expect {
23
+ "password:" { send "$PASSWORD\r"; exp_continue }
24
+ "yes/no" { send "yes\r"; exp_continue }
25
+ eof
26
+ }
27
+ EOF
28
+
29
+ if [ $? -ne 0 ]; then
30
+ echo "❌ 上传失败"
31
+ exit 1
32
+ fi
33
+ echo "✅ 上传成功"
34
+ echo ""
35
+
36
+ echo "🔧 2/4 连接到服务器..."
37
+ echo ""
38
+
39
+ expect << 'EOFEXPECT'
40
+ set timeout 60
41
+ set password "19940725"
42
+ set server "root@10.10.10.167"
43
+ set version [exec node -p "require('./package.json').version"]
44
+
45
+ spawn ssh $server
46
+
47
+ expect {
48
+ "password:" { send "$password\r" }
49
+ "yes/no" { send "yes\r"; exp_continue }
50
+ }
51
+
52
+ expect "# "
53
+ send "echo '=== 停止 Matterbridge ==='\r"
54
+
55
+ expect "# "
56
+ send "pkill -f matterbridge || true\r"
57
+
58
+ expect "# "
59
+ send "sleep 2\r"
60
+
61
+ expect "# "
62
+ send "echo '=== 安装新版本 ==='\r"
63
+
64
+ expect "# "
65
+ send "npm install -g /tmp/matterbridge-ha-roborock-$version.tgz\r"
66
+
67
+ expect "# "
68
+ send "echo '=== 验证安装 ==='\r"
69
+
70
+ expect "# "
71
+ send "npm list -g matterbridge-ha-roborock\r"
72
+
73
+ expect "# "
74
+ send "echo '=== 清理临时文件 ==='\r"
75
+
76
+ expect "# "
77
+ send "rm -f /tmp/matterbridge-ha-roborock-*.tgz\r"
78
+
79
+ expect "# "
80
+ send "echo '=== 启动 Matterbridge ==='\r"
81
+
82
+ expect "# "
83
+ send "cd ~ && nohup matterbridge > /tmp/matterbridge.log 2>&1 &\r"
84
+
85
+ expect "# "
86
+ send "sleep 3\r"
87
+
88
+ expect "# "
89
+ send "echo '=== 检查运行状态 ==='\r"
90
+
91
+ expect "# "
92
+ send "ps aux | grep matterbridge | grep -v grep\r"
93
+
94
+ expect "# "
95
+ send "exit\r"
96
+
97
+ expect eof
98
+ EOFEXPECT
99
+
100
+ if [ $? -eq 0 ]; then
101
+ echo ""
102
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
103
+ echo "✅ 部署完成!"
104
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
105
+ echo ""
106
+ echo "📊 服务器信息:"
107
+ echo " 地址: $SERVER"
108
+ echo " 版本: v${VERSION}"
109
+ echo ""
110
+ echo "🔍 查看日志:"
111
+ echo " ssh $SERVER 'tail -f /tmp/matterbridge.log'"
112
+ echo ""
113
+ echo "🛑 停止服务:"
114
+ echo " ssh $SERVER 'pkill -f matterbridge'"
115
+ echo ""
116
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
117
+ else
118
+ echo ""
119
+ echo "❌ 部署失败"
120
+ exit 1
121
+ fi
122
+
123
+
@@ -12,6 +12,9 @@ export interface VacuumState {
12
12
  error?: string;
13
13
  errorMsg?: string;
14
14
  currentRoom?: string;
15
+ cleanedArea?: number;
16
+ cleaningTime?: number;
17
+ hepaFilterLife?: number;
15
18
  rawAttributes?: any;
16
19
  }
17
20
  /**
@@ -33,8 +36,13 @@ export declare class HAVacuumController extends EventEmitter {
33
36
  private cleaningModeEntityId?;
34
37
  private errorSensorId?;
35
38
  private currentRoomSensorId?;
39
+ private cleanedAreaSensorId?;
40
+ private cleaningTimeSensorId?;
41
+ private hepaFilterSensorId?;
42
+ private roomAreaSizes?;
43
+ private selectedRoomNames;
36
44
  private currentState?;
37
- constructor(haClient: HomeAssistantClient, entityId: string, batterySensorId?: string, chargingSensorId?: string, cleaningModeEntityId?: string, errorSensorId?: string, currentRoomSensorId?: string);
45
+ constructor(haClient: HomeAssistantClient, entityId: string, batterySensorId?: string, chargingSensorId?: string, cleaningModeEntityId?: string, errorSensorId?: string, currentRoomSensorId?: string, cleanedAreaSensorId?: string, cleaningTimeSensorId?: string, hepaFilterSensorId?: string, roomAreaSizes?: Record<string, number>);
38
46
  /**
39
47
  * 初始化控制器 - 获取初始状态并设置监听
40
48
  */
@@ -51,6 +59,18 @@ export declare class HAVacuumController extends EventEmitter {
51
59
  * 获取当前状态
52
60
  */
53
61
  getState(): VacuumState | undefined;
62
+ /**
63
+ * 获取选择的房间名称列表
64
+ */
65
+ getSelectedRoomNames(): string[];
66
+ /**
67
+ * 设置选择的房间名称列表
68
+ */
69
+ setSelectedRoomNames(roomNames: string[]): void;
70
+ /**
71
+ * 获取房间面积配置
72
+ */
73
+ getRoomAreaSizes(): Record<string, number> | undefined;
54
74
  /**
55
75
  * 强制刷新状态(用于主动更新)
56
76
  */
@@ -11,8 +11,13 @@ export class HAVacuumController extends EventEmitter {
11
11
  cleaningModeEntityId; // select.dreame_vacuum_r2254_cleaning_mode
12
12
  errorSensorId; // sensor.dreame_vacuum_r2254_error
13
13
  currentRoomSensorId; // sensor.sao_di_ji_current_room
14
+ cleanedAreaSensorId; // sensor.dreame_vacuum_r2254_cleaned_area
15
+ cleaningTimeSensorId; // sensor.dreame_vacuum_r2254_cleaning_time
16
+ hepaFilterSensorId; // sensor.dreame_vacuum_r2254_filter_left
17
+ roomAreaSizes; // 房间面积配置
18
+ selectedRoomNames = []; // 当前选择的房间名称列表
14
19
  currentState;
15
- constructor(haClient, entityId, batterySensorId, chargingSensorId, cleaningModeEntityId, errorSensorId, currentRoomSensorId) {
20
+ constructor(haClient, entityId, batterySensorId, chargingSensorId, cleaningModeEntityId, errorSensorId, currentRoomSensorId, cleanedAreaSensorId, cleaningTimeSensorId, hepaFilterSensorId, roomAreaSizes) {
16
21
  super();
17
22
  this.haClient = haClient;
18
23
  this.entityId = entityId;
@@ -21,6 +26,10 @@ export class HAVacuumController extends EventEmitter {
21
26
  this.cleaningModeEntityId = cleaningModeEntityId;
22
27
  this.errorSensorId = errorSensorId;
23
28
  this.currentRoomSensorId = currentRoomSensorId;
29
+ this.cleanedAreaSensorId = cleanedAreaSensorId;
30
+ this.cleaningTimeSensorId = cleaningTimeSensorId;
31
+ this.hepaFilterSensorId = hepaFilterSensorId;
32
+ this.roomAreaSizes = roomAreaSizes;
24
33
  }
25
34
  /**
26
35
  * 初始化控制器 - 获取初始状态并设置监听
@@ -54,6 +63,14 @@ export class HAVacuumController extends EventEmitter {
54
63
  // 当前房间传感器变化
55
64
  await this.updateState();
56
65
  }
66
+ else if (entityId === this.cleanedAreaSensorId) {
67
+ // 已清洁面积传感器变化
68
+ await this.updateState();
69
+ }
70
+ else if (entityId === this.cleaningTimeSensorId) {
71
+ // 清洁时间传感器变化
72
+ await this.updateState();
73
+ }
57
74
  });
58
75
  }
59
76
  /**
@@ -126,15 +143,67 @@ export class HAVacuumController extends EventEmitter {
126
143
  if (this.currentRoomSensorId) {
127
144
  try {
128
145
  const roomSensor = await this.haClient.getEntityState(this.currentRoomSensorId);
146
+ console.log(`[${this.entityId}] 当前房间传感器状态:`, roomSensor.state);
129
147
  // 忽略 unavailable 状态
130
148
  if (roomSensor.state && roomSensor.state !== 'unavailable') {
131
149
  currentRoom = roomSensor.state;
150
+ console.log(`[${this.entityId}] ✓ 当前房间: ${currentRoom}`);
151
+ }
152
+ else {
153
+ console.log(`[${this.entityId}] ⚠️ 当前房间状态无效: ${roomSensor.state}`);
132
154
  }
133
155
  }
134
156
  catch (error) {
135
157
  console.error(`[${this.entityId}] Failed to get current room sensor:`, error);
136
158
  }
137
159
  }
160
+ else {
161
+ console.log(`[${this.entityId}] ⚠️ 未配置当前房间传感器`);
162
+ }
163
+ // 获取已清洁面积
164
+ let cleanedArea = undefined;
165
+ if (this.cleanedAreaSensorId) {
166
+ try {
167
+ const areaSensor = await this.haClient.getEntityState(this.cleanedAreaSensorId);
168
+ if (areaSensor.state && areaSensor.state !== 'unavailable') {
169
+ cleanedArea = parseFloat(areaSensor.state) || 0;
170
+ }
171
+ }
172
+ catch (error) {
173
+ console.error(`[${this.entityId}] Failed to get cleaned area sensor:`, error);
174
+ }
175
+ }
176
+ // 获取清洁时间
177
+ let cleaningTime = undefined;
178
+ if (this.cleaningTimeSensorId) {
179
+ try {
180
+ const timeSensor = await this.haClient.getEntityState(this.cleaningTimeSensorId);
181
+ if (timeSensor.state && timeSensor.state !== 'unavailable') {
182
+ cleaningTime = parseFloat(timeSensor.state) || 0;
183
+ }
184
+ }
185
+ catch (error) {
186
+ console.error(`[${this.entityId}] Failed to get cleaning time sensor:`, error);
187
+ }
188
+ }
189
+ // 获取 HEPA 滤网剩余寿命
190
+ let hepaFilterLife = undefined;
191
+ if (this.hepaFilterSensorId) {
192
+ // 如果配置了独立的传感器实体,从传感器读取
193
+ try {
194
+ const filterSensor = await this.haClient.getEntityState(this.hepaFilterSensorId);
195
+ if (filterSensor.state && filterSensor.state !== 'unavailable') {
196
+ hepaFilterLife = parseFloat(filterSensor.state) || 0;
197
+ }
198
+ }
199
+ catch (error) {
200
+ console.error(`[${this.entityId}] Failed to get HEPA filter sensor:`, error);
201
+ }
202
+ }
203
+ else if (entity.attributes.filter_left !== undefined) {
204
+ // 如果没有配置传感器,尝试从主实体的 attributes 中读取
205
+ hepaFilterLife = parseFloat(entity.attributes.filter_left) || 0;
206
+ }
138
207
  this.currentState = {
139
208
  state: entity.state,
140
209
  batteryLevel: batteryLevel,
@@ -144,6 +213,9 @@ export class HAVacuumController extends EventEmitter {
144
213
  error: entity.attributes.error,
145
214
  errorMsg: errorMsg,
146
215
  currentRoom: currentRoom,
216
+ cleanedArea: cleanedArea,
217
+ cleaningTime: cleaningTime,
218
+ hepaFilterLife: hepaFilterLife,
147
219
  rawAttributes: entity.attributes,
148
220
  };
149
221
  this.emit('stateChanged', this.currentState);
@@ -154,6 +226,24 @@ export class HAVacuumController extends EventEmitter {
154
226
  getState() {
155
227
  return this.currentState;
156
228
  }
229
+ /**
230
+ * 获取选择的房间名称列表
231
+ */
232
+ getSelectedRoomNames() {
233
+ return this.selectedRoomNames;
234
+ }
235
+ /**
236
+ * 设置选择的房间名称列表
237
+ */
238
+ setSelectedRoomNames(roomNames) {
239
+ this.selectedRoomNames = roomNames;
240
+ }
241
+ /**
242
+ * 获取房间面积配置
243
+ */
244
+ getRoomAreaSizes() {
245
+ return this.roomAreaSizes;
246
+ }
157
247
  /**
158
248
  * 强制刷新状态(用于主动更新)
159
249
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ha-vacuum-controller.js","sourceRoot":"","sources":["../../src/ha-vacuum-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ha-vacuum-controller.js","sourceRoot":"","sources":["../../src/ha-vacuum-controller.ts"],"names":[],"mappings":"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"}
@@ -48,5 +48,35 @@ export interface RoborockPlatformConfig {
48
48
  * 例如: { "vacuum.dreame_vacuum_r2254": "sensor.sao_di_ji_current_room" }
49
49
  */
50
50
  currentRoomSensorMap?: Record<string, string>;
51
+ /**
52
+ * 已清洁面积传感器映射
53
+ * key: vacuum entity_id
54
+ * value: 对应的已清洁面积传感器 entity_id
55
+ * 例如: { "vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaned_area" }
56
+ */
57
+ cleanedAreaSensorMap?: Record<string, string>;
58
+ /**
59
+ * 房间面积配置(平方米)
60
+ * key: 房间名称(与 SUPPORTED_AREAS 中的 locationName 对应)
61
+ * value: 房间面积(平方米)
62
+ * 例如: { "浴室": 5.5, "儿童房": 12.0, "卧室": 15.0, "阳光房": 10.0 }
63
+ */
64
+ roomAreaSizes?: Record<string, number>;
65
+ /**
66
+ * 清洁时间传感器映射
67
+ * key: vacuum entity_id
68
+ * value: 对应的清洁时间传感器 entity_id(单位:分钟)
69
+ * 例如: { "vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_cleaning_time" }
70
+ */
71
+ cleaningTimeSensorMap?: Record<string, string>;
72
+ /**
73
+ * HEPA 滤网剩余寿命传感器映射
74
+ * key: vacuum entity_id
75
+ * value: 对应的 HEPA 滤网剩余寿命传感器 entity_id(单位:百分比 0-100)
76
+ * 例如: { "vacuum.dreame_vacuum_r2254": "sensor.dreame_vacuum_r2254_filter_left" }
77
+ *
78
+ * 注意:传感器值应该是剩余寿命百分比(100% = 全新,0% = 需要更换)
79
+ */
80
+ hepaFilterSensorMap?: Record<string, string>;
51
81
  }
52
82
  export declare function validateConfig(config: any): RoborockPlatformConfig;
@@ -41,6 +41,18 @@ export function validateConfig(config) {
41
41
  if (config.currentRoomSensorMap && typeof config.currentRoomSensorMap !== 'object') {
42
42
  throw new Error('currentRoomSensorMap must be an object');
43
43
  }
44
+ if (config.cleanedAreaSensorMap && typeof config.cleanedAreaSensorMap !== 'object') {
45
+ throw new Error('cleanedAreaSensorMap must be an object');
46
+ }
47
+ if (config.roomAreaSizes && typeof config.roomAreaSizes !== 'object') {
48
+ throw new Error('roomAreaSizes must be an object');
49
+ }
50
+ if (config.cleaningTimeSensorMap && typeof config.cleaningTimeSensorMap !== 'object') {
51
+ throw new Error('cleaningTimeSensorMap must be an object');
52
+ }
53
+ if (config.hepaFilterSensorMap && typeof config.hepaFilterSensorMap !== 'object') {
54
+ throw new Error('hepaFilterSensorMap must be an object');
55
+ }
44
56
  return config;
45
57
  }
46
58
  //# sourceMappingURL=platform-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-config.js","sourceRoot":"","sources":["../../src/platform-config.ts"],"names":[],"mappings":"AA+DA,MAAM,UAAU,cAAc,CAAC,MAAW;IACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvD,YAAY;IACZ,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;IACV,IAAI,MAAM,CAAC,gBAAgB,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,QAAQ,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,oBAAoB,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAgC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"platform-config.js","sourceRoot":"","sources":["../../src/platform-config.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,21 @@ export declare class RoborockHAPlatform extends MatterbridgeAccessoryPlatform {
16
16
  private registerVacuum;
17
17
  private createMatterDevice;
18
18
  private updateBatteryState;
19
+ /**
20
+ * 更新 HEPA 滤网状态
21
+ * HepaFilterMonitoring Cluster ID: 0x0071 (113)
22
+ */
23
+ private updateHepaFilterState;
24
+ /**
25
+ * 更新 Matter Progress 数组
26
+ * Progress 是一个数组,每个选中的区域一个条目
27
+ */
28
+ private updateProgressArray;
29
+ /**
30
+ * 更新 ServiceArea.estimatedEndTime 属性
31
+ * 根据 Matter 规范,这是整个清扫任务的预计完成时间点(Unix 时间戳)
32
+ */
33
+ private updateEstimatedEndTime;
19
34
  onConfigure(): Promise<void>;
20
35
  onShutdown(reason?: string): Promise<void>;
21
36
  }