@cecnic1989/homebridge-roborock-mower 0.6.0 → 0.7.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/README.md +39 -41
- package/config.schema.json +1 -1
- package/dist/mower/accessory.d.ts +1 -0
- package/dist/mower/accessory.js +27 -15
- package/dist/mower/accessory.js.map +1 -1
- package/dist/mower/state.d.ts +9 -0
- package/dist/mower/state.js +61 -4
- package/dist/mower/state.js.map +1 -1
- package/dist/platform.d.ts +3 -2
- package/dist/platform.js +102 -72
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,93 +7,91 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/@cecnic1989/homebridge-roborock-mower)
|
|
8
8
|
[](https://github.com/cecnic1989/homebridge-roborock-mower/actions/workflows/build.yml)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
> **Early development.** Status sensors and battery work (tested on a RockMow Z1 / X120H). Controls are next.
|
|
10
|
+
Apple Home support for Roborock RockMow robot lawn mowers. Tested on a RockMow Z1 / X120H.
|
|
13
11
|
|
|
14
12
|
## Features
|
|
15
13
|
|
|
16
|
-
- **State sensors**
|
|
17
|
-
- **Needs Attention**
|
|
18
|
-
- **Battery** level, charging state, low-battery flag
|
|
19
|
-
- **
|
|
20
|
-
|
|
21
|
-
- **Mow and Pause switches** (optional) to start, dock, pause and resume from Home automations and Siri
|
|
14
|
+
- **State sensors** — Docked, Leaving, Mowing, Returning; contact sensors driven by Roborock's cloud push
|
|
15
|
+
- **Needs Attention** — opens when the mower is stuck, faulted, or stopped with its button
|
|
16
|
+
- **Battery** — level, charging state, low-battery flag
|
|
17
|
+
- **Mow and Pause switches** — optional; start, dock, pause and resume from Siri or automations
|
|
22
18
|
|
|
23
19
|
## Automations
|
|
24
20
|
|
|
25
|
-
Each state is a contact sensor so
|
|
21
|
+
Each state is a contact sensor, so Home triggers on it with *A Sensor Detects Something*:
|
|
26
22
|
|
|
27
23
|
| Sensor | Opens when | Closes when |
|
|
28
24
|
|---|---|---|
|
|
29
|
-
| **Docked** | it leaves the dock | it is back on the dock
|
|
25
|
+
| **Docked** | it leaves the dock | it is back on the dock |
|
|
30
26
|
| **Leaving** | a job starts (initializing / undocking) | it begins cutting |
|
|
31
27
|
| **Mowing** | it starts cutting or driving to a zone | cutting stops |
|
|
32
28
|
| **Returning** | it heads back to the dock | it reaches the dock |
|
|
33
|
-
| **Needs Attention** | it reports an error
|
|
29
|
+
| **Needs Attention** | it reports an error or fault, or STOP was pressed | the condition clears |
|
|
30
|
+
|
|
31
|
+
**Dock inside a garage.** Use *Docked opens → open door*, *Returning opens → open door*, *Docked closes → close door*.
|
|
32
|
+
|
|
33
|
+
Two things to know before automating the door:
|
|
34
|
+
|
|
35
|
+
- **Do not close the door on Mowing.** Mowing opens while the mower is still inside the garage. Leave the door open for the duration of the mow, or close it on a timer.
|
|
36
|
+
- **Trigger the departure from *Docked opens*, not *Leaving opens*.** Docked opens on the push that starts the mow; Leaving waits out `sensorDebounceSeconds` first, by which time the mower is already moving. If your door is slow, also trigger from the mowing schedule.
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
Prefer **Docked opens** over *Leaving opens* for the departure trigger: both fire on the same push, but Docked can only open once per trip. The mower starts driving ~1.5 s after that push, so if the door needs longer, add a time-based automation on the mowing schedule as well.
|
|
38
|
+
**Notifications** need no automation: open the *Needs Attention* sensor in Home → *Status and Notifications* → *Notify when opens*. Pauses made from the Roborock app do not trigger it.
|
|
37
39
|
|
|
38
40
|
## Controls
|
|
39
41
|
|
|
40
|
-
Off by default.
|
|
42
|
+
Off by default. Enable **Control switches (Mow, Pause)** in the plugin settings and restart Homebridge:
|
|
41
43
|
|
|
42
44
|
| Switch | Turn on | Turn off |
|
|
43
45
|
|---|---|---|
|
|
44
46
|
| **Mow** | start a full-lawn mow | send it back to the dock |
|
|
45
47
|
| **Pause** | pause the current job | resume it |
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
Switches reflect the mower's real state, so a job started in the Roborock app reads as Mow on. A paused or rain-delayed job still counts as on — turning Mow off then cancels it and docks. Rejected or unanswered commands surface as an error in Home and the switch keeps its true value.
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
> **Scenes:** "turn everything on" flips every switch in the room, including Mow. Keep the switches out of scenes, or leave controls off.
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
## Behaviour notes
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
- Accessories take the mower's name from the Roborock app; names you set in Home are kept.
|
|
56
|
+
- The mower's own report of where it is beats the dock's charge contact. Leaving, mowing or heading home means it is not in the dock, whatever the contact says — it keeps the contacts live while it leaves, re-seats on them when resuming from a mid-job charge, and the push that clears them can go missing. Without this the door would close on the mower.
|
|
57
|
+
- Other sensors flip only after a state holds for `sensorDebounceSeconds`. Faults and battery are immediate, and so is Docked opening whenever the mower reports that it has left the dock — the door has to open before it moves. A change in the dock contact alone still waits out the debounce.
|
|
58
|
+
- Every sensor change is logged as the Home app names it (`Docked opens`, `Returning closes`), alongside the dock decision and the charge state behind it — enough to tell from the log which automation fired and why.
|
|
59
|
+
- Roborock's servers sometimes stop delivering updates without the connection appearing to drop. The plugin detects this and reconnects on its own; sensors show as inactive rather than stale while it does.
|
|
58
60
|
|
|
59
61
|
## Requirements
|
|
60
62
|
|
|
61
63
|
- Homebridge `^1.8.0` or `^2.0.0-beta.0`
|
|
62
64
|
- Node.js `^20.19.0 || ^22.10.0 || ^24.0.0`
|
|
63
|
-
- A Roborock account (same credentials as the
|
|
64
|
-
|
|
65
|
-
## Installation
|
|
65
|
+
- A Roborock account (same credentials as the mobile app)
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
## Setup
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
Install from the Homebridge UI: **Plugins** → search `@cecnic1989/homebridge-roborock-mower`.
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
2. Enter your Roborock account email and press **Send code**.
|
|
73
|
-
3. Enter the verification code Roborock emails you and press **Verify & save**.
|
|
74
|
-
4. Restart Homebridge.
|
|
71
|
+
Then **Plugins** → **Roborock Mower** → **Settings**: enter your Roborock email, press **Send code**, enter the emailed code, press **Verify & save**, and restart Homebridge.
|
|
75
72
|
|
|
76
|
-
Sign-in stores
|
|
73
|
+
Sign-in stores a cloud token in `<homebridge storage>/roborock-mower/session.json` (owner-only). Treat it like a password; **Sign out** removes it.
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
## Options
|
|
79
76
|
|
|
80
77
|
| Field | Default | Description |
|
|
81
78
|
|---|---|---|
|
|
82
79
|
| `exposeDocked`, `exposeLeaving`, `exposeMowing`, `exposeReturning` | `true` | Which state sensors to create |
|
|
83
|
-
| `exposeAttention` | `true` | Needs Attention sensor
|
|
84
|
-
| `exposeControls` | `false` | Mow and Pause switches |
|
|
80
|
+
| `exposeAttention` | `true` | Needs Attention sensor |
|
|
85
81
|
| `exposeBattery` | `true` | Battery service |
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
82
|
+
| `exposeControls` | `false` | Mow and Pause switches |
|
|
83
|
+
| `faultIndicator` | `true` | Set StatusFault on sensors when the mower reports an error |
|
|
84
|
+
| `sensorDebounceSeconds` | `15` | How long a state must hold before its sensor flips (0–60) |
|
|
85
|
+
| `mqttLivenessProbe` | `true` | Check the live connection is still delivering, and reconnect if not |
|
|
86
|
+
| `pollInterval` | `3600` | Cloud re-sync interval in seconds (min 900). Live state arrives by push and Roborock rate-limits this call, so keep it high |
|
|
89
87
|
|
|
90
88
|
## Support
|
|
91
89
|
|
|
92
|
-
If your mower isn't picked up
|
|
90
|
+
If your mower isn't picked up or a control misbehaves, [open an issue](https://github.com/cecnic1989/homebridge-roborock-mower/issues) with your model number and debug logs (`homebridge -D`).
|
|
93
91
|
|
|
94
92
|
## Development
|
|
95
93
|
|
|
96
|
-
See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup,
|
|
94
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup, testing, and design notes.
|
|
97
95
|
|
|
98
96
|
## License
|
|
99
97
|
|
package/config.schema.json
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"default": 15,
|
|
71
71
|
"minimum": 0,
|
|
72
72
|
"maximum": 60,
|
|
73
|
-
"description": "How long a state must hold before its sensor flips. Faults and battery are reported immediately
|
|
73
|
+
"description": "How long a state must hold before its sensor flips, so brief flickers do not reach your automations. Faults and battery are reported immediately, and so is Docked opening whenever the mower reports that it has left the dock. Raising this will not fix a dock automation: the plugin already ignores the dock contact whenever the mower reports that it is away."
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
},
|
package/dist/mower/accessory.js
CHANGED
|
@@ -131,7 +131,10 @@ export class MowerAccessory {
|
|
|
131
131
|
this.applyIfChanged(key, state.attention); // never debounced: a fault must reach the phone on the push that reports it
|
|
132
132
|
}
|
|
133
133
|
else {
|
|
134
|
-
|
|
134
|
+
// The mower reports being out of the dock, which outranks the contact, so docked here is always false:
|
|
135
|
+
// the door has to be open before it moves ~1.5s later, and that edge skips the debounce. Everything
|
|
136
|
+
// else keeps it — including a bare contact flicker on a mower that is going nowhere.
|
|
137
|
+
this.schedule(key, state[key], key === 'docked' && state.away);
|
|
135
138
|
}
|
|
136
139
|
}
|
|
137
140
|
for (const definition of SWITCH_DEFS) {
|
|
@@ -173,42 +176,51 @@ export class MowerAccessory {
|
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
// Activity flags must hold for the debounce period before HomeKit sees them; the first value is applied immediately.
|
|
176
|
-
schedule(key, value) {
|
|
177
|
-
const pending = this.pending.get(key);
|
|
179
|
+
schedule(key, value, immediate = false) {
|
|
178
180
|
if (this.applied.get(key) === value) {
|
|
179
|
-
|
|
180
|
-
clearTimeout(pending.timer);
|
|
181
|
-
this.pending.delete(key);
|
|
182
|
-
}
|
|
181
|
+
this.cancelPending(key);
|
|
183
182
|
return;
|
|
184
183
|
}
|
|
185
|
-
if (
|
|
184
|
+
if (immediate || !this.applied.has(key) || this.debounceMs === 0) {
|
|
185
|
+
this.cancelPending(key);
|
|
186
|
+
this.apply(key, value);
|
|
186
187
|
return;
|
|
187
188
|
}
|
|
188
|
-
if (pending) {
|
|
189
|
-
clearTimeout(pending.timer);
|
|
190
|
-
}
|
|
191
|
-
if (!this.applied.has(key) || this.debounceMs === 0) {
|
|
192
|
-
this.apply(key, value);
|
|
189
|
+
if (this.pending.get(key)?.value === value) {
|
|
193
190
|
return;
|
|
194
191
|
}
|
|
192
|
+
this.cancelPending(key); // unreachable today, but replacing an entry must never orphan its timer
|
|
195
193
|
const timer = setTimeout(() => {
|
|
196
194
|
this.pending.delete(key);
|
|
197
195
|
this.apply(key, value);
|
|
198
196
|
}, this.debounceMs);
|
|
199
197
|
this.pending.set(key, { value, timer });
|
|
200
198
|
}
|
|
199
|
+
cancelPending(key) {
|
|
200
|
+
const pending = this.pending.get(key);
|
|
201
|
+
if (pending) {
|
|
202
|
+
clearTimeout(pending.timer);
|
|
203
|
+
this.pending.delete(key);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
201
206
|
applyIfChanged(key, value) {
|
|
202
207
|
if (this.applied.get(key) !== value) {
|
|
203
208
|
this.apply(key, value);
|
|
204
209
|
}
|
|
205
210
|
}
|
|
206
211
|
apply(key, value) {
|
|
212
|
+
const initial = !this.applied.has(key);
|
|
207
213
|
this.applied.set(key, value);
|
|
208
214
|
const sensor = this.sensors.get(key);
|
|
209
215
|
if (sensor) {
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
const c = this.hap.Characteristic;
|
|
217
|
+
const contact = contactValue(key, value, c);
|
|
218
|
+
sensor.updateCharacteristic(c.ContactSensorState, contact);
|
|
219
|
+
// Worded as the Home app names the trigger, so the log reads as the automation that fired. The first
|
|
220
|
+
// value of each sensor is marked: it can still fire one, against whatever HomeKit had cached, but it
|
|
221
|
+
// is not a change the mower made.
|
|
222
|
+
const edge = contact === c.ContactSensorState.CONTACT_NOT_DETECTED ? 'opens' : 'closes';
|
|
223
|
+
this.log.info(`${this.baseName}: ${SENSOR_LABELS[key]} ${edge}${initial ? ' (initial)' : ''}`);
|
|
212
224
|
return;
|
|
213
225
|
}
|
|
214
226
|
this.switches.get(key)?.updateCharacteristic(this.hap.Characteristic.On, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/mower/accessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/mower/accessory.ts"],"names":[],"mappings":"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"}
|
package/dist/mower/state.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface DerivedState {
|
|
|
16
16
|
leaving: boolean;
|
|
17
17
|
mowing: boolean;
|
|
18
18
|
returning: boolean;
|
|
19
|
+
homeward: boolean;
|
|
20
|
+
away: boolean;
|
|
19
21
|
charging: boolean;
|
|
20
22
|
paused: boolean;
|
|
21
23
|
fault: boolean;
|
|
@@ -28,5 +30,12 @@ export interface DerivedState {
|
|
|
28
30
|
}
|
|
29
31
|
export type Dps = Record<number, unknown>;
|
|
30
32
|
export declare function deriveMowerState(dps: Dps): DerivedState;
|
|
33
|
+
export declare const IDLE_HOLD_MAX_MS: number;
|
|
34
|
+
export declare const POSITION_HOLD_MAX_MS: number;
|
|
35
|
+
export interface Settled {
|
|
36
|
+
state: DerivedState;
|
|
37
|
+
silentSince: number | undefined;
|
|
38
|
+
}
|
|
39
|
+
export declare function settleState(dps: Dps, contactBefore: unknown, prev: DerivedState | undefined, silentSince: number | undefined, now: number): Settled;
|
|
31
40
|
export declare function describeMowState(code: number | undefined): string;
|
|
32
41
|
export declare function describeAttention(state: DerivedState): string | undefined;
|
package/dist/mower/state.js
CHANGED
|
@@ -28,14 +28,24 @@ export const MOW_STATE_NAMES = {
|
|
|
28
28
|
106: 'free_docked_plan_end', 107: 'free_emergency_stop', 108: 'free_recoverable_fault', 109: 'free_fault',
|
|
29
29
|
151: 'charge_charging', 152: 'charge_completed', 153: 'charge_waiting', 154: 'charge_fault',
|
|
30
30
|
};
|
|
31
|
-
|
|
32
|
-
const
|
|
31
|
+
// 70 is mow_remote_undocking: leaving the dock under remote control is still leaving the dock.
|
|
32
|
+
const LEAVING_STATES = new Set([51, 52, 53, 54, 70]);
|
|
33
|
+
const MOWING_STATES = new Set([55, 56, 57, 64, 65, 66]);
|
|
33
34
|
const RETURNING_STATES = new Set([71, 72, 73, 74, 75]);
|
|
34
35
|
// Bare idle (0) is deliberately not here: the mower reports 0 off the dock between a task ending and 143 being set.
|
|
35
36
|
const DOCKED_STATES = new Set([68, 76, 77, 104, 105, 106, 151, 152, 153]);
|
|
36
37
|
// Rain/DND/low-battery waits (61-63): reported as soon as the mower decides to head home, before it is
|
|
37
38
|
// physically back on the dock — only charge contact proves it arrived. Off the dock they mean "returning".
|
|
38
39
|
const DOCK_WAIT_STATES = new Set([61, 62, 63]);
|
|
40
|
+
// Building a map or roaming free puts the mower on the lawn just as definitely as mowing does, though it is
|
|
41
|
+
// not mowing. Deliberately excluded: map_erasing/map_save/map_wait and every fault, which can all be reported
|
|
42
|
+
// on the dock.
|
|
43
|
+
const AWAY_STATES = new Set([1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 101, 102, 103]);
|
|
44
|
+
// Leaving, working, mapping, heading home: all of them place the mower away from its dock whatever the charge
|
|
45
|
+
// contact says. They have to win, because the contact re-asserts while the mower leaves and the push that
|
|
46
|
+
// clears it is the one known to go missing. Every other code — a bare idle, a pause, a fault, the 61-63
|
|
47
|
+
// waits, a map being saved — says nothing about position, so there the contact decides and nothing else can.
|
|
48
|
+
const OFF_DOCK_STATES = new Set([...LEAVING_STATES, ...MOWING_STATES, ...RETURNING_STATES, ...AWAY_STATES]);
|
|
39
49
|
const CHARGING_STATES = new Set([76, 151]);
|
|
40
50
|
const PAUSED_STATES = new Set([17, 58, 67, 75, 107]);
|
|
41
51
|
const FAULT_STATES = new Set([3, 15, 16, 59, 60, 69, 73, 74, 108, 109, 154]);
|
|
@@ -54,13 +64,19 @@ export function deriveMowerState(dps) {
|
|
|
54
64
|
const battery = num(dps[DPS.BATTERY]);
|
|
55
65
|
const errorCode = num(dps[DPS.ERROR_CODE]) ?? 0;
|
|
56
66
|
const state = mowState ?? -1;
|
|
57
|
-
|
|
67
|
+
// DPS 143 ("off dock, no task") is the most literal report of all, and `returning` below already trusts it
|
|
68
|
+
// — but a code that puts the mower on the dock is newer news than a 143 whose clearing push went missing.
|
|
69
|
+
const away = OFF_DOCK_STATES.has(state) || (offDock !== 0 && !DOCKED_STATES.has(state));
|
|
70
|
+
const docked = !away && ((chargeState !== undefined && CHARGE_STATE_ON_DOCK.has(chargeState)) || DOCKED_STATES.has(state));
|
|
58
71
|
const fault = errorCode !== 0 || FAULT_STATES.has(state);
|
|
72
|
+
const homeward = RETURNING_STATES.has(state) || DOCK_WAIT_STATES.has(state);
|
|
59
73
|
return {
|
|
60
74
|
docked,
|
|
61
75
|
leaving: LEAVING_STATES.has(state),
|
|
62
76
|
mowing: MOWING_STATES.has(state),
|
|
63
|
-
returning: !docked && (
|
|
77
|
+
returning: !docked && (homeward || offDock !== 0),
|
|
78
|
+
homeward,
|
|
79
|
+
away,
|
|
64
80
|
charging: chargeState === 1 || CHARGING_STATES.has(state),
|
|
65
81
|
paused: PAUSED_STATES.has(state),
|
|
66
82
|
fault,
|
|
@@ -73,6 +89,47 @@ export function deriveMowerState(dps) {
|
|
|
73
89
|
errorCode,
|
|
74
90
|
};
|
|
75
91
|
}
|
|
92
|
+
// How long the activity flags may be carried over a bare idle: generous next to the half-minute the mower
|
|
93
|
+
// spends between zones, short enough that a job whose end push lost its DPS 132 stops reading as mowing.
|
|
94
|
+
export const IDLE_HOLD_MAX_MS = 2 * 60_000;
|
|
95
|
+
// How long the last known position may be carried over codes that place the mower nowhere. Longer, because
|
|
96
|
+
// the only alternative is the charge contact, and a lost clearing push makes it report "home" while the mower
|
|
97
|
+
// is still driving there — comfortably past a real return, which took 74s in the 2026-10-03 capture.
|
|
98
|
+
export const POSITION_HOLD_MAX_MS = 10 * 60_000;
|
|
99
|
+
// Most state codes say where the mower is; some say nothing about it at all — a bare idle, a pause, a fault,
|
|
100
|
+
// the 61-63 rain/DND waits. For those the charge contact is the only thing left, and it lies exactly when it
|
|
101
|
+
// matters: the push that clears it is the one known to go missing, and until it arrives the contact reports
|
|
102
|
+
// the mower home while it is still out. That closed a garage door on a returning mower once (2026-08-26) and
|
|
103
|
+
// on a departing one twice (2026-08-29, 2026-10-03). So a code that settles nothing carries what came before
|
|
104
|
+
// it, bounded, and anything positive — a code that places the mower, or DPS 143 — takes over at once.
|
|
105
|
+
export function settleState(dps, contactBefore, prev, silentSince, now) {
|
|
106
|
+
const state = deriveMowerState(dps);
|
|
107
|
+
const code = state.mowState ?? -1;
|
|
108
|
+
if (prev === undefined || state.away || DOCKED_STATES.has(code)) {
|
|
109
|
+
return { state, silentSince: undefined };
|
|
110
|
+
}
|
|
111
|
+
const since = silentSince ?? now;
|
|
112
|
+
const held = { ...state };
|
|
113
|
+
if (now - since <= POSITION_HOLD_MAX_MS) {
|
|
114
|
+
// The charge contact is physically honest when it is current — nothing breaks one without moving, and
|
|
115
|
+
// nothing asserts one without touching it. The catch is that it may not be current: if a state code has
|
|
116
|
+
// already placed the mower away while the contact still reads on-dock, the push that cleared it never
|
|
117
|
+
// arrived. So an asserting contact means "home" only when this push changed it, or when it was already
|
|
118
|
+
// what we believed, and only when the mower was not in the middle of leaving — on the way out it
|
|
119
|
+
// re-seats on those same contacts. A contact gone clear needs none of that and is simply believed.
|
|
120
|
+
held.docked = state.docked && !prev.leaving && (dps[DPS.CHARGE_STATE] !== contactBefore || prev.docked);
|
|
121
|
+
held.away = !held.docked && prev.away;
|
|
122
|
+
held.homeward = state.homeward || prev.homeward; // 61-63 announce the intent; a bare idle keeps it
|
|
123
|
+
held.returning = !held.docked && held.homeward;
|
|
124
|
+
}
|
|
125
|
+
// A bare idle reports no activity either, and the mower sits at one for up to half a minute between zones.
|
|
126
|
+
if (state.jobActive && code === 0 && now - since <= IDLE_HOLD_MAX_MS) {
|
|
127
|
+
held.leaving = prev.leaving;
|
|
128
|
+
held.mowing = prev.mowing;
|
|
129
|
+
held.returning = prev.returning;
|
|
130
|
+
}
|
|
131
|
+
return { state: held, silentSince: since };
|
|
132
|
+
}
|
|
76
133
|
export function describeMowState(code) {
|
|
77
134
|
if (code === undefined) {
|
|
78
135
|
return 'unknown';
|
package/dist/mower/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/mower/state.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,kFAAkF;AAClF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;IACjB,uBAAuB,EAAE,GAAG;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,sBAAsB;IAC9G,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU;IAClG,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,uBAAuB;IACvG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,mBAAmB;IAClE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,aAAa;IAC3G,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,WAAW;IAC/F,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,UAAU;IACxG,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,gBAAgB;IACnH,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,+BAA+B;IAC3H,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,4BAA4B,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,8BAA8B;IACzH,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,qBAAqB;IAClH,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,EAAE,YAAY;IACzG,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc;CAC5F,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/mower/state.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -36,8 +36,7 @@ export declare class RoborockMowerPlatform implements DynamicPlatformPlugin {
|
|
|
36
36
|
private reconcileTimer?;
|
|
37
37
|
private livenessTimer?;
|
|
38
38
|
private mqttConnectedAt?;
|
|
39
|
-
private
|
|
40
|
-
private outageWarned;
|
|
39
|
+
private quietDrop;
|
|
41
40
|
private retryTimer?;
|
|
42
41
|
private startPromise?;
|
|
43
42
|
private stopped;
|
|
@@ -50,8 +49,10 @@ export declare class RoborockMowerPlatform implements DynamicPlatformPlugin {
|
|
|
50
49
|
reconcile(): Promise<void>;
|
|
51
50
|
livenessTick(): Promise<void>;
|
|
52
51
|
private rotateAgedConnection;
|
|
52
|
+
private silentFor;
|
|
53
53
|
private probeLiveness;
|
|
54
54
|
private checkMqttLiveness;
|
|
55
|
+
private markOutage;
|
|
55
56
|
private restartMqtt;
|
|
56
57
|
private sensorOptions;
|
|
57
58
|
private now;
|
package/dist/platform.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MowerAccessory } from './mower/accessory.js';
|
|
2
2
|
import { ACTION_LABELS, isOk, LIVENESS_PROBE, remotePbParams } from './mower/commands.js';
|
|
3
|
-
import { deriveMowerState, describeAttention, describeMowState } from './mower/state.js';
|
|
3
|
+
import { DPS, deriveMowerState, describeAttention, describeMowState, settleState } from './mower/state.js';
|
|
4
4
|
import { findMowers } from './roborock/mower.js';
|
|
5
5
|
import { RequestTimeout, RoborockMqtt } from './roborock/mqtt-client.js';
|
|
6
6
|
import { readSession, writeStatus } from './roborock/session-store.js';
|
|
@@ -12,6 +12,9 @@ const MAX_POLL_SECONDS = 86_400;
|
|
|
12
12
|
const DEFAULT_POLL_SECONDS = 3600;
|
|
13
13
|
const STARTUP_RETRY_MS = 5 * 60_000;
|
|
14
14
|
const STALE_PUSH_MS = 5 * 60_000; // a push this old no longer outranks a disagreeing cloud snapshot
|
|
15
|
+
// Everything the dock decision rests on. A snapshot that omits any of them cannot contradict us about where
|
|
16
|
+
// the mower is — and since merging it cannot clear a key it never carried, it would say so on every poll.
|
|
17
|
+
const DOCK_EVIDENCE_DPS = [DPS.MOW_STATE, DPS.CHARGE_STATE, DPS.OFF_DOCK_NO_TASK_STATUS];
|
|
15
18
|
// A docked mower is legitimately quiet for hours, but this much silence on a connection that claims to be
|
|
16
19
|
// live is the signature of a silently dropped subscription — the broker drops it without disconnecting.
|
|
17
20
|
const SILENT_PUSH_RESTART_MS = 2 * 3_600_000;
|
|
@@ -86,8 +89,7 @@ export class RoborockMowerPlatform {
|
|
|
86
89
|
reconcileTimer;
|
|
87
90
|
livenessTimer;
|
|
88
91
|
mqttConnectedAt;
|
|
89
|
-
|
|
90
|
-
outageWarned = false;
|
|
92
|
+
quietDrop = false; // the last disconnect was our own refresh, so it was not reported as an outage
|
|
91
93
|
retryTimer;
|
|
92
94
|
startPromise;
|
|
93
95
|
stopped = false;
|
|
@@ -129,14 +131,9 @@ export class RoborockMowerPlatform {
|
|
|
129
131
|
// Runs every 15 min: age rotation first, then the active probe, then the passive fallback.
|
|
130
132
|
// Timer callbacks must never reject.
|
|
131
133
|
async livenessTick() {
|
|
132
|
-
// A refresh that never came back
|
|
133
|
-
if (this.mqtt && !this.mqtt.connected &&
|
|
134
|
-
this.
|
|
135
|
-
// A refresh that never came back is an outage after all: the quiet drop skipped this, so do it now.
|
|
136
|
-
for (const tracked of this.mowers.values()) {
|
|
137
|
-
tracked.accessory.setOnline(false);
|
|
138
|
-
}
|
|
139
|
-
this.log.warn('Roborock MQTT is still disconnected; sensors marked inactive until it reconnects.');
|
|
134
|
+
// A refresh that never came back is an outage after all, and its drop was logged quietly at the time.
|
|
135
|
+
if (this.mqtt && !this.mqtt.connected && this.quietDrop) {
|
|
136
|
+
this.markOutage('Roborock MQTT is still disconnected');
|
|
140
137
|
}
|
|
141
138
|
if (this.rotateAgedConnection()) {
|
|
142
139
|
return; // the fresh connection needs no probe or passive check this tick
|
|
@@ -149,25 +146,27 @@ export class RoborockMowerPlatform {
|
|
|
149
146
|
}
|
|
150
147
|
this.checkMqttLiveness();
|
|
151
148
|
}
|
|
152
|
-
// Deferred while a command is in flight (a restart would reject it); the next tick catches up.
|
|
153
149
|
rotateAgedConnection() {
|
|
154
|
-
const
|
|
155
|
-
if (
|
|
150
|
+
const now = this.now();
|
|
151
|
+
if (this.mqttConnectedAt === undefined || now - this.mqttConnectedAt < MQTT_MAX_CONNECTION_AGE_MS) {
|
|
156
152
|
return false;
|
|
157
153
|
}
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
154
|
+
for (const tracked of this.mowers.values()) {
|
|
155
|
+
if (this.silentFor(tracked, now) < ROTATION_QUIET_MS) {
|
|
156
|
+
return false; // never interrupt a delivering connection; wait for the job to end
|
|
157
|
+
}
|
|
161
158
|
}
|
|
162
|
-
const
|
|
163
|
-
if (
|
|
164
|
-
return false; //
|
|
159
|
+
const age = Math.round((now - this.mqttConnectedAt) / 60_000);
|
|
160
|
+
if (!this.restartMqtt()) {
|
|
161
|
+
return false; // a command is in flight; the next tick catches up
|
|
165
162
|
}
|
|
166
|
-
this.log.info(`Roborock MQTT connection is ${
|
|
167
|
-
+ 'refreshing it before the broker drops the subscription.');
|
|
168
|
-
this.restartMqtt();
|
|
163
|
+
this.log.info(`Roborock MQTT connection is ${age} min old; refreshing it before the broker drops the subscription.`);
|
|
169
164
|
return true;
|
|
170
165
|
}
|
|
166
|
+
// How long since anything proved this mower's subscription delivers. Infinity when nothing ever has.
|
|
167
|
+
silentFor(tracked, now = this.now()) {
|
|
168
|
+
return tracked.lastAliveAt === undefined ? Infinity : now - tracked.lastAliveAt;
|
|
169
|
+
}
|
|
171
170
|
// Active end-to-end check: ask the mower a question it is guaranteed to answer ("unknown_method") and
|
|
172
171
|
// expect the reply over the push subscription. Two consecutive timeouts on a live connection mean the
|
|
173
172
|
// subscription is dead — restart once. Still silent after the restart means the mower is asleep, not the
|
|
@@ -221,28 +220,42 @@ export class RoborockMowerPlatform {
|
|
|
221
220
|
// a garage automation that never fired). The clock re-bases on each restart, so through a long quiet
|
|
222
221
|
// stretch the connection is refreshed every SILENT_PUSH_RESTART_MS and never grows old.
|
|
223
222
|
checkMqttLiveness() {
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
return; // a restart rejects every pending command; let the user's action settle and re-check next tick
|
|
227
|
-
}
|
|
228
|
-
const silent = [...this.mowers.values()].find((tracked) => tracked.lastAliveAt !== undefined && this.now() - tracked.lastAliveAt > SILENT_PUSH_RESTART_MS);
|
|
223
|
+
const now = this.now();
|
|
224
|
+
const silent = [...this.mowers.values()].find((tracked) => tracked.lastAliveAt !== undefined && this.silentFor(tracked, now) > SILENT_PUSH_RESTART_MS);
|
|
229
225
|
if (!silent) {
|
|
230
226
|
return;
|
|
231
227
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
228
|
+
const minutes = Math.round(this.silentFor(silent, now) / 60_000);
|
|
229
|
+
if (this.restartMqtt()) {
|
|
230
|
+
this.log.warn(`${silent.device.name}: no live traffic for ${minutes} min on a live connection; `
|
|
231
|
+
+ 'reconnecting MQTT as a precaution.');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// One place where an outage is reported, so what it does to the sensors cannot drift between callers.
|
|
235
|
+
markOutage(reason) {
|
|
236
|
+
this.quietDrop = false;
|
|
237
|
+
for (const tracked of this.mowers.values()) {
|
|
238
|
+
tracked.accessory.setOnline(false);
|
|
239
|
+
}
|
|
240
|
+
this.log.warn(`${reason}; sensors marked inactive until it reconnects.`);
|
|
235
241
|
}
|
|
236
242
|
// The connect transition re-seeds every clock on reconnect; re-basing here as well only covers the
|
|
237
243
|
// window until that reconnect completes, so a stalled reconnect cannot re-trip the passive check.
|
|
244
|
+
// Restarting rejects every pending command account-wide, so a command in flight always wins; callers get
|
|
245
|
+
// told whether the restart actually happened rather than each remembering to ask first.
|
|
238
246
|
restartMqtt() {
|
|
247
|
+
const mqtt = this.mqtt;
|
|
248
|
+
if (!mqtt?.connected || mqtt.busy()) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
239
251
|
for (const tracked of this.mowers.values()) {
|
|
240
252
|
if (tracked.lastAliveAt !== undefined) {
|
|
241
253
|
tracked.lastAliveAt = this.now();
|
|
242
254
|
}
|
|
243
255
|
}
|
|
244
|
-
this.
|
|
245
|
-
|
|
256
|
+
this.quietDrop = true;
|
|
257
|
+
mqtt.restart();
|
|
258
|
+
return true;
|
|
246
259
|
}
|
|
247
260
|
sensorOptions() {
|
|
248
261
|
const c = this.pluginConfig;
|
|
@@ -347,35 +360,29 @@ export class RoborockMowerPlatform {
|
|
|
347
360
|
this.mqttConnectedAt = this.now();
|
|
348
361
|
}
|
|
349
362
|
for (const tracked of this.mowers.values()) {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
if (connected || !this.deliberateRestart) {
|
|
353
|
-
tracked.accessory.setOnline(connected && tracked.online);
|
|
354
|
-
}
|
|
355
|
-
if (!connected) {
|
|
356
|
-
tracked.probeFailures = 0; // an ordinary outage plus one lost reply must not add up to a restart
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
363
|
+
if (connected) {
|
|
364
|
+
tracked.accessory.setOnline(tracked.online);
|
|
359
365
|
// A fresh connection deserves a fresh 2h clock — this also covers restarts the client performs
|
|
360
366
|
// on its own (refused suback) and seeds mowers that have never delivered a frame.
|
|
361
367
|
tracked.lastAliveAt = this.now();
|
|
362
368
|
}
|
|
369
|
+
else {
|
|
370
|
+
tracked.probeFailures = 0; // an ordinary outage plus one lost reply must not add up to a restart
|
|
371
|
+
}
|
|
363
372
|
}
|
|
364
373
|
if (!connected) {
|
|
365
|
-
// A
|
|
366
|
-
// warning
|
|
367
|
-
|
|
368
|
-
this.
|
|
369
|
-
if (deliberate) {
|
|
374
|
+
// A refresh we scheduled is not an outage: reporting one ~12x a day would train users to ignore
|
|
375
|
+
// the warning, and the sensors stay valid across a gap that lasts about a second. If the
|
|
376
|
+
// replacement never arrives, livenessTick escalates this to a real outage.
|
|
377
|
+
if (this.quietDrop) {
|
|
370
378
|
this.log.debug('Roborock MQTT reconnecting after a scheduled refresh.');
|
|
371
379
|
}
|
|
372
380
|
else {
|
|
373
|
-
this.
|
|
374
|
-
this.log.warn('Roborock MQTT disconnected; sensors marked inactive until it reconnects.');
|
|
381
|
+
this.markOutage('Roborock MQTT disconnected');
|
|
375
382
|
}
|
|
376
383
|
}
|
|
377
384
|
else {
|
|
378
|
-
this.
|
|
385
|
+
this.quietDrop = false;
|
|
379
386
|
}
|
|
380
387
|
});
|
|
381
388
|
// Any decodable frame — a push, our reply, another client's reply — proves the subscription delivers.
|
|
@@ -510,15 +517,27 @@ export class RoborockMowerPlatform {
|
|
|
510
517
|
// dead — that is what a silent broker drop looks like from here.
|
|
511
518
|
const pushAge = tracked.lastPushAt === undefined ? Infinity : this.now() - tracked.lastPushAt;
|
|
512
519
|
if (pushAge > STALE_PUSH_MS) {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
520
|
+
// Compared as derived state, not raw DPS: where the mower is and what it is doing is what a missed
|
|
521
|
+
// push would have changed. The charge state on its own is not evidence — it cycles 1-2-3 through a
|
|
522
|
+
// normal overnight charge, which would reconnect on every poll for nothing.
|
|
523
|
+
const snapshot = toNumericDps(device.deviceStatus ?? {});
|
|
524
|
+
const cloud = deriveMowerState(snapshot);
|
|
525
|
+
// Only once we have heard from the mower ourselves: on the first sync there is nothing to contradict.
|
|
526
|
+
const live = tracked.last === undefined ? undefined : deriveMowerState(tracked.dps);
|
|
527
|
+
// Each side has to know the thing being compared, or a DPS the snapshot simply omits reads as a
|
|
528
|
+
// contradiction and restarts MQTT on every poll — the push-dropping churn this is meant to prevent.
|
|
529
|
+
const stateDiffers = cloud.mowState !== undefined && live?.mowState !== undefined && cloud.mowState !== live.mowState;
|
|
530
|
+
const knowsPlace = DOCK_EVIDENCE_DPS.every((key) => snapshot[key] !== undefined);
|
|
531
|
+
const placeDiffers = live !== undefined && knowsPlace && cloud.docked !== live.docked;
|
|
532
|
+
const healing = (stateDiffers || placeDiffers) && (this.mqtt?.connected ?? false);
|
|
533
|
+
if (healing) {
|
|
534
|
+
this.log.warn(`${device.name}: no live update for ${Math.round(pushAge / 60_000)} min and the cloud `
|
|
535
|
+
+ `disagrees (${describeMowState(cloud.mowState)}${cloud.docked ? ', docked' : ''} vs `
|
|
536
|
+
+ `${describeMowState(live?.mowState)}${live?.docked ? ', docked' : ''}); merging the snapshot `
|
|
537
|
+
+ 'and reconnecting MQTT.');
|
|
519
538
|
staleSubscription = true;
|
|
520
539
|
}
|
|
521
|
-
this.applyDps(tracked, device.deviceStatus ?? {}, 'cloud');
|
|
540
|
+
this.applyDps(tracked, device.deviceStatus ?? {}, healing ? 'heal' : 'cloud');
|
|
522
541
|
}
|
|
523
542
|
else {
|
|
524
543
|
this.log.debug(`${device.name}: cloud snapshot ignored in favour of fresh live state: ${JSON.stringify(device.deviceStatus)}`);
|
|
@@ -551,7 +570,8 @@ export class RoborockMowerPlatform {
|
|
|
551
570
|
if (!mqtt) {
|
|
552
571
|
throw new Error('Roborock MQTT is not running.');
|
|
553
572
|
}
|
|
554
|
-
const
|
|
573
|
+
const tracked = this.mowers.get(duid);
|
|
574
|
+
const name = tracked?.device.name ?? duid;
|
|
555
575
|
// The thunk runs at publish time, so this also records when the command actually reached the wire —
|
|
556
576
|
// a queued command must not be vouched for by traffic that predates its own send.
|
|
557
577
|
let sentAt = this.now();
|
|
@@ -563,21 +583,19 @@ export class RoborockMowerPlatform {
|
|
|
563
583
|
});
|
|
564
584
|
}
|
|
565
585
|
catch (error) {
|
|
566
|
-
//
|
|
567
|
-
//
|
|
568
|
-
// automations riding on them) work again
|
|
569
|
-
//
|
|
570
|
-
//
|
|
571
|
-
//
|
|
572
|
-
//
|
|
573
|
-
const tracked = this.mowers.get(duid);
|
|
586
|
+
// The publish reached the broker; a missing reply is the signature of a silently dropped
|
|
587
|
+
// subscription. The tap fails honestly, but reconnect NOW so the mower's own pushes (and the
|
|
588
|
+
// automations riding on them) work again in seconds instead of the probe's ~30 minutes. Skipped when
|
|
589
|
+
// a frame arrived since the command went out (the mower was merely slow), for a mower the cloud
|
|
590
|
+
// reports unreachable, and — the storm bound — until a frame proves the link came back to life, so a
|
|
591
|
+
// mower that never answers costs exactly one heal. restartMqtt() adds the transport preconditions:
|
|
592
|
+
// while disconnected, mqtt.js is already reconnecting and a restart would discard its queued publish.
|
|
574
593
|
const provenAlive = tracked?.lastAliveAt !== undefined && tracked.lastAliveAt >= sentAt;
|
|
575
|
-
if (error instanceof RequestTimeout &&
|
|
576
|
-
&&
|
|
577
|
-
tracked.healArmed = false;
|
|
578
|
-
this.log.warn(`${name}: no reply to ${ACTION_LABELS[action]}
|
|
594
|
+
if (error instanceof RequestTimeout && !provenAlive && tracked?.healArmed && tracked.online
|
|
595
|
+
&& this.restartMqtt()) {
|
|
596
|
+
tracked.healArmed = false; // consumed only when a reconnect actually happened
|
|
597
|
+
this.log.warn(`${name}: no reply to ${ACTION_LABELS[action]}; the subscription looks dead — `
|
|
579
598
|
+ 'reconnecting MQTT so live updates resume.');
|
|
580
|
-
this.restartMqtt();
|
|
581
599
|
}
|
|
582
600
|
throw error;
|
|
583
601
|
}
|
|
@@ -587,14 +605,26 @@ export class RoborockMowerPlatform {
|
|
|
587
605
|
this.log.info(`${name}: ${ACTION_LABELS[action]} command acknowledged`);
|
|
588
606
|
}
|
|
589
607
|
applyDps(tracked, update, source) {
|
|
608
|
+
const contactBefore = tracked.dps[DPS.CHARGE_STATE]; // read before the merge: a changed contact is current
|
|
590
609
|
Object.assign(tracked.dps, toNumericDps(update));
|
|
591
610
|
if (source === 'push') {
|
|
592
611
|
tracked.lastPushAt = this.now();
|
|
593
612
|
}
|
|
594
|
-
|
|
613
|
+
// Only the heal path is taken as read: it has just declared the live state wrong, so nothing may be held
|
|
614
|
+
// over it. An ordinary snapshot is merged like any other news, and what it settles nothing about stands.
|
|
615
|
+
const { state, silentSince } = source === 'heal'
|
|
616
|
+
? { state: deriveMowerState(tracked.dps), silentSince: undefined }
|
|
617
|
+
: settleState(tracked.dps, contactBefore, tracked.last, tracked.silentSince, this.now());
|
|
618
|
+
tracked.silentSince = silentSince;
|
|
595
619
|
if (state.mowState !== tracked.last?.mowState) {
|
|
596
620
|
this.log.info(`${tracked.device.name}: ${describeMowState(state.mowState)} (battery ${state.battery ?? '?'}%)`);
|
|
597
621
|
}
|
|
622
|
+
// A charge-contact flap changes no other DPS, so without this the dock decision — which drives the
|
|
623
|
+
// garage automations — leaves no trace above debug level.
|
|
624
|
+
if (tracked.last !== undefined && state.docked !== tracked.last.docked) {
|
|
625
|
+
this.log.info(`${tracked.device.name}: ${state.docked ? 'back on the dock' : 'off the dock'}`
|
|
626
|
+
+ ` (charge state ${tracked.dps[DPS.CHARGE_STATE] ?? '-'}, ${describeMowState(state.mowState)})`);
|
|
627
|
+
}
|
|
598
628
|
if (state.attention && !tracked.last?.attention) {
|
|
599
629
|
this.log.warn(`${tracked.device.name}: needs attention — ${describeAttention(state)}`);
|
|
600
630
|
}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cecnic1989/homebridge-roborock-mower",
|
|
3
3
|
"displayName": "Homebridge Roborock Mower",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.7.0",
|
|
6
6
|
"description": "Homebridge plugin for Roborock RockMow robot lawn mowers",
|
|
7
7
|
"author": "cecnic1989",
|
|
8
8
|
"license": "Apache-2.0",
|