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

Support for multiple API commands in one MQTT request #642

Closed
xZetsubou opened this issue Sep 21, 2023 · 12 comments · Fixed by #691
Closed

Support for multiple API commands in one MQTT request #642

xZetsubou opened this issue Sep 21, 2023 · 12 comments · Fixed by #691

Comments

@xZetsubou
Copy link

Bug report, debug log and your config file (FULL LOGS ARE MANDATORY)

Context:
I'm was making HA integration that can communicate with HyperHDR through MQTT but I bumped into some critical bugs.

  1. I can't control other instances LED Device components, I tested with MQTT Clients to confirm the issue source.
  2. MQTT doesn't reconnect when host shutdown. I need to uncheck and check the MQTT Enable to reconnect.

Steps to reproduce

  1. Switch to instance 1 using mqtt, json command
  2. the hyperhdr logs report the the selected instance has been changed to 1
  3. Turn off the LED using HyperHDR's components command with MQTT.

What is expected?

The selected index LED Turn off

What is actually happening?

-- The instance 0 what turned off.
-- In the logs before it reports the led turned off, It switch back to instance 0 all the time.

More-info

So it seems that sending MQTT command always switch back to instance 0 and reports in the logs before each command:

2023-09-21T10:46:11.278Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T10:46:11.279Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 1

2023-09-21T10:46:14.918Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T10:46:14.919Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T10:46:14.919Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T10:46:14.919Z [LEDDEVICE_WS281X] (LedDevice.cpp:103) Enable device
2023-09-21T10:46:14.920Z [LEDDEVICE_WS281X] (LedDevice.cpp:333) Switch on
2023-09-21T10:46:14.920Z [LEDDEVICE_WS281X] (LedDevice.cpp:409) Power On

Another issue don't know if I should say bug or feature but when the MQTT Server drops HyperHDR Doesn't reconnect to MQTT.

System

I also tested this in the the last build https://github.com/awawa-dev/HyperHDR/actions/runs/6091102810
HyperHDR Server:

  • Build: (HEAD detached at b8c7f04) (Awawa-3141e80/b8c7f04-1676222403)
  • Build time: Feb 12 2023 17:40:25
  • Git Remote: https://github.com/awawa-dev/HyperHDR
  • Version: 19.0.0.0
  • UI Lang: auto (BrowserLang: ar)
  • UI Access: default
  • Avail Capt: Linux (V4L2)
  • Database: read/write

HyperHDR Server OS:

  • Distribution: Ubuntu 20.04.4 LTS
  • Architecture: arm64
  • CPU Type: Raspberry Pi 4 Model B Rev 1.5
  • CPU Revision: d03115
  • CPU Hardware: BCM2835
  • Kernel: linux (6.1.21-v8+ (WS: 64))
  • Qt Version: 5.15.2
  • Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
@awawa-dev
Copy link
Owner

FULL LOGS ARE MANDATORY and the 2 duplicates auto-reconnect feature request: #570

@xZetsubou
Copy link
Author

xZetsubou commented Sep 21, 2023

Sorry, its because I explained what happening I didn't copy fully logs, As for duplicate I didn't notice sorry because of issue titles.

