@@ -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
255259sequenceDiagram
@@ -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
516520The 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