iobroker.miele-unbound 1.0.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/LICENSE +21 -0
- package/README.md +166 -0
- package/README_de.md +165 -0
- package/admin/i18n/de.json +49 -0
- package/admin/i18n/en.json +49 -0
- package/admin/i18n/es.json +49 -0
- package/admin/i18n/fr.json +49 -0
- package/admin/i18n/it.json +49 -0
- package/admin/i18n/nl.json +49 -0
- package/admin/i18n/pl.json +49 -0
- package/admin/i18n/pt.json +49 -0
- package/admin/i18n/ru.json +49 -0
- package/admin/i18n/uk.json +49 -0
- package/admin/i18n/zh-cn.json +49 -0
- package/admin/jsonConfig.json +448 -0
- package/admin/miele-unbound.png +0 -0
- package/build/lib/api.js +139 -0
- package/build/lib/api.js.map +1 -0
- package/build/lib/backup.js +62 -0
- package/build/lib/backup.js.map +1 -0
- package/build/lib/cloud.js +159 -0
- package/build/lib/cloud.js.map +1 -0
- package/build/lib/crypto.js +71 -0
- package/build/lib/crypto.js.map +1 -0
- package/build/lib/definitions.js +721 -0
- package/build/lib/definitions.js.map +1 -0
- package/build/lib/discovery.js +192 -0
- package/build/lib/discovery.js.map +1 -0
- package/build/lib/eco.js +171 -0
- package/build/lib/eco.js.map +1 -0
- package/build/lib/profiles.js +402 -0
- package/build/lib/profiles.js.map +1 -0
- package/build/lib/types.js +3 -0
- package/build/lib/types.js.map +1 -0
- package/build/main.js +788 -0
- package/build/main.js.map +1 -0
- package/io-package.json +152 -0
- package/package.json +87 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 meistermopper <meister.mopper@gmail.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="admin/miele-unbound.png" alt="Logo" width="200" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# ioBroker.miele-unbound
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/iobroker.miele-unbound)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
10
|
+
*Read this in another language: [Deutsche Dokumentation](README_de.md).*
|
|
11
|
+
|
|
12
|
+
A high-performance, local-first ioBroker adapter connecting modern **Miele@Home** appliances
|
|
13
|
+
directly over your local area network (LAN) without continuous cloud reliance.
|
|
14
|
+
|
|
15
|
+
By leveraging the local `MieleH256` / DOP2 protocol on port 80, `ioBroker.miele-unbound` provides
|
|
16
|
+
sub-second state updates, maximum privacy, and complete independence from internet outages or Miele
|
|
17
|
+
cloud rate limits. At the same time, it incorporates comprehensive device-type profiles and data point
|
|
18
|
+
definitions for over 30 appliance classes.
|
|
19
|
+
|
|
20
|
+
## Key Features
|
|
21
|
+
|
|
22
|
+
- **100% Local Operation:** Speaks directly to appliance communication modules (e.g. EK037, EK057).
|
|
23
|
+
- **Sub-second Response Times:** Instant state updates without third-party cloud polling delays.
|
|
24
|
+
- **Rich Device Profiles:** Over 30 appliance types with dedicated states, roles, and units.
|
|
25
|
+
- **Human-Readable & Raw Values:** Enriched plain-text statuses, program names, and phases.
|
|
26
|
+
- **Hardware-Safe Polling:** Strict sequential request queue per appliance to prevent XKM crashes.
|
|
27
|
+
- **Painless Credential Migration:** Encrypted export/import and manual entry for scratch installs.
|
|
28
|
+
- **Remote Control (Opt-in):** Start, stop, pause, power, and lighting controls via DOP2 opcodes.
|
|
29
|
+
|
|
30
|
+
## Quick Start & Setup Guide
|
|
31
|
+
|
|
32
|
+
1. Install the adapter and create an instance.
|
|
33
|
+
2. In the **Login & Pairing** tab, select your country and follow the step-by-step login below.
|
|
34
|
+
3. Paste the captured `miele://...` address into the **miele:// Redirect URL** field and click **Fetch GroupKey**.
|
|
35
|
+
4. Save settings. The adapter discovers your appliances and creates their states.
|
|
36
|
+
|
|
37
|
+
If running in Docker with bridge networking, auto-discovery cannot receive multicast packets — enter appliance IP addresses manually on the **Appliances** tab. See [Network & Docker](#network-ports--docker).
|
|
38
|
+
|
|
39
|
+
### The Login, Step by Step
|
|
40
|
+
|
|
41
|
+
The final redirect address uses the `miele://` mobile app scheme. Desktop web browsers cannot handle this custom scheme, causing the browser to halt on a spinning wheel or a loading error. **This interruption is expected and indicates success.**
|
|
42
|
+
|
|
43
|
+
1. **Prepare Browser DevTools:**
|
|
44
|
+
- Click **Open Login Page** (a new browser tab opens).
|
|
45
|
+
- Press **F12** (or right-click and select *Inspect*) to open Developer Tools.
|
|
46
|
+
- Switch to the **Network** tab.
|
|
47
|
+
- Ensure network requests are retained:
|
|
48
|
+
- **Chrome / Edge / Brave:** Check **Preserve log**.
|
|
49
|
+
- **Firefox:** Click the gear icon ⚙️ and check **Persist Logs**.
|
|
50
|
+
2. **Sign In:**
|
|
51
|
+
- Enter your standard Miele app account email and password.
|
|
52
|
+
- Complete the sign-in. The browser will halt on a spinning circle or display a navigation error.
|
|
53
|
+
3. **Copy Redirect URL:**
|
|
54
|
+
- In the DevTools **Network** tab, scroll to the last recorded request (often highlighted in red).
|
|
55
|
+
- Look for an entry starting with `redirect?redirect_uri=miele...` or `miele://oauth2-code/...`.
|
|
56
|
+
- Right-click the request ➔ **Copy** ➔ **Copy URL**.
|
|
57
|
+
- Paste the copied address into the adapter's **miele:// Redirect URL** field and click **Fetch GroupKey**.
|
|
58
|
+
|
|
59
|
+
The household GroupID and GroupKey are stored in the instance configuration (with the GroupKey safely encrypted). This pairing process is only required once.
|
|
60
|
+
|
|
61
|
+
### Alternative: Encrypted Backup & Manual Credentials
|
|
62
|
+
|
|
63
|
+
In the **Credentials & Backup** tab, the adapter provides two flexible options for server migrations, fresh installs, or disaster recovery:
|
|
64
|
+
|
|
65
|
+
#### What does "Encrypted Backup" do?
|
|
66
|
+
The local `GroupKey` is the master cryptographic key granting local LAN access to all Miele appliances in your household. With the encrypted backup feature, you can safely export your credentials and migrate them to another system **without ever needing to repeat the Miele cloud login or DevTools token capture**:
|
|
67
|
+
* **What is included in the backup?**
|
|
68
|
+
* The household **GroupID** and the secret **GroupKey**.
|
|
69
|
+
* All manually configured appliances and IP addresses (**Appliances table**).
|
|
70
|
+
* Creation timestamp.
|
|
71
|
+
* **How is it encrypted?**
|
|
72
|
+
* Strong industry-standard **AES-256-GCM** (authenticated encryption with built-in tampering protection).
|
|
73
|
+
* Key derivation from your chosen **Passphrase** via **PBKDF2** with 100,000 rounds (SHA-256) and a cryptographically random 16-byte salt.
|
|
74
|
+
* This guarantees that your sensitive local LAN key is never exported or stored in plain text and can safely be stored in external notes or backups.
|
|
75
|
+
* **Exporting:** Enter a strong passphrase ➔ click **Export Backup** ➔ copy and store the generated backup string safely.
|
|
76
|
+
* **Restoring:** On a new or reinstalled instance, simply paste the backup string and enter your passphrase ➔ click **Import Backup** ➔ your credentials and manual appliance IPs are immediately restored.
|
|
77
|
+
|
|
78
|
+
#### Manual Entry
|
|
79
|
+
Alternatively, if you already have your household GroupID and 64-character hexadecimal GroupKey saved from a previous installation, you can paste them directly into the respective fields.
|
|
80
|
+
|
|
81
|
+
## Network: Ports & Docker
|
|
82
|
+
|
|
83
|
+
| Direction | Port | Purpose | Required |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| In/Out | UDP 5353 (mDNS) | Automatic LAN device discovery | For auto-discovery |
|
|
86
|
+
| Outbound | TCP 80 ➔ appliances | Local DOP2/H256 polling and controls | Yes |
|
|
87
|
+
| Outbound | TCP 443 ➔ miele-iot.com | Fetch initial GroupKey pairing token | One-time login only |
|
|
88
|
+
|
|
89
|
+
**Docker & Bridge Networking:**
|
|
90
|
+
Containers with bridge networking do not forward multicast UDP traffic. In this configuration, automatic mDNS discovery will not find appliances. You can either:
|
|
91
|
+
1. Run the container with `network_mode: host` to enable multicast auto-discovery.
|
|
92
|
+
2. Or enter the IP addresses of your Miele appliances manually in the **Appliances** tab.
|
|
93
|
+
|
|
94
|
+
## Privacy & Local Operation
|
|
95
|
+
|
|
96
|
+
The adapter operates **strictly local-first**. The one-time Miele account login only serves to retrieve the household encryption key (`GroupKey`). During normal day-to-day operation:
|
|
97
|
+
- The adapter does not communicate with any cloud service.
|
|
98
|
+
- No user passwords or access tokens are stored or sent anywhere.
|
|
99
|
+
- Device state changes, energy metrics, and telemetry remain entirely inside your local network.
|
|
100
|
+
|
|
101
|
+
## Object Hierarchy
|
|
102
|
+
|
|
103
|
+
Each appliance is represented by its serial number as the device object:
|
|
104
|
+
|
|
105
|
+
- **`<serial>.info`**: Reachability, technical model name, material number, firmware version, IP.
|
|
106
|
+
- **`<serial>.state`**: Operating status, program ID and name, phase, remaining time, door, errors.
|
|
107
|
+
- **`<serial>.sensors`**: Temperature zones, spin speeds, drying steps, battery, ventilation.
|
|
108
|
+
- **`<serial>.eco`**: Targeted EcoFeedback energy (kWh/Wh), water consumption, and heating metrics.
|
|
109
|
+
- **`<serial>.control`**: Remote actions (start, stop, pause, power, lighting) when enabled.
|
|
110
|
+
|
|
111
|
+
## Legal Disclaimer
|
|
112
|
+
|
|
113
|
+
This is an **unofficial, community-developed** project and is **not affiliated with or endorsed by [Miele & Cie. KG](https://www.miele.com/)**. "Miele", "Miele@home", and related trademarks belong to Miele & Cie. KG and are used solely for identification and compatibility purposes.
|
|
114
|
+
|
|
115
|
+
The adapter utilizes local communication protocols reverse-engineered by the open-source community. Usage is at your own risk. The software is distributed under the MIT license without warranty of any kind.
|
|
116
|
+
|
|
117
|
+
## Changelog
|
|
118
|
+
|
|
119
|
+
### **WORK IN PROGRESS**
|
|
120
|
+
- Fix auto-translate GitHub workflow by granting contents write permission
|
|
121
|
+
- Add dedicated read-only backup export field with copy to clipboard button
|
|
122
|
+
- Do not persist transient backup credentials on save and restore clear button adornment
|
|
123
|
+
- Fix backup import by using jsonData parameter injection in jsonConfig sendTo buttons
|
|
124
|
+
- Auto-populate encrypted backup to UI field with one-click copy to clipboard
|
|
125
|
+
- Require password confirmation for backupPassphrase with repeat and visibility toggle
|
|
126
|
+
- Remove rounded corners from adapter logo to provide seamless solid background
|
|
127
|
+
- Expand setup guide with detailed step-by-step browser DevTools and Docker instructions
|
|
128
|
+
- Initial development combining local MieleH256 LAN engine with device profiles
|
|
129
|
+
- Added AES-256-GCM encrypted backup and restore for migrations and scratch installs
|
|
130
|
+
- Implemented device profile engine covering washers, dryers, dishwashers, and ovens
|
|
131
|
+
- Integrated targeted EcoFeedback readings without destructive leaf scanning
|
|
132
|
+
- Fixed OAuth authorization popup and enabled messagebox communication for sendTo
|
|
133
|
+
- Enhanced GroupKey pairing response with UI form sync and clean adapter unload
|
|
134
|
+
- Fix mDNS discovery resolving IP addresses across multiple network interfaces
|
|
135
|
+
- Persist OAuth PKCE challenge to disk to prevent CSRF state mismatch on reload
|
|
136
|
+
- Display active Household GroupID directly in pairing setup tab
|
|
137
|
+
- Add dynamic device route discovery and fix X-Signature response header parsing
|
|
138
|
+
- Add clear button styling (contained/outlined) for all JSONConfig sendTo actions
|
|
139
|
+
- Add detailed step-by-step pairing guide with browser DevTools instructions
|
|
140
|
+
- Add comprehensive program mappings for all Miele appliances and modern 200-series
|
|
141
|
+
- Add automated i18n translation script and full 11-language admin dictionaries
|
|
142
|
+
- Add automated documentation sync script mirroring READMEs into docs/ directory
|
|
143
|
+
- Redesign adapter logo featuring Miele red background and unchained emblem
|
|
144
|
+
- Adjust logo display size and centering in README files
|
|
145
|
+
- Expand .gitignore with IDE, OS, and package manager log exclusions
|
|
146
|
+
- Clean redundant test devDependencies and update io-package dependencies
|
|
147
|
+
- Add responsive breakpoint sizes in jsonConfig and deduplicate dependencies
|
|
148
|
+
- Add standard integration test and re-enable integration testing in CI
|
|
149
|
+
- Add release config, check-wip and manage-changelogs scripts for release automation
|
|
150
|
+
- Add GitHub Actions CI/CD workflows for multi-OS testing and auto-translation
|
|
151
|
+
- Add Dependabot configuration and auto-merge workflow for dependency updates
|
|
152
|
+
- Add GitHub issue templates for bug reports and feature requests
|
|
153
|
+
- Add iob.bat developer shortcut and devServerCli.md command reference
|
|
154
|
+
- Add commitlint configuration, husky Git hooks and AI commit message helper
|
|
155
|
+
- Document async robustness, hardware protection and lifecycle rules in AGENTS.md
|
|
156
|
+
|
|
157
|
+
Older changelog entries can be found in [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT License
|
|
162
|
+
|
|
163
|
+
Copyright (c) 2026 meistermopper <meister.mopper@gmail.com>
|
|
164
|
+
|
|
165
|
+
See [LICENSE](LICENSE) for more details.
|
|
166
|
+
|
package/README_de.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="admin/miele-unbound.png" alt="Logo" width="200" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# ioBroker.miele-unbound
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/iobroker.miele-unbound)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
10
|
+
*Hier geht es zur englischen Version: [English Documentation](README.md).*
|
|
11
|
+
|
|
12
|
+
Ein leistungsfähiger, lokaler ioBroker-Adapter zur direkten Einbindung moderner **Miele@Home**-Geräte
|
|
13
|
+
über das lokale Netzwerk (LAN) – komplett ohne dauerhafte Cloud-Verbindung.
|
|
14
|
+
|
|
15
|
+
Durch die Nutzung des lokalen `MieleH256` / DOP2-Protokolls auf Port 80 bietet `ioBroker.miele-unbound`
|
|
16
|
+
Reaktionszeiten im Millisekundenbereich, maximale Privatsphäre und Unabhängigkeit von
|
|
17
|
+
Internetausfällen oder Miele-Cloud-Limits. Gleichzeitig vereint er umfassende Geräteprofile und
|
|
18
|
+
exakte Datenpunkte für über 30 Geräteklassen.
|
|
19
|
+
|
|
20
|
+
## Hauptmerkmale
|
|
21
|
+
|
|
22
|
+
- **100 % Lokaler Betrieb:** Spricht direkt mit den WLAN-Modulen der Geräte (z. B. EK037, EK057).
|
|
23
|
+
- **Schnelle Reaktionszeiten:** Sofortige Statusaktualisierungen ohne Cloud-Latenzen.
|
|
24
|
+
- **Umfassende Geräteprofile:** Über 30 Gerätetypen mit spezifischen Datenpunkten, Rollen und Einheiten.
|
|
25
|
+
- **Klartexte & Rohwerte:** Selbsterklärende Statustexte, Programmnamen und Phasen für VIS und Skripte.
|
|
26
|
+
- **Schonendes Polling:** Strenge serielle Warteschlange je Gerät zur Vermeidung von XKM-Abstürzen.
|
|
27
|
+
- **Einfache Migration:** Verschlüsselter Export/Import und Direkteingabe für Neuinstallationen.
|
|
28
|
+
- **Gerätesteuerung (Opt-in):** Start, Stopp, Pause, Ein-/Ausschalten und Lichtsteuerung via DOP2.
|
|
29
|
+
|
|
30
|
+
## Schnellstart & Einrichtung
|
|
31
|
+
|
|
32
|
+
1. Adapter installieren und eine Instanz anlegen.
|
|
33
|
+
2. Im Reiter **Anmeldung & Pairing** das Land wählen und der folgenden Schritt-für-Schritt-Anleitung folgen.
|
|
34
|
+
3. Die abgefangene `miele://...`-Adresse in das Feld **miele://-Redirect-URL** einfügen und auf **GroupKey abrufen** klicken.
|
|
35
|
+
4. Speichern. Der Adapter findet die Geräte im LAN und legt die Datenpunkte an.
|
|
36
|
+
|
|
37
|
+
Läuft ioBroker in einem Docker-Container mit Bridge-Netzwerk, werden Multicast-Pakete nicht durchgeleitet — in diesem Fall die IP-Adressen der Geräte im Reiter **Geräte** manuell eintragen. Siehe [Netzwerk & Docker](#netzwerk--docker).
|
|
38
|
+
|
|
39
|
+
### Die Anmeldung, Schritt für Schritt
|
|
40
|
+
|
|
41
|
+
Die letzte Zieladresse nutzt das `miele://`-Schema der offiziellen Miele-App. Desktop-Browser können dieses Schema nicht öffnen, weshalb der Vorgang bei einem drehenden Ladekreis oder einer Fehlermeldung stehen bleibt. **Genau das ist das erwartete Zeichen für einen erfolgreichen Login.**
|
|
42
|
+
|
|
43
|
+
1. **Entwicklertools vorbereiten:**
|
|
44
|
+
- Auf **Login-Seite öffnen** klicken (ein neuer Browser-Tab öffnet sich).
|
|
45
|
+
- **F12** drücken (oder Rechtsklick ➔ *Untersuchen*), um die Entwicklertools zu öffnen.
|
|
46
|
+
- Auf den Tab **Netzwerk** (Network) wechseln.
|
|
47
|
+
- Sicherstellen, dass das Netzwerkprotokoll erhalten bleibt:
|
|
48
|
+
- **Chrome / Edge / Brave:** Haken bei **Log beibehalten** (*Preserve log*) setzen.
|
|
49
|
+
- **Firefox:** Zahnrad-Symbol ⚙️ ➔ **Protokolle dauerhaft anzeigen** (*Persist Logs*) aktivieren.
|
|
50
|
+
2. **Anmelden:**
|
|
51
|
+
- E-Mail-Adresse und Passwort des gewohnten Miele-App-Kontos eingeben und anmelden.
|
|
52
|
+
- Nach dem Absenden bleibt die Seite bei einem Ladekreis stehen oder meldet einen Ladefehler.
|
|
53
|
+
3. **Redirect-URL kopieren:**
|
|
54
|
+
- Im Netzwerk-Tab ganz nach unten zur letzten erfassten Zeile scrollen (oft rot markiert).
|
|
55
|
+
- Nach einem Eintrag suchen, der mit `redirect?redirect_uri=miele...` oder `miele://oauth2-code/...` beginnt.
|
|
56
|
+
- Zeile mit der rechten Maustaste anklicken ➔ **Adresse kopieren** (*Copy* ➔ *Copy URL*).
|
|
57
|
+
- Die kopierte Adresse im ioBroker-Admin in das Feld **miele://-Redirect-URL** einfügen und auf **GroupKey abrufen** klicken.
|
|
58
|
+
|
|
59
|
+
GroupID und GroupKey werden anschließend in der Konfiguration gespeichert (der GroupKey sicher verschlüsselt). Dieser Vorgang ist nur ein einziges Mal notwendig.
|
|
60
|
+
|
|
61
|
+
### Alternative: Verschlüsseltes Backup & Manuelle Zugangsdaten
|
|
62
|
+
|
|
63
|
+
Im Reiter **Zugangsdaten & Sicherung** bietet der Adapter zwei flexible Wege für Server-Umzüge, Neuinstallationen oder Sicherheitskopien:
|
|
64
|
+
|
|
65
|
+
#### Was bewirkt das „Verschlüsselte Backup“?
|
|
66
|
+
Der lokale `GroupKey` ist der kryptografische Generalschlüssel für die Steuerung und Statusabfrage aller Miele-Geräte in deinem Haushalt. Mit der Backup-Funktion kannst du deine Konfiguration sichern und auf ein anderes System übertragen, **ohne den Miele-Login jemals wiederholen zu müssen**:
|
|
67
|
+
* **Was wird gesichert?**
|
|
68
|
+
* Die Haushalts-**GroupID** und der geheime **GroupKey**.
|
|
69
|
+
* Alle manuell eingepflegten Geräte und IP-Adressen (**Geräte-Tabelle**).
|
|
70
|
+
* Zeitstempel der Sicherung.
|
|
71
|
+
* **Wie wird verschlüsselt?**
|
|
72
|
+
* Sicherer Industriestandard **AES-256-GCM** (authentifizierte Verschlüsselung mit Manipulationsschutz).
|
|
73
|
+
* Schlüsselableitung aus deiner gewählten **Passphrase** via **PBKDF2** mit 100.000 Runden (SHA-256) und zufälligem 16-Byte Salt.
|
|
74
|
+
* Dadurch kann der erzeugte Backup-String bedenkenlos extern abgespeichert werden, ohne dass der geheime LAN-Schlüssel im Klartext vorliegt.
|
|
75
|
+
* **Exportieren:** Eigene Passphrase vergeben ➔ Klick auf **Backup exportieren** ➔ Den generierten Backup-Text kopieren und sicher aufbewahren.
|
|
76
|
+
* **Wiederherstellen:** Auf der neuen oder zurückgesetzten Instanz einfach den Backup-Text und die Passphrase eingeben ➔ Klick auf **Backup importieren** ➔ Alle Zugangsdaten und manuellen IPs sind sofort wieder aktiv.
|
|
77
|
+
|
|
78
|
+
#### Manuelle Eingabe
|
|
79
|
+
Alternativ kannst du die Haushalts-GroupID und den 64-stelligen hexadezimalen GroupKey auch direkt aus einer Textnotiz oder einer früheren Instanz von Hand in die entsprechenden Felder eintragen.
|
|
80
|
+
|
|
81
|
+
## Netzwerk & Docker
|
|
82
|
+
|
|
83
|
+
| Richtung | Port | Zweck | Erforderlich |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| Ein-/Ausgehend | UDP 5353 (mDNS) | Automatische Geräteerkennung im LAN | Für Auto-Discovery |
|
|
86
|
+
| Ausgehend | TCP 80 ➔ Geräte | Lokale DOP2/H256-Abfragen und Steuerbefehle | Ja |
|
|
87
|
+
| Ausgehend | TCP 443 ➔ miele-iot.com | Einmaliger Abruf des GroupKeys | Nur beim Login |
|
|
88
|
+
|
|
89
|
+
**Docker & Container:**
|
|
90
|
+
In Containern mit Bridge-Netzwerk werden Multicast-Pakete (mDNS) nicht durchgeleitet. Die automatische Gerätesuche findet dort keine Geräte. Es gibt zwei Lösungen:
|
|
91
|
+
1. Den Container mit `network_mode: host` betreiben, damit mDNS direkt funktioniert.
|
|
92
|
+
2. Oder die IP-Adressen der Miele-Geräte im Reiter **Geräte** manuell eintragen.
|
|
93
|
+
|
|
94
|
+
## Datenschutz & Lokaler Betrieb
|
|
95
|
+
|
|
96
|
+
Der Adapter arbeitet **vollständig lokal** (*local-first*). Die einmalige Anmeldung dient ausschließlich dazu, den haushaltsweiten Verschlüsselungsschlüssel (`GroupKey`) abzurufen. Im laufenden Normalbetrieb:
|
|
97
|
+
- Kommuniziert der Adapter mit keinem externen Cloud-Dienst.
|
|
98
|
+
- Werden weder Passwörter noch Tokens gespeichert oder übertragen.
|
|
99
|
+
- Bleiben alle Gerätezustände, Energiedaten und Steuerbefehle ausschließlich in deinem Heimnetzwerk.
|
|
100
|
+
|
|
101
|
+
## Objektstruktur
|
|
102
|
+
|
|
103
|
+
Jedes Gerät wird durch seine Seriennummer als Device im Objektbaum abgebildet:
|
|
104
|
+
|
|
105
|
+
- **`<seriennummer>.info`**: Erreichbarkeit, Modellname, Materialnummer, Firmware-Version, IP-Adresse.
|
|
106
|
+
- **`<seriennummer>.state`**: Betriebsstatus, Programm-ID und Name, Phase, Restzeiten, Tür, Fehler.
|
|
107
|
+
- **`<seriennummer>.sensors`**: Temperaturzonen, Schleuderdrehzahl, Trockenstufe, Akku, Lüfterstufe.
|
|
108
|
+
- **`<seriennummer>.eco`**: Gezieltes EcoFeedback für Energie (kWh/Wh), Wasserverbrauch und Heizdauer.
|
|
109
|
+
- **`<seriennummer>.control`**: Steuerbefehle (Start, Stopp, Pause, Power, Licht), falls aktiviert.
|
|
110
|
+
|
|
111
|
+
## Rechtliche Hinweise / Disclaimer
|
|
112
|
+
|
|
113
|
+
Dies ist ein **inoffizielles, privat entwickeltes Community-Projekt** und steht in **keiner Verbindung zu der [Miele & Cie. KG](https://www.miele.com/)**. „Miele“, „Miele@home“ und zugehörige Markennamen sind eingetragene Warenzeichen der Miele & Cie. KG und werden hier ausschließlich beschreibend zur Kennzeichnung der Kompatibilität verwendet.
|
|
114
|
+
|
|
115
|
+
Der Adapter nutzt ein durch Reverse Engineering offengelegtes lokales Protokoll. Die Nutzung erfolgt auf eigene Verantwortung. Die Software wird unter der MIT-Lizenz ohne jede Mängelgewähr bereitgestellt.
|
|
116
|
+
|
|
117
|
+
## Changelog
|
|
118
|
+
|
|
119
|
+
### **WORK IN PROGRESS**
|
|
120
|
+
- Auto-Translate GitHub Workflow durch Schreibberechtigung (contents write) behoben
|
|
121
|
+
- Eigenes schreibgeschütztes Export-Feld mit Kopier-Button für Zwischenablage ergänzt
|
|
122
|
+
- Flüchtige Backup-Felder beim Speichern verwerfen und Leeren-Button (X) wiederherstellen
|
|
123
|
+
- Backup-Import durch jsonData-Parameterübergabe in jsonConfig sendTo-Buttons behoben
|
|
124
|
+
- Verschlüsseltes Backup wird direkt ins UI-Feld befüllt mit 1-Klick-Zwischenablage
|
|
125
|
+
- Passwort-Bestätigung (repeat) und Sichtbarkeits-Toggle für backupPassphrase ergänzt
|
|
126
|
+
- Runde Ecken aus Adapter-Logo entfernt für vollflächigen Miele-Rot-Hintergrund
|
|
127
|
+
- Ausführliche Schritt-für-Schritt-Anleitung mit DevTools und Docker-Hinweisen ergänzt
|
|
128
|
+
- Erstentwicklung des Crossover-Adapters mit MieleH256-Engine und Profilen
|
|
129
|
+
- Verschlüsselte Sicherung und Wiederherstellung via AES-256-GCM
|
|
130
|
+
- Geräteprofile für Waschmaschinen, Trockner, Spülmaschinen und Backöfen
|
|
131
|
+
- Gezielte EcoFeedback-Auswertung ohne Brute-Force-Registerabfragen
|
|
132
|
+
- OAuth-Autorisierungs-Popup und Messagebox-Kommunikation für Admin behoben
|
|
133
|
+
- GroupKey-Pairing mit Formularübernahme und sauberem Unload optimiert
|
|
134
|
+
- mDNS-Erkennung über mehrere Netzwerkschnittstellen und direkte A-Record-Abfrage
|
|
135
|
+
- OAuth PKCE Challenge zwischengespeichert gegen State-Mismatch bei Neustart
|
|
136
|
+
- Aktive Haushalts-GroupID wird direkt im Pairing-Tab angezeigt
|
|
137
|
+
- Dynamische Geräte-Routenerkennung und X-Signature-Header-Parsing korrigiert
|
|
138
|
+
- Klare Button-Gestaltung (contained/outlined) für alle JSONConfig-Aktionen
|
|
139
|
+
- Detaillierte Schritt-für-Schritt-Anleitung mit Entwicklertools im Pairing-Tab
|
|
140
|
+
- Vollständige Programmkataloge für alle Miele-Geräte und moderne 200er-IDs
|
|
141
|
+
- Automatischer Übersetzungs-Workflow und 11 ioBroker-Sprachdateien ergänzt
|
|
142
|
+
- Automatischer sync-docs Workflow spiegelt README-Dateien in docs/ Verzeichnis
|
|
143
|
+
- Release-Konfiguration, check-wip und manage-changelogs Skripte ergänzt
|
|
144
|
+
- Adapter-Logo mit Miele-Roten Hintergrund und Kettenglied-Emblem überarbeitet
|
|
145
|
+
- Anzeigegröße und Zentrierung des Logos in den README-Dateien angepasst
|
|
146
|
+
- .gitignore um Verzeichnisse, IDE- und Logdateien erweitert
|
|
147
|
+
- Redundante Test-Dependencies bereinigt und Abhängigkeiten aktualisiert
|
|
148
|
+
- Responsive Breakpoint-Größen in jsonConfig ergänzt und Abhängigkeiten dedupliziert
|
|
149
|
+
- Standard-Integrationstest hinzugefügt und in CI reaktiviert
|
|
150
|
+
- GitHub Actions CI/CD-Workflows für Multi-OS-Tests und Auto-Übersetzung ergänzt
|
|
151
|
+
- Dependabot-Konfiguration und Auto-Merge-Workflow für Updates integriert
|
|
152
|
+
- GitHub Issue-Templates für Fehlerberichte und Feature-Wünsche eingerichtet
|
|
153
|
+
- iob.bat Entwickler-Shortcut und devServerCli.md Befehlsreferenz ergänzt
|
|
154
|
+
- Commitlint-Konfiguration, Husky Git-Hooks und KI-Commit-Helfer ergänzt
|
|
155
|
+
- Regeln für asynchrone Robustheit, Hardware-Schutz und Lifecycle in AGENTS.md
|
|
156
|
+
|
|
157
|
+
Ältere Changelog-Einträge sind in [CHANGELOG_OLD.md](CHANGELOG_OLD.md) zu finden.
|
|
158
|
+
|
|
159
|
+
## Lizenz
|
|
160
|
+
|
|
161
|
+
MIT License
|
|
162
|
+
|
|
163
|
+
Copyright (c) 2026 meistermopper <meister.mopper@gmail.com>
|
|
164
|
+
|
|
165
|
+
Weitere Details siehe [LICENSE](LICENSE).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Active Poll Interval (Seconds)": "Aktives Abfrageintervall (Sekunden)",
|
|
3
|
+
"Allow remote control commands (Start, Stop, Pause, Power, Light)": "Steuerbefehle zulassen (Start, Stop, Pause, Power, Licht)",
|
|
4
|
+
"Appliances": "Geräte & Netzwerk",
|
|
5
|
+
"Auto-Discovery via mDNS (_mieleathome._tcp)": "Automatische Geräteerkennung via mDNS (_mieleathome._tcp)",
|
|
6
|
+
"Country": "Land",
|
|
7
|
+
"Credentials & Backup": "Schlüssel & Datensicherung",
|
|
8
|
+
"EcoFeedback & Measurement": "EcoFeedback & Energiemessung",
|
|
9
|
+
"Enable EcoFeedback readings (Water & Energy)": "EcoFeedback-Abfragen aktivieren (Wasser & Strom)",
|
|
10
|
+
"Enable automatic detection on the local network (may not work across Docker bridge)": "Automatische Erkennung im Heimnetz aktivieren (funktioniert meist nicht über Docker-Bridge hinweg)",
|
|
11
|
+
"Encrypted Backup Data (Paste here to restore)": "Verschlüsselte Backup-Daten (zum Wiederherstellen hier einfügen)",
|
|
12
|
+
"Encrypted Export & Import (AES-256-GCM)": "Verschlüsselter Export & Import (AES-256-GCM)",
|
|
13
|
+
"Export Encrypted Backup": "Verschlüsseltes Backup erstellen",
|
|
14
|
+
"Fetch GroupKey": "GroupKey abrufen",
|
|
15
|
+
"Household Credentials (GroupId & GroupKey)": "Haushalts-Zugangsdaten (GroupId & GroupKey)",
|
|
16
|
+
"Household GroupID": "Haushalts-GroupID",
|
|
17
|
+
"Household GroupKey (64 Bytes Hex)": "Haushalts-GroupKey (64 Byte Hex)",
|
|
18
|
+
"Idle Poll Interval (Seconds)": "Ruhe-Abfrageintervall (Sekunden)",
|
|
19
|
+
"Import / Restore": "Importieren / Wiederherstellen",
|
|
20
|
+
"Interval when a machine is running or programmed (Recommended: 5)": "Intervall während ein Programm läuft oder programmiert ist (Empfohlen: 5 s)",
|
|
21
|
+
"Interval when machines are switched off or on standby (Recommended: 20-30)": "Intervall wenn Geräte ausgeschaltet oder im Standby sind (Empfohlen: 20-30 s)",
|
|
22
|
+
"Login & Pairing": "Anmeldung & Pairing",
|
|
23
|
+
"Master Passphrase for Encryption/Decryption": "Master-Passwort zur Ver-/Entschlüsselung",
|
|
24
|
+
"Miele Account Pairing (One-time Setup)": "Miele-Konto koppeln (Einmalige Einrichtung)",
|
|
25
|
+
"Network & Appliances": "Netzwerk & Geräte",
|
|
26
|
+
"Open Login Page": "Login-Seite öffnen",
|
|
27
|
+
"Paste the captured miele:// or redirect URL here": "Hier die abgefangene miele:// oder redirect-URL einfügen",
|
|
28
|
+
"Polling & Intervals": "Abfrageintervalle",
|
|
29
|
+
"Reads targeted DOP2 registers where supported without brute-force scanning": "Liest gezielte Register nur bei verifizierten Geräten ohne belastende Dauerscans",
|
|
30
|
+
"Remote Appliance Control": "Gerätesteuerung (Remote Control)",
|
|
31
|
+
"Settings": "Einstellungen",
|
|
32
|
+
"Static IP Addresses (e.g. for Docker / VLAN)": "Feste IP-Adressen (z. B. für Docker oder getrennte VLANs)",
|
|
33
|
+
"Text State Language": "Sprache der Klartext-Datenpunkte",
|
|
34
|
+
"WARNING: Only works if MobileStart is physically enabled on the machine": "HINWEIS: Funktioniert nur, wenn 'MobileStart' / Fernsteuerung am Gerät aktiviert ist",
|
|
35
|
+
"backup_desc": "Erstelle ein passwortgeschütztes Backup deiner Zugangsdaten und Geräte. Die Export-Zeichenkette kann gefahrlos aufbewahrt werden, da sie ohne dein Master-Passwort unlesbar ist.",
|
|
36
|
+
"credentials_desc": "Diese beiden Schlüssel werden jedem Haushalt einmalig zugewiesen und ändern sich nicht. Du kannst sie kopieren und in deinem Passwortmanager sichern oder hier manuell eintragen (z. B. nach einer Neuinstallation).",
|
|
37
|
+
"miele:// redirect URL": "miele:// Weiterleitungs-URL",
|
|
38
|
+
"pairing_instruction": "Die einmalige Anmeldung dient nur dazu, den haushaltsweiten Schlüssel (GroupID und GroupKey) zu erhalten. Danach arbeitet der Adapter 100% lokal ohne Internet. 1. Klicke auf 'Login-Seite öffnen' (DevTools F12 / Netzwerk-Tab geöffnet halten). 2. Melde dich mit deinen Miele-App-Zugangsdaten an. 3. Kopiere die Zieladresse ('miele://...' oder '.../redirect?...') und füge sie unten ein.",
|
|
39
|
+
"pairing_status_info": "Status: Nach dem Klick auf 'GroupKey abrufen' werden GroupID und GroupKey automatisch eingetragen und verschlüsselt gespeichert.",
|
|
40
|
+
"step1_header": "Schritt 1: Entwicklertools im Browser vorbereiten",
|
|
41
|
+
"step1_text": "1. Oben auf „Login-Seite öffnen“ klicken (ein neuer Browser-Tab öffnet sich).\n2. Im neuen Tab Taste F12 drücken und auf den Reiter „Netzwerk“ (Network) wechseln.\n3. Protokollierung dauerhaft aktivieren:\n • Chrome / Edge / Brave: Haken bei „Log beibehalten“ (Preserve log) setzen.\n • Firefox: Zahnrad ⚙️ ➔ „Protokolle dauerhaft anzeigen“ (Persist Logs) aktivieren.",
|
|
42
|
+
"step2_header": "Schritt 2: Bei Miele anmelden",
|
|
43
|
+
"step2_text": "1. E-Mail und Passwort deines Miele-App-Kontos eingeben und auf „Anmelden“ klicken.\n2. Wichtig: Nach dem Login bleibt die Seite bei einem sich drehenden Laderad stehen (oder meldet einen Fehler). Das ist völlig normal und bedeutet, dass die Anmeldung erfolgreich war!",
|
|
44
|
+
"step3_header": "Schritt 3: Weiterleitungs-URL kopieren & GroupKey abrufen",
|
|
45
|
+
"step3_text": "1. Im Netzwerk-Tab (F12) ganz nach unten zur letzten (meist rot markierten) Zeile scrollen. Sie beginnt mit „redirect?redirect_uri=miele...“ oder „miele://oauth2-code/...“.\n2. Rechtsklick auf diese Zeile ➔ „URL kopieren“ (bzw. „Adresse des Links kopieren“).\n3. Die kopierte Adresse unten in das Feld einfügen und auf „GroupKey abrufen“ klicken.",
|
|
46
|
+
"backup_note": "⚠️ WICHTIG: Sichere die Backup-Zeichenkette in deinem Passwortmanager! Aus Sicherheitsgründen wird sie nach dem Speichern und Schließen hier nicht mehr angezeigt.",
|
|
47
|
+
"Exported Backup String (Click icon to copy to clipboard)": "Exportierte Backup-Zeichenkette (Icon zum Kopieren anklicken)",
|
|
48
|
+
"Restore Backup": "Backup wiederherstellen"
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Login & Pairing": "Login & Pairing",
|
|
3
|
+
"Miele Account Pairing (One-time Setup)": "Miele Account Pairing (One-time Setup)",
|
|
4
|
+
"pairing_instruction": "The one-time login only serves to obtain the household-wide key (GroupID and GroupKey). After that, the adapter runs 100% locally without the internet. 1. Click 'Open Login Page' (keep DevTools F12 / Network tab open). 2. Sign in with your Miele app account. 3. Copy the destination URL ('miele://...' or '.../redirect?...') and paste it below.",
|
|
5
|
+
"Country": "Country",
|
|
6
|
+
"Open Login Page": "Open Login Page",
|
|
7
|
+
"miele:// redirect URL": "miele:// redirect URL",
|
|
8
|
+
"Paste the captured miele:// or redirect URL here": "Paste the captured miele:// or redirect URL here",
|
|
9
|
+
"Fetch GroupKey": "Fetch GroupKey",
|
|
10
|
+
"pairing_status_info": "Status: Clicking 'Fetch GroupKey' automatically populates and encrypts your GroupID and GroupKey.",
|
|
11
|
+
"Credentials & Backup": "Credentials & Backup",
|
|
12
|
+
"Household Credentials (GroupId & GroupKey)": "Household Credentials (GroupId & GroupKey)",
|
|
13
|
+
"credentials_desc": "These two keys are assigned once per household and do not change. You can copy them to your password manager or enter them manually here (e.g. after a scratch install).",
|
|
14
|
+
"Household GroupID": "Household GroupID",
|
|
15
|
+
"Household GroupKey (64 Bytes Hex)": "Household GroupKey (64 Bytes Hex)",
|
|
16
|
+
"Encrypted Export & Import (AES-256-GCM)": "Encrypted Export & Import (AES-256-GCM)",
|
|
17
|
+
"backup_desc": "Create a password-protected backup of your credentials and device list. The exported data string can be safely stored anywhere, as it cannot be read without your master passphrase.",
|
|
18
|
+
"Master Passphrase for Encryption/Decryption": "Master Passphrase for Encryption/Decryption",
|
|
19
|
+
"Export Encrypted Backup": "Export Encrypted Backup",
|
|
20
|
+
"Encrypted Backup Data (Paste here to restore)": "Encrypted Backup Data (Paste here to restore)",
|
|
21
|
+
"Import / Restore": "Import / Restore",
|
|
22
|
+
"Appliances": "Appliances",
|
|
23
|
+
"Network & Appliances": "Network & Appliances",
|
|
24
|
+
"Auto-Discovery via mDNS (_mieleathome._tcp)": "Auto-Discovery via mDNS (_mieleathome._tcp)",
|
|
25
|
+
"Enable automatic detection on the local network (may not work across Docker bridge)": "Enable automatic detection on the local network (may not work across Docker bridge)",
|
|
26
|
+
"Static IP Addresses (e.g. for Docker / VLAN)": "Static IP Addresses (e.g. for Docker / VLAN)",
|
|
27
|
+
"Settings": "Settings",
|
|
28
|
+
"Polling & Intervals": "Polling & Intervals",
|
|
29
|
+
"Active Poll Interval (Seconds)": "Active Poll Interval (Seconds)",
|
|
30
|
+
"Interval when a machine is running or programmed (Recommended: 5)": "Interval when a machine is running or programmed (Recommended: 5)",
|
|
31
|
+
"Idle Poll Interval (Seconds)": "Idle Poll Interval (Seconds)",
|
|
32
|
+
"Interval when machines are switched off or on standby (Recommended: 20-30)": "Interval when machines are switched off or on standby (Recommended: 20-30)",
|
|
33
|
+
"Text State Language": "Text State Language",
|
|
34
|
+
"EcoFeedback & Measurement": "EcoFeedback & Measurement",
|
|
35
|
+
"Enable EcoFeedback readings (Water & Energy)": "Enable EcoFeedback readings (Water & Energy)",
|
|
36
|
+
"Reads targeted DOP2 registers where supported without brute-force scanning": "Reads targeted DOP2 registers where supported without brute-force scanning",
|
|
37
|
+
"Remote Appliance Control": "Remote Appliance Control",
|
|
38
|
+
"Allow remote control commands (Start, Stop, Pause, Power, Light)": "Allow remote control commands (Start, Stop, Pause, Power, Light)",
|
|
39
|
+
"WARNING: Only works if MobileStart is physically enabled on the machine": "WARNING: Only works if MobileStart is physically enabled on the machine",
|
|
40
|
+
"step1_header": "Step 1: Prepare browser developer tools",
|
|
41
|
+
"step1_text": "1. Click 'Open Login Page' above (a new browser tab opens).\n2. In the new tab, press F12 and switch to the 'Network' tab.\n3. Enable persistent logging:\n • Chrome / Edge / Brave: Check 'Preserve log'.\n • Firefox: Click gear ⚙️ ➔ check 'Persist Logs'.",
|
|
42
|
+
"step2_header": "Step 2: Sign in with Miele",
|
|
43
|
+
"step2_text": "1. Enter your Miele app account email and password and click 'Sign in'.\n2. Note: After login, the page will hang on a spinning loading wheel (or show an error). This is completely normal and indicates success!",
|
|
44
|
+
"step3_header": "Step 3: Copy redirect URL & fetch GroupKey",
|
|
45
|
+
"step3_text": "1. In the Network tab (F12), scroll to the very last (often red) request starting with 'redirect?redirect_uri=miele...' or 'miele://oauth2-code/...'.\n2. Right-click that entry ➔ 'Copy URL' / 'Copy link address'.\n3. Paste the captured address into the field below and click 'Fetch GroupKey'.",
|
|
46
|
+
"backup_note": "⚠️ IMPORTANT: Save this backup string to your password manager now! For security reasons, it is not stored permanently and will disappear after saving and closing.",
|
|
47
|
+
"Exported Backup String (Click icon to copy to clipboard)": "Exported Backup String (Click icon to copy to clipboard)",
|
|
48
|
+
"Restore Backup": "Restore Backup"
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Active Poll Interval (Seconds)": "Intervalo de encuesta activa (segundos)",
|
|
3
|
+
"Allow remote control commands (Start, Stop, Pause, Power, Light)": "Permitir comandos de control remoto (Inicio, Parada, Pausa, Encendido, Luz)",
|
|
4
|
+
"Appliances": "Accesorios",
|
|
5
|
+
"Auto-Discovery via mDNS (_mieleathome._tcp)": "Descubrimiento automático a través de mDNS (_mieleathome._tcp)",
|
|
6
|
+
"Country": "País",
|
|
7
|
+
"Credentials & Backup": "Credenciales y copia de seguridad",
|
|
8
|
+
"EcoFeedback & Measurement": "EcoRetroalimentación y Medición",
|
|
9
|
+
"Enable EcoFeedback readings (Water & Energy)": "Habilitar lecturas de EcoFeedback (Agua y Energía)",
|
|
10
|
+
"Enable automatic detection on the local network (may not work across Docker bridge)": "Habilite la detección automática en la red local (es posible que no funcione en el puente Docker)",
|
|
11
|
+
"Encrypted Backup Data (Paste here to restore)": "Datos de copia de seguridad cifrados (pegue aquí para restaurar)",
|
|
12
|
+
"Encrypted Export & Import (AES-256-GCM)": "Exportación e importación cifradas (AES-256-GCM)",
|
|
13
|
+
"Export Encrypted Backup": "Exportar copia de seguridad cifrada",
|
|
14
|
+
"Fetch GroupKey": "Obtener clave de grupo",
|
|
15
|
+
"Household Credentials (GroupId & GroupKey)": "Credenciales del hogar (Id. de grupo y clave de grupo)",
|
|
16
|
+
"Household GroupID": "ID de grupo del hogar",
|
|
17
|
+
"Household GroupKey (64 Bytes Hex)": "Clave de grupo del hogar (64 bytes hexadecimal)",
|
|
18
|
+
"Idle Poll Interval (Seconds)": "Intervalo de sondeo inactivo (segundos)",
|
|
19
|
+
"Import / Restore": "Importar/Restaurar",
|
|
20
|
+
"Interval when a machine is running or programmed (Recommended: 5)": "Intervalo cuando una máquina está en funcionamiento o programada (Recomendado: 5)",
|
|
21
|
+
"Interval when machines are switched off or on standby (Recommended: 20-30)": "Intervalo en el que las máquinas están apagadas o en standby (Recomendado: 20-30)",
|
|
22
|
+
"Login & Pairing": "Iniciar sesión y emparejar",
|
|
23
|
+
"Master Passphrase for Encryption/Decryption": "Frase de contraseña maestra para cifrado/descifrado",
|
|
24
|
+
"Miele Account Pairing (One-time Setup)": "Emparejamiento de cuentas Miele (configuración única)",
|
|
25
|
+
"Network & Appliances": "Redes y electrodomésticos",
|
|
26
|
+
"Open Login Page": "Abrir página de inicio de sesión",
|
|
27
|
+
"Paste the captured miele:// or redirect URL here": "Pegue el miele:// capturado o redireccione la URL aquí",
|
|
28
|
+
"Polling & Intervals": "Sondeos e intervalos",
|
|
29
|
+
"Reads targeted DOP2 registers where supported without brute-force scanning": "Lee registros DOP2 específicos cuando son compatibles sin escaneo de fuerza bruta",
|
|
30
|
+
"Remote Appliance Control": "Control remoto de dispositivos",
|
|
31
|
+
"Settings": "Ajustes",
|
|
32
|
+
"Static IP Addresses (e.g. for Docker / VLAN)": "Direcciones IP estáticas (por ejemplo, para Docker/VLAN)",
|
|
33
|
+
"Text State Language": "Idioma del estado del texto",
|
|
34
|
+
"WARNING: Only works if MobileStart is physically enabled on the machine": "ADVERTENCIA: Solo funciona si MobileStart está físicamente habilitado en la máquina",
|
|
35
|
+
"backup_desc": "Cree una copia de seguridad protegida con contraseña de sus credenciales y lista de dispositivos. La cadena de datos exportada se puede almacenar de forma segura en cualquier lugar, ya que no se puede leer sin su frase de contraseña maestra.",
|
|
36
|
+
"credentials_desc": "Estas dos claves se asignan una vez por hogar y no cambian. Puede copiarlos a su administrador de contraseñas o ingresarlos manualmente aquí (por ejemplo, después de una instalación desde cero).",
|
|
37
|
+
"miele:// redirect URL": "miele:// URL de redireccionamiento",
|
|
38
|
+
"pairing_instruction": "El inicio de sesión único sólo sirve para obtener la clave de todo el hogar (GroupID y GroupKey). Después de eso, el adaptador funciona 100% localmente sin Internet. 1. Haga clic en 'Abrir página de inicio de sesión' (mantenga abierta la pestaña DevTools F12/Red). 2. Inicie sesión con su cuenta de la aplicación Miele. 3. Copie la URL de destino ('miele://...' o '.../redirect?...') y péguela a continuación.",
|
|
39
|
+
"pairing_status_info": "Estado: Al hacer clic en 'Obtener clave de grupo', se completa y cifra automáticamente su ID de grupo y clave de grupo.",
|
|
40
|
+
"step1_header": "Paso 1: preparar las herramientas de desarrollo del navegador",
|
|
41
|
+
"step1_text": "1. Haga clic en 'Abrir página de inicio de sesión' arriba (se abre una nueva pestaña del navegador).\n2. En la nueva pestaña, presione F12 y cambie a la pestaña 'Red'.\n3. Habilite el registro persistente:\n • Chrome/Edge/Brave: marque 'Conservar registro'.\n • Firefox: haga clic en el engranaje ⚙️ ➔ marque 'Persistir registros'.",
|
|
42
|
+
"step2_header": "Paso 2: Inicia sesión con Miele",
|
|
43
|
+
"step2_text": "1. Ingrese el correo electrónico y la contraseña de su cuenta de la aplicación Miele y haga clic en \"Iniciar sesión\".\n2. Nota: Después de iniciar sesión, la página se colgará en una rueda de carga giratoria (o mostrará un error). ¡Esto es completamente normal e indica éxito!",
|
|
44
|
+
"step3_header": "Paso 3: copie la URL de redireccionamiento y obtenga GroupKey",
|
|
45
|
+
"step3_text": "1. En la pestaña Red (F12), desplácese hasta la última solicitud (a menudo roja) que comienza con 'redirect?redirect_uri=miele...' o 'miele://oauth2-code/...'.\n2. Haga clic derecho en esa entrada ➔ 'Copiar URL' / 'Copiar dirección de enlace'.\n3. Pegue la dirección capturada en el campo siguiente y haga clic en 'Obtener clave de grupo'.",
|
|
46
|
+
"backup_note": "⚠️ IMPORTANTE: ¡Guarde esta cadena de copia de seguridad en su gestor de contraseñas! Por razones de seguridad, no se almacena de forma permanente y desaparecerá después de guardar y cerrar.",
|
|
47
|
+
"Exported Backup String (Click icon to copy to clipboard)": "Cadena de copia de seguridad exportada (Haga clic en el icono para copiar al portapapeles)",
|
|
48
|
+
"Restore Backup": "Restaurar copia de seguridad"
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Active Poll Interval (Seconds)": "Intervalle d'interrogation active (secondes)",
|
|
3
|
+
"Allow remote control commands (Start, Stop, Pause, Power, Light)": "Autoriser les commandes de télécommande (Démarrer, Arrêter, Pause, Alimentation, Lumière)",
|
|
4
|
+
"Appliances": "Appareils électroménagers",
|
|
5
|
+
"Auto-Discovery via mDNS (_mieleathome._tcp)": "Découverte automatique via mDNS (_mieleathome._tcp)",
|
|
6
|
+
"Country": "Pays",
|
|
7
|
+
"Credentials & Backup": "Identifiants et sauvegarde",
|
|
8
|
+
"EcoFeedback & Measurement": "EcoFeedback & Mesure",
|
|
9
|
+
"Enable EcoFeedback readings (Water & Energy)": "Activer les lectures EcoFeedback (Eau et Énergie)",
|
|
10
|
+
"Enable automatic detection on the local network (may not work across Docker bridge)": "Activer la détection automatique sur le réseau local (peut ne pas fonctionner sur le pont Docker)",
|
|
11
|
+
"Encrypted Backup Data (Paste here to restore)": "Données de sauvegarde cryptées (Coller ici pour restaurer)",
|
|
12
|
+
"Encrypted Export & Import (AES-256-GCM)": "Exportation et importation cryptées (AES-256-GCM)",
|
|
13
|
+
"Export Encrypted Backup": "Exporter une sauvegarde chiffrée",
|
|
14
|
+
"Fetch GroupKey": "Récupérer la clé de groupe",
|
|
15
|
+
"Household Credentials (GroupId & GroupKey)": "Informations d'identification du foyer (GroupId et GroupKey)",
|
|
16
|
+
"Household GroupID": "ID de groupe de foyer",
|
|
17
|
+
"Household GroupKey (64 Bytes Hex)": "Clé de groupe de foyer (64 octets hexadécimaux)",
|
|
18
|
+
"Idle Poll Interval (Seconds)": "Intervalle d'interrogation en veille (secondes)",
|
|
19
|
+
"Import / Restore": "Importer / Restaurer",
|
|
20
|
+
"Interval when a machine is running or programmed (Recommended: 5)": "Intervalle pendant lequel une machine est en marche ou programmée (Recommandé : 5)",
|
|
21
|
+
"Interval when machines are switched off or on standby (Recommended: 20-30)": "Intervalle lorsque les machines sont éteintes ou en veille (Recommandé : 20-30)",
|
|
22
|
+
"Login & Pairing": "Connexion et couplage",
|
|
23
|
+
"Master Passphrase for Encryption/Decryption": "Phrase secrète principale pour le cryptage/déchiffrement",
|
|
24
|
+
"Miele Account Pairing (One-time Setup)": "Couplage de compte Miele (configuration unique)",
|
|
25
|
+
"Network & Appliances": "Réseau et appareils électroménagers",
|
|
26
|
+
"Open Login Page": "Ouvrir la page de connexion",
|
|
27
|
+
"Paste the captured miele:// or redirect URL here": "Collez le miele:// capturé ou l'URL de redirection ici",
|
|
28
|
+
"Polling & Intervals": "Sondages et intervalles",
|
|
29
|
+
"Reads targeted DOP2 registers where supported without brute-force scanning": "Lit les registres DOP2 ciblés là où ils sont pris en charge sans analyse par force brute",
|
|
30
|
+
"Remote Appliance Control": "Contrôle des appareils à distance",
|
|
31
|
+
"Settings": "Paramètres",
|
|
32
|
+
"Static IP Addresses (e.g. for Docker / VLAN)": "Adresses IP statiques (par exemple pour Docker / VLAN)",
|
|
33
|
+
"Text State Language": "Langue d'état du texte",
|
|
34
|
+
"WARNING: Only works if MobileStart is physically enabled on the machine": "AVERTISSEMENT : fonctionne uniquement si MobileStart est physiquement activé sur la machine",
|
|
35
|
+
"backup_desc": "Créez une sauvegarde protégée par mot de passe de vos informations d'identification et de votre liste d'appareils. La chaîne de données exportée peut être stockée en toute sécurité n'importe où, car elle ne peut pas être lue sans votre phrase secrète principale.",
|
|
36
|
+
"credentials_desc": "Ces deux clés sont attribuées une fois par foyer et ne changent pas. Vous pouvez les copier dans votre gestionnaire de mots de passe ou les saisir manuellement ici (par exemple après une installation temporaire).",
|
|
37
|
+
"miele:// redirect URL": "miele://URL de redirection",
|
|
38
|
+
"pairing_instruction": "La connexion unique sert uniquement à obtenir la clé du foyer (GroupID et GroupKey). Après cela, l'adaptateur fonctionne à 100 % localement sans Internet. 1. Cliquez sur « Ouvrir la page de connexion » (gardez l'onglet DevTools F12 / Réseau ouvert). 2. Connectez-vous avec votre compte d'application Miele. 3. Copiez l'URL de destination (\"miele://...\" ou \".../redirect?...\") et collez-la ci-dessous.",
|
|
39
|
+
"pairing_status_info": "Statut : Cliquer sur « Récupérer GroupKey » remplit et crypte automatiquement votre GroupID et GroupKey.",
|
|
40
|
+
"step1_header": "Étape 1 : Préparer les outils de développement du navigateur",
|
|
41
|
+
"step1_text": "1. Cliquez sur « Ouvrir la page de connexion » ci-dessus (un nouvel onglet de navigateur s'ouvre).\n2. Dans le nouvel onglet, appuyez sur F12 et passez à l'onglet « Réseau ».\n3. Activez la journalisation persistante :\n • Chrome / Edge / Brave : cochez « Conserver le journal ».\n • Firefox : cliquez sur l'engrenage ⚙️ ➔ cochez « Conserver les journaux ».",
|
|
42
|
+
"step2_header": "Étape 2 : Connectez-vous avec Miele",
|
|
43
|
+
"step2_text": "1. Saisissez l'e-mail et le mot de passe de votre compte d'application Miele et cliquez sur « Se connecter ».\n2. Remarque : Après la connexion, la page se bloquera sur une roue de chargement en rotation (ou affichera une erreur). C'est tout à fait normal et cela indique un succès !",
|
|
44
|
+
"step3_header": "Étape 3 : Copiez l'URL de redirection et récupérez GroupKey",
|
|
45
|
+
"step3_text": "1. Dans l'onglet Réseau (F12), faites défiler jusqu'à la toute dernière requête (souvent rouge) commençant par 'redirect?redirect_uri=miele...' ou 'miele://oauth2-code/...'.\n2. Cliquez avec le bouton droit sur cette entrée ➔ « Copier l'URL » / « Copier l'adresse du lien ».\n3. Collez l'adresse capturée dans le champ ci-dessous et cliquez sur « Récupérer la clé de groupe ».",
|
|
46
|
+
"backup_note": "⚠️ IMPORTANT : Enregistrez cette chaîne de sauvegarde dans votre gestionnaire de mots de passe ! Pour des raisons de sécurité, elle n'est pas conservée de manière permanente et disparaîtra après l'enregistrement et la fermeture.",
|
|
47
|
+
"Exported Backup String (Click icon to copy to clipboard)": "Chaîne de sauvegarde exportée (Cliquez sur l'icône pour copier dans le presse-papiers)",
|
|
48
|
+
"Restore Backup": "Restaurer la sauvegarde"
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Active Poll Interval (Seconds)": "Intervallo di polling attivo (secondi)",
|
|
3
|
+
"Allow remote control commands (Start, Stop, Pause, Power, Light)": "Consenti comandi da telecomando (Avvio, Stop, Pausa, Accensione, Luce)",
|
|
4
|
+
"Appliances": "Elettrodomestici",
|
|
5
|
+
"Auto-Discovery via mDNS (_mieleathome._tcp)": "Rilevamento automatico tramite mDNS (_mieleathome._tcp)",
|
|
6
|
+
"Country": "Paese",
|
|
7
|
+
"Credentials & Backup": "Credenziali e backup",
|
|
8
|
+
"EcoFeedback & Measurement": "EcoFeedback e misurazione",
|
|
9
|
+
"Enable EcoFeedback readings (Water & Energy)": "Abilita letture EcoFeedback (Acqua ed Energia)",
|
|
10
|
+
"Enable automatic detection on the local network (may not work across Docker bridge)": "Abilita il rilevamento automatico sulla rete locale (potrebbe non funzionare sul bridge Docker)",
|
|
11
|
+
"Encrypted Backup Data (Paste here to restore)": "Dati di backup crittografati (incolla qui per ripristinare)",
|
|
12
|
+
"Encrypted Export & Import (AES-256-GCM)": "Esportazione e importazione crittografate (AES-256-GCM)",
|
|
13
|
+
"Export Encrypted Backup": "Esporta backup crittografato",
|
|
14
|
+
"Fetch GroupKey": "Recupera GroupKey",
|
|
15
|
+
"Household Credentials (GroupId & GroupKey)": "Credenziali del nucleo familiare (GroupId e GroupKey)",
|
|
16
|
+
"Household GroupID": "ID gruppo famiglia",
|
|
17
|
+
"Household GroupKey (64 Bytes Hex)": "Chiave gruppo famiglia (64 byte esadecimali)",
|
|
18
|
+
"Idle Poll Interval (Seconds)": "Intervallo di polling inattivo (secondi)",
|
|
19
|
+
"Import / Restore": "Importa/Ripristina",
|
|
20
|
+
"Interval when a machine is running or programmed (Recommended: 5)": "Intervallo in cui una macchina è in funzione o programmata (consigliato: 5)",
|
|
21
|
+
"Interval when machines are switched off or on standby (Recommended: 20-30)": "Intervallo di spegnimento o stand-by delle macchine (consigliato: 20-30)",
|
|
22
|
+
"Login & Pairing": "Accesso e abbinamento",
|
|
23
|
+
"Master Passphrase for Encryption/Decryption": "Passphrase principale per la crittografia/decrittografia",
|
|
24
|
+
"Miele Account Pairing (One-time Setup)": "Associazione all'account Miele (configurazione unica)",
|
|
25
|
+
"Network & Appliances": "Rete ed elettrodomestici",
|
|
26
|
+
"Open Login Page": "Apri la pagina di accesso",
|
|
27
|
+
"Paste the captured miele:// or redirect URL here": "Incolla qui il miele:// catturato o l'URL di reindirizzamento",
|
|
28
|
+
"Polling & Intervals": "Polling e intervalli",
|
|
29
|
+
"Reads targeted DOP2 registers where supported without brute-force scanning": "Legge i registri DOP2 mirati dove supportato senza scansione a forza bruta",
|
|
30
|
+
"Remote Appliance Control": "Controllo remoto degli apparecchi",
|
|
31
|
+
"Settings": "Impostazioni",
|
|
32
|
+
"Static IP Addresses (e.g. for Docker / VLAN)": "Indirizzi IP statici (ad es. per Docker / VLAN)",
|
|
33
|
+
"Text State Language": "Lingua di stato del testo",
|
|
34
|
+
"WARNING: Only works if MobileStart is physically enabled on the machine": "ATTENZIONE: funziona solo se MobileStart è fisicamente abilitato sulla macchina",
|
|
35
|
+
"backup_desc": "Crea un backup protetto da password delle tue credenziali e dell'elenco dei dispositivi. La stringa di dati esportata può essere archiviata in modo sicuro ovunque, poiché non può essere letta senza la passphrase principale.",
|
|
36
|
+
"credentials_desc": "Queste due chiavi vengono assegnate una volta per nucleo familiare e non cambiano. Puoi copiarli nel tuo gestore di password o inserirli manualmente qui (ad esempio dopo un'installazione zero).",
|
|
37
|
+
"miele:// redirect URL": "miele://URL di reindirizzamento",
|
|
38
|
+
"pairing_instruction": "Il login unico serve solo per ottenere la chiave domestica (GroupID e GroupKey). Successivamente, l'adattatore funziona al 100% localmente senza Internet. 1. Fare clic su \"Apri pagina di accesso\" (mantenere aperta la scheda DevTools F12/Rete). 2. Accedi con il tuo account dell'app Miele. 3. Copia l'URL di destinazione ('miele://...' o '.../redirect?...') e incollalo qui sotto.",
|
|
39
|
+
"pairing_status_info": "Stato: facendo clic su \"Recupera GroupKey\" si popolano e crittografano automaticamente GroupID e GroupKey.",
|
|
40
|
+
"step1_header": "Passaggio 1: preparare gli strumenti per sviluppatori del browser",
|
|
41
|
+
"step1_text": "1. Fai clic su \"Apri pagina di accesso\" in alto (si apre una nuova scheda del browser).\n2. Nella nuova scheda, premere F12 e passare alla scheda \"Rete\".\n3. Abilita la registrazione persistente:\n • Chrome/Edge/Brave: seleziona 'Conserva registro'.\n • Firefox: fai clic sull'ingranaggio ⚙️ ➔ seleziona \"Mantieni registri\".",
|
|
42
|
+
"step2_header": "Passaggio 2: accedi con Miele",
|
|
43
|
+
"step2_text": "1. Inserisci l'e-mail e la password del tuo account dell'app Miele e fai clic su \"Accedi\".\n2. Nota: dopo l'accesso, la pagina si bloccherà su una rotella di caricamento che gira (o mostrerà un errore). Questo è del tutto normale e indica il successo!",
|
|
44
|
+
"step3_header": "Passaggio 3: copia l'URL di reindirizzamento e recupera GroupKey",
|
|
45
|
+
"step3_text": "1. Nella scheda Rete (F12), scorri fino all'ultima richiesta (spesso rossa) che inizia con 'redirect?redirect_uri=miele...' o 'miele://oauth2-code/...'.\n2. Fare clic con il pulsante destro del mouse sulla voce ➔ \"Copia URL\" / \"Copia indirizzo collegamento\".\n3. Incolla l'indirizzo catturato nel campo sottostante e fai clic su \"Recupera GroupKey\".",
|
|
46
|
+
"backup_note": "⚠️ IMPORTANTE: Salva questa stringa di backup nel tuo gestore di password! Per motivi di sicurezza, non viene memorizzata in modo permanente e scomparirà dopo il salvataggio e la chiusura.",
|
|
47
|
+
"Exported Backup String (Click icon to copy to clipboard)": "Stringa di backup esportata (Fai clic sull'icona per copiare negli appunti)",
|
|
48
|
+
"Restore Backup": "Ripristina backup"
|
|
49
|
+
}
|