Files
kkelomatic_home/docs/integration/nodered-livingroom-analysis.md
nearxos eab798cda4 Enhance Node-RED living room flow with new functionality and documentation updates
- Added a new "Living Room" tab to the Node-RED flow for better organization.
- Introduced functions for handling Home Assistant and Zigbee interactions, allowing for more dynamic control of living room lights.
- Updated the living room flow documentation to include configuration instructions for the Action node, improving usability for users integrating with Home Assistant.

This update enhances the functionality and clarity of the Node-RED integration for the living room setup.
2026-02-08 17:33:48 +02:00

90 lines
4.1 KiB
Markdown
Raw Permalink 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.

# Living Room flow current analysis
Analysis of the **Living Room** tab as pulled from Node-RED (root@10.20.30.12) on the current flows.
---
## Tab
| Property | Value |
|----------|--------|
| **Tab id** | `7de41d810b04d992` |
| **Label** | Living Room |
| **Nodes** | 12 |
---
## Nodes (in flow order)
### 1. Inputs
| Node | Type | Config | Out →
|------|------|--------|------
| **(unnamed)** | **trigger-state** | Server: `29eb84a2708d96e0`. Entity: **`input_boolean.living_room_new`**. 2 outputs (allowed, blocked). | → HA to NVL |
| **(unnamed)** | **zigbee2mqtt-in** | Server: `4e20fc347c658518`. **Friendly name: Office Switch (TS0042)**. | → Zigbee to NVL |
### 2. HA → NVL path
| Node | Type | Role | Out →
|------|------|------|------
| **HA to NVL** | function | ROOM_NAME = `cmd_livingroom`. Reads `msg.topic` / payload, sets `ha_lN_on` / `ha_lN_off` in `flow.nvlInState.rooms.cmd_livingroom`, outputs `buildAndSend`. | → NVL SEND |
### 3. Zigbee → NVL path
| Node | Type | Role | Out →
|------|------|------|------
| **Zigbee to NVL** | function | ROOM_NAME = `cmd_livingroom`. Maps action (e.g. `1_single`) to `zigbee_swN`, sets state, `zigbeeClear`, `buildAndSend`. | → 80ms, NVL SEND |
| **80ms** | delay | 80 ms. | → Clear zigbee edge |
| **Clear zigbee edge** | function | Clears `zigbee_swN` in state, sets `buildAndSend`. | → NVL SEND |
### 4. NVL send path
| Node | Type | Role | Out →
|------|------|------|------
| **NVL SEND** | function | Builds payload from `flow.nvlInState` (roomNames with `cmd_livingroom`), struct_room_cmds. | → link out 26 |
**link out 26** → (cross-tab) → Flow 1 **to UDP****udp out** (PLC).
### 5. PLC → HA sync path (in Living Room tab)
| Node | Type | Role | Out →
|------|------|------|------
| **link in 14** | link in | Receives from **Flow 1** “from PLC states” link out (after nvl-receive). | → NVL to HA Sync |
| **NVL to HA Sync** | function | Compares PLC light state to last; outputs only on change. Output 1 = turn_on msgs, Output 2 = turn_off msgs (`payload.action` + `payload.target.entity_id`). | → two api-call-service nodes |
| **(unnamed)** | **api-call-service** | Action: **`input_boolean.turn_on`**. Entity: **`input_boolean.living_room_new`**. | — |
| **(unnamed)** | **api-call-service** | Action: **`input_boolean.turn_off`**. Entity: **`input_boolean.living_room_new`**. | — |
---
## Flow diagram (current)
```
[trigger-state] [zigbee2mqtt-in]
input_boolean.living_room_new Office Switch (TS0042)
| |
v v
HA to NVL <------------------------ Zigbee to NVL
| |
| +---> 80ms --> Clear zigbee edge
| | |
+------------------------------------+--------------+
|
v
NVL SEND --> link out 26 --------> (Flow 1: to UDP --> PLC)
(Flow 1: udp in --> nvl-receive --> "from PLC states" link out)
|
v
link in 14 --> NVL to HA Sync --> Output 1 --> api-call-service (turn_on)
--> Output 2 --> api-call-service (turn_off)
```
---
## Notes
1. **Zigbee device** in this tab is **Office Switch (TS0042)**; commands still go to **cmd_livingroom** (living room NVL). If the switch is physically in the office, you may want a separate room/flow or map it to another room in Zigbee to NVL.
2. **NVL SEND** matches the redesign: single list of rooms (`roomNames`), only **cmd_livingroom** for now; link out 26 sends to Flow 1 → UDP.
3. **PLC → HA** sync is in the Living Room tab: **link in 14** gets PLC state from Flow 1, **NVL to HA Sync** outputs only on change, two **api-call-service** nodes with fixed **`input_boolean.turn_on`** / **`input_boolean.turn_off`** and **`input_boolean.living_room_new`**. With “Block Input Overrides” off, the syncs `msg.payload` would override; if its on, the fixed entity is used (which matches the single current entity).
4. **Flows file** in the repo has been updated from this pull: `docs/integration/nodered-flows.json`.