Files
kkelomatic_home/docs/integration/nodered-flow-check-report.md
nearxos d755d3c1ed Update Node-RED configuration and documentation for room management
- 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.
2026-04-01 14:43:30 +03:00

82 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).