node-red-contrib-knx-ultimate 4.0.0-beta.0 → 4.0.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/CHANGELOG.md +3 -2
- package/README-WIKI.md +108 -0
- package/README.md +13 -1
- package/examples/Logger ETS File and Telegram Count.json +46 -0
- package/examples/Scene Controller Recall and Save.json +76 -0
- package/examples/Universal Mode Read and Write.json +84 -0
- package/examples/Viewer GA Dashboard.json +44 -0
- package/examples/WatchDog Connect Disconnect.json +70 -0
- package/nodes/hue-config.html +0 -22
- package/nodes/knxUltimate-config.html +328 -292
- package/nodes/knxUltimate-config.js +2 -0
- package/nodes/knxUltimate.html +0 -220
- package/nodes/knxUltimateAlerter.html +0 -160
- package/nodes/knxUltimateAutoResponder.html +1 -89
- package/nodes/knxUltimateGarageDoorBarrierOpener.html +0 -65
- package/nodes/knxUltimateGlobalContext.html +0 -124
- package/nodes/knxUltimateHATranslator.html +0 -17
- package/nodes/knxUltimateHueBattery.html +0 -22
- package/nodes/knxUltimateHueButton.html +0 -41
- package/nodes/knxUltimateHueContactSensor.html +0 -27
- package/nodes/knxUltimateHueLight.html +1 -106
- package/nodes/knxUltimateHueLightSensor.html +0 -29
- package/nodes/knxUltimateHueMotion.html +0 -29
- package/nodes/knxUltimateHueScene.html +0 -48
- package/nodes/knxUltimateHueTapDial.html +0 -34
- package/nodes/knxUltimateHueTemperatureSensor.html +0 -29
- package/nodes/knxUltimateHueZigbeeConnectivity.html +0 -29
- package/nodes/knxUltimateHuedevice_software_update.html +0 -26
- package/nodes/knxUltimateLoadControl.html +0 -67
- package/nodes/knxUltimateLogger.html +0 -164
- package/nodes/knxUltimateSceneController.html +0 -116
- package/nodes/knxUltimateViewer.html +0 -454
- package/nodes/knxUltimateWatchDog.html +2 -240
- package/nodes/locales/de/knxUltimate-config.json +3 -1
- package/nodes/locales/de-DE/hue-config.html +22 -0
- package/nodes/locales/de-DE/knxUltimate-config.html +102 -0
- package/nodes/locales/de-DE/knxUltimate.html +200 -0
- package/nodes/locales/de-DE/knxUltimateAlerter.html +146 -0
- package/nodes/locales/de-DE/knxUltimateAutoResponder.html +86 -0
- package/nodes/locales/de-DE/knxUltimateGarageDoorBarrierOpener.html +63 -0
- package/nodes/locales/de-DE/knxUltimateGlobalContext.html +61 -0
- package/nodes/locales/de-DE/knxUltimateHATranslator.html +16 -0
- package/nodes/locales/de-DE/knxUltimateHueBattery.html +18 -0
- package/nodes/locales/de-DE/knxUltimateHueButton.html +37 -0
- package/nodes/locales/de-DE/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/de-DE/knxUltimateHueLight.html +98 -0
- package/nodes/locales/de-DE/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/de-DE/knxUltimateHueMotion.html +26 -0
- package/nodes/locales/de-DE/knxUltimateHueScene.html +44 -0
- package/nodes/locales/de-DE/knxUltimateHueTapDial.html +30 -0
- package/nodes/locales/de-DE/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/de-DE/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/de-DE/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/de-DE/knxUltimateLoadControl.html +57 -0
- package/nodes/locales/de-DE/knxUltimateLogger.html +103 -0
- package/nodes/locales/de-DE/knxUltimateSceneController.html +81 -0
- package/nodes/locales/de-DE/knxUltimateViewer.html +446 -0
- package/nodes/locales/en-US/hue-config.html +21 -0
- package/nodes/locales/en-US/knxUltimate-config.html +157 -0
- package/nodes/locales/en-US/knxUltimate-config.json +4 -1
- package/nodes/locales/en-US/knxUltimate.html +604 -0
- package/nodes/locales/en-US/knxUltimateAlerter.html +161 -0
- package/nodes/locales/en-US/knxUltimateAutoResponder.html +86 -0
- package/nodes/locales/en-US/knxUltimateGarageDoorBarrierOpener.html +63 -0
- package/nodes/locales/en-US/knxUltimateGlobalContext.html +119 -0
- package/nodes/locales/en-US/knxUltimateHATranslator.html +16 -0
- package/nodes/locales/en-US/knxUltimateHueBattery.html +18 -0
- package/nodes/locales/en-US/knxUltimateHueButton.html +37 -0
- package/nodes/locales/en-US/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/en-US/knxUltimateHueLight.html +102 -0
- package/nodes/locales/en-US/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/en-US/knxUltimateHueMotion.html +26 -0
- package/nodes/locales/en-US/knxUltimateHueScene.html +44 -0
- package/nodes/locales/en-US/knxUltimateHueTapDial.html +30 -0
- package/nodes/locales/en-US/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/en-US/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/en-US/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/en-US/knxUltimateLoadControl.html +66 -0
- package/nodes/locales/en-US/knxUltimateLogger.html +159 -0
- package/nodes/locales/en-US/knxUltimateSceneController.html +115 -0
- package/nodes/locales/en-US/knxUltimateViewer.html +453 -0
- package/nodes/locales/it/knxUltimate-config.json +4 -1
- package/nodes/locales/it-IT/hue-config.html +22 -0
- package/nodes/locales/it-IT/knxUltimate-config.html +105 -0
- package/nodes/locales/it-IT/knxUltimate.html +259 -0
- package/nodes/locales/it-IT/knxUltimateAlerter.html +146 -0
- package/nodes/locales/it-IT/knxUltimateAutoResponder.html +86 -0
- package/nodes/locales/it-IT/knxUltimateGarageDoorBarrierOpener.html +63 -0
- package/nodes/locales/it-IT/knxUltimateGlobalContext.html +66 -0
- package/nodes/locales/it-IT/knxUltimateHATranslator.html +16 -0
- package/nodes/locales/it-IT/knxUltimateHueBattery.html +18 -0
- package/nodes/locales/it-IT/knxUltimateHueButton.html +36 -0
- package/nodes/locales/it-IT/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/it-IT/knxUltimateHueLight.html +102 -0
- package/nodes/locales/it-IT/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/it-IT/knxUltimateHueMotion.html +26 -0
- package/nodes/locales/it-IT/knxUltimateHueScene.html +44 -0
- package/nodes/locales/it-IT/knxUltimateHueTapDial.html +30 -0
- package/nodes/locales/it-IT/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/it-IT/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/it-IT/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/it-IT/knxUltimateLoadControl.html +66 -0
- package/nodes/locales/it-IT/knxUltimateLogger.html +109 -0
- package/nodes/locales/it-IT/knxUltimateSceneController.html +84 -0
- package/nodes/locales/it-IT/knxUltimateViewer.html +446 -0
- package/nodes/locales/zh-CN/hue-config.html +22 -0
- package/nodes/locales/zh-CN/knxUltimate-config.html +102 -0
- package/nodes/locales/zh-CN/knxUltimate-config.json +3 -1
- package/nodes/locales/zh-CN/knxUltimate.html +202 -0
- package/nodes/locales/zh-CN/knxUltimateAlerter.html +146 -0
- package/nodes/locales/zh-CN/knxUltimateAutoResponder.html +86 -0
- package/nodes/locales/zh-CN/knxUltimateGarageDoorBarrierOpener.html +63 -0
- package/nodes/locales/zh-CN/knxUltimateGlobalContext.html +62 -0
- package/nodes/locales/zh-CN/knxUltimateHATranslator.html +16 -0
- package/nodes/locales/zh-CN/knxUltimateHueBattery.html +18 -0
- package/nodes/locales/zh-CN/knxUltimateHueButton.html +37 -0
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/zh-CN/knxUltimateHueLight.html +102 -0
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/zh-CN/knxUltimateHueMotion.html +26 -0
- package/nodes/locales/zh-CN/knxUltimateHueScene.html +44 -0
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +30 -0
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/zh-CN/knxUltimateLoadControl.html +66 -0
- package/nodes/locales/zh-CN/knxUltimateLogger.html +103 -0
- package/nodes/locales/zh-CN/knxUltimateSceneController.html +81 -0
- package/nodes/locales/zh-CN/knxUltimateViewer.html +446 -0
- package/package.json +6 -4
- package/resources/htmlUtils.js +109 -0
- package/scripts/inject-wiki-header.js +43 -14
- package/scripts/manage-wiki-menu.js +187 -0
- package/scripts/migrate-node-help.js +128 -0
- package/scripts/translate-wiki.js +141 -0
- package/scripts/wiki-menu.json +555 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
-
**Version
|
|
10
|
-
-
|
|
9
|
+
**Version 4.0.1** - September 2025<br/>
|
|
10
|
+
- CAUTION - MAKE A BACKUP OF YOUR FLOW BEFORE UPGRADING<br/>
|
|
11
|
+
- NEW: KNX Secure has arrived!!<br/>
|
|
11
12
|
- Enhancements: enancements in the UI<br/>
|
|
12
13
|
- Enhancements: enancements in the help tab of node-red<br/>
|
|
13
14
|
- Enhancements: added localization IT EN DE CN<br/>
|
package/README-WIKI.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Wiki Maintenance — Scripts and Workflow
|
|
2
|
+
|
|
3
|
+
This document explains how to maintain the GitHub Wiki for node-red-contrib-knx-ultimate using the helper scripts included in this repo.
|
|
4
|
+
|
|
5
|
+
Where things live
|
|
6
|
+
- Wiki repo: ../node-red-contrib-knx-ultimate.wiki
|
|
7
|
+
- Scripts: scripts/*
|
|
8
|
+
- Menu config: scripts/wiki-menu.json
|
|
9
|
+
|
|
10
|
+
Prerequisites
|
|
11
|
+
- Node.js 20+
|
|
12
|
+
- The wiki repo checked out next to this repo (as above).
|
|
13
|
+
- Internet connectivity (for translation).
|
|
14
|
+
|
|
15
|
+
NPM scripts
|
|
16
|
+
- Validate bars: `npm run wiki:validate`
|
|
17
|
+
- Checks that every page’s first line has a correct language bar with absolute wiki URLs.
|
|
18
|
+
- Excludes `_Sidebar.md`, `_Footer.md`, and files under `samples/`.
|
|
19
|
+
- Fix bars: `npm run wiki:fix-langbar`
|
|
20
|
+
- Rewrites language bars to the expected format with absolute URLs.
|
|
21
|
+
- Inject header: `npm run wiki:inject-header`
|
|
22
|
+
- Inserts/updates a localized navigation header between `<!-- NAV START -->` and `<!-- NAV END -->` right after the language bar on every page.
|
|
23
|
+
- The header includes all sections and links defined in `scripts/wiki-menu.json` and uses localized labels for EN/IT/DE/zh‑CN.
|
|
24
|
+
- Add menu item (interactive): `npm run wiki:menu-add`
|
|
25
|
+
- Prompts for a page (EN title, e.g., `Quick-Start`) and the target section.
|
|
26
|
+
- Optionally creates a new section; if localized labels are left empty, auto‑translates from EN.
|
|
27
|
+
- After saving, run `npm run wiki:inject-header` to propagate into all pages.
|
|
28
|
+
- Also generates/updates the localized Node‑RED help files (see below) if the page maps to a node.
|
|
29
|
+
- Translate pages: `npm run translate-wiki`
|
|
30
|
+
- Scans the wiki for base EN pages (no `it-`, `de-`, `zh-CN-` prefix) and creates missing translations.
|
|
31
|
+
- Preserves code blocks, keeps URLs intact, and emits an absolute-URL language bar.
|
|
32
|
+
- After translation, run `npm run wiki:inject-header` to add the localized header.
|
|
33
|
+
|
|
34
|
+
Node help migration and generation
|
|
35
|
+
- One‑time migrate (existing nodes): `node scripts/migrate-node-help.js`
|
|
36
|
+
- Finds inline node help blocks in `nodes/*.html` and moves them to localized files under:
|
|
37
|
+
- `nodes/locales/en-US/<help-name>.html`
|
|
38
|
+
- `nodes/locales/it-IT/<help-name>.html`
|
|
39
|
+
- `nodes/locales/de-DE/<help-name>.html`
|
|
40
|
+
- `nodes/locales/zh-CN/<help-name>.html`
|
|
41
|
+
- Content source: corresponding wiki pages (EN/IT/DE/zh‑CN). If a page is missing, uses the inline help as fallback.
|
|
42
|
+
- Removes the inline help from the node HTML file (keeps only templates and editor JS).
|
|
43
|
+
- Auto‑generate from wiki when adding menu entries: `npm run wiki:menu-add`
|
|
44
|
+
- If the selected wiki page maps to a node (see mapping), the script will create/update the localized help files as above.
|
|
45
|
+
|
|
46
|
+
Page ↔ node mapping (for help generation)
|
|
47
|
+
- Mapping is defined inside `scripts/manage-wiki-menu.js` (WIKI_TO_HELP/HELP_TO_WIKI).
|
|
48
|
+
- Example mappings:
|
|
49
|
+
- `HUE Bridge configuration` → `hue-config`
|
|
50
|
+
- `Gateway-configuration` → `knxUltimate-config`
|
|
51
|
+
- `KNX Node Configuration` → `knxUltimate`
|
|
52
|
+
- `Logger-Configuration` → `knxUltimateLogger`
|
|
53
|
+
- … and all HUE/KNX pages listed in the script.
|
|
54
|
+
- If you add a brand new node and wiki page, update the mapping in `manage-wiki-menu.js` once; after that, `wiki:menu-add` can generate localized help automatically.
|
|
55
|
+
|
|
56
|
+
Key files
|
|
57
|
+
- scripts/validate-wiki-languagebar.js: verifies and optionally fixes the language bar on each page.
|
|
58
|
+
- scripts/inject-wiki-header.js: generates the per‑page navigation header from `wiki-menu.json` (idempotent).
|
|
59
|
+
- scripts/manage-wiki-menu.js: interactive tool to edit `wiki-menu.json` (add items/sections with auto‑translation) and to generate localized node help files from wiki pages.
|
|
60
|
+
- scripts/translate-wiki.js: creates IT/DE/zh‑CN pages from an EN page body.
|
|
61
|
+
- scripts/wiki-menu.json: declarative definition of header sections and items. Supports `type: "page"` (localized links) and `type: "url"` (external/absolute links).
|
|
62
|
+
|
|
63
|
+
Quick start — add a new page to the wiki
|
|
64
|
+
1) Create the EN page in the wiki repo
|
|
65
|
+
- Path: ../node-red-contrib-knx-ultimate.wiki
|
|
66
|
+
- Filename: `Your-Page-Title.md` (use spaces as in the displayed title)
|
|
67
|
+
- Top of file: add the language bar (absolute links) or let the scripts generate it later.
|
|
68
|
+
2) Generate translations
|
|
69
|
+
- Run: `npm run translate-wiki`
|
|
70
|
+
- This creates `it-Your-Page-Title.md`, `de-Your-Page-Title.md`, `zh-CN-Your-Page-Title.md` if missing.
|
|
71
|
+
3) Add the page to the navigation menu
|
|
72
|
+
- Run: `npm run wiki:menu-add`
|
|
73
|
+
- Select an existing section (e.g., Overview, KNX Device, Other KNX Nodes, HUE, Samples) or create a new one.
|
|
74
|
+
- Leave localized labels empty to auto‑translate from EN, or enter your own.
|
|
75
|
+
4) Inject/update headers on all pages
|
|
76
|
+
- Run: `npm run wiki:inject-header`
|
|
77
|
+
- Each page gets the full, localized header reflecting your menu changes.
|
|
78
|
+
5) (Optional) Validate language bars
|
|
79
|
+
- Run: `npm run wiki:validate`
|
|
80
|
+
|
|
81
|
+
How to add a new node (with localized help)
|
|
82
|
+
1) Create the node as usual under `nodes/`, including editor UI and templates.
|
|
83
|
+
- If you already wrote inline help (`<script type="text/markdown" data-help-name="…">`), you can leave it temporarily; it will be migrated.
|
|
84
|
+
2) Create the EN wiki page for that node (e.g., `My Node.md`) with the proper title and content.
|
|
85
|
+
- You can use `npm run translate-wiki` to generate `it-`, `de-`, `zh-CN-` variants if missing.
|
|
86
|
+
3) Add the wiki → node mapping (only for brand‑new entries)
|
|
87
|
+
- Edit `scripts/manage-wiki-menu.js` and add a mapping in `HELP_TO_WIKI`, e.g.:
|
|
88
|
+
- `['myNewNode', 'My Node']`
|
|
89
|
+
4) Add the page to the menu
|
|
90
|
+
- Run: `npm run wiki:menu-add`, select the section, optionally create a new section, and accept auto‑translation of labels if desired.
|
|
91
|
+
- This will also generate/update localized help files under `nodes/locales/<lang>/<help-name>.html` for the node.
|
|
92
|
+
5) (If you started with inline help) Migrate and clean up
|
|
93
|
+
- Run once: `node scripts/migrate-node-help.js` to remove inline help and ensure all nodes use localized help files.
|
|
94
|
+
6) Verify in Node‑RED
|
|
95
|
+
- Restart Node‑RED and switch the UI language to see the localized help under the “Info” panel for the node.
|
|
96
|
+
|
|
97
|
+
Conventions and notes
|
|
98
|
+
- Language bar: first line of each page. Scripts will normalize it to absolute links: EN, IT (`it-`), DE (`de-`), zh‑CN (`zh-CN-`).
|
|
99
|
+
- Header placement: inserted right below the language bar. Do not edit between the NAV markers; regenerate instead.
|
|
100
|
+
- Samples: most sample pages exist only in EN. The menu uses absolute URLs for these.
|
|
101
|
+
- Sidebar: a minimal `_Sidebar.md` exists with only language home links; the full navigation is in the per‑page header.
|
|
102
|
+
|
|
103
|
+
Troubleshooting
|
|
104
|
+
- Header not updated: ensure `scripts/wiki-menu.json` contains the page (type:"page" and correct `page` title). Then run `npm run wiki:inject-header`.
|
|
105
|
+
- Wrong/missing translations: re‑run `npm run translate-wiki` after adjusting the EN page. The script doesn’t overwrite existing translations; delete a specific translated file to force regeneration.
|
|
106
|
+
- Language bar still relative on GitHub: run `npm run wiki:fix-langbar` and push the wiki repo.
|
|
107
|
+
- Migrate node help: `npm run wiki:help-migrate`
|
|
108
|
+
- One‑shot migration of inline help blocks from `nodes/*.html` to localized files in `nodes/locales/<lang>/<help-name>.html` using wiki content as source (fallback to inline text if wiki page is missing).
|
package/README.md
CHANGED
|
@@ -15,10 +15,22 @@
|
|
|
15
15
|
|
|
16
16
|
<p align='center'>
|
|
17
17
|
<img width="110px" src="https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/KNX_CERTI_MARK_RGB.jpg" ></br>
|
|
18
|
+
<span style="font-size:0.7em;color:grey;">Authorized KNX logo by KNX Association*</span></br></br>
|
|
18
19
|
<img width="110px" src="https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/knxsecure.png" ></br>
|
|
19
|
-
<span style="font-size:0.7em;color:grey;">Authorized KNX logo by KNX Association*</span>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
+
</br>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<p align='center'>
|
|
26
|
+
<img width="110px" src="https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/c/agata.png"></br>
|
|
27
|
+
<center>Many thanks to <a href="https://www.agatastore.it">Agata Store - Professional store and Certified KNX Partner</a>
|
|
28
|
+
for providing me with KNX Secure stuffs to test with.</center>
|
|
29
|
+
</p>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</br>
|
|
33
|
+
</br>
|
|
22
34
|
</br>
|
|
23
35
|
|
|
24
36
|
**You can use it immediately!**
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "log_cfg_1",
|
|
4
|
+
"type": "knxUltimate-config",
|
|
5
|
+
"z": "",
|
|
6
|
+
"host": "224.0.23.12",
|
|
7
|
+
"port": "3671",
|
|
8
|
+
"physAddr": "15.15.204",
|
|
9
|
+
"suppressACKRequest": false,
|
|
10
|
+
"csv": "",
|
|
11
|
+
"KNXEthInterface": "Auto",
|
|
12
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
13
|
+
"autoReconnect": "yes"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "logger_1",
|
|
17
|
+
"type": "knxUltimateLogger",
|
|
18
|
+
"z": "flow5",
|
|
19
|
+
"server": "log_cfg_1",
|
|
20
|
+
"topic": "",
|
|
21
|
+
"intervalCreateETSXML": 15,
|
|
22
|
+
"name": "KNX Logger",
|
|
23
|
+
"autoStartTimerCreateETSXML": true,
|
|
24
|
+
"maxRowsInETSXML": 0,
|
|
25
|
+
"autoStartTimerTelegramCounter": true,
|
|
26
|
+
"intervalTelegramCount": 60,
|
|
27
|
+
"x": 320,
|
|
28
|
+
"y": 180,
|
|
29
|
+
"wires": [["logger_dbg_ets"],[]]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "logger_dbg_ets",
|
|
33
|
+
"type": "debug",
|
|
34
|
+
"z": "flow5",
|
|
35
|
+
"name": "ETS diag file",
|
|
36
|
+
"active": true,
|
|
37
|
+
"tosidebar": true,
|
|
38
|
+
"console": false,
|
|
39
|
+
"tostatus": false,
|
|
40
|
+
"complete": "true",
|
|
41
|
+
"targetType": "full",
|
|
42
|
+
"x": 540,
|
|
43
|
+
"y": 180,
|
|
44
|
+
"wires": []
|
|
45
|
+
}
|
|
46
|
+
]
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "sc_cfg_1",
|
|
4
|
+
"type": "knxUltimate-config",
|
|
5
|
+
"z": "",
|
|
6
|
+
"host": "224.0.23.12",
|
|
7
|
+
"port": "3671",
|
|
8
|
+
"physAddr": "15.15.203",
|
|
9
|
+
"suppressACKRequest": false,
|
|
10
|
+
"csv": "",
|
|
11
|
+
"KNXEthInterface": "Auto",
|
|
12
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
13
|
+
"autoReconnect": "yes"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "scene_ctrl_1",
|
|
17
|
+
"type": "knxUltimateSceneController",
|
|
18
|
+
"z": "flow4",
|
|
19
|
+
"server": "sc_cfg_1",
|
|
20
|
+
"name": "Scene Recall/Save",
|
|
21
|
+
"outputtopic": "",
|
|
22
|
+
"topic": "0/1/1",
|
|
23
|
+
"dpt": "18.001",
|
|
24
|
+
"topicTrigger": "{save_recall:0, scenenumber:2}",
|
|
25
|
+
"topicSave": "0/1/2",
|
|
26
|
+
"dptSave": "18.001",
|
|
27
|
+
"topicSaveTrigger": "{save_recall:1, scenenumber:2}",
|
|
28
|
+
"property": "payload",
|
|
29
|
+
"propertyType": "msg",
|
|
30
|
+
"rules": [],
|
|
31
|
+
"x": 410,
|
|
32
|
+
"y": 200,
|
|
33
|
+
"wires": [["sc_dbg"]]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "inj_recall",
|
|
37
|
+
"type": "inject",
|
|
38
|
+
"z": "flow4",
|
|
39
|
+
"name": "Recall Scene 2",
|
|
40
|
+
"props": [{"p":"payload","v":"true","vt":"bool"}],
|
|
41
|
+
"repeat": "",
|
|
42
|
+
"once": false,
|
|
43
|
+
"onceDelay": 0.1,
|
|
44
|
+
"x": 180,
|
|
45
|
+
"y": 180,
|
|
46
|
+
"wires": [["scene_ctrl_1"]]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "inj_save",
|
|
50
|
+
"type": "inject",
|
|
51
|
+
"z": "flow4",
|
|
52
|
+
"name": "Save Scene 2",
|
|
53
|
+
"props": [{"p":"payload","v":"true","vt":"bool"}],
|
|
54
|
+
"repeat": "",
|
|
55
|
+
"once": false,
|
|
56
|
+
"onceDelay": 0.1,
|
|
57
|
+
"x": 170,
|
|
58
|
+
"y": 240,
|
|
59
|
+
"wires": [["scene_ctrl_1"]]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "sc_dbg",
|
|
63
|
+
"type": "debug",
|
|
64
|
+
"z": "flow4",
|
|
65
|
+
"name": "Scene out",
|
|
66
|
+
"active": true,
|
|
67
|
+
"tosidebar": true,
|
|
68
|
+
"console": false,
|
|
69
|
+
"tostatus": true,
|
|
70
|
+
"complete": "true",
|
|
71
|
+
"targetType": "full",
|
|
72
|
+
"x": 610,
|
|
73
|
+
"y": 200,
|
|
74
|
+
"wires": []
|
|
75
|
+
}
|
|
76
|
+
]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
[{
|
|
2
|
+
"id": "um_cfg_1",
|
|
3
|
+
"type": "knxUltimate-config",
|
|
4
|
+
"z": "",
|
|
5
|
+
"host": "224.0.23.12",
|
|
6
|
+
"port": "3671",
|
|
7
|
+
"physAddr": "15.15.201",
|
|
8
|
+
"suppressACKRequest": false,
|
|
9
|
+
"csv": "",
|
|
10
|
+
"KNXEthInterface": "Auto",
|
|
11
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
12
|
+
"autoReconnect": "yes"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "um_node_all",
|
|
16
|
+
"type": "knxUltimate",
|
|
17
|
+
"z": "flow2",
|
|
18
|
+
"server": "um_cfg_1",
|
|
19
|
+
"topic": "0/0/0",
|
|
20
|
+
"dpt": "1.001",
|
|
21
|
+
"initialread": false,
|
|
22
|
+
"notifyreadrequest": false,
|
|
23
|
+
"notifyresponse": true,
|
|
24
|
+
"notifywrite": true,
|
|
25
|
+
"notifyreadrequestalsorespondtobus": false,
|
|
26
|
+
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "",
|
|
27
|
+
"listenallga": true,
|
|
28
|
+
"name": "Universal mode",
|
|
29
|
+
"outputtype": "write",
|
|
30
|
+
"outputRBE": false,
|
|
31
|
+
"inputRBE": false,
|
|
32
|
+
"x": 420,
|
|
33
|
+
"y": 280,
|
|
34
|
+
"wires": [["um_dbg"]]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "um_inj_write_on",
|
|
38
|
+
"type": "inject",
|
|
39
|
+
"z": "flow2",
|
|
40
|
+
"name": "Write ON to 0/0/26",
|
|
41
|
+
"props": [
|
|
42
|
+
{"p":"payload","v":"true","vt":"bool"},
|
|
43
|
+
{"p":"destination","v":"0/0/26","vt":"str"},
|
|
44
|
+
{"p":"dpt","v":"1.001","vt":"str"}
|
|
45
|
+
],
|
|
46
|
+
"repeat": "",
|
|
47
|
+
"once": false,
|
|
48
|
+
"onceDelay": 0.1,
|
|
49
|
+
"x": 170,
|
|
50
|
+
"y": 240,
|
|
51
|
+
"wires": [["um_node_all"]]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "um_inj_read",
|
|
55
|
+
"type": "inject",
|
|
56
|
+
"z": "flow2",
|
|
57
|
+
"name": "READ 0/0/26",
|
|
58
|
+
"props": [
|
|
59
|
+
{"p":"readstatus","v":"true","vt":"bool"},
|
|
60
|
+
{"p":"destination","v":"0/0/26","vt":"str"}
|
|
61
|
+
],
|
|
62
|
+
"repeat": "",
|
|
63
|
+
"once": false,
|
|
64
|
+
"onceDelay": 0.1,
|
|
65
|
+
"x": 150,
|
|
66
|
+
"y": 320,
|
|
67
|
+
"wires": [["um_node_all"]]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "um_dbg",
|
|
71
|
+
"type": "debug",
|
|
72
|
+
"z": "flow2",
|
|
73
|
+
"name": "Universal out",
|
|
74
|
+
"active": true,
|
|
75
|
+
"tosidebar": true,
|
|
76
|
+
"console": false,
|
|
77
|
+
"tostatus": true,
|
|
78
|
+
"complete": "true",
|
|
79
|
+
"targetType": "full",
|
|
80
|
+
"x": 610,
|
|
81
|
+
"y": 280,
|
|
82
|
+
"wires": []
|
|
83
|
+
}]
|
|
84
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "view_cfg_1",
|
|
4
|
+
"type": "knxUltimate-config",
|
|
5
|
+
"z": "",
|
|
6
|
+
"host": "224.0.23.12",
|
|
7
|
+
"port": "3671",
|
|
8
|
+
"physAddr": "15.15.202",
|
|
9
|
+
"suppressACKRequest": false,
|
|
10
|
+
"csv": "",
|
|
11
|
+
"KNXEthInterface": "Auto",
|
|
12
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
13
|
+
"autoReconnect": "yes"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "viewer_1",
|
|
17
|
+
"type": "knxUltimateViewer",
|
|
18
|
+
"z": "flow3",
|
|
19
|
+
"server": "view_cfg_1",
|
|
20
|
+
"name": "GA Viewer",
|
|
21
|
+
"output": "gadashboard",
|
|
22
|
+
"showRefreshButton": true,
|
|
23
|
+
"showSendToBus": true,
|
|
24
|
+
"showFilter": true,
|
|
25
|
+
"x": 370,
|
|
26
|
+
"y": 180,
|
|
27
|
+
"wires": [["viewer_dbg"]]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "viewer_dbg",
|
|
31
|
+
"type": "debug",
|
|
32
|
+
"z": "flow3",
|
|
33
|
+
"name": "Viewer output",
|
|
34
|
+
"active": true,
|
|
35
|
+
"tosidebar": true,
|
|
36
|
+
"console": false,
|
|
37
|
+
"tostatus": false,
|
|
38
|
+
"complete": "true",
|
|
39
|
+
"targetType": "full",
|
|
40
|
+
"x": 570,
|
|
41
|
+
"y": 180,
|
|
42
|
+
"wires": []
|
|
43
|
+
}
|
|
44
|
+
]
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[{
|
|
2
|
+
"id": "wd_cfg_1",
|
|
3
|
+
"type": "knxUltimate-config",
|
|
4
|
+
"z": "",
|
|
5
|
+
"host": "224.0.23.12",
|
|
6
|
+
"port": "3671",
|
|
7
|
+
"physAddr": "15.15.200",
|
|
8
|
+
"suppressACKRequest": false,
|
|
9
|
+
"csv": "",
|
|
10
|
+
"KNXEthInterface": "Auto",
|
|
11
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
12
|
+
"autoReconnect": "no"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "wd_node_1",
|
|
16
|
+
"type": "knxUltimateWatchDog",
|
|
17
|
+
"z": "flow1",
|
|
18
|
+
"server": "wd_cfg_1",
|
|
19
|
+
"checkLevel": "Ethernet",
|
|
20
|
+
"topic": "0/0/0",
|
|
21
|
+
"name": "KNX WatchDog",
|
|
22
|
+
"autoStart": false,
|
|
23
|
+
"retryInterval": 5,
|
|
24
|
+
"maxRetry": 3,
|
|
25
|
+
"x": 410,
|
|
26
|
+
"y": 160,
|
|
27
|
+
"wires": [["wd_dbg_1"]]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "wd_inj_connect",
|
|
31
|
+
"type": "inject",
|
|
32
|
+
"z": "flow1",
|
|
33
|
+
"name": "Connect gateway",
|
|
34
|
+
"props": [{"p":"connectGateway","v":"true","vt":"bool"}],
|
|
35
|
+
"repeat": "",
|
|
36
|
+
"once": false,
|
|
37
|
+
"onceDelay": 0.1,
|
|
38
|
+
"x": 180,
|
|
39
|
+
"y": 120,
|
|
40
|
+
"wires": [["wd_node_1"]]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "wd_inj_disconnect",
|
|
44
|
+
"type": "inject",
|
|
45
|
+
"z": "flow1",
|
|
46
|
+
"name": "Disconnect gateway",
|
|
47
|
+
"props": [{"p":"connectGateway","v":"false","vt":"bool"}],
|
|
48
|
+
"repeat": "",
|
|
49
|
+
"once": false,
|
|
50
|
+
"onceDelay": 0.1,
|
|
51
|
+
"x": 190,
|
|
52
|
+
"y": 200,
|
|
53
|
+
"wires": [["wd_node_1"]]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "wd_dbg_1",
|
|
57
|
+
"type": "debug",
|
|
58
|
+
"z": "flow1",
|
|
59
|
+
"name": "WatchDog status",
|
|
60
|
+
"active": true,
|
|
61
|
+
"tosidebar": true,
|
|
62
|
+
"console": false,
|
|
63
|
+
"tostatus": true,
|
|
64
|
+
"complete": "true",
|
|
65
|
+
"targetType": "full",
|
|
66
|
+
"x": 610,
|
|
67
|
+
"y": 160,
|
|
68
|
+
"wires": []
|
|
69
|
+
}]
|
|
70
|
+
|
package/nodes/hue-config.html
CHANGED
|
@@ -231,26 +231,4 @@
|
|
|
231
231
|
</div>
|
|
232
232
|
|
|
233
233
|
|
|
234
|
-
</script>
|
|
235
|
-
<script type="text/markdown" data-help-name="hue-config">
|
|
236
|
-
<H1><p align='center'>PHILIPS HUE NODES</p></H1>
|
|
237
|
-
<br/>
|
|
238
|
-
<p align='center'> <img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/huehub.jpg' width='40%'></p>
|
|
239
|
-
|
|
240
|
-
This node registers to the Hue Bridge.
|
|
241
|
-
|
|
242
|
-
Just set the Bridge's IP and click **CONNECT**.
|
|
243
|
-
You can also manually set the credentials, AFTER you clicked **CONNECT**.
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
**General**
|
|
247
|
-
|Property|Description|
|
|
248
|
-
|--|--|
|
|
249
|
-
| IP | Put here the bridge's IP (the IP must be fixed) |
|
|
250
|
-
| CONNECT | This button will start the registering process with HUE Bridge. The bridge ID field is automatically read from the bridge after pressing **CONNECT**. You can then choose to register new credentials, or to **SET CREDENTIALS MANUALLY**. If you choose to set credentials manually, just fill in the fields. |
|
|
251
|
-
| Name | The bridge's name |
|
|
252
|
-
| Reveal | Reveals the secret key pair Username and Client Key, so you can copy and use it wherever you want. |
|
|
253
|
-
|
|
254
|
-

|
|
255
|
-
|
|
256
234
|
</script>
|