@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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "packageName": "node-red-contrib-home-connect",
3
- "packageVersion": "0.2.0",
4
- "buildId": "hc-0.2.0-final",
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
- ### Lokale TGZ-Datei
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 /absoluter/pfad/node-red-contrib-home-connect-0.2.0.tgz
61
+ npm install @impact0815/node-red-contrib-home-connect@0.2.0
53
62
  ```
54
63
 
55
- Danach Node-RED vollständig neu starten und den Browser mit **Strg+F5** neu laden.
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 cp node-red-contrib-home-connect-0.2.0.tgz node-red:/tmp/
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
- ### Upgrade von 0.1.0
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
- Das alte Paket sauber austauschen, damit Node-RED keine veraltete Kopie lädt:
88
+ Installierten Build prüfen:
68
89
 
69
90
  ```bash
70
91
  cd ~/.node-red
71
- npm uninstall node-red-contrib-home-connect
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`. Bei Docker anschließend den Container neu starten. Bestehende Cloud-Konfiguration bleibt kompatibel; unvollständige oder alte Autorisierungs-Links/Codes nicht weiterverwenden.
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
- ### Local TGZ file
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 /absolute/path/node-red-contrib-home-connect-0.2.0.tgz
61
+ npm install @impact0815/node-red-contrib-home-connect@0.2.0
53
62
  ```
54
63
 
55
- Restart Node-RED completely and reload the browser with **Ctrl+F5**.
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 cp node-red-contrib-home-connect-0.2.0.tgz node-red:/tmp/
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
- ### Upgrade from 0.1.0
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
- Replace the old package cleanly so Node-RED cannot load a stale copy:
88
+ Verify the installed build:
68
89
 
69
90
  ```bash
70
91
  cd ~/.node-red
71
- npm uninstall node-red-contrib-home-connect
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` and `pkce: false`. Restart the container when applicable. Existing cloud configuration remains compatible; do not reuse incomplete or old authorization links/codes.
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
  |---|---|
@@ -1,6 +1,6 @@
1
1
  # Official API contract and coverage
2
2
 
3
- The cloud client in version 0.2.0 remains checked against the two official Swagger 2.0 files supplied for the 0.1.0 revision:
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
  | --- | --- | --- | ---: |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Import
4
4
 
5
- 1. `node-red-contrib-home-connect` und `@flowfuse/node-red-dashboard` installieren.
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 `node-red-contrib-home-connect` and `@flowfuse/node-red-dashboard`.
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`. Do not add features after this point; only release-blocking corrections are allowed, followed by the complete validation sequence.
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
- ## Required release inputs
5
+ ## Package identity
6
6
 
7
- - `docs/images/dashboard-overview-en.png`
8
- - `docs/images/dashboard-details-en.png`
9
- - `examples/demo-home-connect-flowfuse-1.34.1-scriptless.json`
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
- The screenshots must come from the isolated simulated Demo and must be visually reviewed for browser/account context, hostnames, addresses, real appliance IDs, tokens, QR codes, profiles, unrelated tabs, and notifications.
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
- Inspect the exact package payload:
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
- ## First GitHub publication
27
+ ## Existing GitHub repository: normal additional commit
31
28
 
32
- Create `impact0815/node-red-contrib-home-connect` as an empty public repository, without generated README, license, or `.gitignore`, then run:
29
+ Follow [GITHUB-UPDATE.md](GITHUB-UPDATE.md). In summary:
33
30
 
34
31
  ```bash
35
- git init -b main
36
- git add .
37
- git status --short
38
- git commit -m "Release node-red-contrib-home-connect 0.2.0"
39
- git remote add origin https://github.com/impact0815/node-red-contrib-home-connect.git
40
- git push -u origin main
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
- After GitHub Actions CI succeeds on `main`:
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 0.2.0"
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
- ./node-red-contrib-home-connect-0.2.0.tgz \
50
- ./SHA256SUMS.txt \
51
- --title "node-red-contrib-home-connect 0.2.0" \
52
- --notes-file RELEASE_NOTES.md
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
- npm whoami
61
- npm view node-red-contrib-home-connect versions --json
62
- npm publish ./node-red-contrib-home-connect-0.2.0.tgz --access public
63
- npm view node-red-contrib-home-connect@0.2.0 version dist.integrity dist.tarball
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 the unscoped npm name is not controlled by the publisher, stop. Do not silently rename or publish under a different scope; update package metadata, documentation, lockfile, and release plan as one reviewed change.
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 build ID must be `hc-0.2.0-final`.
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.
@@ -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.0",
4
- "description": "Node-RED nodes for read-only local Home Connect WebSockets and the official cloud API with OAuth, rate-limit protection, health and guarded writes.",
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://github.com/impact0815/node-red-contrib-home-connect#readme",
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.0-final",
36
+ "buildId": "hc-0.2.1-final",
32
37
  "oauthFlow": "authorization_code_client_secret",
33
38
  "pkce": false,
34
39
  "dashboardLocales": [