Backup RFP Infinity controller state before Resolume changes
This commit is contained in:
84
docs/rfp-local-visualizer.md
Normal file
84
docs/rfp-local-visualizer.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# RFP Local Infinity Visualizer
|
||||
|
||||
This visualizer runs on the laptop and uses the master only as a JSON source.
|
||||
It is the preferred development tool when you only have the master controller
|
||||
available and want to simulate the six render nodes.
|
||||
|
||||
## Layout
|
||||
|
||||
The visualizer mirrors the physical installation:
|
||||
|
||||
- `6` columns are the six ESP nodes, left to right: `ESP1` to `ESP6`
|
||||
- `3` rows are the three outputs per ESP
|
||||
- top row: `UART6`
|
||||
- middle row: `UART5`
|
||||
- bottom row: `UART4`
|
||||
- each output is drawn as one square frame with `106` LEDs
|
||||
- LED order per frame follows the drawing: top edge left-to-right, right edge
|
||||
top-to-bottom, bottom edge right-to-left, left edge bottom-to-top
|
||||
- edge split is `25` LEDs on top, `27` LEDs right, `27` LEDs bottom,
|
||||
`27` LEDs left
|
||||
|
||||
## Start
|
||||
|
||||
```bash
|
||||
cd /home/jan/Documents/RFP/WLED-MM/repo
|
||||
|
||||
.venv/bin/python tools/infinity_visualizer_server.py \
|
||||
--master 10.42.0.213 \
|
||||
--port 8765
|
||||
```
|
||||
|
||||
Open the URL printed by the tool, normally:
|
||||
|
||||
```text
|
||||
http://127.0.0.1:8765/?master=10.42.0.213
|
||||
```
|
||||
|
||||
If port `8765` is already in use, the tool automatically tries the next free
|
||||
port and prints that URL instead, for example:
|
||||
|
||||
```text
|
||||
Port 8765 is busy, using 8766 instead.
|
||||
Infinity visualizer: http://127.0.0.1:8766/?master=10.42.0.213
|
||||
```
|
||||
|
||||
## Why Local
|
||||
|
||||
The ESP32 master webserver should stay focused on WLED and Infinity control.
|
||||
The local visualizer avoids loading extra HTML, JavaScript, canvas rendering,
|
||||
or polling logic from the ESP itself.
|
||||
|
||||
The local server proxies:
|
||||
|
||||
```text
|
||||
http://10.42.0.213/json/infinity
|
||||
```
|
||||
|
||||
to:
|
||||
|
||||
```text
|
||||
http://127.0.0.1:8765/api/infinity
|
||||
```
|
||||
|
||||
This also avoids browser CORS issues.
|
||||
|
||||
## Controls
|
||||
|
||||
- `Master IP`: change the master target without restarting the server
|
||||
- `Connect`: fetch state immediately
|
||||
- `Pause`: freeze polling and animation
|
||||
- `Master UI`: open the master `/infinity` page
|
||||
|
||||
## Notes
|
||||
|
||||
- This is not yet a bit-exact WLED renderer. It reads `/json/eff` from the
|
||||
master and maps effect names to browser preview classes.
|
||||
- Currently supported preview classes include `Solid`, `Blink`, `Strobe`,
|
||||
`Breathe/Fade`, `Wipe`, `Scan`, `Chase/Running/Theater`, `Rainbow/Colorloop`,
|
||||
`Fire`, `Twinkle/Sparkle/Glitter`, and `Noise/Plasma/Waves/Ripple`.
|
||||
- Unknown effects are shown as a generic moving color blend so they remain
|
||||
visible while we decide which effects need exact custom previews.
|
||||
- It is a lightweight development preview for scene state, colors, row dimmers,
|
||||
effect IDs, brightness, and virtual node layout.
|
||||
- The simulated layout is six nodes, each with three rows and 106 LEDs.
|
||||
Reference in New Issue
Block a user