2023-09-21T19:06:07.655Z [MAIN] Database path: '/config/db/hyperhdr.db', readonlyMode = disabled
2023-09-21T19:06:07.655Z [MAIN] Starting HyperHdr - 19.0.0.0, (HEAD detached at b8c7f04) (Awawa-3141e80/b8c7f04-1676222403), built: Feb 12 2023:17:58:40
2023-09-21T19:06:07.655Z [MAIN] Set user data path to '/config'
2023-09-21T19:06:07.658Z [DB] Database opened: /config/db/hyperhdr.db
2023-09-21T19:06:07.744Z [SETTINGSMGR] Settings database initialized
2023-09-21T19:06:07.745Z [HYPERHDR] Sound device 'null | Discard all samples (playback) or generate zero samples (capture) | ' is selected for activation
2023-09-21T19:06:07.746Z [HYPERHDR] Could not find sound devices for enumerating (-2)
2023-09-21T19:06:07.747Z [V4L2:USB VIDEO: USB] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0 
2023-09-21T19:06:07.747Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video15
2023-09-21T19:06:07.748Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video21
2023-09-21T19:06:07.748Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video14
2023-09-21T19:06:07.749Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video22
2023-09-21T19:06:07.930Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video0
2023-09-21T19:06:07.930Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:402) Device has 'brightness' control => min: -128, max: 127, default: -11
2023-09-21T19:06:07.930Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:408) Device has 'contrast' control => min: 0, max: 255, default: 148
2023-09-21T19:06:07.930Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:414) Device has 'saturation' control => min: 0, max: 255, default: 180
2023-09-21T19:06:07.930Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:420) Device has 'hue' control => min: -128, max: 127, default: 0
2023-09-21T19:06:07.931Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 60 fps mjpeg
2023-09-21T19:06:07.931Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 30 fps mjpeg
2023-09-21T19:06:07.931Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 25 fps mjpeg
2023-09-21T19:06:07.931Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 20 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 10 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 60 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 30 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 25 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 20 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 10 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 60 fps mjpeg
2023-09-21T19:06:07.932Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 30 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 25 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 20 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 10 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 60 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 30 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 25 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 20 fps mjpeg
2023-09-21T19:06:07.933Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 10 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 60 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 30 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 25 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 20 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 10 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 60 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 50 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 30 fps mjpeg
2023-09-21T19:06:07.934Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 20 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 10 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 60 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 50 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 30 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 20 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 10 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 60 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 50 fps mjpeg
2023-09-21T19:06:07.935Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 30 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 20 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 10 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 60 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 50 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 30 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 20 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 10 fps mjpeg
2023-09-21T19:06:07.936Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 60 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 50 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 30 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 20 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 10 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 60 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 50 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 30 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 20 fps mjpeg
2023-09-21T19:06:07.937Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 10 fps mjpeg
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1920 x 1080 @ 5 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1600 x 1200 @ 5 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1360 x 768 @ 8 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 1024 @ 8 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 960 @ 8 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1280 x 720 @ 10 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 1024 x 768 @ 10 fps yuyv
2023-09-21T19:06:07.938Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 20 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 10 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 800 x 600 @ 5 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 25 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 20 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 10 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 576 @ 5 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 30 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 20 fps yuyv
2023-09-21T19:06:07.939Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 10 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 720 x 480 @ 5 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 30 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 20 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 10 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 5 fps yuyv
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] Restarting video grabber is now blocked due to reloading of the configuration
2023-09-21T19:06:07.940Z [V4L2:USB VIDEO: USB] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0 
2023-09-21T19:06:07.941Z [V4L2:USB Video: USB] (GrabberWrapper.cpp:75) CEC keycode. Start: 0, stop: 0
2023-09-21T19:06:07.941Z [V4L2:USB VIDEO: USB] (Grabber.cpp:259) setBrightnessContrastSaturationHue nothing changed
2023-09-21T19:06:07.941Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:125) setHdrToneMappingMode to: Disabled
2023-09-21T19:06:07.941Z [V4L2:USB VIDEO: USB] (Grabber.cpp:168) setFpsSoftwareDecimation to: 1
2023-09-21T19:06:07.941Z [SIGNAL_OLD] (DetectionManual.cpp:85) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2023-09-21T19:06:07.941Z [SIGNAL_OLD] (DetectionManual.cpp:75) Signal threshold set to: {0, 0, 0} and frames: 50
2023-09-21T19:06:07.941Z [SIGNAL_AUTO] (DetectionAutomatic.cpp:382) Automatic signal detection -> errorTolerance: 9, modelTolerance: 90, sleepTime: 1000, wakeTime: 0
2023-09-21T19:06:07.941Z [V4L2:USB VIDEO: USB] (Grabber.cpp:367) setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'USB Video: USB Video (video0)'
2023-09-21T19:06:07.941Z [V4L2:USB VIDEO: USB] Delayed restart of the grabber due to change of selected device
2023-09-21T19:06:07.942Z [V4L2:USB VIDEO: USB] (Grabber.cpp:186) Force encoding to: NO_CHANGE (old: NO_CHANGE)
2023-09-21T19:06:07.942Z [V4L2:USB VIDEO: USB] setQFrameDecimation is now: disabled
2023-09-21T19:06:07.942Z [V4L2:USB Video: USB] (GrabberWrapper.cpp:545) Frame cache is: enabled
2023-09-21T19:06:07.948Z [PIPEWIRE_SYSTEM:AUTO] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0 
2023-09-21T19:06:07.949Z [PIPEWIRE_SYSTEM:AUTO] Could not load Pipewire proxy library. Error: libpipewire-0.3.so.0: cannot open shared object file: No such file or directory
2023-09-21T19:06:07.949Z [DAEMON] The system doesn't support the Pipewire/Portal grabber
2023-09-21T19:06:07.950Z [X11_SYSTEM:AUTO] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0 
2023-09-21T19:06:07.950Z [X11_SYSTEM:AUTO] Loaded X11 proxy library for screen capturing
2023-09-21T19:06:07.950Z [DAEMON] The system doesn't support the X11 grabber
2023-09-21T19:06:07.951Z [FRAMEBUFFER_SYSTEM:AUTO] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0 
2023-09-21T19:06:07.951Z [DAEMON] The system doesn't support the FrameBuffer grabber
2023-09-21T19:06:08.010Z [SETTINGSMGR] Settings database initialized
2023-09-21T19:06:08.014Z [BLACKBORDER] Set mode to: default
2023-09-21T19:06:08.015Z [IMAGETOLED0] (ImageProcessor.cpp:161) Set LED mapping type to advanced
2023-09-21T19:06:08.015Z [IMAGETOLED0] (ImageProcessor.cpp:145) setSparseProcessing to 0
2023-09-21T19:06:08.016Z [RGB_TRANSFORM0] RGB transform classic_config: 1, saturationGain: 1.000000, luminanceGain: 1.000000, backlightThreshold: 0
2023-09-21T19:06:08.016Z [ADJUST_RED0] Set correction to 255
2023-09-21T19:06:08.016Z [ADJUST_BLUE0] Set correction to 255
2023-09-21T19:06:08.016Z [ADJUST_GREEN0] Set correction to 255
2023-09-21T19:06:08.094Z [SETTINGSMGR] Settings database initialized
2023-09-21T19:06:08.096Z [BLACKBORDER] Set mode to: default
2023-09-21T19:06:08.096Z [IMAGETOLED1] (ImageProcessor.cpp:161) Set LED mapping type to advanced
2023-09-21T19:06:08.096Z [IMAGETOLED1] (ImageProcessor.cpp:145) setSparseProcessing to 0
2023-09-21T19:06:08.097Z [RGB_TRANSFORM1] RGB transform classic_config: 1, saturationGain: 1.000000, luminanceGain: 1.000000, backlightThreshold: 0
2023-09-21T19:06:08.097Z [ADJUST_RED1] Set correction to 255
2023-09-21T19:06:08.098Z [ADJUST_BLUE1] Set correction to 255
2023-09-21T19:06:08.098Z [ADJUST_GREEN1] Set correction to 255
2023-09-21T19:06:08.123Z [JSONSERVER] (JsonServer.cpp:24) Created instance
2023-09-21T19:06:08.124Z [JSONSERVER] Started on port 19444
2023-09-21T19:06:08.129Z [PIPEWIRE_SYSTEM:auto] (SystemWrapper.cpp:75) Closing grabber: PIPEWIRE_SYSTEM:auto
2023-09-21T19:06:08.130Z [X11_SYSTEM:auto] (SystemWrapper.cpp:75) Closing grabber: X11_SYSTEM:auto
2023-09-21T19:06:08.130Z [FRAMEBUF_SYSTEM:auto] (SystemWrapper.cpp:75) Closing grabber: FRAMEBUF_SYSTEM:auto
2023-09-21T19:06:08.019Z [HYPERHDR0] Led strip RGB order is: grb
2023-09-21T19:06:08.021Z [DB] Database opened: /config/db/hyperhdr.db
2023-09-21T19:06:08.055Z [SMOOTHING0] High resolution clock is NOT STEADY!
2023-09-21T19:06:08.056Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T19:06:08.056Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:08.056Z [COMPONENTREG0] Smoothing: enabled
2023-09-21T19:06:08.057Z [SMOOTHING0] Creating config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:08.057Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:08.057Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:08.058Z [SMOOTHING0] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:08.058Z [SMOOTHING0] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:08.059Z [LEDDEVICE_WS281X] Start LedDevice 'ws281x'.
2023-09-21T19:06:08.059Z [LEDDEVICE_WS281X] (LedDevice.cpp:171) deviceConfig: [{"colorOrder":"grb","currentLedCount":312,"dma":5,"gpio":18,"invert":false,"leds":312,"pwmchannel":0,"refreshTime":0,"rgbw":false,"type":"ws281x","whiteAlgorithm":"subtract_minimum"}]
2023-09-21T19:06:08.059Z [LEDDEVICE_WS281X] (LedDevice.cpp:235) RefreshTime updated to 0ms
2023-09-21T19:06:08.059Z [LEDDEVICE_WS281X] (LedDeviceWS281x.cpp:59) ws281x strip type : 1050624
2023-09-21T19:06:08.060Z [LEDDEVICE_WS281X] (LedDevice.cpp:103) Enable device
2023-09-21T19:06:08.061Z [LEDDEVICE_WS281X] (LedDevice.cpp:333) Switch on
2023-09-21T19:06:08.061Z [LEDDEVICE_WS281X] (LedDevice.cpp:409) Power On
2023-09-21T19:06:08.062Z [MUXER0] Register new input 'System/VIDEOGRABBER' with priority 200 as inactive
2023-09-21T19:06:08.062Z [COMPONENTREG0] Video capture device: enabled
2023-09-21T19:06:08.130Z [V4L2:USB VIDEO: USB] Multithreading for V4L2 is enabled. Available thread's count 4
2023-09-21T19:06:08.131Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video15
2023-09-21T19:06:08.131Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video21
2023-09-21T19:06:08.132Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video14
2023-09-21T19:06:08.132Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video22
2023-09-21T19:06:08.133Z [V4L2:USB VIDEO: USB] Found capture device: /dev/video0
2023-09-21T19:06:08.133Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:402) Device has 'brightness' control => min: -128, max: 127, default: -11
2023-09-21T19:06:08.133Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:408) Device has 'contrast' control => min: 0, max: 255, default: 148
2023-09-21T19:06:08.133Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:414) Device has 'saturation' control => min: 0, max: 255, default: 180
2023-09-21T19:06:08.133Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:420) Device has 'hue' control => min: -128, max: 127, default: 0
2023-09-21T19:06:08.134Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:212) Searching for USB Video: USB Video (video0) 0 x 0 @ 0 fps, input: -1 (NO_CHANGE)
2023-09-21T19:06:08.134Z [V4L2:USB VIDEO: USB] Selected resolution not found in supported modes. Forcing best guess
2023-09-21T19:06:08.135Z [V4L2:USB VIDEO: USB] *************************************************************************************************
2023-09-21T19:06:08.135Z [V4L2:USB VIDEO: USB] Starting V4L2 grabber. Selected: USB Video: USB Video (video0) [/dev/video0] 640 x 480 @ 10 fps yuyv
2023-09-21T19:06:08.135Z [V4L2:USB VIDEO: USB] *************************************************************************************************
2023-09-21T19:06:08.135Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:819) Hardware cropping is not supported: ignoring
2023-09-21T19:06:08.135Z [V4L2:USB VIDEO: USB] Set device input to: Input 1
2023-09-21T19:06:08.136Z [V4L2:USB VIDEO: USB] Set resolution to: 640 x 480
2023-09-21T19:06:08.137Z [V4L2:USB VIDEO: USB] Set framerate to 10 FPS
2023-09-21T19:06:08.137Z [V4L2:USB VIDEO: USB] Brightness set to: -11 (default)
2023-09-21T19:06:08.138Z [V4L2:USB VIDEO: USB] Contrast set to: 148 (default)
2023-09-21T19:06:08.138Z [V4L2:USB VIDEO: USB] Saturation set to: 180 (default)
2023-09-21T19:06:08.138Z [V4L2:USB VIDEO: USB] Hue set to: 0 (default)
2023-09-21T19:06:08.139Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:105) LUT folder location: '/usr/share/hyperhdr/lut'
2023-09-21T19:06:08.139Z [V4L2:USB VIDEO: USB] LUT file is not found here: /config/lut_lin_tables.3d
2023-09-21T19:06:08.139Z [V4L2:USB VIDEO: USB] (Grabber.cpp:445) LUT file found: /usr/share/hyperhdr/lut/lut_lin_tables.3d
2023-09-21T19:06:08.140Z [V4L2:USB VIDEO: USB] (Grabber.cpp:460) Index 2 for YUV
2023-09-21T19:06:08.242Z [V4L2:USB VIDEO: USB] Found and loaded LUT: '/usr/share/hyperhdr/lut/lut_lin_tables.3d'
2023-09-21T19:06:08.242Z [V4L2:USB VIDEO: USB] Video pixel format is set to: YUYV
2023-09-21T19:06:08.246Z [V4L2:USB VIDEO: USB] Started
2023-09-21T19:06:08.247Z [HYPERMANAGER] HyperHDR instance 'Bedroom[TV]' has been started
2023-09-21T19:06:08.247Z [DAEMON] Request CEC
2023-09-21T19:06:08.247Z [DAEMON] Opening libCEC library.
2023-09-21T19:06:08.247Z [CEC] CEC object created
2023-09-21T19:06:08.247Z [CEC] Starting CEC handler.
2023-09-21T19:06:08.248Z [CEC] Failed to load libCEC library. One of the CEC library component is missing
2023-09-21T19:06:08.248Z [DAEMON] Could not open libCEC library
2023-09-21T19:06:08.249Z [DAEMON] Stopping CEC
2023-09-21T19:06:08.249Z [DAEMON] Cleaning up CEC
2023-09-21T19:06:08.063Z [COMPONENTREG0] LED device: enabled
2023-09-21T19:06:08.064Z [EFFECTENGINE0] Run effect "Rainbow swirl fast" on channel 0
2023-09-21T19:06:08.064Z [EFFECTENGINE0] (EffectEngine.cpp:174) Start the effect: name [Rainbow swirl fast], smoothCfg [2]
2023-09-21T19:06:08.065Z [MUXER0] Register new input 'System/EFFECT' with priority 0 as inactive
2023-09-21T19:06:08.065Z [HYPERHDR] Initial foreground effect 'Rainbow swirl fast' started
2023-09-21T19:06:08.065Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T19:06:08.066Z [EFFECT0(Rainbo...)] Begin playing the effect with priority: 0
2023-09-21T19:06:08.067Z [MUXER0] Priority 0 is now active
2023-09-21T19:06:08.067Z [MUXER0] Set visible priority to 0
2023-09-21T19:06:08.068Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:08.068Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:08.068Z [SMOOTHING0] Selecting config (2) => type: Linear, dirMode: false, pause: false, settlingTime: 200ms, interval: 40ms (25Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:08.068Z [SMOOTHING0] Using linear smoothing input (2)
2023-09-21T19:06:08.069Z [HYPERHDR0] New priority[0], previous [255]
2023-09-21T19:06:08.069Z [HYPERHDR0] New source available -> switch LED-Device on
2023-09-21T19:06:08.069Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T19:06:08.069Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:08.070Z [LEDDEVICE_WS281X] (LedDevice.cpp:103) Enable device
2023-09-21T19:06:08.071Z [IMAGETOLED0] Total index number is: 1248 (memory: 1248). User sparse processing is: disabled, image size: 80 x 45, area number: 312
2023-09-21T19:06:08.071Z [SMOOTHING0] Using linear smoothing input (2)
2023-09-21T19:06:08.100Z [HYPERHDR1] Led strip RGB order is: rgb
2023-09-21T19:06:08.100Z [DB] Database opened: /config/db/hyperhdr.db
2023-09-21T19:06:08.110Z [SMOOTHING0] Using linear smoothing procedure (2)
2023-09-21T19:06:08.125Z [FLATBUFSERVER] Started on port 19400
2023-09-21T19:06:08.126Z [PROTOSERVER] Started on port 19445
2023-09-21T19:06:08.126Z [FLATBUFSERVER] Could not start local domain socket server 'hyperhdr-domain'
2023-09-21T19:06:08.136Z [SMOOTHING1] High resolution clock is NOT STEADY!
2023-09-21T19:06:08.136Z [SMOOTHING1] Clearing queued colors before: enabling
2023-09-21T19:06:08.136Z [SMOOTHING1] Smoothing queue is cleared
2023-09-21T19:06:08.136Z [COMPONENTREG1] Smoothing: enabled
2023-09-21T19:06:08.136Z [SMOOTHING1] Creating config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 2, antiFlickTime: 0
2023-09-21T19:06:08.137Z [SMOOTHING1] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:08.137Z [SMOOTHING1] Smoothing queue is cleared
2023-09-21T19:06:08.137Z [SMOOTHING1] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 2, antiFlickTime: 0
2023-09-21T19:06:08.137Z [SMOOTHING1] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 2, antiFlickTime: 0
2023-09-21T19:06:08.138Z [LEDDEVICE_WLED] Start LedDevice 'wled'.
2023-09-21T19:06:08.138Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:56) Initializing WLED
2023-09-21T19:06:08.138Z [LEDDEVICE_WLED] (LedDevice.cpp:171) deviceConfig: [{"brightnessMax":true,"brightnessMaxLevel":255,"colorOrder":"rgb","currentLedCount":119,"host":"192.168.1.9","maxRetry":60,"refreshTime":0,"restoreOriginalState":false,"type":"wled"}]
2023-09-21T19:06:08.138Z [LEDDEVICE_WLED] (LedDevice.cpp:235) RefreshTime updated to 0ms
2023-09-21T19:06:08.138Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:65) DeviceType     : wled
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:66) LedCount       : 119
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:69) Override brightness : true
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:72) Set brightness level: 255
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:75) Restore WLED   : false
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:78) Max retry      : 60
2023-09-21T19:06:08.139Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:120) 
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:131) [1]
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDevice.cpp:171) deviceConfig: [{"brightnessMax":true,"brightnessMaxLevel":255,"colorOrder":"rgb","currentLedCount":119,"host":"192.168.1.9","maxRetry":60,"port":19446,"refreshTime":0,"restoreOriginalState":false,"type":"wled"}]
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDevice.cpp:235) RefreshTime updated to 0ms
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (ProviderUdp.cpp:69) Successfully parsed 192.168.1.9 as an IP-address.
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (ProviderUdp.cpp:99) UDP socket will write to 192.168.1.9:19446
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:109) Hostname/IP  : 192.168.1.9
2023-09-21T19:06:08.140Z [MUXER1] Register new input 'System/VIDEOGRABBER' with priority 200 as inactive
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:110) Port         : 19446
2023-09-21T19:06:08.140Z [COMPONENTREG1] Video capture device: enabled
2023-09-21T19:06:08.249Z [V4L2:USB VIDEO: USB] Multithreading for V4L2 is enabled. Available thread's count 4
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:114) [1]
2023-09-21T19:06:08.140Z [LEDDEVICE_WLED] (LedDevice.cpp:103) Enable device
2023-09-21T19:06:08.141Z [LEDDEVICE_WLED] (LedDevice.cpp:333) Switch on
2023-09-21T19:06:08.141Z [LEDDEVICE_WLED] (LedDeviceWled.cpp:151) 
2023-09-21T19:06:08.141Z [LEDDEVICE] (ProviderRestApi.cpp:177) PUT begin: [http://192.168.1.9/json/state] [{"on":true,"live":true,"bri":255}]
2023-09-21T19:06:08.250Z [HYPERMANAGER] HyperHDR instance 'Bedroom[Table]' has been started
2023-09-21T19:06:08.250Z [DAEMON] Request CEC
2023-09-21T19:06:08.251Z [DAEMON] Opening libCEC library.
2023-09-21T19:06:08.251Z [CEC] CEC object created
2023-09-21T19:06:08.251Z [CEC] Starting CEC handler.
2023-09-21T19:06:08.253Z [CEC] Failed to load libCEC library. One of the CEC library component is missing
2023-09-21T19:06:08.253Z [DAEMON] Could not open libCEC library
2023-09-21T19:06:08.253Z [DAEMON] Stopping CEC
2023-09-21T19:06:08.253Z [DAEMON] Cleaning up CEC
2023-09-21T19:06:08.157Z [SMOOTHING1] Using alternative smoothing procedure (0)
2023-09-21T19:06:08.251Z [WEBSERVER] Initialize Webserver
2023-09-21T19:06:08.251Z [WEBSERVER] Apply Webserver settings
2023-09-21T19:06:08.251Z [WEBSERVER] Set document root to: :/webconfig
2023-09-21T19:06:08.251Z [WEBSERVER] Initialize Webserver
2023-09-21T19:06:08.252Z [WEBSERVER] Started on port 8090 name 'HyperHDR Webserver'
2023-09-21T19:06:08.252Z [WEBSERVER] Apply Webserver settings
2023-09-21T19:06:08.252Z [WEBSERVER] Set document root to: :/webconfig
2023-09-21T19:06:08.254Z [WEBSERVER] Setup SSL certificate
2023-09-21T19:06:08.255Z [WEBSERVER] Setup private SSL key
2023-09-21T19:06:08.255Z [WEBSERVER] Started on port 8092 name 'HyperHDR Webserver'
2023-09-21T19:06:08.288Z [LEDDEVICE] (ProviderRestApi.cpp:199) PUT end (147 ms): [http://192.168.1.9/json/state] [{"on":true,"live":true,"bri":255}]
2023-09-21T19:06:08.289Z [LEDDEVICE] (ProviderRestApi.cpp:321) Reply.httpStatusCode [200]
2023-09-21T19:06:08.289Z [COMPONENTREG1] LED device: enabled
2023-09-21T19:06:08.290Z [EFFECTENGINE1] Run effect "Rainbow swirl fast" on channel 0
2023-09-21T19:06:08.290Z [EFFECTENGINE1] (EffectEngine.cpp:174) Start the effect: name [Rainbow swirl fast], smoothCfg [2]
2023-09-21T19:06:08.290Z [MUXER1] Register new input 'System/EFFECT' with priority 0 as inactive
2023-09-21T19:06:08.290Z [HYPERHDR] Initial foreground effect 'Rainbow swirl fast' started
2023-09-21T19:06:08.290Z [SMOOTHING1] Using alternative smoothing input (0)
2023-09-21T19:06:08.291Z [EFFECT1(Rainbo...)] Begin playing the effect with priority: 0
2023-09-21T19:06:08.292Z [MUXER1] Priority 0 is now active
2023-09-21T19:06:08.292Z [MUXER1] Set visible priority to 0
2023-09-21T19:06:08.292Z [SMOOTHING1] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:08.292Z [SMOOTHING1] Smoothing queue is cleared
2023-09-21T19:06:08.292Z [SMOOTHING1] Selecting config (2) => type: Linear, dirMode: false, pause: false, settlingTime: 200ms, interval: 40ms (25Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:08.292Z [SMOOTHING1] Using linear smoothing input (2)
2023-09-21T19:06:08.292Z [HYPERHDR1] New priority[0], previous [255]
2023-09-21T19:06:08.292Z [HYPERHDR1] New source available -> switch LED-Device on
2023-09-21T19:06:08.293Z [SMOOTHING1] Clearing queued colors before: enabling
2023-09-21T19:06:08.293Z [SMOOTHING1] Smoothing queue is cleared
2023-09-21T19:06:08.293Z [LEDDEVICE_WLED] (LedDevice.cpp:103) Enable device
2023-09-21T19:06:08.293Z [IMAGETOLED1] Total index number is: 476 (memory: 476). User sparse processing is: disabled, image size: 80 x 45, area number: 119
2023-09-21T19:06:08.293Z [SMOOTHING1] Using linear smoothing input (2)
2023-09-21T19:06:08.333Z [SMOOTHING1] Using linear smoothing procedure (2)
2023-09-21T19:06:08.547Z [V4L2:USB VIDEO: USB] (V4L2Grabber.cpp:1157) Worker's thread count  = 4
2023-09-21T19:06:08.550Z [V4L2:USB Video: USB] Detected the video frame size changed (640x480). Cache buffer was cleared.
2023-09-21T19:06:08.550Z [MUXER0] Priority 200 is now active
2023-09-21T19:06:08.550Z [MUXER1] Priority 200 is now active
2023-09-21T19:06:08.563Z [WEBSOCKET] (WebSocketClient.cpp:30) New connection from ::ffff:192.168.1.18
2023-09-21T19:06:08.564Z [WEBSOCKET] (JsonAPI.cpp:97) Client '::ffff:192.168.1.18' switch to HyperHDR instance 0
2023-09-21T19:06:08.640Z [WEBSOCKET] (WebSocketClient.cpp:30) New connection from ::ffff:192.168.1.18
2023-09-21T19:06:08.640Z [WEBSOCKET] (JsonAPI.cpp:97) Client '::ffff:192.168.1.18' switch to HyperHDR instance 0
2023-09-21T19:06:08.663Z [DB] Database opened: /config/db/hyperhdr.db
2023-09-21T19:06:08.760Z [WEBSOCKET] (WebSocketClient.cpp:30) New connection from ::ffff:192.168.1.18
2023-09-21T19:06:08.761Z [WEBSOCKET] (JsonAPI.cpp:97) Client '::ffff:192.168.1.18' switch to HyperHDR instance 0
2023-09-21T19:06:08.897Z [WEBSOCKET] (WebSocketClient.cpp:30) New connection from ::ffff:192.168.1.18
2023-09-21T19:06:08.898Z [WEBSOCKET] (JsonAPI.cpp:97) Client '::ffff:192.168.1.18' switch to HyperHDR instance 0
2023-09-21T19:06:08.965Z [WEBSOCKET] (JsonAPI.cpp:1250) log streaming activated for client ::ffff:192.168.1.18
2023-09-21T19:06:09.067Z [WEBSOCKET] (JsonAPI.cpp:1250) log streaming activated for client ::ffff:192.168.1.18
2023-09-21T19:06:09.629Z [MQTT] (mqtt.cpp:33) Starting the MQTT connection. Address: 192.168.1.250:1883. Protocol: NO SSL. Authentication: YES, Ignore errors: NO
2023-09-21T19:06:09.631Z [MQTT] (mqtt.cpp:81) Connected
2023-09-21T19:06:11.072Z [EFFECT0(Rainbo...)] The effect quits with priority: 0
2023-09-21T19:06:11.073Z [MUXER0] Removed source priority 0
2023-09-21T19:06:11.073Z [MUXER0] Set visible priority to 200
2023-09-21T19:06:11.073Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:11.074Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:11.074Z [SMOOTHING0] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2023-09-21T19:06:11.074Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T19:06:11.074Z [HYPERHDR0] New priority[200], previous [0]
2023-09-21T19:06:11.075Z [EFFECTENGINE0] Effect 'Rainbow swirl fast' has finished.
2023-09-21T19:06:11.075Z [EFFECT0(Rainbo...)] Deleting effect named: 'Rainbow swirl fast'
2023-09-21T19:06:11.076Z [EFFECT0(Rainbo...)] Effect named: 'Rainbow swirl fast' is deleted
2023-09-21T19:06:11.094Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T19:06:11.146Z [IMAGETOLED0] Total index number is: 79360 (memory: 79360). User sparse processing is: disabled, image size: 640 x 480, area number: 312
2023-09-21T19:06:11.307Z [EFFECT1(Rainbo...)] The effect quits with priority: 0
2023-09-21T19:06:11.308Z [MUXER1] Removed source priority 0
2023-09-21T19:06:11.308Z [MUXER1] Set visible priority to 200
2023-09-21T19:06:11.308Z [SMOOTHING1] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2023-09-21T19:06:11.308Z [SMOOTHING1] Smoothing queue is cleared
2023-09-21T19:06:11.308Z [SMOOTHING1] Selecting config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 0, antiFlickStep: 2, antiFlickTime: 0
2023-09-21T19:06:11.308Z [SMOOTHING1] Using alternative smoothing input (0)
2023-09-21T19:06:11.308Z [HYPERHDR1] New priority[200], previous [0]
2023-09-21T19:06:11.308Z [EFFECTENGINE1] Effect 'Rainbow swirl fast' has finished.
2023-09-21T19:06:11.309Z [EFFECT1(Rainbo...)] Deleting effect named: 'Rainbow swirl fast'
2023-09-21T19:06:11.309Z [EFFECT1(Rainbo...)] Effect named: 'Rainbow swirl fast' is deleted
2023-09-21T19:06:11.329Z [SMOOTHING1] Using alternative smoothing procedure (0)
2023-09-21T19:06:11.345Z [IMAGETOLED1] Total index number is: 24320 (memory: 24320). User sparse processing is: disabled, image size: 640 x 480, area number: 119
2023-09-21T19:06:19.038Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T19:06:19.038Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 1
2023-09-21T19:06:20.785Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T19:06:20.785Z [SMOOTHING0] Clearing queued colors before: disabling
2023-09-21T19:06:20.785Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T19:06:20.786Z [LEDDEVICE_WS281X] (LedDevice.cpp:140) Disable device
2023-09-21T19:06:20.786Z [LEDDEVICE_WS281X] (LedDevice.cpp:359) Switch off
2023-09-21T19:06:20.786Z [LEDDEVICE_WS281X] (LedDevice.cpp:395) Power Off
2023-09-21T19:06:20.786Z [LEDDEVICE_WS281X] (LedDevice.cpp:317) Set LED strip to black/power off
2023-09-21T19:06:20.815Z [COMPONENTREG0] LED device: disabled

@awawa-dev
Copy link
Owner

It works as intended: I didn't design this part, but I understand what it was about. Both the UI and mqtt use the API server, and this behavior is enforced by the UI because we don't want the user to be stuck on the instance he just stopped. Hence, it switches to instance 0 which cannot be deleted or stopped. The question is, do you really need to stop the entire instance? You can easily enable/disable all components of all instances using: HyperHDR's components -> All instances (global) or disable led/grabber in a given instance. Or just start it back up after stopping it and switch back to it.

@xZetsubou
Copy link
Author

xZetsubou commented Sep 21, 2023

The issue with using All instances (global) that it disables the USB Capture too, turning it ON again causes black screen on TV for seconds., that why I only turn off LED Device since tuning the led device off won't interrupt the tv image.
I assumed this is a bug because it doesn't behave like runs cmd with link. this is the way I use to turn off both LEDs.

http://192.168.1.55:8090/json-rpc?request=%7B%22command%22:%22instance%22,%22subcommand%22:%22switchTo%22,%22instance%22:1%7D&request=%7B%22command%22:%22componentstate%22,%22componentstate%22:%7B%22component%22:%22LEDDEVICE%22,%22state%22:false%7D%7D&request=%7B%22command%22:%22instance%22,%22subcommand%22:%22switchTo%22,%22instance%22:0%7D&request=%7B%22command%22:%22componentstate%22,%22componentstate%22:%7B%22component%22:%22LEDDEVICE%22,%22state%22:false%7D%7D

@awawa-dev
Copy link
Owner

I assumed this is a bug because it doesn't behave like curl command. this is the way I use to turn off both LEDs.

Please explain which and how single commands (not multiple as it is not supported by MQTT, same behaviuor as JSON POST requests) behave differently when passed using MQTT and run via RPC, as I am not sure I understand this part. In code the command is simply forwarded from MQTT to API handler.

@xZetsubou
Copy link
Author

After more tests it seems yes both works the same way they both switch back to instance 0 before each command,

Because I was testing by running the command on my browser HTTP link run it button this how the request behave when I run the command through browser:

2023-09-21T21:24:04.502Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:24:04.529Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T21:24:04.712Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:24:04.712Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:24:04.729Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T21:24:04.733Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:24:04.914Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:24:04.915Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:24:04.929Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T21:24:04.936Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:24:05.065Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:24:05.066Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:24:05.086Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:24:05.129Z [SMOOTHING0] Using alternative smoothing input (0)

with curl or mqtt they switch back to instance 0

2023-09-21T21:25:12.636Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T21:25:12.637Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:25:12.637Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:25:12.660Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:25:12.716Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T21:25:13.035Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T21:25:13.036Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:25:13.036Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:25:13.056Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:25:13.116Z [SMOOTHING0] Using alternative smoothing input (0)
2023-09-21T21:25:13.466Z [HTTPJSONRPC] (JsonAPI.cpp:97) Client '::1' switch to HyperHDR instance 0
2023-09-21T21:25:13.467Z [SMOOTHING0] Clearing queued colors before: enabling
2023-09-21T21:25:13.467Z [SMOOTHING0] Smoothing queue is cleared
2023-09-21T21:25:13.488Z [SMOOTHING0] Using alternative smoothing procedure (0)
2023-09-21T21:25:13.516Z [SMOOTHING0] Using alternative smoothing input (0)

If this is how it's works normally then sorry for reporting it as an issue.

@awawa-dev
Copy link
Owner

awawa-dev commented Sep 21, 2023

As explained, switching to instance zero is normal, there are also multiply fuses in many parts of the code that prevents the json API from executing API commands for instances that have been stopped/removed, as in some situations an api vs core state mismatch may occur asynchronously and may lead to application crash.

@xZetsubou
Copy link
Author

xZetsubou commented Sep 22, 2023

Understood, then it seems using MQTT it's impossible to control other instances components and effects since it always switch back to default instance, I guess.

or disable led/grabber in a given instance

I don't understand what you mean here by saying disable led in a given instance to clarify I'm not turning off any instances here what I'm trying to do is switch to instance to disable led but since it always change to instance 0. if this behavior is normal then it's fine :)

@awawa-dev
Copy link
Owner

Post your full json api sequence you are sending via MQTT.

@xZetsubou
Copy link
Author

I send 2 payloads
First switch instance that I want control:

{
  "command" : "instance",
  "subcommand" : "switchTo",
  "instance" : 1
}

Then turn off led

{
	"command":"componentstate",
	"componentstate":
	{
		"component":"LEDDEVICE",
		"state": false
	}
}

@awawa-dev
Copy link
Owner

awawa-dev commented Sep 22, 2023

Thanks. I'll test it later and let you know next week. The instance switching should happen only when you stop or delete the instance. If confirmed, I'll probably implement accepting JsonArray with multiply requests /JsonObjects at once (with the same restriction as with passing multiply json commands via GET request) should solve it, which I planned some time ago.

@awawa-dev
Copy link
Owner

The connection is reset after each command, so it behaves exactly like sending json via POST without maintaining the session. GET multi-commands are an exception here because from the beginning it was developed with different assumptions, but it has been described. I'm currently working on enabling multiple commands to be executed simultaneously in MQTT. I think it should be ready soon, I'll let you know.

@awawa-dev awawa-dev reopened this Oct 5, 2023
@awawa-dev awawa-dev changed the title MQTT Bugs instance reset and no reconnect. Support for multiple API commands in one MQTT request Oct 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants