@impact0815/node-red-contrib-home-connect 0.2.0 → 0.2.1
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/BUILD-INFO.json +3 -3
- package/CHANGELOG.md +5 -4
- package/NOTICE +1 -1
- package/README.de.md +33 -15
- package/README.md +33 -15
- package/docs/API-COVERAGE.md +1 -1
- package/docs/DASHBOARD.de.md +1 -1
- package/docs/DASHBOARD.md +1 -1
- package/docs/GITHUB-UPDATE.md +76 -0
- package/docs/RELEASE.md +52 -39
- package/docs/TROUBLESHOOTING.de.md +5 -5
- package/docs/TROUBLESHOOTING.md +5 -5
- package/examples/README.de.md +62 -0
- package/examples/README.md +62 -0
- package/examples/dashboard-dishwasher-washer-oven.json +1 -1
- package/examples/dashboard-screenshot-simulated.json +1 -1
- package/examples/demo-home-connect-flowfuse-1.34.1-scriptless.json +1 -1
- package/package.json +14 -9
package/BUILD-INFO.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageName": "node-red-contrib-home-connect",
|
|
3
|
-
"packageVersion": "0.2.
|
|
4
|
-
"buildId": "hc-0.2.
|
|
2
|
+
"packageName": "@impact0815/node-red-contrib-home-connect",
|
|
3
|
+
"packageVersion": "0.2.1",
|
|
4
|
+
"buildId": "hc-0.2.1-final",
|
|
5
5
|
"oauthFlow": "authorization_code_client_secret",
|
|
6
6
|
"pkce": false,
|
|
7
7
|
"localTransport": "read-only",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.1 - 2026-11-01
|
|
4
|
+
|
|
5
|
+
- Published as scoped npm package `@impact0815/node-red-contrib-home-connect`.
|
|
6
|
+
- No functional changes compared to 0.2.0.
|
|
7
|
+
|
|
3
8
|
## 0.2.0 - 2026-11-01
|
|
4
9
|
|
|
5
10
|
Version 0.2.0 is feature-frozen for publication as build `hc-0.2.0-final`.
|
|
@@ -46,7 +51,3 @@ Version 0.2.0 is feature-frozen for publication as build `hc-0.2.0-final`.
|
|
|
46
51
|
- Dashboard examples tested for `@flowfuse/node-red-dashboard` 1.34.1.
|
|
47
52
|
- OAuth remains Authorization Code Grant with client secret and without PKCE.
|
|
48
53
|
- Runtime dependencies remain zero.
|
|
49
|
-
|
|
50
|
-
## 0.1.0
|
|
51
|
-
|
|
52
|
-
- Initial release with official-cloud OAuth, discovery, finite read coverage, SSE, rate-limit protection, normalized health/warnings, guarded writes, simulator flows, bilingual documentation, CI, and package validation.
|
package/NOTICE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
node-red-contrib-home-connect
|
|
1
|
+
@impact0815/node-red-contrib-home-connect
|
|
2
2
|
|
|
3
3
|
Independent, unofficial community software for the public Home Connect API and an experimental, undocumented local appliance protocol.
|
|
4
4
|
Inspired at a conceptual level by the discovery-first and safeguarded-write approach of:
|
package/README.de.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# node-red-contrib-home-connect
|
|
1
|
+
# @impact0815/node-red-contrib-home-connect
|
|
2
2
|
|
|
3
3
|
**[English](README.md) · Deutsch**
|
|
4
4
|
|
|
@@ -45,42 +45,60 @@ Node-RED-Nodes für Home Connect: direkte, nur lesende LAN-Anbindung über Gerä
|
|
|
45
45
|
|
|
46
46
|
## Installation
|
|
47
47
|
|
|
48
|
-
###
|
|
48
|
+
### Empfohlen: Node-RED-Palette
|
|
49
|
+
|
|
50
|
+
Nachdem das Paket auf npm veröffentlicht wurde:
|
|
51
|
+
|
|
52
|
+
1. In Node-RED **Menü → Palette verwalten → Installieren** öffnen.
|
|
53
|
+
2. Nach `@impact0815/node-red-contrib-home-connect` suchen.
|
|
54
|
+
3. **Installieren** anklicken und die Erfolgsmeldung abwarten.
|
|
55
|
+
4. Node-RED vollständig neu starten und den Browser mit **Strg+F5** neu laden.
|
|
56
|
+
|
|
57
|
+
### Kommandozeile
|
|
49
58
|
|
|
50
59
|
```bash
|
|
51
60
|
cd ~/.node-red
|
|
52
|
-
npm install /
|
|
61
|
+
npm install @impact0815/node-red-contrib-home-connect@0.2.0
|
|
53
62
|
```
|
|
54
63
|
|
|
55
|
-
|
|
64
|
+
### Lokale TGZ-Datei
|
|
65
|
+
|
|
66
|
+
Die mitgelieferte Release-Datei kann direkt installiert werden, zum Beispiel vor der Aufnahme in die Palette:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
cd ~/.node-red
|
|
70
|
+
npm install /absoluter/pfad/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
71
|
+
```
|
|
56
72
|
|
|
57
73
|
### Docker-Beispiel
|
|
58
74
|
|
|
59
75
|
```bash
|
|
60
|
-
docker
|
|
61
|
-
docker exec node-red npm install --prefix /data /tmp/node-red-contrib-home-connect-0.2.0.tgz
|
|
76
|
+
docker exec node-red npm install --prefix /data @impact0815/node-red-contrib-home-connect@0.2.0
|
|
62
77
|
docker restart node-red
|
|
63
78
|
```
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
Für die mitgelieferte TGZ-Datei diese zuerst in den Container kopieren:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
docker cp impact0815-node-red-contrib-home-connect-0.2.0.tgz node-red:/tmp/
|
|
84
|
+
docker exec node-red npm install --prefix /data /tmp/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
85
|
+
docker restart node-red
|
|
86
|
+
```
|
|
66
87
|
|
|
67
|
-
|
|
88
|
+
Installierten Build prüfen:
|
|
68
89
|
|
|
69
90
|
```bash
|
|
70
91
|
cd ~/.node-red
|
|
71
|
-
|
|
72
|
-
rm -rf node_modules/node-red-contrib-home-connect
|
|
73
|
-
npm install --force /absoluter/pfad/node-red-contrib-home-connect-0.2.0.tgz
|
|
74
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
92
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
75
93
|
```
|
|
76
94
|
|
|
77
|
-
Erwartet werden `hc-0.2.0-final` und `pkce: false`.
|
|
95
|
+
Erwartet werden `0.2.0`, `hc-0.2.0-final` und `pkce: false`. Unvollständige oder alte Autorisierungs-Links/Codes nicht weiterverwenden.
|
|
78
96
|
|
|
79
97
|
## Schritt für Schritt: Einrichtung für Einsteiger
|
|
80
98
|
|
|
81
99
|
### A. Erst ohne Konto ausprobieren
|
|
82
100
|
|
|
83
|
-
1. In Node-RED **Menü → Import → Beispiele → node-red-contrib-home-connect → 01-first-steps-device-list** wählen.
|
|
101
|
+
1. In Node-RED **Menü → Import → Beispiele → @impact0815/node-red-contrib-home-connect → 01-first-steps-device-list** wählen.
|
|
84
102
|
2. Deployen.
|
|
85
103
|
3. Links am Inject-Node auf den Knopf klicken.
|
|
86
104
|
4. Im Debug-Fenster erscheinen die drei ausschließlich lokalen Testgeräte.
|
|
@@ -203,7 +221,7 @@ Jeder Funktions-Node hat zwei Ausgänge: **Daten/Ergebnis/Event** und **struktur
|
|
|
203
221
|
|
|
204
222
|
## Beispiel-Flows
|
|
205
223
|
|
|
206
|
-
Unter **Import → Beispiele → node-red-contrib-home-connect
|
|
224
|
+
Unter **Import → Beispiele → @impact0815/node-red-contrib-home-connect**. Einsteigerfreundliche Anleitungen stehen in der [deutschen Examples-README](examples/README.de.md) und der [englischen Examples-README](examples/README.md).
|
|
207
225
|
|
|
208
226
|
| Datei | Inhalt |
|
|
209
227
|
|---|---|
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# node-red-contrib-home-connect
|
|
1
|
+
# @impact0815/node-red-contrib-home-connect
|
|
2
2
|
|
|
3
3
|
**English · [Deutsch](README.de.md)**
|
|
4
4
|
|
|
@@ -45,42 +45,60 @@ Node-RED nodes for Home Connect: direct, read-only LAN access to appliance profi
|
|
|
45
45
|
|
|
46
46
|
## Installation
|
|
47
47
|
|
|
48
|
-
###
|
|
48
|
+
### Recommended: Node-RED palette
|
|
49
|
+
|
|
50
|
+
After the package has been published to npm:
|
|
51
|
+
|
|
52
|
+
1. In Node-RED open **Menu → Manage palette → Install**.
|
|
53
|
+
2. Search for `@impact0815/node-red-contrib-home-connect`.
|
|
54
|
+
3. Click **Install** and wait for the success message.
|
|
55
|
+
4. Restart Node-RED completely and reload the browser with **Ctrl+F5**.
|
|
56
|
+
|
|
57
|
+
### Command line
|
|
49
58
|
|
|
50
59
|
```bash
|
|
51
60
|
cd ~/.node-red
|
|
52
|
-
npm install /
|
|
61
|
+
npm install @impact0815/node-red-contrib-home-connect@0.2.0
|
|
53
62
|
```
|
|
54
63
|
|
|
55
|
-
|
|
64
|
+
### Local TGZ file
|
|
65
|
+
|
|
66
|
+
Use the supplied release file if you want to install before or without searching the palette:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
cd ~/.node-red
|
|
70
|
+
npm install /absolute/path/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
71
|
+
```
|
|
56
72
|
|
|
57
73
|
### Docker example
|
|
58
74
|
|
|
59
75
|
```bash
|
|
60
|
-
docker
|
|
61
|
-
docker exec node-red npm install --prefix /data /tmp/node-red-contrib-home-connect-0.2.0.tgz
|
|
76
|
+
docker exec node-red npm install --prefix /data @impact0815/node-red-contrib-home-connect@0.2.0
|
|
62
77
|
docker restart node-red
|
|
63
78
|
```
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
To install the supplied TGZ in Docker instead, copy it first:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
docker cp impact0815-node-red-contrib-home-connect-0.2.0.tgz node-red:/tmp/
|
|
84
|
+
docker exec node-red npm install --prefix /data /tmp/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
85
|
+
docker restart node-red
|
|
86
|
+
```
|
|
66
87
|
|
|
67
|
-
|
|
88
|
+
Verify the installed build:
|
|
68
89
|
|
|
69
90
|
```bash
|
|
70
91
|
cd ~/.node-red
|
|
71
|
-
|
|
72
|
-
rm -rf node_modules/node-red-contrib-home-connect
|
|
73
|
-
npm install --force /absolute/path/node-red-contrib-home-connect-0.2.0.tgz
|
|
74
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
92
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
75
93
|
```
|
|
76
94
|
|
|
77
|
-
Expect `hc-0.2.0-final
|
|
95
|
+
Expect `0.2.0`, `hc-0.2.0-final`, and `pkce: false`. Do not reuse incomplete or old authorization links/codes.
|
|
78
96
|
|
|
79
97
|
## Step-by-step setup for non-technical users
|
|
80
98
|
|
|
81
99
|
### A. Try it without an account
|
|
82
100
|
|
|
83
|
-
1. In Node-RED choose **Menu → Import → Examples → node-red-contrib-home-connect → 01-first-steps-device-list**.
|
|
101
|
+
1. In Node-RED choose **Menu → Import → Examples → @impact0815/node-red-contrib-home-connect → 01-first-steps-device-list**.
|
|
84
102
|
2. Deploy.
|
|
85
103
|
3. Click the Inject button on the left.
|
|
86
104
|
4. The Debug sidebar shows three local test appliances.
|
|
@@ -203,7 +221,7 @@ Every functional node has two outputs: **data/result/event** and **structured er
|
|
|
203
221
|
|
|
204
222
|
## Example flows
|
|
205
223
|
|
|
206
|
-
Find these under **Import → Examples → node-red-contrib-home-connect
|
|
224
|
+
Find these under **Import → Examples → @impact0815/node-red-contrib-home-connect**. Beginner-friendly instructions are in the [English examples README](examples/README.md) and [German examples README](examples/README.de.md).
|
|
207
225
|
|
|
208
226
|
| File | Content |
|
|
209
227
|
|---|---|
|
package/docs/API-COVERAGE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Official API contract and coverage
|
|
2
2
|
|
|
3
|
-
The cloud client in version 0.2.0
|
|
3
|
+
The cloud client in version 0.2.0 is checked against the two supplied official Swagger 2.0 files:
|
|
4
4
|
|
|
5
5
|
| Specification | SHA-256 | Host | Operations |
|
|
6
6
|
| --- | --- | --- | ---: |
|
package/docs/DASHBOARD.de.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Import
|
|
4
4
|
|
|
5
|
-
1.
|
|
5
|
+
1. `@impact0815/node-red-contrib-home-connect` und `@flowfuse/node-red-dashboard` installieren.
|
|
6
6
|
2. In Node-RED **Import → Zwischenablage** wählen und `examples/dashboard-dishwasher-washer-oven.json` laden.
|
|
7
7
|
3. Deployen.
|
|
8
8
|
4. `/dashboard/overview` öffnen; der genaue Präfix folgt der Dashboard-Konfiguration.
|
package/docs/DASHBOARD.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Import
|
|
4
4
|
|
|
5
|
-
1. Install
|
|
5
|
+
1. Install `@impact0815/node-red-contrib-home-connect` and `@flowfuse/node-red-dashboard`.
|
|
6
6
|
2. In Node-RED choose **Import → Clipboard** and load `examples/dashboard-dishwasher-washer-oven.json`.
|
|
7
7
|
3. Deploy.
|
|
8
8
|
4. Open `/dashboard/overview`; the exact prefix follows the Dashboard configuration.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Update the existing GitHub repository
|
|
2
|
+
|
|
3
|
+
Target repository: `impact0815/node-red-contrib-home-connect`
|
|
4
|
+
|
|
5
|
+
This release is already present on `main`. Apply the scoped-package revision as a normal additional commit. Do not rewrite history and do not force-push.
|
|
6
|
+
|
|
7
|
+
## Safe update sequence
|
|
8
|
+
|
|
9
|
+
Run these commands from the existing local clone after copying the revised source files into it:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
git switch main
|
|
13
|
+
git pull --ff-only origin main
|
|
14
|
+
git status --short
|
|
15
|
+
npm ci --ignore-scripts
|
|
16
|
+
npm run release:check
|
|
17
|
+
npm run validate
|
|
18
|
+
git add -A
|
|
19
|
+
git diff --cached --check
|
|
20
|
+
git diff --cached --stat
|
|
21
|
+
git commit -m "Use scoped npm package and finalize 0.2.0"
|
|
22
|
+
git push origin main
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Review the staged diff before `git commit`. The push must be a normal `git push origin main`; never use `--force` or `--force-with-lease`.
|
|
26
|
+
|
|
27
|
+
## Tag only after CI is green
|
|
28
|
+
|
|
29
|
+
Before creating the tag, verify that it does not already exist locally or remotely:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git fetch --tags origin
|
|
33
|
+
if git rev-parse -q --verify refs/tags/v0.2.0 >/dev/null; then
|
|
34
|
+
echo "STOP: local tag v0.2.0 already exists"
|
|
35
|
+
exit 1
|
|
36
|
+
fi
|
|
37
|
+
if git ls-remote --exit-code --tags origin refs/tags/v0.2.0 >/dev/null 2>&1; then
|
|
38
|
+
echo "STOP: remote tag v0.2.0 already exists"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
git tag -a v0.2.0 -m "@impact0815/node-red-contrib-home-connect v0.2.0"
|
|
42
|
+
git push origin v0.2.0
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Never move or replace a published release tag.
|
|
46
|
+
|
|
47
|
+
## Repository About metadata
|
|
48
|
+
|
|
49
|
+
Description:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Node-RED nodes for Home Connect: OAuth authorization, automatic appliance discovery, events, reading and safeguarded writing via the official cloud API, plus experimental read-only local LAN access.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Website:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
https://www.npmjs.com/package/@impact0815/node-red-contrib-home-connect
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Topics:
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
node-red, home-connect, home-automation, iot, smart-home, appliances, oauth2, websocket, server-sent-events, bosch, siemens, neff, gaggenau
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Set all values with GitHub CLI:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
gh repo edit impact0815/node-red-contrib-home-connect \
|
|
71
|
+
--description "Node-RED nodes for Home Connect: OAuth authorization, automatic appliance discovery, events, reading and safeguarded writing via the official cloud API, plus experimental read-only local LAN access." \
|
|
72
|
+
--homepage "https://www.npmjs.com/package/@impact0815/node-red-contrib-home-connect" \
|
|
73
|
+
--add-topic node-red,home-connect,home-automation,iot,smart-home,appliances,oauth2,websocket,server-sent-events,bosch,siemens,neff,gaggenau
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Never commit Client IDs, Client Secrets, access/refresh tokens, authorization codes, real Redirect URIs, hostnames, appliance IDs, serial numbers, PSK/IV values, or private event/debug data.
|
package/docs/RELEASE.md
CHANGED
|
@@ -1,69 +1,78 @@
|
|
|
1
1
|
# Release procedure for 0.2.0
|
|
2
2
|
|
|
3
|
-
The feature set is frozen at build `hc-0.2.0-final`.
|
|
3
|
+
The feature set is frozen at build `hc-0.2.0-final`. Only release-blocking corrections are allowed, followed by the complete validation sequence.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Package identity
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
7
|
+
- npm package: `@impact0815/node-red-contrib-home-connect`
|
|
8
|
+
- version: `0.2.0`
|
|
9
|
+
- GitHub repository: `impact0815/node-red-contrib-home-connect`
|
|
10
|
+
- npm homepage: `https://www.npmjs.com/package/@impact0815/node-red-contrib-home-connect`
|
|
11
|
+
- npm TGZ filename: `impact0815-node-red-contrib-home-connect-0.2.0.tgz`
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## Final local checks
|
|
13
|
+
## Required local checks
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npm ci --ignore-scripts
|
|
17
17
|
npm run release:check
|
|
18
18
|
npm run validate
|
|
19
19
|
npm pack --json
|
|
20
|
-
sha256sum node-red-contrib-home-connect-0.2.0.tgz
|
|
20
|
+
sha256sum impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
21
|
+
tar -tzf impact0815-node-red-contrib-home-connect-0.2.0.tgz | sort
|
|
22
|
+
npm publish --dry-run ./impact0815-node-red-contrib-home-connect-0.2.0.tgz --access public --registry https://registry.npmjs.org/
|
|
21
23
|
```
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
tar -tzf node-red-contrib-home-connect-0.2.0.tgz | sort
|
|
27
|
-
npm publish --dry-run ./node-red-contrib-home-connect-0.2.0.tgz --access public
|
|
28
|
-
```
|
|
25
|
+
The screenshots in `docs/images/` must remain the reviewed simulated images. The examples and package payload must not contain credentials, account data, real appliance identifiers, or private network data.
|
|
29
26
|
|
|
30
|
-
##
|
|
27
|
+
## Existing GitHub repository: normal additional commit
|
|
31
28
|
|
|
32
|
-
|
|
29
|
+
Follow [GITHUB-UPDATE.md](GITHUB-UPDATE.md). In summary:
|
|
33
30
|
|
|
34
31
|
```bash
|
|
35
|
-
git
|
|
36
|
-
git
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
git
|
|
32
|
+
git switch main
|
|
33
|
+
git pull --ff-only origin main
|
|
34
|
+
npm ci --ignore-scripts
|
|
35
|
+
npm run release:check
|
|
36
|
+
npm run validate
|
|
37
|
+
git add -A
|
|
38
|
+
git diff --cached --check
|
|
39
|
+
git commit -m "Use scoped npm package and finalize 0.2.0"
|
|
40
|
+
git push origin main
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Do not force-push. Wait until GitHub Actions CI succeeds on `main`.
|
|
44
|
+
|
|
45
|
+
## Tag and GitHub Release
|
|
46
|
+
|
|
47
|
+
Confirm that `v0.2.0` does not already exist. Then:
|
|
44
48
|
|
|
45
49
|
```bash
|
|
46
|
-
git tag -a v0.2.0 -m "node-red-contrib-home-connect
|
|
50
|
+
git tag -a v0.2.0 -m "@impact0815/node-red-contrib-home-connect v0.2.0"
|
|
47
51
|
git push origin v0.2.0
|
|
52
|
+
|
|
53
|
+
ARTIFACT_DIR="/absolute/path/to/release-files"
|
|
48
54
|
gh release create v0.2.0 \
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
--
|
|
55
|
+
"$ARTIFACT_DIR/impact0815-node-red-contrib-home-connect-0.2.0-source.zip" \
|
|
56
|
+
"$ARTIFACT_DIR/impact0815-node-red-contrib-home-connect-0.2.0.tgz" \
|
|
57
|
+
"$ARTIFACT_DIR/SHA256SUMS.txt" \
|
|
58
|
+
--repo impact0815/node-red-contrib-home-connect \
|
|
59
|
+
--verify-tag \
|
|
60
|
+
--title "@impact0815/node-red-contrib-home-connect 0.2.0" \
|
|
61
|
+
--notes-file ./RELEASE_NOTES.md
|
|
53
62
|
```
|
|
54
63
|
|
|
55
64
|
## npm publication
|
|
56
65
|
|
|
57
|
-
Confirm the account and package name before publishing:
|
|
58
|
-
|
|
59
66
|
```bash
|
|
60
|
-
|
|
61
|
-
npm
|
|
62
|
-
npm
|
|
63
|
-
npm view node-red-contrib-home-connect
|
|
67
|
+
ARTIFACT_DIR="/absolute/path/to/release-files"
|
|
68
|
+
npm config get registry
|
|
69
|
+
npm whoami --registry https://registry.npmjs.org/
|
|
70
|
+
npm view @impact0815/node-red-contrib-home-connect versions --json --registry https://registry.npmjs.org/ || true
|
|
71
|
+
npm publish "$ARTIFACT_DIR/impact0815-node-red-contrib-home-connect-0.2.0.tgz" --access public --registry https://registry.npmjs.org/
|
|
72
|
+
npm view @impact0815/node-red-contrib-home-connect@0.2.0 name version dist.integrity dist.tarball --registry https://registry.npmjs.org/
|
|
64
73
|
```
|
|
65
74
|
|
|
66
|
-
If
|
|
75
|
+
If npm requires two-factor authentication, complete its prompt or add a current one-time password with `--otp=<code>`. Never put an npm token or OTP into the repository.
|
|
67
76
|
|
|
68
77
|
## Post-publication smoke test
|
|
69
78
|
|
|
@@ -71,8 +80,12 @@ If the unscoped npm name is not controlled by the publisher, stop. Do not silent
|
|
|
71
80
|
TMPDIR="$(mktemp -d)"
|
|
72
81
|
cd "$TMPDIR"
|
|
73
82
|
npm init -y
|
|
74
|
-
npm install node-red-contrib-home-connect@0.2.0
|
|
75
|
-
node -p "require('node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
83
|
+
npm install @impact0815/node-red-contrib-home-connect@0.2.0
|
|
84
|
+
node -p "require('@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
76
85
|
```
|
|
77
86
|
|
|
78
|
-
The
|
|
87
|
+
The package name must be `@impact0815/node-red-contrib-home-connect`, the version `0.2.0`, and the build ID `hc-0.2.0-final`.
|
|
88
|
+
|
|
89
|
+
## Node-RED Flow Library
|
|
90
|
+
|
|
91
|
+
After npm publication, sign in at `https://flows.nodered.org/add/node`, enter the exact package name `@impact0815/node-red-contrib-home-connect`, and submit it. The package must already be public on npm and must retain the `node-red` keyword, README, license, and `node-red.nodes` metadata.
|
|
@@ -9,7 +9,7 @@ Diese Anleitung beginnt beim sichtbaren Symptom. Zugangsdaten, Hostnamen, Gerät
|
|
|
9
9
|
1. Läuft wirklich der erwartete Build?
|
|
10
10
|
```bash
|
|
11
11
|
cd ~/.node-red
|
|
12
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
12
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
13
13
|
```
|
|
14
14
|
Erwartet: Version `0.2.0`, Build `hc-0.2.0-final`, `pkce: false`.
|
|
15
15
|
2. Ist die richtige Connection ausgewählt und eindeutig benannt?
|
|
@@ -96,10 +96,10 @@ Ein Flow-Deploy lädt keinen neuen Node.js-Runtime-Code. Zusätzlich zur npm-Ver
|
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
98
|
cd ~/.node-red
|
|
99
|
-
npm uninstall node-red-contrib-home-connect
|
|
100
|
-
rm -rf node_modules/node-red-contrib-home-connect
|
|
101
|
-
npm install --force /absoluter/pfad/node-red-contrib-home-connect-0.2.0.tgz
|
|
102
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
99
|
+
npm uninstall @impact0815/node-red-contrib-home-connect
|
|
100
|
+
rm -rf node_modules/@impact0815/node-red-contrib-home-connect
|
|
101
|
+
npm install --force /absoluter/pfad/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
102
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
Danach Node-RED/Container vollständig neu starten, Browser hart neu laden und OAuth neu beginnen. Authorization Codes und State-Links sind kurzlebig/einmalig und dürfen nicht wiederverwendet werden.
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -9,7 +9,7 @@ Start with the visible symptom. Never include credentials, hostnames, appliance
|
|
|
9
9
|
1. Is the expected build installed?
|
|
10
10
|
```bash
|
|
11
11
|
cd ~/.node-red
|
|
12
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
12
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
13
13
|
```
|
|
14
14
|
Expect version `0.2.0`, build `hc-0.2.0-final`, and `pkce: false`.
|
|
15
15
|
2. Is the correct connection selected and clearly named?
|
|
@@ -96,10 +96,10 @@ A flow deploy does not reload Node.js runtime code. Use BUILD-INFO in addition t
|
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
98
|
cd ~/.node-red
|
|
99
|
-
npm uninstall node-red-contrib-home-connect
|
|
100
|
-
rm -rf node_modules/node-red-contrib-home-connect
|
|
101
|
-
npm install --force /absolute/path/node-red-contrib-home-connect-0.2.0.tgz
|
|
102
|
-
node -p "require('./node_modules/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
99
|
+
npm uninstall @impact0815/node-red-contrib-home-connect
|
|
100
|
+
rm -rf node_modules/@impact0815/node-red-contrib-home-connect
|
|
101
|
+
npm install --force /absolute/path/impact0815-node-red-contrib-home-connect-0.2.0.tgz
|
|
102
|
+
node -p "require('./node_modules/@impact0815/node-red-contrib-home-connect/BUILD-INFO.json')"
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
Then restart Node-RED or the container completely, hard-reload the browser, and begin OAuth again. Authorization codes and state links are short-lived and single-use.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Home-Connect-Beispiel-Flows
|
|
2
|
+
|
|
3
|
+
**[English](README.md) · Deutsch**
|
|
4
|
+
|
|
5
|
+
Diese Beispiele sind so erklärt, dass sie auch ohne Programmierkenntnisse nutzbar sind. Am besten mit dem integrierten Simulator beginnen: Er verwendet kein Home-Connect-Konto, keine Zugangsdaten und kein echtes Gerät.
|
|
6
|
+
|
|
7
|
+
## Vor dem Start
|
|
8
|
+
|
|
9
|
+
1. `@impact0815/node-red-contrib-home-connect` installieren.
|
|
10
|
+
2. Node-RED neu starten und den Editor neu laden.
|
|
11
|
+
3. Für die drei Dashboard-Beispiele zusätzlich `@flowfuse/node-red-dashboard` installieren:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd ~/.node-red
|
|
15
|
+
npm install @flowfuse/node-red-dashboard
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Mitgeliefertes Beispiel importieren
|
|
19
|
+
|
|
20
|
+
1. Node-RED öffnen.
|
|
21
|
+
2. **Menü → Import → Beispiele → @impact0815/node-red-contrib-home-connect** wählen.
|
|
22
|
+
3. Ein Beispiel auswählen.
|
|
23
|
+
4. **Importieren** anklicken.
|
|
24
|
+
5. Oben rechts **Deployen** anklicken.
|
|
25
|
+
|
|
26
|
+
Für den Einstieg **01-first-steps-device-list** verwenden. Danach links am Inject-Node auf den Knopf drücken. In der Debug-Seitenleiste sollten drei simulierte Geräte erscheinen.
|
|
27
|
+
|
|
28
|
+
## Welches Beispiel passt?
|
|
29
|
+
|
|
30
|
+
| Beispiel | Geeignet für | Vorgehen |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `01-first-steps-device-list.json` | Erster Test | Deployen, Inject-Knopf drücken, Geräteliste im Debug-Fenster ansehen. |
|
|
33
|
+
| `02-events.json` | Live-Änderungen | Deployen und simulierte Ereignisse im Debug-Fenster verfolgen. |
|
|
34
|
+
| `03-safe-read-write.json` | Sicherer Schreibtest | **Dry-Run** eingeschaltet lassen. Der Flow prüft einen Befehl, sendet ihn aber nicht. |
|
|
35
|
+
| `04-local-read-only.json` | Lokale LAN-Profile | Beispielverbindung durch die eigene lokale Read-only-Verbindung ersetzen. Der Flow enthält keinen Write-Node. |
|
|
36
|
+
| `dashboard-dishwasher-washer-oven.json` | Vollständiges Dashboard | Deployen und `/dashboard/overview` öffnen. Unterstützt Cloud und lokales Read-only. |
|
|
37
|
+
| `dashboard-screenshot-simulated.json` | Demo ohne Netzwerk | Deployen und Dashboard öffnen. Alle Geräte und Werte sind simuliert. |
|
|
38
|
+
| `demo-home-connect-flowfuse-1.34.1-scriptless.json` | Isolierte Oberflächen-Demo | Importieren, wenn nur das Dashboard ohne Home-Connect-Runtime-Nodes oder Netzwerkzugriff ausprobiert werden soll. |
|
|
39
|
+
|
|
40
|
+
## Vom Simulator zu den eigenen Geräten
|
|
41
|
+
|
|
42
|
+
1. Zuerst prüfen, ob der gewählte Flow mit dem Simulator funktioniert.
|
|
43
|
+
2. Entweder eine **Production-Cloud-Verbindung** oder eine **Local-LAN-Verbindung (read-only)** anlegen.
|
|
44
|
+
3. Jeden Home-Connect-Node im importierten Flow öffnen und die eigene Verbindung auswählen.
|
|
45
|
+
4. **Fertig**, danach **Deployen** anklicken.
|
|
46
|
+
5. Für Cloud-Zugriff die OAuth-Autorisierung abschließen und nur die benötigten Rechte vergeben.
|
|
47
|
+
6. Cloud-Write-Nodes auf **Dry-Run** lassen, bis Gerät, Befehl und Werte eindeutig geprüft sind.
|
|
48
|
+
|
|
49
|
+
Lokaler LAN-Zugriff ist immer nur lesend. Ein lokaler Schreibversuch wird vor jedem Netzwerkzugriff abgewiesen.
|
|
50
|
+
|
|
51
|
+
## Wenn nichts angezeigt wird
|
|
52
|
+
|
|
53
|
+
- Prüfen, ob Node-RED nach der Installation neu gestartet wurde.
|
|
54
|
+
- Prüfen, ob der Flow deployt wurde.
|
|
55
|
+
- Debug-Seitenleiste öffnen und kontrollieren, ob ein Filter Meldungen ausblendet.
|
|
56
|
+
- Bei Dashboards prüfen, ob `@flowfuse/node-red-dashboard` installiert ist.
|
|
57
|
+
- Bei Cloud-Flows die deployte Verbindung testen und OAuth-Rechte prüfen.
|
|
58
|
+
- Siehe [deutsche Troubleshooting-Anleitung](../docs/TROUBLESHOOTING.de.md) oder [englische Troubleshooting-Anleitung](../docs/TROUBLESHOOTING.md).
|
|
59
|
+
|
|
60
|
+
## Sicherheit und Datenschutz
|
|
61
|
+
|
|
62
|
+
Nie Client Secrets, Tokens, Profil-PSK/IV, echte Geräte-IDs, private Adressen oder Flows mit Zugangsdaten weitergeben. Zuerst simulierte Daten und Dry-Run verwenden. Gerätesteuerung kann Hitze, Bewegung und Wasserverbrauch auslösen.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Home Connect example flows
|
|
2
|
+
|
|
3
|
+
**English · [Deutsch](README.de.md)**
|
|
4
|
+
|
|
5
|
+
These examples are designed to be usable without programming knowledge. Start with the built-in simulator: it uses no Home Connect account, no credentials, and no real appliance.
|
|
6
|
+
|
|
7
|
+
## Before you start
|
|
8
|
+
|
|
9
|
+
1. Install `@impact0815/node-red-contrib-home-connect`.
|
|
10
|
+
2. Restart Node-RED and reload the editor.
|
|
11
|
+
3. For the three dashboard examples, also install `@flowfuse/node-red-dashboard`:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd ~/.node-red
|
|
15
|
+
npm install @flowfuse/node-red-dashboard
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Import an included example
|
|
19
|
+
|
|
20
|
+
1. Open Node-RED.
|
|
21
|
+
2. Choose **Menu → Import → Examples → @impact0815/node-red-contrib-home-connect**.
|
|
22
|
+
3. Select an example.
|
|
23
|
+
4. Click **Import**.
|
|
24
|
+
5. Click **Deploy** in the upper-right corner.
|
|
25
|
+
|
|
26
|
+
Start with **01-first-steps-device-list**. Press the button on the left side of its Inject node. The Debug sidebar should show three simulated appliances.
|
|
27
|
+
|
|
28
|
+
## Which example should I choose?
|
|
29
|
+
|
|
30
|
+
| Example | Good for | What to do |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `01-first-steps-device-list.json` | First test | Deploy, press the Inject button, read the appliance list in Debug. |
|
|
33
|
+
| `02-events.json` | Live changes | Deploy and watch simulated events in Debug. |
|
|
34
|
+
| `03-safe-read-write.json` | Safe writing test | Keep **dry-run** enabled. The flow validates a command but does not send it. |
|
|
35
|
+
| `04-local-read-only.json` | Local LAN profiles | Replace the example connection with your own read-only local configuration. It contains no Write node. |
|
|
36
|
+
| `dashboard-dishwasher-washer-oven.json` | Full dashboard | Deploy, then open `/dashboard/overview`. It supports cloud and local read-only data. |
|
|
37
|
+
| `dashboard-screenshot-simulated.json` | Network-free demo | Deploy and open the dashboard. All appliances and values are simulated. |
|
|
38
|
+
| `demo-home-connect-flowfuse-1.34.1-scriptless.json` | Isolated UI demo | Import when you only want to explore the dashboard without Home Connect runtime nodes or network access. |
|
|
39
|
+
|
|
40
|
+
## Moving from the simulator to your appliances
|
|
41
|
+
|
|
42
|
+
1. First confirm that the chosen flow works with the simulator.
|
|
43
|
+
2. Create either a **Production cloud** connection or a **Local LAN (read-only)** connection.
|
|
44
|
+
3. Open every Home Connect node in the imported flow and select your own connection.
|
|
45
|
+
4. Click **Done**, then **Deploy**.
|
|
46
|
+
5. For cloud access, complete OAuth authorization and use only the permissions you need.
|
|
47
|
+
6. Keep cloud Write nodes in **dry-run** until the displayed appliance, command, and values are correct.
|
|
48
|
+
|
|
49
|
+
Local LAN access is always read-only. A local Write request is rejected before network I/O.
|
|
50
|
+
|
|
51
|
+
## If nothing appears
|
|
52
|
+
|
|
53
|
+
- Confirm that Node-RED was restarted after installation.
|
|
54
|
+
- Confirm that the flow was deployed.
|
|
55
|
+
- Open the Debug sidebar and check whether its filter is hiding messages.
|
|
56
|
+
- For dashboards, confirm that `@flowfuse/node-red-dashboard` is installed.
|
|
57
|
+
- For cloud flows, test the deployed connection and verify OAuth scopes.
|
|
58
|
+
- See the [English troubleshooting guide](../docs/TROUBLESHOOTING.md) or [German troubleshooting guide](../docs/TROUBLESHOOTING.de.md).
|
|
59
|
+
|
|
60
|
+
## Safety and privacy
|
|
61
|
+
|
|
62
|
+
Never share Client Secrets, tokens, profile PSK/IV values, real appliance IDs, private addresses, or exported flows containing credentials. Use simulated data and dry-run first. Appliance control can cause heat, motion, and water use.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"type": "comment",
|
|
12
12
|
"z": "hc-dashboard-flow",
|
|
13
13
|
"name": "Dashboard 2.0 · DE/EN lokalisiert · Cloud + Local read-only · Built-in simulator",
|
|
14
|
-
"info": "Requires @flowfuse/node-red-dashboard and node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
14
|
+
"info": "Requires @flowfuse/node-red-dashboard and @impact0815/node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
15
15
|
"x": 360,
|
|
16
16
|
"y": 40,
|
|
17
17
|
"wires": []
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"type": "comment",
|
|
13
13
|
"z": "demo-hc-r9-fix1-dashboard-flow",
|
|
14
14
|
"name": "Demo vollständig simuliert · keine Credentials, Geräte-IDs, IPs oder lokalen Profile",
|
|
15
|
-
"info": "Requires @flowfuse/node-red-dashboard and node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
15
|
+
"info": "Requires @flowfuse/node-red-dashboard and @impact0815/node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
16
16
|
"x": 360,
|
|
17
17
|
"y": 40,
|
|
18
18
|
"wires": []
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"type": "comment",
|
|
13
13
|
"z": "demo-hc-ff1341-fix2-dashboard-flow",
|
|
14
14
|
"name": "Demo FlowFuse 1.34.1 · vollständig simuliert · skriptfreie UI-Templates",
|
|
15
|
-
"info": "Requires @flowfuse/node-red-dashboard and node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
15
|
+
"info": "Requires @flowfuse/node-red-dashboard and @impact0815/node-red-contrib-home-connect. Health schema: home-connect-health/v1. Device information only; no firmware endpoint is used.",
|
|
16
16
|
"x": 360,
|
|
17
17
|
"y": 40,
|
|
18
18
|
"wires": []
|
package/package.json
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@impact0815/node-red-contrib-home-connect",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Node-RED nodes for
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Node-RED nodes for Home Connect: OAuth authorization, automatic appliance discovery, events, reading and safeguarded writing via the official cloud API, plus experimental read-only local LAN access.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node-red",
|
|
7
7
|
"home-connect",
|
|
8
|
+
"home-automation",
|
|
9
|
+
"iot",
|
|
10
|
+
"smart-home",
|
|
11
|
+
"appliances",
|
|
12
|
+
"oauth2",
|
|
13
|
+
"websocket",
|
|
14
|
+
"server-sent-events",
|
|
8
15
|
"bosch",
|
|
9
16
|
"siemens",
|
|
10
17
|
"neff",
|
|
11
|
-
"gaggenau"
|
|
12
|
-
"appliance",
|
|
13
|
-
"oauth2",
|
|
14
|
-
"sse"
|
|
18
|
+
"gaggenau"
|
|
15
19
|
],
|
|
16
20
|
"license": "MIT",
|
|
17
21
|
"author": "impact0815",
|
|
18
|
-
"homepage": "https://
|
|
22
|
+
"homepage": "https://www.npmjs.com/package/@impact0815/node-red-contrib-home-connect",
|
|
19
23
|
"repository": {
|
|
20
24
|
"type": "git",
|
|
21
25
|
"url": "git+https://github.com/impact0815/node-red-contrib-home-connect.git"
|
|
@@ -24,11 +28,12 @@
|
|
|
24
28
|
"url": "https://github.com/impact0815/node-red-contrib-home-connect/issues"
|
|
25
29
|
},
|
|
26
30
|
"publishConfig": {
|
|
27
|
-
"access": "public"
|
|
31
|
+
"access": "public",
|
|
32
|
+
"registry": "https://registry.npmjs.org/"
|
|
28
33
|
},
|
|
29
34
|
"main": "nodes/home-connect.js",
|
|
30
35
|
"homeConnectBuild": {
|
|
31
|
-
"buildId": "hc-0.2.
|
|
36
|
+
"buildId": "hc-0.2.1-final",
|
|
32
37
|
"oauthFlow": "authorization_code_client_secret",
|
|
33
38
|
"pkce": false,
|
|
34
39
|
"dashboardLocales": [
|