Skip to content

Commit dc96bd8

Browse files
lboueclaude
andcommitted
docs: update DEVICES.md with Q7/Q10 B01 device references
Replace generic "Some newer models" with explicit Q7/Q10 series mentions across protocol tables, diagrams, and code organization. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cc6b202 commit dc96bd8

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

docs/DEVICES.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ Cloud and Network.
1515
* **Washers (A01)**: Use `device.a01_properties` for Dyad/Zeo devices.
1616
* Use `await device.a01_properties.query_values([...])` to get state.
1717
* Use `await device.a01_properties.set_value(protocol, value)` to control.
18+
* **Vacuums (B01 Q10)**: Use `device.b01_q10_properties` for Q10 series devices.
19+
* Use `device.b01_q10_properties.vacuum` to access vacuum commands (start, pause, stop, dock, empty dustbin, set clean mode, set fan level).
20+
* Use `device.b01_q10_properties.command.send()` for raw DP commands.
21+
* **Vacuums (B01 Q7)**: Use `device.b01_q7_properties` for Q7 series devices.
1822

1923
## Background: Understanding Device Protocols
2024

@@ -26,7 +30,7 @@ Cloud and Network.
2630
|----------|----------------|------|-----------|--------------|-------|
2731
| **V1** (`pv=1.0`) | Most vacuum robots (S7, S8, Q5, Q7, etc.) | ✅ | ✅ | `V1Channel` with `RpcChannel` | Prefers local, falls back to MQTT |
2832
| **A01** (`pv=A01`) | Dyad, Zeo washers | ✅ | ❌ | `MqttChannel` + helpers | MQTT only, DPS protocol |
29-
| **B01** (`pv=B01`) | Some newer models | ✅ | ❌ | `MqttChannel` + helpers | MQTT only, DPS protocol |
33+
| **B01** (`pv=B01`) | Q7, Q10 series | ✅ | ❌ | `MqttChannel` + helpers | MQTT only, DPS protocol |
3034

3135
**Key Point:** The `DeviceManager` automatically detects the protocol version and creates the appropriate channel type. You don't need to handle this manually.
3236

@@ -47,7 +51,7 @@ graph TB
4751
subgraph "Device Types by Protocol"
4852
V1Dev[V1 Devices<br/>pv=1.0<br/>Most vacuums]
4953
A01Dev[A01 Devices<br/>pv=A01<br/>Dyad, Zeo]
50-
B01Dev[B01 Devices<br/>pv=B01<br/>Some models]
54+
B01Dev[B01 Devices<br/>pv=B01<br/>Q7, Q10 series]
5155
end
5256

5357
subgraph "Traits Layer"
@@ -148,7 +152,7 @@ graph TB
148152
|----------|-------------|---------------|--------------|----------|
149153
| **V1** (`pv=1.0`) | `V1Channel` with `RpcChannel` | ✅ Yes | Multi-strategy (Local → MQTT) | Most vacuum robots |
150154
| **A01** (`pv=A01`) | `MqttChannel` + helpers | ❌ No | Direct MQTT | Dyad, Zeo washers |
151-
| **B01** (`pv=B01`) | `MqttChannel` + helpers | ❌ No | Direct MQTT | Some newer models |
155+
| **B01** (`pv=B01`) | `MqttChannel` + helpers | ❌ No | Direct MQTT | Q7, Q10 series |
152156

153157
## Account Setup Internals
154158

@@ -249,7 +253,7 @@ sequenceDiagram
249253
RPC-->>App: Status
250254
```
251255

252-
#### A01/B01 Devices (Dyad, Zeo) - MQTT Only
256+
#### A01/B01 Devices (Dyad, Zeo, Q7, Q10) - MQTT Only
253257

254258
```mermaid
255259
sequenceDiagram
@@ -302,7 +306,7 @@ sequenceDiagram
302306
| **Local Support** | ✅ Yes, preferred | ❌ No |
303307
| **Fallback** | Local → MQTT | N/A |
304308
| **Connection** | Requires network info fetch | Direct MQTT |
305-
| **Examples** | Most vacuum robots | Dyad washers, Zeo models |
309+
| **Examples** | Most vacuum robots | Dyad washers, Zeo, Q7, Q10 |
306310

307311
### MQTT Connection (All Devices)
308312

@@ -510,7 +514,7 @@ Different device models use different protocol versions:
510514
|----------|---------|----------|
511515
| V1 | Most vacuum robots | JSON RPC with AES encryption |
512516
| A01 | Dyad, Zeo | DPS-based protocol |
513-
| B01 | Some newer models | DPS-based protocol |
517+
| B01 | Q7, Q10 series | DPS-based protocol |
514518
| L01 | Local protocol variant | Binary protocol negotiation |
515519

516520
The protocol layer handles encoding/decoding transparently based on the device's `pv` field.
@@ -577,11 +581,14 @@ roborock/
577581
│ | ├── b01_q10_channel.py # B01 Q10 protocol helpers
578582
│ | └── ...
579583
│ └── traits/ # High-level device-specific command traits
580-
│ └── v1/ # V1 device traits
581-
│ ├── __init__.py # Trait initialization
582-
│ ├── clean.py # Cleaning commands
583-
│ ├── map.py # Map management
584-
│ └── ...
584+
│ ├── v1/ # V1 device traits
585+
│ │ ├── __init__.py # Trait initialization
586+
│ │ ├── clean.py # Cleaning commands
587+
│ │ ├── map.py # Map management
588+
│ │ └── ...
589+
│ └── b01/ # B01 device traits
590+
│ ├── q10/ # Q10 series (vacuum, command)
591+
│ └── q7/ # Q7 series
585592
├── mqtt/ # MQTT session management
586593
│ ├── session.py # Base session interface
587594
│ └── roborock_session.py # MQTT session with idle timeout

0 commit comments

Comments
 (0)