- Added node-red/config_files/flows_cred.json to .gitignore to prevent committing sensitive credentials. - Updated documentation references to the new location of room-config.js in node-red/config_files/ for clarity. - Removed the obsolete room-config.js file, centralizing configuration management. This update enhances security and improves the organization of Node-RED configuration files, ensuring better management of room settings.
82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
# Node-RED flow check report (live vs repo)
|
||
|
||
Checked live flows on **10.20.30.12** (Feb 2026). Summary below.
|
||
|
||
---
|
||
|
||
## Updated (match repo) – Living Room tab
|
||
|
||
| Node name | Status | Note |
|
||
|----------------------|----------|------|
|
||
| HA to NVL | Updated | Uses `roomConfig`, `entityToRoom` |
|
||
| Zigbee to NVL | Updated | Uses `switchBindings`, multi-device payload, `v.payload.action` |
|
||
| Clear zigbee edge | Updated | Supports `Array.isArray(msg.zigbeeClear)` |
|
||
| STATE TO NVL | Updated | Uses `global.get('roomConfig').roomNames` |
|
||
| NVL to HA Sync | Updated | Uses `roomConfig.lightEntityMap` |
|
||
|
||
You have **duplicate** nodes in the same tab: some of these names exist twice (or three times), and **one copy is old**. The flow may be wired to the **old** instances.
|
||
|
||
---
|
||
|
||
## Not updated / needs action
|
||
|
||
### 1. Load room config – **empty**
|
||
|
||
- **Current:** The "Load room config" function node contains only `return msg;` (12 chars).
|
||
- **Effect:** `global.get('roomConfig')` is never set from `room-config.js`, so other nodes may use fallbacks or wrong data.
|
||
- **Fix:** Paste the full loader code into the "Load room config" function node. Code to paste is in **[node-red/room-config-loader.js](../../node-red/room-config-loader.js)** (see below).
|
||
|
||
### 2. Duplicate nodes in Living Room
|
||
|
||
Same tab contains both updated and old versions:
|
||
|
||
- **HA to NVL:** 1 updated, 1 old
|
||
- **Zigbee to NVL:** 2 updated, 1 old
|
||
- **Clear zigbee edge:** 1 updated, 1 old
|
||
- **NVL to HA Sync:** 1 updated, 1 old
|
||
- **NVL SEND:** 1 node, **old** (hardcoded `roomNames = ['cmd_livingroom']`)
|
||
|
||
If your flow is connected to the **old** nodes, behaviour will not match the repo. Ensure:
|
||
|
||
- Zigbee/HA → **updated** "Zigbee to NVL" / "HA to NVL" → **updated** "STATE TO NVL" (or replace "NVL SEND" with STATE TO NVL and wire that) → nvl-send.
|
||
- Delay → **updated** "Clear zigbee edge" (the one that has `Array.isArray(msg.zigbeeClear)`).
|
||
|
||
### 3. Flow 7
|
||
|
||
All relevant function nodes there are **old** (fixed `livingRoom`, no roomConfig). Update them if you use that tab, or leave as-is if unused.
|
||
|
||
---
|
||
|
||
## Code to paste: Load room config
|
||
|
||
Paste this into the **Load room config** function node (and connect an Inject “once after 0.5 s” to it):
|
||
|
||
```javascript
|
||
// Delete cached version so changes to the file are picked up on redeploy
|
||
delete require.cache[require.resolve('/root/.node-red/room-config.js')];
|
||
const ROOM_CONFIG = require('/root/.node-red/room-config.js');
|
||
|
||
global.set('roomConfig', ROOM_CONFIG);
|
||
node.warn('[Load room config] loaded: ' + ROOM_CONFIG.roomNames.length + ' rooms, ' + ROOM_CONFIG.lightEntityMap.length + ' light mappings');
|
||
return null;
|
||
```
|
||
|
||
Full file: [node-red/room-config-loader.js](../../node-red/room-config-loader.js).
|
||
|
||
---
|
||
|
||
## room-config.js on server
|
||
|
||
`/root/.node-red/room-config.js` is present and contains `roomNames`, `switchBindings`, etc. Upload from repo when you change config:
|
||
`scp node-red/config_files/room-config.js root@nodered.paraskeva.net:/root/.node-red/room-config.js`
|
||
|
||
---
|
||
|
||
## Checklist
|
||
|
||
1. [ ] Paste **Load room config** code (above) into the "Load room config" node and deploy.
|
||
2. [ ] In Living Room, confirm wires go to the **updated** HA to NVL / Zigbee to NVL / Clear zigbee edge (not the old duplicates).
|
||
3. [ ] Use **STATE TO NVL** (roomConfig) in the NVL path, or replace **NVL SEND** content with [state-to-nvl-send-payload.js](state-to-nvl-send-payload.js).
|
||
4. [ ] Optionally remove or disable the **old** duplicate nodes in Living Room to avoid confusion.
|
||
5. [ ] After changing `room-config.js`, upload it and redeploy (or restart Node-RED).
|