matterbridge-dyson-care 0.3.0 → 0.5.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/CHANGELOG.md +26 -0
- package/README.md +43 -22
- package/apps/frontend/build/app.js +257 -1
- package/apps/frontend/build/app.js.map +3 -3
- package/apps/frontend/build/styles.css +0 -1
- package/dist/accessory/dysonAccessory.js +43 -12
- package/dist/accessory/endpoints.js +44 -13
- package/dist/accessory/layout.js +5 -2
- package/dist/accessory/matterState.js +30 -6
- package/dist/accessory/pendingCommand.js +25 -2
- package/dist/config.js +16 -7
- package/dist/controls.js +7 -2
- package/dist/mapping.js +10 -2
- package/dist/module.js +40 -26
- package/dist/platform/endpointIds.js +49 -0
- package/dist/platform/machineSync.js +0 -1
- package/dist/setup/probe.js +23 -0
- package/dist/setup/setupApi.js +1 -1
- package/npm-shrinkwrap.json +48 -10
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.5.0] - 2026-10-25
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- [devices]: Add a fan as an option for the oscillation, in place of the rocking, for the apps that show neither the rocking nor a mode select. Its first speed stands the machine still and each speed above it is an angle it sweeps, narrowest first, and its fan mode Auto is the breeze of a humidifier whose barrel turns. The fan of the Big+Quiet tilts it to 0°, 25° and 50° and breezes in auto. The on/off of the fan is the power of the machine, and the fan's own on/off does nothing. A machine with no angle to make a speed of gets a switch instead.
|
|
12
|
+
- [setup]: Offer the fan as a choice for the oscillation and the tilt in the Options step, with the speeds the machine would get, on a machine that has an angle to make a speed of. The home page describes it as a fan of its own.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- [devices]: **Breaking:** devices stored by an earlier version change their identity in Matter at the first start, and the Matter apps take them for new devices: put them back in their rooms once. The name of a device in Matterbridge is made of the serial number of its machine, such as `Dyson NK6-EU-MHA0000A`, and the name given in the setup page is the label of the device, which the Matter apps show. Matterbridge derives the identity of a device from its name, so a new name no longer builds the device again: it is written to the label of each endpoint that is a device of its own, and the apps keep the device with its room and its automations.
|
|
17
|
+
- [devices]: A change of how a device appears in Matter, a reading its machine gives for the first time and a firmware that gives the machine other controls no longer build the device again at once. The device keeps its endpoints, and is built again with its new options at the next restart of Matterbridge, which Matterbridge and the setup page ask for. Taking the endpoints of a device away and registering them again while Matterbridge runs made Apple Home take the device for a new one, with its room and its automations lost; across a restart the endpoint numbers are kept.
|
|
18
|
+
- [devices]: An endpoint that is brought back after it was taken away, such as a switch turned off and on again in the options, gets a new endpoint id, and with it a new endpoint number instead of the one it had: Apple Home could not change the settings of a device that came back under its old number. The machine and the endpoints that stay keep theirs.
|
|
19
|
+
- [devices]: The product name of a machine stays as it was when the machine was added: Matterbridge makes the identity of the device in Matter from it too, so the machine list no longer updates it.
|
|
20
|
+
|
|
21
|
+
## [0.4.0] - 2026-10-20
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- [setup]: Set a machine to the Dyson cloud only in the Connection of its options, so that each connection skips the search of the network, which takes up to 3 seconds when the machine is not there. The Connect step searches the network for a new machine beside its check through the cloud, and starts one it does not find on the cloud only.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- [devices]: Find each machine on the local network by the service it announces over mDNS, with dyson-control 0.8.2, in place of its name `<serialNumber>.local`. The search runs again on each connection, so the plugin follows a machine its router gives a new IP address, and it needs no Avahi on Linux. A machine the search does not find in 3 seconds is reached through the Dyson cloud. A host given in the setup page is still used in place of the search.
|
|
30
|
+
- [setup]: The Connection field of the options leaves the host empty to search the network, and a machine online through the cloud alone says that it was not found on the network, or did not answer at the host given.
|
|
31
|
+
- [deps]: Update dyson-control to 0.8.2.
|
|
32
|
+
|
|
7
33
|
## [0.3.0] - 2026-10-20
|
|
8
34
|
|
|
9
35
|
### Added
|
package/README.md
CHANGED
|
@@ -17,14 +17,14 @@ It is a [Matterbridge](https://matterbridge.io) plugin built on [dyson-control](
|
|
|
17
17
|
## Why this plugin
|
|
18
18
|
|
|
19
19
|
- **It finds your machines for you.** Sign in once in the setup page and it lists every machine of your Dyson account, with whether it can control each one. There is no serial number, credential or configuration file to look up: see [Guided setup](#guided-setup).
|
|
20
|
-
- **It fits the Matter app you use.** Matter apps differ in what they show, so you choose how each control appears: the oscillation, the night mode and the airflow direction on the fan itself or as switches, the auto mode as a fan mode, a switch or a step,
|
|
20
|
+
- **It fits the Matter app you use.** Matter apps differ in what they show, so you choose how each control appears: the oscillation, the night mode and the airflow direction on the fan itself or as switches, the auto mode as a fan mode, a switch or a step, a mode select for the oscillation angle or the target humidity, and a fan of its own for the oscillation, whose speeds are its angles. Presets for Apple Home, Google Home and the apps with full Matter support give you a starting point: see [Presets](#presets).
|
|
21
21
|
- **It offers only what your machine can do.** The plugin reads which controls each machine carries from its type, its model, its variant and its firmware, and builds its device in Matter from that. A heater gets a thermostat, a humidifier its humidifying, a purifier its air quality sensor.
|
|
22
22
|
- **It reaches more of the machine than the power and the fan.** Besides the fan speed, the auto mode, the oscillation and the night mode, you get the oscillation angle, the tilt, the heating, the humidifying, find and follow, the filters, and switches for the child lock, the jet focus, the UV light, the ioniser and the like: see the [comparison](#compared-with-other-dyson-plugins).
|
|
23
23
|
- **It shows the air quality.** A purifier gets an air quality sensor with the air quality of its worst pollutant and each pollutant it measures: PM2.5, PM10, VOC, NO₂, formaldehyde and CO₂.
|
|
24
24
|
- **You name each machine.** The MyDyson app names a machine after its room, which several machines can share: the setup page starts from that name and lets you give each machine a name of its own in Matter. A machine whose firmware gains a control gets it.
|
|
25
25
|
- **It talks to your machines on your network.** Each machine is reached on the local network first, which answers quicker and keeps working while the Dyson cloud or the internet is down, and through the Dyson cloud when it does not answer there. There is no address or password to type: see [Connection](#connection).
|
|
26
26
|
- **It says when a machine stops answering.** After two reads in a row fail, or when its connection does not open again, your Matter app shows the machine as unreachable, and it comes back by itself as soon as the machine answers again.
|
|
27
|
-
- **
|
|
27
|
+
- **Almost nothing needs a restart.** Sign in, add, rename, reconnect and remove machines while Matterbridge keeps running. Only a change of how a machine appears in Matter waits for the next restart, which the setup page and Matterbridge ask for.
|
|
28
28
|
|
|
29
29
|
## Requirements
|
|
30
30
|
|
|
@@ -56,9 +56,9 @@ Then it walks through three steps:
|
|
|
56
56
|
|
|
57
57
|
1. **Find.** The page lists the machines of your account and marks those already set up. It says why it cannot control one: a robot vacuum or another machine that is not a purifier, a fan, a heater or a humidifier, a machine of a type dyson-control does not know yet, or one reached through a Dyson cloud service it cannot connect to yet.
|
|
58
58
|
2. **Connect.** For each machine you picked, the plugin checks that it answers through the Dyson cloud, and reads which sensors it has.
|
|
59
|
-
3. **Options.** The name the machine gets in Matter, starting from its room name in the MyDyson app, whether it appears as an air purifier or a fan, and how the fan, the oscillation or the tilt, the night mode, the airflow direction, the find and follow, the heating, the humidifying, the clean cycle, the [more controls](#more-controls) and the readings appear in Matter, from what the machine can do, and whether they are one device or several. Start from a [preset](#presets) or choose each one yourself. Last, the
|
|
59
|
+
3. **Options.** The name the machine gets in Matter, starting from its room name in the MyDyson app, whether it appears as an air purifier or a fan, and how the fan, the oscillation or the tilt, the night mode, the airflow direction, the find and follow, the heating, the humidifying, the clean cycle, the [more controls](#more-controls) and the readings appear in Matter, from what the machine can do, and whether they are one device or several. Start from a [preset](#presets) or choose each one yourself. Last, whether the machine is reached on your network first or through the Dyson cloud only, and the host it is reached at on your network, left empty to search the network for it: see [Connection](#connection).
|
|
60
60
|
|
|
61
|
-
Afterwards the same page lists your machines with their status: online on your network or through the Dyson cloud, connecting while a machine just added
|
|
61
|
+
Afterwards the same page lists your machines with their status: online on your network or through the Dyson cloud, connecting while a machine just added connects, not answering, or not started. A machine online through the cloud alone says that it was not found on your network, or did not answer at the host given. Under each machine it shows how it appears in Matter, the life left in its filters, its clean cycle, such as when the next one is due or how long one that runs has left, how long the drying of its wick has left, and the faults it reports, such as a filter to replace or an empty tank. From there you can add more, change the options of one, reconnect one that stopped answering, remove one, switch to another account, sign in again when the Dyson cloud no longer accepts the sign-in, or sign out. Adding, renaming, reconnecting and removing need no Matterbridge restart; a change of how one appears in Matter takes effect at the next restart, which the page and Matterbridge ask for. Matterbridge's own list of devices shows a machine added or removed here once you reload its page, named after its serial number, such as `Dyson NK6-EU-MHA0000A`: the name you give it is what the Matter apps show.
|
|
62
62
|
|
|
63
63
|
<table>
|
|
64
64
|
<tr>
|
|
@@ -113,7 +113,7 @@ The screenshots show the setup page with simulated machines: the plugin's own se
|
|
|
113
113
|
| More controls | Switches or mode selects for the child lock, the UV light and the like, on a machine that has them: see [More controls](#more-controls) |
|
|
114
114
|
| Readings | An air quality sensor, a temperature sensor and a humidity sensor, each once the machine gives its reading: see [Readings](#readings) |
|
|
115
115
|
|
|
116
|
-
A switch or a mode select is for the Matter apps that do not show a control in its place on the fan control: it comes beside that place, never in place of it, so the place stays for the apps that show it. A control that has a place on the fan control is never hidden, because an app that does not show the place leaves it out. The oscillation is the one exception: its switch or its
|
|
116
|
+
A switch or a mode select is for the Matter apps that do not show a control in its place on the fan control: it comes beside that place, never in place of it, so the place stays for the apps that show it. A control that has a place on the fan control is never hidden, because an app that does not show the place leaves it out. The oscillation is the one exception: its switch, its select or its fan takes the place of the rocking, because Apple Home mishandles the rocking.
|
|
117
117
|
|
|
118
118
|
### How it is built in Matter
|
|
119
119
|
|
|
@@ -127,6 +127,7 @@ flowchart TD
|
|
|
127
127
|
thermostat["Thermostat<br/>Thermostat, heating only, and Thermostat User Interface Configuration on a heater with a temperature unit"]
|
|
128
128
|
switches["On/Off Plug-in Unit, one for each switch<br/>tagged 1 Auto Mode, 2 Night Mode and so on<br/>On/Off"]
|
|
129
129
|
selects["Mode Select, one for each select: the oscillation or the tilt,<br/>the find and follow, the target humidity, the water hardness,<br/>the air quality target and the wick drying speed<br/>Mode Select"]
|
|
130
|
+
oscillation["Fan, for the oscillation or the tilt, tagged Oscillation<br/>On/Off, Fan Control"]
|
|
130
131
|
air["Air Quality Sensor<br/>Air Quality, and a concentration measurement for each pollutant"]
|
|
131
132
|
sensors["Temperature Sensor, Humidity Sensor<br/>Temperature Measurement, Relative Humidity Measurement"]
|
|
132
133
|
end
|
|
@@ -134,11 +135,12 @@ flowchart TD
|
|
|
134
135
|
main -.-> thermostat
|
|
135
136
|
main -.-> switches
|
|
136
137
|
main -.-> selects
|
|
138
|
+
main -.-> oscillation
|
|
137
139
|
main -.-> air
|
|
138
140
|
main -.-> sensors
|
|
139
141
|
```
|
|
140
142
|
|
|
141
|
-
A solid line is always there. A dashed one is there when you choose it in the setup and the machine has it, and for a sensor once the machine gives its reading. The main endpoint also has the Bridged Node and Power Source device types, with the Identify, Bridged Device Basic Information and Power Source clusters: the
|
|
143
|
+
A solid line is always there. A dashed one is there when you choose it in the setup and the machine has it, and for a sensor once the machine gives its reading. The main endpoint also has the Bridged Node and Power Source device types, with the Identify, Bridged Device Basic Information and Power Source clusters: the serial number of the machine, the name you give it, whether it is reachable, and that it runs on mains power. Its parts have the Identify cluster alone, because in Matter the rest belongs to the device. The setup can also make each part a device of its own: see [One device or several](#one-device-or-several).
|
|
142
144
|
|
|
143
145
|
| Device type | ID | Stands for |
|
|
144
146
|
| ------------------- | ------ | ----------------------------------------------------- |
|
|
@@ -146,7 +148,7 @@ A solid line is always there. A dashed one is there when you choose it in the se
|
|
|
146
148
|
| Bridged Node | 0x0013 | Each device: its name, serial number and reachability |
|
|
147
149
|
| Power Source | 0x0011 | Each device: mains powered |
|
|
148
150
|
| Air Purifier | 0x002D | The machine, as an air purifier |
|
|
149
|
-
| Fan | 0x002B | The machine, as a fan
|
|
151
|
+
| Fan | 0x002B | The machine, as a fan, or its oscillation |
|
|
150
152
|
| Thermostat | 0x0301 | The heating of a heater |
|
|
151
153
|
| On/Off Plug-in Unit | 0x010A | Each switch |
|
|
152
154
|
| Mode Select | 0x0027 | Each select |
|
|
@@ -198,6 +200,7 @@ A machine that dyson-control reads as not oscillating, such as the type 965, get
|
|
|
198
200
|
| Native rocking | The left and right rocking of the fan control, as Matter has it. Not every app shows it |
|
|
199
201
|
| A switch | A switch named `<name> Oscillation`, in place of the rocking. On sweeps the angle set in the MyDyson app |
|
|
200
202
|
| A mode select | A mode select named `<name> Oscillation`, in place of the rocking, with Off and the angles the machine sweeps: see below. Few Matter apps show it: see [Mode selects](#mode-selects) |
|
|
203
|
+
| A fan | A fan named `<name> Oscillation`, in place of the rocking: see [Oscillation fan](#oscillation-fan) |
|
|
201
204
|
|
|
202
205
|
The mode select offers what the machine takes:
|
|
203
206
|
|
|
@@ -211,15 +214,29 @@ A sweep the select does not list, such as one set in the MyDyson app, leaves the
|
|
|
211
214
|
|
|
212
215
|
A machine that pauses its oscillation while it stands by takes it on and off in modes of their own, which the plugin sends in place of on and off while the machine stands by, as dyson-control asks.
|
|
213
216
|
|
|
217
|
+
#### Oscillation fan
|
|
218
|
+
|
|
219
|
+
Every Matter app shows a fan, so the oscillation can be one of its own, for the apps that show neither the rocking nor a mode select. Its speeds are the angles the machine can be at, from the first, and the breeze of a machine that has one is its fan mode Auto. Its speeds are steps or a percentage, as you choose for the fan speed:
|
|
220
|
+
|
|
221
|
+
| Machine | Speeds | Auto |
|
|
222
|
+
| ----------------------------------- | ------------------------------------------------------------------------------------ | ------ |
|
|
223
|
+
| One whose firmware takes two angles | Still, then the sweeps 45°, 90°, 180° and 350°, centred as on the mode select | None |
|
|
224
|
+
| One with preset angles | Still, then its presets: 45°, 90°, 180° and 350°, or 15°, 40° and 70° on some models | None |
|
|
225
|
+
| A humidifier whose barrel turns | Still, then 45° and 90° | Breeze |
|
|
226
|
+
| The Big+Quiet, which tilts | 0°, 25° and 50° | Breeze |
|
|
227
|
+
|
|
228
|
+
Still is the first speed: the machine stops oscillating and stays where it is. The on/off of the fan is the power of the machine: it is on while the machine is, whatever the machine oscillates. Its own on and off, and setting it to off or 0, send nothing, and the fan goes back to what the machine holds. A speed or Auto on a machine that is off can turn it on, as the oscillation and the tilt do: see [Power](#power). An angle the fan does not have, such as one set in the MyDyson app, shows the fan on at the speed it showed before. Matter has the fan modes Low, Medium and High for at least three speeds. A machine that oscillates only on and off, takes its two angles only as one direction, or offers a breeze alone, has no angle to make a speed of: the oscillation is a switch on it.
|
|
229
|
+
|
|
214
230
|
### Tilt
|
|
215
231
|
|
|
216
232
|
The Big+Quiet tilts in place of oscillating: to 0°, 25° or 50°, or back and forth in its breeze. Its oscillation options are for the tilt:
|
|
217
233
|
|
|
218
|
-
| Option | In Matter
|
|
219
|
-
| -------------- |
|
|
220
|
-
| Native rocking | The up and down rocking of the fan control. On breezes, and off tilts the machine back to the angle it was at, or to 0°. Not every app shows it
|
|
221
|
-
| A switch | A switch named `<name> Oscillation`, in place of the rocking, which breezes the same way
|
|
222
|
-
| A mode select | A mode select named `<name> Tilt`, in place of the rocking, with 0°, 25°, 50° and Breeze
|
|
234
|
+
| Option | In Matter |
|
|
235
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
236
|
+
| Native rocking | The up and down rocking of the fan control. On breezes, and off tilts the machine back to the angle it was at, or to 0°. Not every app shows it |
|
|
237
|
+
| A switch | A switch named `<name> Oscillation`, in place of the rocking, which breezes the same way |
|
|
238
|
+
| A mode select | A mode select named `<name> Tilt`, in place of the rocking, with 0°, 25°, 50° and Breeze |
|
|
239
|
+
| A fan | A fan named `<name> Oscillation`, in place of the rocking, with 0°, 25° and 50° as its speeds and Breeze as its auto, on and off with the machine: see [Oscillation fan](#oscillation-fan) |
|
|
223
240
|
|
|
224
241
|
A tilt turns a machine that is off on, as in the MyDyson app: see [Power](#power).
|
|
225
242
|
|
|
@@ -324,7 +341,7 @@ Dyson rates the air from good to severe on one index for every pollutant, and Ma
|
|
|
324
341
|
| 11 to 13 | Extremely poor | Very poor | Critical |
|
|
325
342
|
| 13 and over | Severe | Extremely poor | Critical |
|
|
326
343
|
|
|
327
|
-
- **No machine says which readings it has**, beyond whether it measures the air, so the plugin goes by what the machine reads. The setup page offers a temperature or a humidity sensor only once the machine has given that reading, so a machine without them, such as the HushJet Purifier Compact, is offered neither. A sensor gets its place in Matter the first time the machine gives its reading: at once for one it gave during setup, and otherwise the
|
|
344
|
+
- **No machine says which readings it has**, beyond whether it measures the air, so the plugin goes by what the machine reads. The setup page offers a temperature or a humidity sensor only once the machine has given that reading, so a machine without them, such as the HushJet Purifier Compact, is offered neither. A sensor gets its place in Matter the first time the machine gives its reading: at once for one it gave during setup, and otherwise at the next restart of Matterbridge after the reading comes, which the setup page and Matterbridge ask for.
|
|
328
345
|
- **A reading keeps its place from then on**, so a sensor does not come and go in your Matter app.
|
|
329
346
|
- **A reading the machine does not give right now shows no value**, instead of the last one it gave.
|
|
330
347
|
- **Continuous monitoring.** A machine that can keep measuring the air while it is off can get a switch named `<name> Continuous Monitoring`. On keeps its readings fresh while it is off.
|
|
@@ -356,15 +373,16 @@ The thermostat, the switches, the mode selects and the sensors are parts of the
|
|
|
356
373
|
|
|
357
374
|
Matter names a device, not its parts, so what a part is called is up to the Matter app. One that reads the tags can show `Night Mode`, one that does not shows numbered outlets to rename yourself, and one that shows no parts at all shows the machine alone. This has not been tested in each Matter app: try it in yours, and turn it off if the parts do not show as you want.
|
|
358
375
|
|
|
359
|
-
Changing the choice
|
|
376
|
+
Changing the choice takes effect at the next restart of Matterbridge, which the setup page and Matterbridge ask for, and builds the parts anew: a Matter app takes them for new devices, so they lose the rooms, the names and the automations they had there. The machine itself stays.
|
|
360
377
|
|
|
361
378
|
## Connection
|
|
362
379
|
|
|
363
|
-
Each machine runs a broker of its own on the local network, which the MyDyson app talks to when it is on the same network. The plugin connects to it first, and to the Dyson cloud's when it does not answer, as [dyson-control](https://github.com/cheziyi/dyson-control#lan-connection) does given
|
|
380
|
+
Each machine runs a broker of its own on the local network, which the MyDyson app talks to when it is on the same network. The plugin connects to it first, and to the Dyson cloud's when it does not answer, as [dyson-control](https://github.com/cheziyi/dyson-control#lan-connection) does given an account:
|
|
364
381
|
|
|
365
|
-
- **The
|
|
382
|
+
- **The search.** A machine announces its broker over mDNS, and the plugin finds it there on each connection, a reconnect included, so it follows a machine its router gives a new IP address. It needs no Avahi on Linux. Multicast does not reach a Docker container on the default bridge network: run Matterbridge with `--network host`, or enter the IP address of the machine in its options in the setup page, ideally one your router keeps for it. A machine given a host is no longer searched for, and a new host connects the machine again, without building it again in Matter.
|
|
366
383
|
- **The password.** The machine list of the account gives the password of each machine's broker, which is stored with the device and never shown in the setup page. A device stored by an earlier version gets it at the next read of the machine list, at the start. Until then, and for a machine the cloud gives none for, it is reached through the cloud alone.
|
|
367
|
-
- **The fallback.** Each connection, a reconnect included, tries the network first and opens the cloud's when the machine's own broker does not answer, refuses the password or its
|
|
384
|
+
- **The fallback.** Each connection, a reconnect included, tries the network first and opens the cloud's when the search finds nothing in 3 seconds, or the machine's own broker does not answer, refuses the password or its host does not resolve. A host given that does not answer costs up to 10 seconds before the cloud. A reconnect tries the network again, so a machine that fell back to the cloud goes back to the network once it answers there.
|
|
385
|
+
- **The cloud only.** A machine can be set to the Dyson cloud alone in its options, so that each connection skips the search, for a machine that is never on the network of Matterbridge. The **Connect** step of the guided setup searches the network for a new machine beside its check through the cloud, and starts one it does not find on the cloud only. Choose your network in its options to search for it again.
|
|
368
386
|
- **The status.** The setup page shows whether each machine is online on your network or through the Dyson cloud, and the log says which one each connection goes through when it changes.
|
|
369
387
|
|
|
370
388
|
The Dyson account is still needed: it gives the machine list and the password, and signing out stops every machine, on the network as well. The **Connect** step of the guided setup checks each machine through the cloud.
|
|
@@ -384,7 +402,7 @@ This plugin is the one for a humidifier, and the one that reaches the oscillatio
|
|
|
384
402
|
| A machine that stops answering | Shown as unreachable after two failed reads, or when its connection does not open again | Shown as unreachable when its connection closes, or when the machine says it is leaving |
|
|
385
403
|
| Device types | An air purifier or a fan, as you choose, with a thermostat, the switches, the mode selects and the sensors as parts of it or as devices of their own | An air purifier for every machine, the fans included, with an air quality sensor and a thermostat as devices of their own. Temperature and humidity sensors, and one composed device, are optional |
|
|
386
404
|
| Fan speed and auto | Steps or a percentage, and the auto mode as a fan mode, a switch or a step | Speeds 1 to 10, and the Auto fan mode |
|
|
387
|
-
| Oscillation | The rocking of the fan control, a switch,
|
|
405
|
+
| Oscillation | The rocking of the fan control, a switch, a mode select with the angles the machine sweeps, or a fan with them as its speeds. The tilt of the Big+Quiet the same way | The rocking of the fan control, on and off. The tilt of the Big+Quiet as up and down rocking. No angles |
|
|
388
406
|
| Night mode | The sleep wind of the fan control, and an optional switch | The sleep wind of the fan control |
|
|
389
407
|
| Heating | A thermostat or a switch | A thermostat |
|
|
390
408
|
| Humidifying | Switches or a mode select for the target humidity, and the water hardness | No. The breeze of the Humidify+Cool as its natural wind |
|
|
@@ -404,11 +422,12 @@ Outside Matterbridge, [homebridge-dyson-pure-cool](https://github.com/lukasroegn
|
|
|
404
422
|
|
|
405
423
|
The plugin knows each machine by its **serial number**, which is also the serial number it has in Matter. A thermostat, a switch, a mode select or a sensor that is a device of its own has that serial number with a dash and a letter after it, such as `NK6-EU-MHA0000A-N` for the night mode switch and `NK6-EU-MHA0000A-T` for the thermostat:
|
|
406
424
|
|
|
407
|
-
- **The firmware is kept up to date.** The plugin reads the machine list of your account when it starts, when you sign in, every 15 minutes and when you open the setup page. It takes the firmware, the variant, the model, the
|
|
408
|
-
- **Each device has the name you give it in the setup page**, of up to 32 characters, which starts as the room name of the MyDyson app, followed by a number when another device has that name already, such as `Bedroom 2`. A machine without a room name starts with none, for you to type. A new room name in the MyDyson app does not change it: the options of the device show the new one beside its product name and serial number, as soon as you open the setup page again. No two devices share a name, because the name is what Matter
|
|
409
|
-
- **A new name
|
|
410
|
-
- **What each machine can do** is read from its type, its model, its variant and its firmware capabilities, as the cloud reports them. When a firmware update gives a machine other controls, it is built again in Matter
|
|
425
|
+
- **The firmware is kept up to date.** The plugin reads the machine list of your account when it starts, when you sign in, every 15 minutes and when you open the setup page. It takes the firmware, the variant, the model, the room name and the password of its broker on the network each machine has now, and starts again a machine that could not start. The product name stays as it was when the machine was added, because Matterbridge makes the identity of the device in Matter from it too. A machine the cloud now reports with another type, or on a Dyson cloud service dyson-control cannot connect to, keeps what was stored, and a warning is logged.
|
|
426
|
+
- **Each device has the name you give it in the setup page**, of up to 32 characters, which starts as the room name of the MyDyson app, followed by a number when another device has that name already, such as `Bedroom 2`. A machine without a room name starts with none, for you to type. A new room name in the MyDyson app does not change it: the options of the device show the new one beside its product name and serial number, as soon as you open the setup page again. No two devices share a name, because the name is what the Matter apps show and what its switches and sensors are named after, shortened where the whole would pass 32 characters.
|
|
427
|
+
- **A new name changes nothing else in Matter.** The device keeps its identity: in Matterbridge's own list of devices it is named after the serial number, such as `Dyson NK6-EU-MHA0000A`, and the name you give it is the label the Matter apps show, which a new name replaces in place. The apps keep its room and its automations, and one that let you rename it there keeps the name you chose.
|
|
428
|
+
- **What each machine can do** is read from its type, its model, its variant and its firmware capabilities, as the cloud reports them. When a firmware update gives a machine other controls, a setting it no longer takes is reset, and the machine is built again in Matter at the next restart of Matterbridge, which the setup page and Matterbridge ask for.
|
|
411
429
|
- **The readings each machine has given** are kept in the plugin's storage, so that its sensors are there from the start after a restart. Removing a machine in the setup page removes them too.
|
|
430
|
+
- **The endpoint ids of each device** are kept there too, and outlive its removal: an endpoint that comes back after it was taken away gets a new id, so that the Matter apps see a new device instead of the one they lost.
|
|
412
431
|
|
|
413
432
|
The account and the devices are stored in the plugin configuration, which Matterbridge keeps in `matterbridge-dyson-care.config.json`. The account is stored as the sign-in token Dyson gives the plugin, with its email address and country, and never the password. Each device is stored with the password of its machine's broker on the network, as the machine list gives it. The devices are added, changed and removed in the setup page only: the Matterbridge config editor does not list them.
|
|
414
433
|
|
|
@@ -430,6 +449,8 @@ The settings also have Matterbridge's own `debug` and `unregisterOnShutdown`, fo
|
|
|
430
449
|
- <a id="power"></a>**Controls turn a machine on, as in the MyDyson app.** dyson-control sends the power on with nearly every control, as the MyDyson app does, so changing almost anything on a machine that is off turns it on. The continuous monitoring, the water hardness, the temperature unit, the air quality target and the wick drying leave it off, and so does turning off find and follow or an oscillation that sweeps angles. On a machine of the first generation, only the power, a fan speed and the auto mode turn it on. Turning the heating or the humidifying off on a machine that is off turns it on too, with the fan alone.
|
|
431
450
|
- **Commands are grouped.** A Matter app often changes several things at once. The plugin waits until no change has come for 300 milliseconds and sends the changes to the machine as one command.
|
|
432
451
|
- **A device is reported as unreachable** after two reads in a row fail, or when its connection closes and does not open again on the network or through the cloud. It is reachable again on the first read that works, or the first state the machine sends.
|
|
452
|
+
- **What the Matter apps keep follows one rule: whatever stays keeps its room and its automations, and whatever was removed comes back as new.** A restart, a new name, a new connection and a change of options keep the machine and every switch, mode select, fan or sensor that stays. One that an option change adds is new, in the default room. One that is removed is gone, and turned on again later it is new as well, never the one the apps knew. A removed machine added again is new too, with all its parts.
|
|
453
|
+
- **Changing how a machine appears in Matter** takes effect at the next restart of Matterbridge, which the setup page and Matterbridge ask for. Until then the machine keeps its current controls.
|
|
433
454
|
- **The setup page is as open as Matterbridge itself.** Anyone who can reach the Matterbridge frontend can use it, and so control the machines of the signed-in account. It never returns the stored sign-in token.
|
|
434
455
|
- **Faults are logged.** The plugin asks a machine for its faults when it first reads it and at the first read after each 15 minutes, and takes those it sends as they change. It logs each change, and the setup page shows them.
|
|
435
456
|
- **Not in Matter:** the clean cycle, how long the drying of a wick has left and the faults, which the setup page shows instead, the sleep timer, and the temperature unit of a machine without a thermostat. A machine on the RabbitMQ broker of the Dyson cloud, and an account that signs in with a mobile number, are not supported by dyson-control.
|