-
-
Notifications
You must be signed in to change notification settings - Fork 404
Description
- I confirm that this is an issue rather than a question.
Bug report
I have set up a multi-instance configuration on a single Raspberry Pi with Hyperion.ng. Instance 0 receives a live video signal from a USB grabber and successfully controls my TV backlight. I want Instance 1, which controls a lamp via Home Assistant, to also receive the live video signal from the same grabber to synchronize with the right side of the screen.
However, Instance 1 does not receive a live video feed. When I open the preview for Instance 1 in the Hyperion.ng web interface, it either shows black or only displays a single static frame that does not update. The lamp changes its color according to this single frame, but there is no continuous update. When I manually refresh the preview, the instance receives a new single frame, and the lamp's color updates again. This confirms that the LED hardware configuration and video zone mapping are correct. The problem is exclusively with the live video transmission from the video source to Instance 1.
I have already performed the following troubleshooting steps and a lot of AI troubleshooting:
Log check: There are no visible errors or warnings in the logs related to the connection or video transmission.
Forwarder configuration: I have tried to set up a JSON Forwarder in the master instance (Instance 0) pointing to the local IP address 127.0.0.1 and the port of the second instance.
Priority settings: I have ensured that no other sources or effects with higher priority are active that could override the video stream.
Home Assistant integration: I have checked the Home Assistant configuration for priority conflicts, without success.
Technical Questions and Inconsistencies
V4L2 device lock issue: The fact that live streaming fails, but a single frame gets through, is confusing. I understand that a VIDIOC_S_FMT error occurs when the /dev/video0 device is used by more than one process simultaneously, but a multi-instance configuration should prevent this within the single hyperiond process itself. Is there a bug that prevents the live signal from being forwarded from the first to the second instance, even though the logic for static images works?
Internal communication: How exactly does the internal communication between the instances in the hyperiond application work? Is the forwarder system the only method for internal communication? Or is there a separate, internal mechanism that could be affected by a bug?
Forwarder syntax: The forwarder configuration is not intuitive. It expects a list of JSON targets with hostname/IP, port, and instance ID. Are there specific syntax or convention requirements for a local loopback setup that are not clearly described in the documentation? For example, would I need to explicitly specify the instance ID of the second instance in the forwarder configuration of the master instance?
Potential bugs: Is this behavior known in the community? Is there a specific version that is considered stable for a led multi-instance setup (ws281x + HomeAssistant) on a single device? Could Flatbuffer targets be more stable than JSON targets?
I am asking for help diagnosing this issue. Any support, especially from developers or experienced users with similar setups, would be highly appreciated.
EDIT:
Just removed the Instance 0 (TV Backlight) and the lamp is still only lighting up in the color of the current frame when i refresh. No live view. Seems to me like a bug in the homeassistant controller.
Steps to reproduce
Add an LED-Instance with a lamp entity via the homeassistant controller type.
What is expected?
It should light up in the color of the current frame (latch set time 1000ms) so grab the frame every second. So the color changes live according to the USB grabber input
What is actually happening?
It doesnt work (black) or It lights up in the current color of the frame present when manually clicking the preview button
System
Version: Hyperion.ng Version 2.1.1 LordGrey-bde49a8/26fd6d8-1749918223
Operating System: Raspbian GNU/Linux 12 (bookworm)
Hardware: Raspberry Pi 3 Model B Rev 1.2
Video Input: USB Video Grabber, connected to an external video source.
LED Outputs: Two separate LED instances:
- LED Instance 0 (TV Backlight): "ws281x" Controller, configured as a TV backlight. Works flawlessly with live video.,
- LED Instance 1 (Lamp): "homeassistant" Controller, configured as a separate lamp. Shows black in the preview and does not update. The LEDs light up with the correct color when a new frame is manually refreshed via the preview button.,
Hyperion Server:
- Build: LordGrey-bde49a8/26fd6d8-1749918223
- Build time: Jun 14 2025 16:59:13
- Build type: Release
- Git Remote: https://github.com/hyperion-project/hyperion.ng
- Version: 2.1.1
- UI Lang: en (BrowserLang: en-US)
- UI Access: expert
- Avail Screen Cap.: dispmanx,framebuffer,qt
- Avail Video Cap.: v4l2
- Avail Audio Cap.: audio
- Avail Services: boblight,cec,effectengine,forwarder,flatbuffer,protobuffer,mDNS,SSDP,borderdetection
- Config database: /root/.hyperion/db/hyperion.db
- Database: read/write
- Mode: Non-GUI
Hyperion Server OS:
- Distribution: Raspbian GNU/Linux 12 (bookworm)
- Architecture: arm
- CPU Model: ARMv7 Processor rev 4 (v7l)
- CPU Type: Raspberry Pi 3 Model B Rev 1.2
- CPU Revision: a52082
- CPU Hardware: BCM2835
- Kernel: linux (6.12.25+rpt-rpi-v7 (WS: 32))
- Root/Admin: true
- Qt Version: 6.4.2
- Python Version: 3.11.2
- Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0