Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LEDs are not turning black after deactivating Protocol Buffers Stream and no active source is left #828

Closed
1 task done
janpfischer opened this issue Jun 9, 2020 · 8 comments · Fixed by #960
Closed
1 task done

Comments

@janpfischer
Copy link
Contributor

  • I confirm that this is an issue rather than a question.

Bug report

I am using a protocol buffers stream for my LEDs. In previous alphas the LEDs turned black if i deactivated the stream and the source disappears from the input selection on remote control.
Now the source disappears as well and no source is left but the LEDs are representing the last LED state. I manually have to disable and enable LED Hardware on Remote Tab to turn off the LEDs.

Steps to reproduce

  1. Start Protocol Buffers Stream
  2. Stop Stream
  3. LEDs are still on
  4. Deactivate LED Hardware
  5. LEDs are off
  6. Reenable LED Hardware

I just figured out that this isn't only the case with protocol buffers. At least Effect have the same Problem.

What is expected?

What is actually happening?

System

Hyperion Server:

  • Build: (HEAD detached at f5583de) (Sersch-f7865b45/f5583de8-1590611619)
  • Build time: May 27 2020 21:09:46
  • Git Remote: https://github.com/hyperion-project/hyperion.ng
  • Version: 2.0.0-alpha.6
  • UI Lang: auto (BrowserLang: de)
  • UI Access: default
  • Avail Capt: dispmanx,v4l2,framebuffer,qt

Hyperion Server OS:

  • Distribution: Raspbian GNU/Linux 9 (stretch)
  • Arch: arm
  • Kernel: linux (4.14.79+ (WS: 32))
  • Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0

Log: [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:102:handleInstanceSwitch()) Client '::ffff:192.168.178.xx' switch to Hyperion instance 0 [hyperiond PROTOSERVER] (DEBUG) (ProtoClientConnection.cpp:75:disconnected()) Socket Closed [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:255:clearInput()) Removed source priority 129 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255 [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) >>received 4 bytes data [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) Previous line repeats 7 times [hyperiond PROTOSERVER] (DEBUG) (ProtoServer.cpp:68:newConnection()) New connection from ::ffff:192.168.178.xx [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'Proto@::ffff:192.168.178.xx/PROTOSERVER' with priority 129 as inactive [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 129 is now active [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 129 [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) >>received 4 bytes data [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) Previous line repeats 9 times [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:255:clearInput()) Removed source priority 129 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255 [hyperiond PROTOSERVER] (DEBUG) (ProtoClientConnection.cpp:75:disconnected()) Socket Closed [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) >>received 4 bytes data [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) Previous line repeats 2 times [hyperiond EFFECTENGINE] (INFO) Run effect "Fire" on channel 1 [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:183:runEffectScript()) Start the effect: name [Fire], smoothCfg [2] [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'Web Configuration@::ffff:192.168.178xx/EFFECT' with priority 1 as inactive [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 1 is now active [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 1 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:255:clearInput()) Removed source priority 1 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255 [hyperiond EFFECTENGINE] (INFO) effect finished [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) >>received 4 bytes data [hyperiond LEDDEVICE] (DEBUG) (LedDeviceAdalight.cpp:83:receivedData()) Previous line repeats 68 times [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1035:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.178xx [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1035:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.178xx

@janpfischer janpfischer added the Bug label Jun 9, 2020
@tpmodding
Copy link
Collaborator

@b1rdhous3 schau mal in den slack vorbei bitte :-)

@brindosch
Copy link
Contributor

Should be fine

(DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255

Should work, this fires black but just once.

@tihoangyeudau
Copy link

Same issues with 2.0.0 alpha 6

@ncmilhouse
Copy link

I've had this issue intermittently through all the 2.0 alphas. Sometimes it clears the lights, sometimes 1, 2, or 3 instances will fail to go to black and stay on last colors. Inputs are from protocol buffer (Mediaportal add-in), 3 devices (APA102 led strip, nanoleaf, nanoleaf panels). I tried to set the idle color to black as a workaround, but that doesn't seem to fix reliably, either.

@Lord-Grey Lord-Grey added this to Backlog in Output Devices Jul 28, 2020
@Lord-Grey Lord-Grey self-assigned this Jul 28, 2020
@Lord-Grey
Copy link
Collaborator

@ncmilhouse I can follow the expectations raised, but unfortunately hyperion does not support switching-off LEDs yet, when no further input streams are available. I will consider it as an enhancement request for the backlog.

For now, I could only suggest, you either disable hyperion's instances or the LED devices via WebSockets or the UI.
This will switch-off the Nanaleaf devices physically (and not simulating an off-state sending a stream of black).

@ncmilhouse
Copy link

I don't expect the nanolead devices to actually shut off, I am fine with streaming black. But it isn't even doing that. If I stop the source in Mediaportal I would expect all the lights (led strips and nanoleafs) to go dark. But many times at least 1 is still showing the last color.

@Lord-Grey
Copy link
Collaborator

The devices will only go black, if there is no source any longer.
I would expect that maybe there is one source left, e.g. platform capture?

Nanoleaf devices should go off and streaming is to be stopped. Otherwise there is unnecessary network traffic.
Plus, if you would use the nanoleaf in the meantime, they would not switch back on under hyperion's control.

@ncmilhouse
Copy link

Definitely no sources active:
image

But all 3 sets of lights are on.

@Lord-Grey Lord-Grey moved this from Backlog to In Progress in Output Devices Aug 7, 2020
@Lord-Grey Lord-Grey moved this from In Progress to Done in Output Devices Sep 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging a pull request may close this issue.

6 participants