Unable to detect number of WLED LEDs

[x] I confirm that this is an issue rather than a question.

Bug report
Steps to reproduce

Install Hyperion 2.0.0-alpha.11  via the 10/5/2021 release of [Hyperbian] on a Raspberry Pi Zero W
Install WLED 0.12.0 on a NodeMCU
Configure WLED (in my case APA102, 287 LEDs)
(Probably not needed:) have two Hyperion and two WLED instances on the network (intended not to talk to each other)
Set Hyperion LED instance to WLED with the correct, static IP address for WLED
Click Identify

I previously had this working, but after power cycling, it seems like it's no longer.
I've also performed a clean WLED flash and a clean Hyperbian install. That has not helped.
What is expected?
Hyperion identifies the correct number of LEDs
What is actually happening?

Number of LEDs remains at 1
Logs include:

Hyperion System Summary Report (Vizio E70), Reported instance: unknown

< ----- System information -------------------- >
Hyperion Server:
- Build:           (HEAD detached at 2.0.0-alpha.11) (GitHub-f42d5a7/2c79656-1633468939)
- Build time:      Oct  5 2021 21:26:30
- Git Remote:      https://github.com/hyperion-project/hyperion.ng
- Version:         2.0.0-alpha.11
- UI Lang:         auto (BrowserLang: en-US)
- UI Access:       expert
- Avail Capt:      dispmanx,v4l2,framebuffer,qt
- Config path:     /home/pi/.hyperion
- Database:        read/write

Hyperion Server OS:
- Distribution:   HyperBian GNU/Linux 10 (buster)
- Architecture:   arm
- CPU Model:      ARMv6-compatible processor rev 7 (v6l)
- CPU Type:       Raspberry Pi Zero W Rev 1.1
- CPU Revision:   9000c1
- CPU Hardware:   BCM2835
- Kernel:         linux (5.10.63+ (WS: 32))
- Root/Admin:     false
- Qt Version:     5.11.3
- Python Version: 3.7.3
- Browser:        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36

< ----- Configured Instances ------------------ >
0: Vizio E70 LEDs Running: true

< ----- This instance's priorities ------------ >
priorities_autoselect: true

< ----- This instance components' status ------->
ALL - true
SMOOTHING - true
BLACKBORDER - true
FORWARDER - false
BOBLIGHTSERVER - false
GRABBER - false
V4L - false
LEDDEVICE - true

< ----- This instance's configuration --------- >
{"backgroundEffect":{"color":[255,138,0],"effect":"Warm mood blobs","enable":false,"type":"effect"},"blackborderdetector":{"blurRemoveCnt":1,"borderFrameCnt":50,"enable":true,"maxInconsistentCnt":10,"mode":"default","threshold":5,"unknownFrameCnt":600},"boblightServer":{"enable":false,"port":19333,"priority":128},"color":{"channelAdjustment":[{"backlightColored":false,"backlightThreshold":0,"blue":[0,0,255],"brightness":100,"brightnessCompensation":100,"cyan":[0,255,255],"gammaBlue":2.2,"gammaGreen":2.2,"gammaRed":2.2,"green":[0,255,0],"id":"default","leds":"*","magenta":[255,0,255],"red":[255,0,0],"white":[255,255,255],"yellow":[255,255,0]}],"imageToLedMappingType":"multicolor_mean"},"device":{"colorOrder":"rgb","hardwareLedCount":1,"latchTime":0,"output":"/dev/null","rewriteTime":0,"type":"file"},"effects":{"disable":[""],"paths":["$ROOT/custom-effects"]},"flatbufServer":{"enable":true,"port":19400,"timeout":5},"foregroundEffect":{"color":[0,0,255],"duration_ms":3000,"effect":"Rainbow swirl fast","enable":true,"type":"effect"},"forwarder":{"enable":false,"flat":["<IP_ADDRESS>:19401"],"json":["<IP_ADDRESS>:19446"]},"framegrabber":{"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"auto","enable":false,"fps":10,"height":45,"input":0,"pixelDecimation":8,"width":80},"general":{"configVersion":"2.0.0-alpha.11","name":"Vizio E70","previousVersion":"2.0.0-alpha.11","showOptHelp":true,"watchedVersionBranch":"Stable"},"grabberV4L2":{"blueSignalThreshold":0,"cecDetection":false,"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"none","enable":false,"encoding":"NO_CHANGE","flip":"NO_CHANGE","fps":15,"fpsSoftwareDecimation":0,"greenSignalThreshold":100,"hardware_brightness":0,"hardware_contrast":0,"hardware_hue":0,"hardware_saturation":0,"height":0,"input":0,"noSignalCounterThreshold":200,"redSignalThreshold":0,"sDHOffsetMax":0.46,"sDHOffsetMin":0.4,"sDVOffsetMax":0.9,"sDVOffsetMin":0.1,"signalDetection":false,"sizeDecimation":8,"width":0},"instCapture":{"systemEnable":false,"systemGrabberDevice":"NONE","systemPriority":250,"v4lEnable":false,"v4lGrabberDevice":"NONE","v4lPriority":240},"jsonServer":{"port":19444},"ledConfig":{"classic":{"bottom":0,"edgegap":0,"glength":0,"gpos":0,"hdepth":8,"left":0,"overlap":0,"pblh":0,"pblv":100,"pbrh":100,"pbrv":100,"position":0,"ptlh":0,"ptlv":0,"ptrh":100,"ptrv":0,"reverse":false,"right":0,"top":1,"vdepth":5},"matrix":{"cabling":"snake","ledshoriz":1,"ledsvert":1,"start":"top-left"}},"leds":[{"hmax":1,"hmin":0,"vmax":0.08,"vmin":0}],"logger":{"level":"debug"},"network":{"apiAuth":true,"internetAccessAPI":false,"ipWhitelist":[],"localAdminAuth":true,"localApiAuth":false,"restirctedInternetAccessAPI":false},"protoServer":{"enable":true,"port":19445,"timeout":5},"smoothing":{"decay":1,"dithering":false,"enable":true,"interpolationRate":25,"outputRate":25,"time_ms":200,"type":"linear","updateDelay":0,"updateFrequency":25},"webConfig":{"crtPath":"","document_root":"","keyPassPhrase":"","keyPath":"","port":8090,"sslPort":8092}}

< ----- Current Log --------------------------- >
2021-10-15T02:52:40.841Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:215:sendClose()) send close: 1000
2021-10-15T02:52:42.021Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:<IP_ADDRESS>
2021-10-15T02:52:42.534Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:120:handleInstanceSwitch()) Client '::ffff:<IP_ADDRESS>' switch to Hyperion instance 0
2021-10-15T02:52:43.066Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1058:handleLoggingCommand()) log streaming activated for client ::ffff:<IP_ADDRESS>
2021-10-15T02:52:46.623Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"host":"<IP_ADDRESS>"},"subcommand":"identify","tan":169}]
2021-10-15T02:52:47.012Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:148:get()) GET: [http://<IP_ADDRESS>/json/state]
2021-10-15T02:52:47.016Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:52:47.019Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]
2021-10-15T02:52:47.413Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:187:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"on":true,"live":true,"lor":1,"seg":{"fx":25,"sx":128}}]
2021-10-15T02:52:47.417Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:52:47.420Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]
2021-10-15T02:52:49.895Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:187:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"live":false}]
2021-10-15T02:52:49.901Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:52:49.903Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]

I do have a second instance on my network (alpha-10 in docker) that gets a better response from WLED, but still doesn't identify the number of LEDs, but the config is old enough to have the number set. It's logs are:
Hyperion System Summary Report (Middle Monitor), Reported instance: Middle Monitor

< ----- System information -------------------- >
Hyperion Server:
- Build:           (HEAD detached at b1a4e95c) (Paulchen-Panther-975f969a/b1a4e95c-1626550299)
- Build time:      Jul 17 2021 20:46:40
- Git Remote:      https://github.com/hyperion-project/hyperion.ng
- Version:         2.0.0-alpha.10
- UI Lang:         auto (BrowserLang: en-US)
- UI Access:       expert
- Avail Capt:      v4l2,framebuffer,x11,xcb,qt
- Database:        read/write

Hyperion Server OS:
- Distribution:   Debian GNU/Linux 10 (buster)
- Architecture:   x86_64
- CPU Model:      Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
- CPU Type:       94
- Kernel:         linux (5.10.28-Unraid (WS: 64))
- Qt Version:     5.7.1
- Python Version: 3.5.3
- Browser:        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36

< ----- Configured Instances ------------------ >
0: Middle Monitor Running: true

< ----- This instance's priorities ------------ >
priorities_autoselect: true

< ----- This instance components' status ------->
ALL - true
SMOOTHING - true
BLACKBORDER - true
FORWARDER - false
BOBLIGHTSERVER - false
GRABBER - false
V4L - false
LEDDEVICE - true

< ----- This instance's configuration --------- >
{"backgroundEffect":{"color":[255,138,0],"effect":"Warm mood blobs","enable":false,"type":"effect"},"blackborderdetector":{"blurRemoveCnt":1,"borderFrameCnt":50,"enable":true,"maxInconsistentCnt":10,"mode":"default","threshold":5,"unknownFrameCnt":600},"boblightServer":{"enable":false,"port":19333,"priority":128},"color":{"channelAdjustment":[{"backlightColored":false,"backlightThreshold":0,"blue":[0,0,255],"brightness":100,"brightnessCompensation":100,"cyan":[0,255,255],"gammaBlue":1.5,"gammaGreen":1.5,"gammaRed":1.5,"green":[0,255,0],"id":"default","leds":"*","magenta":[255,0,255],"red":[255,0,0],"white":[255,255,255],"yellow":[255,255,0]}],"imageToLedMappingType":"multicolor_mean"},"device":{"colorOrder":"rgb","hardwareLedCount":122,"host":"<IP_ADDRESS>","latchTime":0,"type":"wled"},"effects":{"disable":[""],"paths":["$ROOT/custom-effects"]},"flatbufServer":{"enable":true,"port":19400,"timeout":5},"foregroundEffect":{"color":[0,0,255],"duration_ms":3000,"effect":"Rainbow swirl fast","enable":true,"type":"effect"},"forwarder":{"enable":false,"flat":["<IP_ADDRESS>:19401"],"json":["<IP_ADDRESS>:19446"]},"framegrabber":{"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"auto","enable":false,"fps":10,"height":45,"input":0,"pixelDecimation":8,"width":80},"general":{"configVersion":"2.0.0-alpha.10","name":"Middle Monitor","previousVersion":"2.0.0-alpha.10","showOptHelp":true,"watchedVersionBranch":"Stable"},"grabberV4L2":{"blueSignalThreshold":5,"cecDetection":false,"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"auto","enable":false,"flip":"NO_CHANGE","fps":15,"fpsSoftwareDecimation":0,"greenSignalThreshold":5,"hardware_brightness":0,"hardware_contrast":0,"hardware_hue":0,"hardware_saturation":0,"height":0,"input":0,"noSignalCounterThreshold":200,"redSignalThreshold":5,"sDHOffsetMax":0.75,"sDHOffsetMin":0.25,"sDVOffsetMax":0.75,"sDVOffsetMin":0.25,"signalDetection":false,"sizeDecimation":8,"standard":"NO_CHANGE","width":0},"instCapture":{"systemEnable":false,"systemGrabberDevice":"NONE","systemPriority":250,"v4lEnable":false,"v4lGrabberDevice":"NONE","v4lPriority":240},"jsonServer":{"port":19444},"ledConfig":{"classic":{"bottom":39,"edgegap":13,"glength":0,"gpos":0,"hdepth":8,"left":22,"overlap":0,"pblh":1,"pblv":99,"pbrh":99,"pbrv":99,"position":0,"ptlh":1,"ptlv":1,"ptrh":99,"ptrv":1,"reverse":true,"right":22,"top":39,"vdepth":5},"matrix":{"cabling":"snake","ledshoriz":1,"ledsvert":1,"start":"top-left"}},"leds":[{"hmax":0.06,"hmin":0.01,"vmax":0.1136,"vmin":0.075},{"hmax":0.06,"hmin":0.01,"vmax":0.1523,"vmin":0.1136},{"hmax":0.06,"hmin":0.01,"vmax":0.1909,"vmin":0.1523},{"hmax":0.06,"hmin":0.01,"vmax":0.2295,"vmin":0.1909},{"hmax":0.06,"hmin":0.01,"vmax":0.2682,"vmin":0.2295},{"hmax":0.06,"hmin":0.01,"vmax":0.3068,"vmin":0.2682},{"hmax":0.06,"hmin":0.01,"vmax":0.3455,"vmin":0.3068},{"hmax":0.06,"hmin":0.01,"vmax":0.3841,"vmin":0.3455},{"hmax":0.06,"hmin":0.01,"vmax":0.4227,"vmin":0.3841},{"hmax":0.06,"hmin":0.01,"vmax":0.4614,"vmin":0.4227},{"hmax":0.06,"hmin":0.01,"vmax":0.5,"vmin":0.4614},{"hmax":0.06,"hmin":0.01,"vmax":0.5386,"vmin":0.5},{"hmax":0.06,"hmin":0.01,"vmax":0.5773,"vmin":0.5386},{"hmax":0.06,"hmin":0.01,"vmax":0.6159,"vmin":0.5773},{"hmax":0.06,"hmin":0.01,"vmax":0.6545,"vmin":0.6159},{"hmax":0.06,"hmin":0.01,"vmax":0.6932,"vmin":0.6545},{"hmax":0.06,"hmin":0.01,"vmax":0.7318,"vmin":0.6932},{"hmax":0.06,"hmin":0.01,"vmax":0.7705,"vmin":0.7318},{"hmax":0.06,"hmin":0.01,"vmax":0.8091,"vmin":0.7705},{"hmax":0.06,"hmin":0.01,"vmax":0.8477,"vmin":0.8091},{"hmax":0.06,"hmin":0.01,"vmax":0.8864,"vmin":0.8477},{"hmax":0.06,"hmin":0.01,"vmax":0.925,"vmin":0.8864},{"hmax":0.0698,"hmin":0.0466,"vmax":0.99,"vmin":0.91},{"hmax":0.0931,"hmin":0.0698,"vmax":0.99,"vmin":0.91},{"hmax":0.1163,"hmin":0.0931,"vmax":0.99,"vmin":0.91},{"hmax":0.1396,"hmin":0.1163,"vmax":0.99,"vmin":0.91},{"hmax":0.1628,"hmin":0.1396,"vmax":0.99,"vmin":0.91},{"hmax":0.1861,"hmin":0.1628,"vmax":0.99,"vmin":0.91},{"hmax":0.2093,"hmin":0.1861,"vmax":0.99,"vmin":0.91},{"hmax":0.2326,"hmin":0.2093,"vmax":0.99,"vmin":0.91},{"hmax":0.2558,"hmin":0.2326,"vmax":0.99,"vmin":0.91},{"hmax":0.2791,"hmin":0.2558,"vmax":0.99,"vmin":0.91},{"hmax":0.3023,"hmin":0.2791,"vmax":0.99,"vmin":0.91},{"hmax":0.3256,"hmin":0.3023,"vmax":0.99,"vmin":0.91},{"hmax":0.3489,"hmin":0.3256,"vmax":0.99,"vmin":0.91},{"hmax":0.3721,"hmin":0.3489,"vmax":0.99,"vmin":0.91},{"hmax":0.3954,"hmin":0.3721,"vmax":0.99,"vmin":0.91},{"hmax":0.4186,"hmin":0.3954,"vmax":0.99,"vmin":0.91},{"hmax":0.4419,"hmin":0.4186,"vmax":0.99,"vmin":0.91},{"hmax":0.4651,"hmin":0.4419,"vmax":0.99,"vmin":0.91},{"hmax":0.4884,"hmin":0.4651,"vmax":0.99,"vmin":0.91},{"hmax":0.5116,"hmin":0.4884,"vmax":0.99,"vmin":0.91},{"hmax":0.5349,"hmin":0.5116,"vmax":0.99,"vmin":0.91},{"hmax":0.5581,"hmin":0.5349,"vmax":0.99,"vmin":0.91},{"hmax":0.5814,"hmin":0.5581,"vmax":0.99,"vmin":0.91},{"hmax":0.6046,"hmin":0.5814,"vmax":0.99,"vmin":0.91},{"hmax":0.6279,"hmin":0.6046,"vmax":0.99,"vmin":0.91},{"hmax":0.6511,"hmin":0.6279,"vmax":0.99,"vmin":0.91},{"hmax":0.6744,"hmin":0.6511,"vmax":0.99,"vmin":0.91},{"hmax":0.6977,"hmin":0.6744,"vmax":0.99,"vmin":0.91},{"hmax":0.7209,"hmin":0.6977,"vmax":0.99,"vmin":0.91},{"hmax":0.7442,"hmin":0.7209,"vmax":0.99,"vmin":0.91},{"hmax":0.7674,"hmin":0.7442,"vmax":0.99,"vmin":0.91},{"hmax":0.7907,"hmin":0.7674,"vmax":0.99,"vmin":0.91},{"hmax":0.8139,"hmin":0.7907,"vmax":0.99,"vmin":0.91},{"hmax":0.8372,"hmin":0.8139,"vmax":0.99,"vmin":0.91},{"hmax":0.8604,"hmin":0.8372,"vmax":0.99,"vmin":0.91},{"hmax":0.8837,"hmin":0.8604,"vmax":0.99,"vmin":0.91},{"hmax":0.9069,"hmin":0.8837,"vmax":0.99,"vmin":0.91},{"hmax":0.9302,"hmin":0.9069,"vmax":0.99,"vmin":0.91},{"hmax":0.9534,"hmin":0.9302,"vmax":0.99,"vmin":0.91},{"hmax":0.99,"hmin":0.94,"vmax":0.925,"vmin":0.8864},{"hmax":0.99,"hmin":0.94,"vmax":0.8864,"vmin":0.8477},{"hmax":0.99,"hmin":0.94,"vmax":0.8477,"vmin":0.8091},{"hmax":0.99,"hmin":0.94,"vmax":0.8091,"vmin":0.7705},{"hmax":0.99,"hmin":0.94,"vmax":0.7705,"vmin":0.7318},{"hmax":0.99,"hmin":0.94,"vmax":0.7318,"vmin":0.6932},{"hmax":0.99,"hmin":0.94,"vmax":0.6932,"vmin":0.6545},{"hmax":0.99,"hmin":0.94,"vmax":0.6545,"vmin":0.6159},{"hmax":0.99,"hmin":0.94,"vmax":0.6159,"vmin":0.5773},{"hmax":0.99,"hmin":0.94,"vmax":0.5773,"vmin":0.5386},{"hmax":0.99,"hmin":0.94,"vmax":0.5386,"vmin":0.5},{"hmax":0.99,"hmin":0.94,"vmax":0.5,"vmin":0.4614},{"hmax":0.99,"hmin":0.94,"vmax":0.4614,"vmin":0.4227},{"hmax":0.99,"hmin":0.94,"vmax":0.4227,"vmin":0.3841},{"hmax":0.99,"hmin":0.94,"vmax":0.3841,"vmin":0.3455},{"hmax":0.99,"hmin":0.94,"vmax":0.3455,"vmin":0.3068},{"hmax":0.99,"hmin":0.94,"vmax":0.3068,"vmin":0.2682},{"hmax":0.99,"hmin":0.94,"vmax":0.2682,"vmin":0.2295},{"hmax":0.99,"hmin":0.94,"vmax":0.2295,"vmin":0.1909},{"hmax":0.99,"hmin":0.94,"vmax":0.1909,"vmin":0.1523},{"hmax":0.99,"hmin":0.94,"vmax":0.1523,"vmin":0.1136},{"hmax":0.99,"hmin":0.94,"vmax":0.1136,"vmin":0.075},{"hmax":0.9534,"hmin":0.9302,"vmax":0.09,"vmin":0.01},{"hmax":0.9302,"hmin":0.9069,"vmax":0.09,"vmin":0.01},{"hmax":0.9069,"hmin":0.8837,"vmax":0.09,"vmin":0.01},{"hmax":0.8837,"hmin":0.8604,"vmax":0.09,"vmin":0.01},{"hmax":0.8604,"hmin":0.8372,"vmax":0.09,"vmin":0.01},{"hmax":0.8372,"hmin":0.8139,"vmax":0.09,"vmin":0.01},{"hmax":0.8139,"hmin":0.7907,"vmax":0.09,"vmin":0.01},{"hmax":0.7907,"hmin":0.7674,"vmax":0.09,"vmin":0.01},{"hmax":0.7674,"hmin":0.7442,"vmax":0.09,"vmin":0.01},{"hmax":0.7442,"hmin":0.7209,"vmax":0.09,"vmin":0.01},{"hmax":0.7209,"hmin":0.6977,"vmax":0.09,"vmin":0.01},{"hmax":0.6977,"hmin":0.6744,"vmax":0.09,"vmin":0.01},{"hmax":0.6744,"hmin":0.6511,"vmax":0.09,"vmin":0.01},{"hmax":0.6511,"hmin":0.6279,"vmax":0.09,"vmin":0.01},{"hmax":0.6279,"hmin":0.6046,"vmax":0.09,"vmin":0.01},{"hmax":0.6046,"hmin":0.5814,"vmax":0.09,"vmin":0.01},{"hmax":0.5814,"hmin":0.5581,"vmax":0.09,"vmin":0.01},{"hmax":0.5581,"hmin":0.5349,"vmax":0.09,"vmin":0.01},{"hmax":0.5349,"hmin":0.5116,"vmax":0.09,"vmin":0.01},{"hmax":0.5116,"hmin":0.4884,"vmax":0.09,"vmin":0.01},{"hmax":0.4884,"hmin":0.4651,"vmax":0.09,"vmin":0.01},{"hmax":0.4651,"hmin":0.4419,"vmax":0.09,"vmin":0.01},{"hmax":0.4419,"hmin":0.4186,"vmax":0.09,"vmin":0.01},{"hmax":0.4186,"hmin":0.3954,"vmax":0.09,"vmin":0.01},{"hmax":0.3954,"hmin":0.3721,"vmax":0.09,"vmin":0.01},{"hmax":0.3721,"hmin":0.3489,"vmax":0.09,"vmin":0.01},{"hmax":0.3489,"hmin":0.3256,"vmax":0.09,"vmin":0.01},{"hmax":0.3256,"hmin":0.3023,"vmax":0.09,"vmin":0.01},{"hmax":0.3023,"hmin":0.2791,"vmax":0.09,"vmin":0.01},{"hmax":0.2791,"hmin":0.2558,"vmax":0.09,"vmin":0.01},{"hmax":0.2558,"hmin":0.2326,"vmax":0.09,"vmin":0.01},{"hmax":0.2326,"hmin":0.2093,"vmax":0.09,"vmin":0.01},{"hmax":0.2093,"hmin":0.1861,"vmax":0.09,"vmin":0.01},{"hmax":0.1861,"hmin":0.1628,"vmax":0.09,"vmin":0.01},{"hmax":0.1628,"hmin":0.1396,"vmax":0.09,"vmin":0.01},{"hmax":0.1396,"hmin":0.1163,"vmax":0.09,"vmin":0.01},{"hmax":0.1163,"hmin":0.0931,"vmax":0.09,"vmin":0.01},{"hmax":0.0931,"hmin":0.0698,"vmax":0.09,"vmin":0.01},{"hmax":0.0698,"hmin":0.0466,"vmax":0.09,"vmin":0.01}],"logger":{"level":"debug"},"network":{"apiAuth":true,"internetAccessAPI":false,"ipWhitelist":[],"localAdminAuth":true,"localApiAuth":false,"restirctedInternetAccessAPI":false},"protoServer":{"enable":true,"port":19445,"timeout":5},"smoothing":{"continuousOutput":true,"decay":1,"dithering":false,"enable":true,"interpolationRate":25,"outputRate":25,"time_ms":200,"type":"linear","updateDelay":0,"updateFrequency":25},"webConfig":{"crtPath":"","document_root":"","keyPassPhrase":"","keyPath":"","port":8090,"sslPort":8092}}

< ----- Current Log --------------------------- >
2021-10-11T10:21:55.227Z [hyperiond DAEMON] (INFO) CEC handler created
2021-10-11T10:21:55.229Z [hyperiond EFFECTFILES] (INFO) 39 effects loaded from directory :/effects/
2021-10-11T10:21:55.230Z [hyperiond EFFECTFILES] (INFO) 22 effect schemas loaded from directory :/effects/schema/
2021-10-11T10:21:55.230Z [hyperiond EFFECTFILES] (INFO) 0 effects loaded from directory /root/.hyperion/custom-effects/
2021-10-11T10:21:55.734Z [hyperiond DAEMON] (INFO) set screen capture device to 'qt'
2021-10-11T10:21:55.734Z [hyperiond DAEMON] (INFO) Qt grabber created
2021-10-11T10:21:55.737Z [hyperiond JSONSERVER] (INFO) Started on port 19444
2021-10-11T10:21:55.249Z [hyperiond LEDDEVICE] (INFO) Start LedDevice 'wled'.
2021-10-11T10:21:55.739Z [hyperiond FLATBUFSERVER] (INFO) Started on port 19400
2021-10-11T10:21:55.741Z [hyperiond PROTOSERVER] (INFO) Started on port 19445
2021-10-11T10:21:55.762Z [hyperiond WEBSERVER] (INFO) Started on port 8090 name 'Hyperion Webserver'
2021-10-11T10:21:55.763Z [hyperiond WEBSERVER] (INFO) Started on port 8092 name 'Hyperion Webserver'
2021-10-11T10:21:55.780Z [hyperiond FLATBUFCONN] (INFO) Connecting to Hyperion: <IP_ADDRESS>:19401
2021-10-11T10:21:55.780Z [hyperiond EFFECTENGINE] (INFO) Run effect "Rainbow swirl fast" on channel 1
2021-10-11T10:21:55.781Z [hyperiond HYPERION] (INFO) Initial foreground effect 'Rainbow swirl fast' started
2021-10-11T10:21:55.788Z [hyperiond HYPERION] (INFO) Hyperion instance 'Middle Monitor' has been started
2021-10-11T10:21:58.803Z [hyperiond EFFECTENGINE] (INFO) effect finished
2021-10-15T02:31:51.503Z [hyperiond LEDDEVICE] (WARNING) wled get properties failed with error: 'Host <IP_ADDRESS>8 not found'
2021-10-15T02:32:17.638Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:215:sendClose()) send close: 1000
2021-10-15T02:32:17.907Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:215:sendClose()) Previous line repeats 1 times
2021-10-15T02:32:17.907Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:<IP_ADDRESS>
2021-10-15T02:32:17.907Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:122:handleInstanceSwitch()) Client '::ffff:<IP_ADDRESS>' switch to Hyperion instance 0
2021-10-15T02:32:18.295Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1058:handleLoggingCommand()) log streaming activated for client ::ffff:<IP_ADDRESS>
2021-10-15T02:32:18.622Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:<IP_ADDRESS>
2021-10-15T02:32:18.622Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:122:handleInstanceSwitch()) Client '::ffff:<IP_ADDRESS>' switch to Hyperion instance 0
2021-10-15T02:32:18.929Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1058:handleLoggingCommand()) log streaming activated for client ::ffff:<IP_ADDRESS>
2021-10-15T02:32:29.723Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"host":"<IP_ADDRESS>"},"subcommand":"identify","tan":998}]
2021-10-15T02:32:30.103Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:147:get()) GET: [http://<IP_ADDRESS>/json/state]
2021-10-15T02:32:30.103Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:231:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:32:30.103Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:258:getResponse()) Reply: [Operation canceled]
2021-10-15T02:32:30.487Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:181:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"on":true,"live":true,"lor":1,"seg":{"fx":25,"sx":128}}]
2021-10-15T02:32:30.487Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:231:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:32:30.487Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:258:getResponse()) Reply: [Operation canceled]
2021-10-15T02:32:33.009Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:181:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"live":false}]
2021-10-15T02:32:33.009Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:231:getResponse()) Reply.httpStatusCode [0]
2021-10-15T02:32:33.009Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:258:getResponse()) Reply: [Operation canceled]
2021-10-15T02:32:51.020Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"filter":"info","host":"<IP_ADDRESS>"},"subcommand":"getProperties","tan":790}]
2021-10-15T02:32:51.089Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1438:handleLedDeviceCommand()) response: [{"properties":{"arch":"esp8266","brand":"WLED","core":"2_7_4_7","freeheap":22088,"fs":{"pmt":0,"t":1024,"u":32},"fxcount":118,"leds":{"count":273,"fps":2,"maxpwr":6500,"maxseg":12,"pin":[2],"pwr":3536,"rgbw":false,"seglock":false,"wv":false},"lip":"","live":false,"lm":"","lwip":1,"mac":"8caab50d96f2","name":"WLED","ndc":0,"opt":127,"palcount":56,"product":"FOSS","str":false,"udpport":21324,"uptime":1048,"ver":"0.12.0","vid":2104020,"wifi":{"bssid":"0C:7C:28:AF:11:FC","channel":6,"rssi":-53,"signal":94},"ws":0}}]
2021-10-15T02:32:51.147Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"host":"<IP_ADDRESS>"},"subcommand":"identify","tan":490}]
2021-10-15T02:33:03.823Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"host":"<IP_ADDRESS>"},"subcommand":"identify","tan":552}]
2021-10-15T02:36:10.709Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:215:sendClose()) send close: 1000
2021-10-15T02:59:29.122Z [hyperiond PROTOSERVER] (DEBUG) (ProtoServer.cpp:68:newConnection()) New connection from ::ffff:<IP_ADDRESS>
2021-10-15T02:59:29.149Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:165:registerInput()) Register new input 'Proto@::ffff:<IP_ADDRESS>/PROTOSERVER' with priority 110 as inactive
2021-10-15T02:59:29.149Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:271:setInputImage()) Priority 110 is now active
2021-10-15T02:59:29.149Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:374:setCurrentTime()) Set visible priority to 110
2021-10-15T02:59:29.149Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:559:handlePriorityChangedLedDevice()) priority[110], previousPriority[255]
2021-10-15T02:59:29.149Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:569:handlePriorityChangedLedDevice()) new source available -> switch LED-Device on
2021-10-15T02:59:29.258Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWled.cpp:203:powerOn()) Disable synchronisation with other WLED devices

System

Hyperion Server:

Build:           (HEAD detached at 2.0.0-alpha.11) (GitHub-f42d5a7/2c79656-1633468939)
Build time:      Oct  5 2021 21:26:30
Git Remote:      https://github.com/hyperion-project/hyperion.ng
Version:         2.0.0-alpha.11
UI Lang:         auto (BrowserLang: en-US)
UI Access:       expert
Avail Capt:      dispmanx,v4l2,framebuffer,qt
Config path:     /home/pi/.hyperion
Database:        read/write

Hyperion Server OS:

Distribution:   HyperBian GNU/Linux 10 (buster)
Architecture:   arm
CPU Model:      ARMv6-compatible processor rev 7 (v6l)
CPU Type:       Raspberry Pi Zero W Rev 1.1
CPU Revision:   9000c1
CPU Hardware:   BCM2835
Kernel:         linux (5.10.63+ (WS: 32))
Root/Admin:     false
Qt Version:     5.11.3
Python Version: 3.7.3
Browser:        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36

It is a network issue. In both cases the devices cannot be reached via network.
LEDDEVICE] (WARNING) wled get properties failed with error: 'Host <IP_ADDRESS>8 not found'

Thanks for the fast reply, Lord-Grey! I believe I've root caused this (see after the log) and it isn't network issues.
I did indeed fat-finger the IP address once (and later corrected that in the log). The correct IP is <IP_ADDRESS>.
Here is a clean log where I rebooted, switched from udpraw (also doesn't work) to WLED, and clicked identify.
I don't believe this is a network issue because I see GET requests to http://<IP_ADDRESS>/json/state that succeed (I can also manually issue these requests and they succeed).
Hyperion System Summary Report (Vizio E70), Reported instance: unknown

< ----- System information -------------------- >
Hyperion Server:
- Build:           (HEAD detached at 2.0.0-alpha.11) (GitHub-f42d5a7/2c79656-1633468939)
- Build time:      Oct  5 2021 21:26:30
- Git Remote:      https://github.com/hyperion-project/hyperion.ng
- Version:         2.0.0-alpha.11
- UI Lang:         auto (BrowserLang: en-US)
- UI Access:       expert
- Avail Capt:      dispmanx,v4l2,framebuffer,qt
- Config path:     /home/pi/.hyperion
- Database:        read/write

Hyperion Server OS:
- Distribution:   Raspbian GNU/Linux 10 (buster)
- Architecture:   arm
- CPU Model:      ARMv6-compatible processor rev 7 (v6l)
- CPU Type:       Raspberry Pi Zero W Rev 1.1
- CPU Revision:   9000c1
- CPU Hardware:   BCM2835
- Kernel:         linux (5.10.63+ (WS: 32))
- Root/Admin:     false
- Qt Version:     5.11.3
- Python Version: 3.7.3
- Browser:        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36

< ----- Configured Instances ------------------ >
0: Vizio E70 LEDs Running: true

< ----- This instance's priorities ------------ >
priorities_autoselect: true

< ----- This instance components' status ------->
ALL - true
SMOOTHING - false
BLACKBORDER - true
FORWARDER - false
BOBLIGHTSERVER - false
GRABBER - false
V4L - false
LEDDEVICE - true

< ----- This instance's configuration --------- >
{"backgroundEffect":{"color":[255,138,0],"effect":"Warm mood blobs","enable":false,"type":"effect"},"blackborderdetector":{"blurRemoveCnt":1,"borderFrameCnt":50,"enable":true,"maxInconsistentCnt":10,"mode":"default","threshold":5,"unknownFrameCnt":600},"boblightServer":{"enable":false,"port":19333,"priority":128},"color":{"channelAdjustment":[{"backlightColored":false,"backlightThreshold":0,"blue":[0,0,255],"brightness":100,"brightnessCompensation":100,"cyan":[0,255,255],"gammaBlue":2.2,"gammaGreen":2.2,"gammaRed":2.2,"green":[0,255,0],"id":"default","leds":"*","magenta":[255,0,255],"red":[255,0,0],"white":[255,255,255],"yellow":[255,255,0]}],"imageToLedMappingType":"multicolor_mean"},"device":{"colorOrder":"rgb","hardwareLedCount":287,"host":"<IP_ADDRESS>","latchTime":0,"port":19446,"type":"udpraw"},"effects":{"disable":[""],"paths":["$ROOT/custom-effects"]},"flatbufServer":{"enable":true,"port":19400,"timeout":5},"foregroundEffect":{"color":[0,0,255],"duration_ms":3000,"effect":"Rainbow swirl fast","enable":true,"type":"effect"},"forwarder":{"enable":false,"flat":["<IP_ADDRESS>:19401"],"json":["<IP_ADDRESS>:19446"]},"framegrabber":{"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"auto","enable":false,"fps":10,"height":45,"input":0,"pixelDecimation":8,"width":80},"general":{"configVersion":"2.0.0-alpha.11","name":"Vizio E70","previousVersion":"2.0.0-alpha.11","showOptHelp":true,"watchedVersionBranch":"Stable"},"grabberV4L2":{"blueSignalThreshold":0,"cecDetection":false,"cropBottom":0,"cropLeft":0,"cropRight":0,"cropTop":0,"device":"none","enable":false,"encoding":"NO_CHANGE","flip":"NO_CHANGE","fps":15,"fpsSoftwareDecimation":0,"greenSignalThreshold":100,"hardware_brightness":0,"hardware_contrast":0,"hardware_hue":0,"hardware_saturation":0,"height":0,"input":0,"noSignalCounterThreshold":200,"redSignalThreshold":0,"sDHOffsetMax":0.46,"sDHOffsetMin":0.4,"sDVOffsetMax":0.9,"sDVOffsetMin":0.1,"signalDetection":false,"sizeDecimation":8,"width":0},"instCapture":{"systemEnable":false,"systemGrabberDevice":"NONE","systemPriority":250,"v4lEnable":false,"v4lGrabberDevice":"NONE","v4lPriority":240},"jsonServer":{"port":19444},"ledConfig":{"classic":{"bottom":92,"edgegap":0,"glength":0,"gpos":0,"hdepth":8,"left":51,"overlap":0,"pblh":0,"pblv":100,"pbrh":100,"pbrv":100,"position":232,"ptlh":0,"ptlv":0,"ptrh":100,"ptrv":0,"reverse":true,"right":50,"top":90,"vdepth":5},"ledBlacklist":[],"matrix":{"cabling":"snake","ledshoriz":1,"ledsvert":1,"start":"top-left"}},"leds":[{"hmax":0.0109,"hmin":0,"vmax":1,"vmin":0.92},{"hmax":0.0217,"hmin":0.0109,"vmax":1,"vmin":0.92},{"hmax":0.0326,"hmin":0.0217,"vmax":1,"vmin":0.92},{"hmax":0.0435,"hmin":0.0326,"vmax":1,"vmin":0.92},{"hmax":0.0543,"hmin":0.0435,"vmax":1,"vmin":0.92},{"hmax":0.0652,"hmin":0.0543,"vmax":1,"vmin":0.92},{"hmax":0.0761,"hmin":0.0652,"vmax":1,"vmin":0.92},{"hmax":0.087,"hmin":0.0761,"vmax":1,"vmin":0.92},{"hmax":0.0978,"hmin":0.087,"vmax":1,"vmin":0.92},{"hmax":0.1087,"hmin":0.0978,"vmax":1,"vmin":0.92},{"hmax":0.1196,"hmin":0.1087,"vmax":1,"vmin":0.92},{"hmax":0.1304,"hmin":0.1196,"vmax":1,"vmin":0.92},{"hmax":0.1413,"hmin":0.1304,"vmax":1,"vmin":0.92},{"hmax":0.1522,"hmin":0.1413,"vmax":1,"vmin":0.92},{"hmax":0.163,"hmin":0.1522,"vmax":1,"vmin":0.92},{"hmax":0.1739,"hmin":0.163,"vmax":1,"vmin":0.92},{"hmax":0.1848,"hmin":0.1739,"vmax":1,"vmin":0.92},{"hmax":0.1957,"hmin":0.1848,"vmax":1,"vmin":0.92},{"hmax":0.2065,"hmin":0.1957,"vmax":1,"vmin":0.92},{"hmax":0.2174,"hmin":0.2065,"vmax":1,"vmin":0.92},{"hmax":0.2283,"hmin":0.2174,"vmax":1,"vmin":0.92},{"hmax":0.2391,"hmin":0.2283,"vmax":1,"vmin":0.92},{"hmax":0.25,"hmin":0.2391,"vmax":1,"vmin":0.92},{"hmax":0.2609,"hmin":0.25,"vmax":1,"vmin":0.92},{"hmax":0.2717,"hmin":0.2609,"vmax":1,"vmin":0.92},{"hmax":0.2826,"hmin":0.2717,"vmax":1,"vmin":0.92},{"hmax":0.2935,"hmin":0.2826,"vmax":1,"vmin":0.92},{"hmax":0.3043,"hmin":0.2935,"vmax":1,"vmin":0.92},{"hmax":0.3152,"hmin":0.3043,"vmax":1,"vmin":0.92},{"hmax":0.3261,"hmin":0.3152,"vmax":1,"vmin":0.92},{"hmax":0.337,"hmin":0.3261,"vmax":1,"vmin":0.92},{"hmax":0.3478,"hmin":0.337,"vmax":1,"vmin":0.92},{"hmax":0.3587,"hmin":0.3478,"vmax":1,"vmin":0.92},{"hmax":0.3696,"hmin":0.3587,"vmax":1,"vmin":0.92},{"hmax":0.3804,"hmin":0.3696,"vmax":1,"vmin":0.92},{"hmax":0.3913,"hmin":0.3804,"vmax":1,"vmin":0.92},{"hmax":0.4022,"hmin":0.3913,"vmax":1,"vmin":0.92},{"hmax":0.413,"hmin":0.4022,"vmax":1,"vmin":0.92},{"hmax":0.4239,"hmin":0.413,"vmax":1,"vmin":0.92},{"hmax":0.4348,"hmin":0.4239,"vmax":1,"vmin":0.92},{"hmax":0.4457,"hmin":0.4348,"vmax":1,"vmin":0.92},{"hmax":0.4565,"hmin":0.4457,"vmax":1,"vmin":0.92},{"hmax":0.4674,"hmin":0.4565,"vmax":1,"vmin":0.92},{"hmax":0.4783,"hmin":0.4674,"vmax":1,"vmin":0.92},{"hmax":0.4891,"hmin":0.4783,"vmax":1,"vmin":0.92},{"hmax":0.5,"hmin":0.4891,"vmax":1,"vmin":0.92},{"hmax":0.5109,"hmin":0.5,"vmax":1,"vmin":0.92},{"hmax":0.5217,"hmin":0.5109,"vmax":1,"vmin":0.92},{"hmax":0.5326,"hmin":0.5217,"vmax":1,"vmin":0.92},{"hmax":0.5435,"hmin":0.5326,"vmax":1,"vmin":0.92},{"hmax":0.5543,"hmin":0.5435,"vmax":1,"vmin":0.92},{"hmax":0.5652,"hmin":0.5543,"vmax":1,"vmin":0.92},{"hmax":0.5761,"hmin":0.5652,"vmax":1,"vmin":0.92},{"hmax":0.587,"hmin":0.5761,"vmax":1,"vmin":0.92},{"hmax":0.5978,"hmin":0.587,"vmax":1,"vmin":0.92},{"hmax":0.6087,"hmin":0.5978,"vmax":1,"vmin":0.92},{"hmax":0.6196,"hmin":0.6087,"vmax":1,"vmin":0.92},{"hmax":0.6304,"hmin":0.6196,"vmax":1,"vmin":0.92},{"hmax":0.6413,"hmin":0.6304,"vmax":1,"vmin":0.92},{"hmax":0.6522,"hmin":0.6413,"vmax":1,"vmin":0.92},{"hmax":0.663,"hmin":0.6522,"vmax":1,"vmin":0.92},{"hmax":0.6739,"hmin":0.663,"vmax":1,"vmin":0.92},{"hmax":0.6848,"hmin":0.6739,"vmax":1,"vmin":0.92},{"hmax":0.6957,"hmin":0.6848,"vmax":1,"vmin":0.92},{"hmax":0.7065,"hmin":0.6957,"vmax":1,"vmin":0.92},{"hmax":0.7174,"hmin":0.7065,"vmax":1,"vmin":0.92},{"hmax":0.7283,"hmin":0.7174,"vmax":1,"vmin":0.92},{"hmax":0.7391,"hmin":0.7283,"vmax":1,"vmin":0.92},{"hmax":0.75,"hmin":0.7391,"vmax":1,"vmin":0.92},{"hmax":0.7609,"hmin":0.75,"vmax":1,"vmin":0.92},{"hmax":0.7717,"hmin":0.7609,"vmax":1,"vmin":0.92},{"hmax":0.7826,"hmin":0.7717,"vmax":1,"vmin":0.92},{"hmax":0.7935,"hmin":0.7826,"vmax":1,"vmin":0.92},{"hmax":0.8043,"hmin":0.7935,"vmax":1,"vmin":0.92},{"hmax":0.8152,"hmin":0.8043,"vmax":1,"vmin":0.92},{"hmax":0.8261,"hmin":0.8152,"vmax":1,"vmin":0.92},{"hmax":0.837,"hmin":0.8261,"vmax":1,"vmin":0.92},{"hmax":0.8478,"hmin":0.837,"vmax":1,"vmin":0.92},{"hmax":0.8587,"hmin":0.8478,"vmax":1,"vmin":0.92},{"hmax":0.8696,"hmin":0.8587,"vmax":1,"vmin":0.92},{"hmax":0.8804,"hmin":0.8696,"vmax":1,"vmin":0.92},{"hmax":0.8913,"hmin":0.8804,"vmax":1,"vmin":0.92},{"hmax":0.9022,"hmin":0.8913,"vmax":1,"vmin":0.92},{"hmax":0.913,"hmin":0.9022,"vmax":1,"vmin":0.92},{"hmax":0.9239,"hmin":0.913,"vmax":1,"vmin":0.92},{"hmax":0.9348,"hmin":0.9239,"vmax":1,"vmin":0.92},{"hmax":0.9457,"hmin":0.9348,"vmax":1,"vmin":0.92},{"hmax":0.9565,"hmin":0.9457,"vmax":1,"vmin":0.92},{"hmax":0.9674,"hmin":0.9565,"vmax":1,"vmin":0.92},{"hmax":0.9783,"hmin":0.9674,"vmax":1,"vmin":0.92},{"hmax":0.9891,"hmin":0.9783,"vmax":1,"vmin":0.92},{"hmax":1,"hmin":0.9891,"vmax":1,"vmin":0.92},{"hmax":1,"hmin":0.95,"vmax":1,"vmin":0.98},{"hmax":1,"hmin":0.95,"vmax":0.98,"vmin":0.96},{"hmax":1,"hmin":0.95,"vmax":0.96,"vmin":0.94},{"hmax":1,"hmin":0.95,"vmax":0.94,"vmin":0.92},{"hmax":1,"hmin":0.95,"vmax":0.92,"vmin":0.9},{"hmax":1,"hmin":0.95,"vmax":0.9,"vmin":0.88},{"hmax":1,"hmin":0.95,"vmax":0.88,"vmin":0.86},{"hmax":1,"hmin":0.95,"vmax":0.86,"vmin":0.84},{"hmax":1,"hmin":0.95,"vmax":0.84,"vmin":0.82},{"hmax":1,"hmin":0.95,"vmax":0.82,"vmin":0.8},{"hmax":1,"hmin":0.95,"vmax":0.8,"vmin":0.78},{"hmax":1,"hmin":0.95,"vmax":0.78,"vmin":0.76},{"hmax":1,"hmin":0.95,"vmax":0.76,"vmin":0.74},{"hmax":1,"hmin":0.95,"vmax":0.74,"vmin":0.72},{"hmax":1,"hmin":0.95,"vmax":0.72,"vmin":0.7},{"hmax":1,"hmin":0.95,"vmax":0.7,"vmin":0.68},{"hmax":1,"hmin":0.95,"vmax":0.68,"vmin":0.66},{"hmax":1,"hmin":0.95,"vmax":0.66,"vmin":0.64},{"hmax":1,"hmin":0.95,"vmax":0.64,"vmin":0.62},{"hmax":1,"hmin":0.95,"vmax":0.62,"vmin":0.6},{"hmax":1,"hmin":0.95,"vmax":0.6,"vmin":0.58},{"hmax":1,"hmin":0.95,"vmax":0.58,"vmin":0.56},{"hmax":1,"hmin":0.95,"vmax":0.56,"vmin":0.54},{"hmax":1,"hmin":0.95,"vmax":0.54,"vmin":0.52},{"hmax":1,"hmin":0.95,"vmax":0.52,"vmin":0.5},{"hmax":1,"hmin":0.95,"vmax":0.5,"vmin":0.48},{"hmax":1,"hmin":0.95,"vmax":0.48,"vmin":0.46},{"hmax":1,"hmin":0.95,"vmax":0.46,"vmin":0.44},{"hmax":1,"hmin":0.95,"vmax":0.44,"vmin":0.42},{"hmax":1,"hmin":0.95,"vmax":0.42,"vmin":0.4},{"hmax":1,"hmin":0.95,"vmax":0.4,"vmin":0.38},{"hmax":1,"hmin":0.95,"vmax":0.38,"vmin":0.36},{"hmax":1,"hmin":0.95,"vmax":0.36,"vmin":0.34},{"hmax":1,"hmin":0.95,"vmax":0.34,"vmin":0.32},{"hmax":1,"hmin":0.95,"vmax":0.32,"vmin":0.3},{"hmax":1,"hmin":0.95,"vmax":0.3,"vmin":0.28},{"hmax":1,"hmin":0.95,"vmax":0.28,"vmin":0.26},{"hmax":1,"hmin":0.95,"vmax":0.26,"vmin":0.24},{"hmax":1,"hmin":0.95,"vmax":0.24,"vmin":0.22},{"hmax":1,"hmin":0.95,"vmax":0.22,"vmin":0.2},{"hmax":1,"hmin":0.95,"vmax":0.2,"vmin":0.18},{"hmax":1,"hmin":0.95,"vmax":0.18,"vmin":0.16},{"hmax":1,"hmin":0.95,"vmax":0.16,"vmin":0.14},{"hmax":1,"hmin":0.95,"vmax":0.14,"vmin":0.12},{"hmax":1,"hmin":0.95,"vmax":0.12,"vmin":0.1},{"hmax":1,"hmin":0.95,"vmax":0.1,"vmin":0.08},{"hmax":1,"hmin":0.95,"vmax":0.08,"vmin":0.06},{"hmax":1,"hmin":0.95,"vmax":0.06,"vmin":0.04},{"hmax":1,"hmin":0.95,"vmax":0.04,"vmin":0.02},{"hmax":1,"hmin":0.95,"vmax":0.02,"vmin":0},{"hmax":1,"hmin":0.9889,"vmax":0.08,"vmin":0},{"hmax":0.9889,"hmin":0.9778,"vmax":0.08,"vmin":0},{"hmax":0.9778,"hmin":0.9667,"vmax":0.08,"vmin":0},{"hmax":0.9667,"hmin":0.9556,"vmax":0.08,"vmin":0},{"hmax":0.9556,"hmin":0.9444,"vmax":0.08,"vmin":0},{"hmax":0.9444,"hmin":0.9333,"vmax":0.08,"vmin":0},{"hmax":0.9333,"hmin":0.9222,"vmax":0.08,"vmin":0},{"hmax":0.9222,"hmin":0.9111,"vmax":0.08,"vmin":0},{"hmax":0.9111,"hmin":0.9,"vmax":0.08,"vmin":0},{"hmax":0.9,"hmin":0.8889,"vmax":0.08,"vmin":0},{"hmax":0.8889,"hmin":0.8778,"vmax":0.08,"vmin":0},{"hmax":0.8778,"hmin":0.8667,"vmax":0.08,"vmin":0},{"hmax":0.8667,"hmin":0.8556,"vmax":0.08,"vmin":0},{"hmax":0.8556,"hmin":0.8444,"vmax":0.08,"vmin":0},{"hmax":0.8444,"hmin":0.8333,"vmax":0.08,"vmin":0},{"hmax":0.8333,"hmin":0.8222,"vmax":0.08,"vmin":0},{"hmax":0.8222,"hmin":0.8111,"vmax":0.08,"vmin":0},{"hmax":0.8111,"hmin":0.8,"vmax":0.08,"vmin":0},{"hmax":0.8,"hmin":0.7889,"vmax":0.08,"vmin":0},{"hmax":0.7889,"hmin":0.7778,"vmax":0.08,"vmin":0},{"hmax":0.7778,"hmin":0.7667,"vmax":0.08,"vmin":0},{"hmax":0.7667,"hmin":0.7556,"vmax":0.08,"vmin":0},{"hmax":0.7556,"hmin":0.7444,"vmax":0.08,"vmin":0},{"hmax":0.7444,"hmin":0.7333,"vmax":0.08,"vmin":0},{"hmax":0.7333,"hmin":0.7222,"vmax":0.08,"vmin":0},{"hmax":0.7222,"hmin":0.7111,"vmax":0.08,"vmin":0},{"hmax":0.7111,"hmin":0.7,"vmax":0.08,"vmin":0},{"hmax":0.7,"hmin":0.6889,"vmax":0.08,"vmin":0},{"hmax":0.6889,"hmin":0.6778,"vmax":0.08,"vmin":0},{"hmax":0.6778,"hmin":0.6667,"vmax":0.08,"vmin":0},{"hmax":0.6667,"hmin":0.6556,"vmax":0.08,"vmin":0},{"hmax":0.6556,"hmin":0.6444,"vmax":0.08,"vmin":0},{"hmax":0.6444,"hmin":0.6333,"vmax":0.08,"vmin":0},{"hmax":0.6333,"hmin":0.6222,"vmax":0.08,"vmin":0},{"hmax":0.6222,"hmin":0.6111,"vmax":0.08,"vmin":0},{"hmax":0.6111,"hmin":0.6,"vmax":0.08,"vmin":0},{"hmax":0.6,"hmin":0.5889,"vmax":0.08,"vmin":0},{"hmax":0.5889,"hmin":0.5778,"vmax":0.08,"vmin":0},{"hmax":0.5778,"hmin":0.5667,"vmax":0.08,"vmin":0},{"hmax":0.5667,"hmin":0.5556,"vmax":0.08,"vmin":0},{"hmax":0.5556,"hmin":0.5444,"vmax":0.08,"vmin":0},{"hmax":0.5444,"hmin":0.5333,"vmax":0.08,"vmin":0},{"hmax":0.5333,"hmin":0.5222,"vmax":0.08,"vmin":0},{"hmax":0.5222,"hmin":0.5111,"vmax":0.08,"vmin":0},{"hmax":0.5111,"hmin":0.5,"vmax":0.08,"vmin":0},{"hmax":0.5,"hmin":0.4889,"vmax":0.08,"vmin":0},{"hmax":0.4889,"hmin":0.4778,"vmax":0.08,"vmin":0},{"hmax":0.4778,"hmin":0.4667,"vmax":0.08,"vmin":0},{"hmax":0.4667,"hmin":0.4556,"vmax":0.08,"vmin":0},{"hmax":0.4556,"hmin":0.4444,"vmax":0.08,"vmin":0},{"hmax":0.4444,"hmin":0.4333,"vmax":0.08,"vmin":0},{"hmax":0.4333,"hmin":0.4222,"vmax":0.08,"vmin":0},{"hmax":0.4222,"hmin":0.4111,"vmax":0.08,"vmin":0},{"hmax":0.4111,"hmin":0.4,"vmax":0.08,"vmin":0},{"hmax":0.4,"hmin":0.3889,"vmax":0.08,"vmin":0},{"hmax":0.3889,"hmin":0.3778,"vmax":0.08,"vmin":0},{"hmax":0.3778,"hmin":0.3667,"vmax":0.08,"vmin":0},{"hmax":0.3667,"hmin":0.3556,"vmax":0.08,"vmin":0},{"hmax":0.3556,"hmin":0.3444,"vmax":0.08,"vmin":0},{"hmax":0.3444,"hmin":0.3333,"vmax":0.08,"vmin":0},{"hmax":0.3333,"hmin":0.3222,"vmax":0.08,"vmin":0},{"hmax":0.3222,"hmin":0.3111,"vmax":0.08,"vmin":0},{"hmax":0.3111,"hmin":0.3,"vmax":0.08,"vmin":0},{"hmax":0.3,"hmin":0.2889,"vmax":0.08,"vmin":0},{"hmax":0.2889,"hmin":0.2778,"vmax":0.08,"vmin":0},{"hmax":0.2778,"hmin":0.2667,"vmax":0.08,"vmin":0},{"hmax":0.2667,"hmin":0.2556,"vmax":0.08,"vmin":0},{"hmax":0.2556,"hmin":0.2444,"vmax":0.08,"vmin":0},{"hmax":0.2444,"hmin":0.2333,"vmax":0.08,"vmin":0},{"hmax":0.2333,"hmin":0.2222,"vmax":0.08,"vmin":0},{"hmax":0.2222,"hmin":0.2111,"vmax":0.08,"vmin":0},{"hmax":0.2111,"hmin":0.2,"vmax":0.08,"vmin":0},{"hmax":0.2,"hmin":0.1889,"vmax":0.08,"vmin":0},{"hmax":0.1889,"hmin":0.1778,"vmax":0.08,"vmin":0},{"hmax":0.1778,"hmin":0.1667,"vmax":0.08,"vmin":0},{"hmax":0.1667,"hmin":0.1556,"vmax":0.08,"vmin":0},{"hmax":0.1556,"hmin":0.1444,"vmax":0.08,"vmin":0},{"hmax":0.1444,"hmin":0.1333,"vmax":0.08,"vmin":0},{"hmax":0.1333,"hmin":0.1222,"vmax":0.08,"vmin":0},{"hmax":0.1222,"hmin":0.1111,"vmax":0.08,"vmin":0},{"hmax":0.1111,"hmin":0.1,"vmax":0.08,"vmin":0},{"hmax":0.1,"hmin":0.0889,"vmax":0.08,"vmin":0},{"hmax":0.0889,"hmin":0.0778,"vmax":0.08,"vmin":0},{"hmax":0.0778,"hmin":0.0667,"vmax":0.08,"vmin":0},{"hmax":0.0667,"hmin":0.0556,"vmax":0.08,"vmin":0},{"hmax":0.0556,"hmin":0.0444,"vmax":0.08,"vmin":0},{"hmax":0.0444,"hmin":0.0333,"vmax":0.08,"vmin":0},{"hmax":0.0333,"hmin":0.0222,"vmax":0.08,"vmin":0},{"hmax":0.0222,"hmin":0.0111,"vmax":0.08,"vmin":0},{"hmax":0.0111,"hmin":0,"vmax":0.08,"vmin":0},{"hmax":0.05,"hmin":0,"vmax":0.0196,"vmin":0},{"hmax":0.05,"hmin":0,"vmax":0.0392,"vmin":0.0196},{"hmax":0.05,"hmin":0,"vmax":0.0588,"vmin":0.0392},{"hmax":0.05,"hmin":0,"vmax":0.0784,"vmin":0.0588},{"hmax":0.05,"hmin":0,"vmax":0.098,"vmin":0.0784},{"hmax":0.05,"hmin":0,"vmax":0.1176,"vmin":0.098},{"hmax":0.05,"hmin":0,"vmax":0.1373,"vmin":0.1176},{"hmax":0.05,"hmin":0,"vmax":0.1569,"vmin":0.1373},{"hmax":0.05,"hmin":0,"vmax":0.1765,"vmin":0.1569},{"hmax":0.05,"hmin":0,"vmax":0.1961,"vmin":0.1765},{"hmax":0.05,"hmin":0,"vmax":0.2157,"vmin":0.1961},{"hmax":0.05,"hmin":0,"vmax":0.2353,"vmin":0.2157},{"hmax":0.05,"hmin":0,"vmax":0.2549,"vmin":0.2353},{"hmax":0.05,"hmin":0,"vmax":0.2745,"vmin":0.2549},{"hmax":0.05,"hmin":0,"vmax":0.2941,"vmin":0.2745},{"hmax":0.05,"hmin":0,"vmax":0.3137,"vmin":0.2941},{"hmax":0.05,"hmin":0,"vmax":0.3333,"vmin":0.3137},{"hmax":0.05,"hmin":0,"vmax":0.3529,"vmin":0.3333},{"hmax":0.05,"hmin":0,"vmax":0.3725,"vmin":0.3529},{"hmax":0.05,"hmin":0,"vmax":0.3922,"vmin":0.3725},{"hmax":0.05,"hmin":0,"vmax":0.4118,"vmin":0.3922},{"hmax":0.05,"hmin":0,"vmax":0.4314,"vmin":0.4118},{"hmax":0.05,"hmin":0,"vmax":0.451,"vmin":0.4314},{"hmax":0.05,"hmin":0,"vmax":0.4706,"vmin":0.451},{"hmax":0.05,"hmin":0,"vmax":0.4902,"vmin":0.4706},{"hmax":0.05,"hmin":0,"vmax":0.5098,"vmin":0.4902},{"hmax":0.05,"hmin":0,"vmax":0.5294,"vmin":0.5098},{"hmax":0.05,"hmin":0,"vmax":0.549,"vmin":0.5294},{"hmax":0.05,"hmin":0,"vmax":0.5686,"vmin":0.549},{"hmax":0.05,"hmin":0,"vmax":0.5882,"vmin":0.5686},{"hmax":0.05,"hmin":0,"vmax":0.6078,"vmin":0.5882},{"hmax":0.05,"hmin":0,"vmax":0.6275,"vmin":0.6078},{"hmax":0.05,"hmin":0,"vmax":0.6471,"vmin":0.6275},{"hmax":0.05,"hmin":0,"vmax":0.6667,"vmin":0.6471},{"hmax":0.05,"hmin":0,"vmax":0.6863,"vmin":0.6667},{"hmax":0.05,"hmin":0,"vmax":0.7059,"vmin":0.6863},{"hmax":0.05,"hmin":0,"vmax":0.7255,"vmin":0.7059},{"hmax":0.05,"hmin":0,"vmax":0.7451,"vmin":0.7255},{"hmax":0.05,"hmin":0,"vmax":0.7647,"vmin":0.7451},{"hmax":0.05,"hmin":0,"vmax":0.7843,"vmin":0.7647},{"hmax":0.05,"hmin":0,"vmax":0.8039,"vmin":0.7843},{"hmax":0.05,"hmin":0,"vmax":0.8235,"vmin":0.8039},{"hmax":0.05,"hmin":0,"vmax":0.8431,"vmin":0.8235},{"hmax":0.05,"hmin":0,"vmax":0.8627,"vmin":0.8431},{"hmax":0.05,"hmin":0,"vmax":0.8824,"vmin":0.8627},{"hmax":0.05,"hmin":0,"vmax":0.902,"vmin":0.8824},{"hmax":0.05,"hmin":0,"vmax":0.9216,"vmin":0.902},{"hmax":0.05,"hmin":0,"vmax":0.9412,"vmin":0.9216},{"hmax":0.05,"hmin":0,"vmax":0.9608,"vmin":0.9412},{"hmax":0.05,"hmin":0,"vmax":0.9804,"vmin":0.9608},{"hmax":0.05,"hmin":0,"vmax":1,"vmin":0.9804}],"logger":{"level":"debug"},"network":{"apiAuth":true,"internetAccessAPI":false,"ipWhitelist":[],"localAdminAuth":true,"localApiAuth":false,"restirctedInternetAccessAPI":false},"protoServer":{"enable":true,"port":19445,"timeout":5},"smoothing":{"enable":false},"webConfig":{"crtPath":"","document_root":"","keyPassPhrase":"","keyPath":"","port":8090,"sslPort":8092}}

< ----- Current Log --------------------------- >
2021-10-16T15:05:39.169Z [hyperiond DAEMON] (INFO) CEC handler created
2021-10-16T15:05:39.234Z [hyperiond EFFECTFILES] (INFO) 40 effects loaded from directory :/effects/
2021-10-16T15:05:39.261Z [hyperiond EFFECTFILES] (INFO) 22 effect schemas loaded from directory :/effects/schema/
2021-10-16T15:05:39.267Z [hyperiond EFFECTFILES] (INFO) 0 effects loaded from directory /home/pi/.hyperion/custom-effects/
2021-10-16T15:05:39.508Z [hyperiond SETTINGSMGR] (DEBUG) (SettingsManager.cpp:171:SettingsManager()) Settings database initialized
2021-10-16T15:05:39.536Z [hyperiond BLACKBORDER] (DEBUG) (BlackBorderProcessor.cpp:64:handleSettingsUpdate()) Set mode to: default
2021-10-16T15:05:39.539Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:41:setNewComponentState()) Blackborder detector: enabled
2021-10-16T15:05:39.594Z [hyperiond DAEMON] (INFO) set screen capture device to 'dispmanx'
2021-10-16T15:05:39.615Z [hyperiond DAEMON] (INFO) DISPMANX frame grabber created
2021-10-16T15:05:39.638Z [hyperiond DAEMON] (DEBUG) (hyperiond.cpp:608:handleSettingsUpdate()) V4L2 grabber created
2021-10-16T15:05:39.655Z [hyperiond JSONSERVER] (DEBUG) (JsonServer.cpp:28:JsonServer()) Created instance
2021-10-16T15:05:39.691Z [hyperiond JSONSERVER] (INFO) Started on port 19444
2021-10-16T15:05:39.613Z [hyperiond SMOOTHING] (DEBUG) (LinearColorSmoothing.cpp:687:selectConfig()) cfg [0]:  Type: linear - Time: 200 ms, outputRate 25.000000 Hz, interpolationRate: 25.000000 Hz, timer: 40 ms, Dithering: 0, Decay: 1.000000 -> HalfTime: 100.000000 ms
2021-10-16T15:05:39.626Z [hyperiond LEDDEVICE] (INFO) Start LedDevice 'udpraw'.
2021-10-16T15:05:39.631Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:148:init()) deviceConfig: [{"colorOrder":"rgb","currentLedCount":287,"hardwareLedCount":287,"host":"<IP_ADDRESS>","latchTime":0,"port":19446,"type":"udpraw"}]
2021-10-16T15:05:39.634Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:413:setLatchTime()) LatchTime updated to 0ms
2021-10-16T15:05:39.639Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:444:setRewriteTime()) RewriteTime updated to 0ms
2021-10-16T15:05:39.642Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceUdpRaw.cpp:32:init()) DeviceType   : udpraw
2021-10-16T15:05:39.644Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceUdpRaw.cpp:33:init()) LedCount     : 287
2021-10-16T15:05:39.648Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceUdpRaw.cpp:34:init()) ColorOrder   : rgb
2021-10-16T15:05:39.647Z [hyperiond SMOOTHING] (DEBUG) (LinearColorSmoothing.cpp:687:selectConfig()) Previous line repeats 1 times
2021-10-16T15:05:39.660Z [hyperiond FLATBUFCONN] (INFO) Connecting to Hyperion: <IP_ADDRESS>:19401
2021-10-16T15:05:39.651Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceUdpRaw.cpp:35:init()) LatchTime    : 0
2021-10-16T15:05:39.666Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:148:init()) deviceConfig: [{"colorOrder":"rgb","currentLedCount":287,"hardwareLedCount":287,"host":"<IP_ADDRESS>","latchTime":0,"port":19446,"type":"udpraw"}]
2021-10-16T15:05:39.667Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:413:setLatchTime()) LatchTime updated to 0ms
2021-10-16T15:05:39.667Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:444:setRewriteTime()) RewriteTime updated to 0ms
2021-10-16T15:05:39.668Z [hyperiond LEDDEVICE] (DEBUG) (ProviderUdp.cpp:43:init()) Successfully parsed <IP_ADDRESS> as an IP-address.
2021-10-16T15:05:39.669Z [hyperiond LEDDEVICE] (DEBUG) (ProviderUdp.cpp:73:init()) UDP socket will write to <IP_ADDRESS>:19446
2021-10-16T15:05:39.707Z [hyperiond EFFECTENGINE] (INFO) Run effect "Rainbow swirl fast" on channel 1
2021-10-16T15:05:39.756Z [hyperiond FLATBUFSERVER] (INFO) Started on port 19400
2021-10-16T15:05:39.765Z [hyperiond PROTOSERVER] (INFO) Started on port 19445
2021-10-16T15:05:39.768Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:33:initServer()) Initialize Webserver
2021-10-16T15:05:39.788Z [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:181:runEffectScript()) Start the effect: name [Rainbow swirl fast], smoothCfg [2]
2021-10-16T15:05:39.791Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:165:registerInput()) Register new input 'System/EFFECT' with priority 1 as inactive
2021-10-16T15:05:39.797Z [hyperiond HYPERION] (INFO) Initial foreground effect 'Rainbow swirl fast' started
2021-10-16T15:05:39.800Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:33:initServer()) Initialize Webserver
2021-10-16T15:05:39.827Z [hyperiond BOBLIGHT] (DEBUG) (BoblightServer.cpp:28:BoblightServer()) Instance created
2021-10-16T15:05:39.884Z [hyperiond HYPERION] (INFO) Hyperion instance 'Vizio E70 LEDs' has been started
2021-10-16T15:05:39.871Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:41:setNewComponentState()) LED device: enabled
2021-10-16T15:05:40.256Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:91:handleSettingsUpdate()) Apply Webserver settings
2021-10-16T15:05:40.260Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:109:handleSettingsUpdate()) Set document root to: :/webconfig
2021-10-16T15:05:40.266Z [hyperiond WEBSERVER] (INFO) Started on port 8090 name 'Hyperion Webserver'
2021-10-16T15:05:40.271Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:91:handleSettingsUpdate()) Apply Webserver settings
2021-10-16T15:05:40.281Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:109:handleSettingsUpdate()) Set document root to: :/webconfig
2021-10-16T15:05:40.754Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:271:setInputImage()) Priority 1 is now active
2021-10-16T15:05:40.757Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:374:setCurrentTime()) Set visible priority to 1
2021-10-16T15:05:40.765Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:566:handleSourceAvailability()) priority[1], previousPriority[255]
2021-10-16T15:05:40.771Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:577:handleSourceAvailability()) new source available -> Resume output processing and switch LED-Device on
2021-10-16T15:05:42.077Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:175:handleSettingsUpdate()) Setup SSL certificate
2021-10-16T15:05:42.087Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:191:handleSettingsUpdate()) Setup private SSL key
2021-10-16T15:05:42.091Z [hyperiond WEBSERVER] (INFO) Started on port 8092 name 'Hyperion Webserver'
2021-10-16T15:05:43.576Z [hyperiond EFFECTENGINE] (INFO) effect finished
2021-10-16T15:05:43.682Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:337:setCurrentTime()) Timeout clear for priority 1
2021-10-16T15:05:43.686Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:374:setCurrentTime()) Set visible priority to 255
2021-10-16T15:05:43.700Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:566:handleSourceAvailability()) priority[255], previousPriority[1]
2021-10-16T15:05:43.704Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:569:handleSourceAvailability()) No source left -> Pause output processing and switch LED-Device off
2021-10-16T15:05:47.873Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:<IP_ADDRESS>
2021-10-16T15:05:48.678Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) Previous line repeats 1 times
2021-10-16T15:05:48.682Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:120:handleInstanceSwitch()) Client '::ffff:<IP_ADDRESS>' switch to Hyperion instance 0
2021-10-16T15:05:49.361Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:120:handleInstanceSwitch()) Previous line repeats 1 times
2021-10-16T15:05:49.365Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1058:handleLoggingCommand()) log streaming activated for client ::ffff:<IP_ADDRESS>
2021-10-16T15:09:48.401Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:215:sendClose()) send close: 1000
2021-10-16T15:09:49.435Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:<IP_ADDRESS>
2021-10-16T15:09:49.806Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:120:handleInstanceSwitch()) Client '::ffff:<IP_ADDRESS>' switch to Hyperion instance 0
2021-10-16T15:09:50.337Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1058:handleLoggingCommand()) log streaming activated for client ::ffff:<IP_ADDRESS>
2021-10-16T15:10:27.558Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","subcommand":"discover","tan":437}]
2021-10-16T15:10:27.566Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1428:handleLedDeviceCommand()) response: [{"devices":[],"ledDeviceType":"wled"}]
2021-10-16T15:10:30.379Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"filter":"info","host":"<IP_ADDRESS>"},"subcommand":"getProperties","tan":259}]
2021-10-16T15:10:30.799Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:148:get()) GET: [http://<IP_ADDRESS>/json/info]
2021-10-16T15:10:30.803Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-16T15:10:30.807Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]
2021-10-16T15:10:30.813Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1438:handleLedDeviceCommand()) response: [{"properties":{"maxLedCount":490}}]
2021-10-16T15:10:36.104Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1404:handleLedDeviceCommand()) message: [{"command":"leddevice","ledDeviceType":"wled","params":{"host":"<IP_ADDRESS>"},"subcommand":"identify","tan":723}]
2021-10-16T15:10:36.536Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:148:get()) GET: [http://<IP_ADDRESS>/json/state]
2021-10-16T15:10:36.540Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-16T15:10:36.545Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]
2021-10-16T15:10:36.972Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:187:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"on":true,"live":true,"lor":1,"seg":{"fx":25,"sx":128}}]
2021-10-16T15:10:36.976Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-16T15:10:36.979Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]
2021-10-16T15:10:39.322Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:187:put()) PUT: [http://<IP_ADDRESS>/json/state] [{"live":false}]
2021-10-16T15:10:39.328Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:237:getResponse()) Reply.httpStatusCode [0]
2021-10-16T15:10:39.329Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]

Possible root cause:
Inside getProperties there's a GET to http://<IP_ADDRESS>/json/info (reflected in the log).
The logged response is [{"properties":{"maxLedCount":490}}] which is something that's manually inserted into the JSON.
Yet if I manually GET http://<IP_ADDRESS>/json/info the result is:
{"ver":"0.12.0","vid":2104020,"leds":{"count":287,"rgbw":false,"wv":false,"pin":[2],"pwr":387,"fps":0,"maxpwr":1500,"maxseg":12,"seglock":false},"str":false,"name":"WLED","udpport":21324,"live":false,"lm":"","lip":"","ws":0,"fxcount":118,"palcount":56,"wifi":{"bssid":"0C:7C:28:AF:11:FC","rssi":-49,"signal":100,"channel":6},"fs":{"u":32,"t":1024,"pmt":1634268019},"ndc":0,"arch":"esp8266","core":"2_7_4_7","lwip":1,"freeheap":21264,"uptime":130891,"opt":127,"brand":"WLED","product":"FOSS","mac":"8caab50d9529"}
I think the problematic log line is (ProviderRestApi.cpp:264:getResponse()) Reply: [Operation canceled]. This line should probably have the same contents as my manual GET request has.

Thank you, @Lord-Grey! It was indeed network issues - just not the ones we thought :)
Curl was returning curl: (7) Failed to connect to <IP_ADDRESS> port 80: No route to host. Ping was also failing, and other devices on my network couldn't see <IP_ADDRESS> (like my phone) while desktops/laptops could see it.
I rebooted my router (mediocre, default AT&T fiber router) and everything is working now!


Create first release

First release create. Additional info on https://github.com/lfx1001/avrela/releases/tag/v0.0.1


Error updating Organization name

Gitea version (or commit ref):  1.8.3
Git version: 2.17.1
Operating system: GNU/Linux Ubuntu 18.04
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Description
Hey guys I get this error when I miss a space at the end of the name updating the organization name
template: org/settings/options:41:110: executing "org/settings/options" at <eq .CurrentVisibility 0>: error calling eq: invalid type for comparison
Screenshots

This should be fixed in 1.9+ by #7385

Duplicate of #6755


Improve herustic to detect the remote

Right now the remote is assumed to be the "origin" . As here
While this works for most of the use cases I am running into several internally deployed git hosting approaches, where  the remote is not named "origin" but something else.
What would you think if I changed the heuristic of finding the remote to the following:

1 ) If there is only one remote:

1a) Use the only remote. Whatever it is named

2 ) If there are multiple remotes

2a) If there is a remote called origin use origin
2b) If there is not a remote called origin use the remote name that comes first in the lexicographical order (**). Essentially chose an arbitrary one.

This will not change the plugin's behavior on the repos that currently work fine. In addition, this will make the plugin useable for repos that do not use the origin convention, but still have simple remote naming scheme. This was mentioned in  #10 too.
(**) I am not super sure in this fallback option. I guess we could consider the 'upstream' convention as well. If someone is working on a forked repo, the parent is usually called upstream.  Usually the upstream does also not contain the most recent changes the author is working on. Usually the author does not have direct write access to upstream either. So we could prioritize the remote that is NOT called upstream  before choosing an arbitrary one by looking at the lexicographical order. I was not sure whether it is worth adding more complication to address upstream so I left it out.
We could also use a simple g:gh_remote = 'string' variable that will specify which remote to use. I am against that approach with a simple string variable.  Because a vim user independently works in numerous git repositories at the same time, in parallel. The correct remote for one would not be correct for the other repo. One could make the g:gh_remote variable a dictionary to map the remote name to the current working dir, or repo name, or similar. That looks too much complication to configure but I would be open to a g:gh_remote variable that is a dictionary.
Update
Add number-letter labels to the proposed steps so that they can be referred later on.

@ruanyl if you are open to improving the heuristic to something similar to the description in the bullet list. I can take a stab at the implementation and testing. FYI. Please let me know.

@ahakanbaba thank you for the proposal! I'm working on something similar which allow user to choose a remote from prompt when there were multiple remotes. How do you think?

@KostyaEsmukov Agree and I also think the same. Working on adding this.

TL;DR: I do not think we should build something complicated in the critical path of user's interaction with vim-gh-line to address all and every possible remote configurations.
I really find this post and its accompanying talk extremely inspiring to decide what to build what not to. There, Russ Cox asks the question: Is this use case significant for us to implement a solution and maintain ?
The vim-gh-line at least should handle 1a) above, the single remote case. In the single remote case, how the plugin should behave is really obvious and simple.  2a) where we have a remote called origin is already supported and should continue to work. After those, before going lengths to  handle any other use-cases, I would first wait to understand that the problem is really significant.
For example, I have 10's of different repos that I edit with vim. And I do not have a use case that extends beyond 2a). In all of my local repos, there is either a single remote, or there is a remote called 'origin' amongst many remotes. For me supporting anything else than 1a) and 2a) is not significant.  Does anyone have a compelling use case that must be solved by vim-gh-line implementation ?
Alternatives:

In 2b) where the remotes are many, and origin is not one of them, I propose to choose an arbitrary one. But choose deterministically (first in the lexicographical order). If someone must use vim-gh-line in that configuration she could do one of the following.
a) Update this ticket to describe why the use case is a significant one and argue for vim-gh-line to provide a solution.
b) Duplicate the desired remote to be named something like aaa_duplicate_remote_for_vimg-gh_line. Running something like following once would work.

git config remote.aaa_duplicate_remote_for_vim_gh_line.url $(git config --get remote.actualRemote.url)

(I am not in favor of this) I guess if vim-gh-line must implement something, I strongly suggest to keep the common case untouched. If the repo has more then 1 remote with none of them named origin, we should ask the user to configure the preferred remote once. This can be done with:
a) With a .vim-gh-line file in the root directory of the repo
b) With a dictionary like variable in vimrc

g:gh_line_repo_to_remote = {
 'pattern_to_match_the_repo_name': 'preferredRemote'
}

I strongly recommend not to complicate the common use case of <leader>gh key combination and ask the user for a selection from a remote list. The user is going to select the same remote almost all the time.
Precedence.
Intellij has also a GitLink plugin that has the same functionality as vim-gh-line. There, the authors assumed that the default remote is called origin and enabled a way for the users to specify a default remote per local github repo, only one time, without adding extra steps to their key combination to launch the browser.

I recommend to do the same and do not add extra steps to to the key combination while launching the browser.

The user is going to select the same remote almost all the time.

This is an assumption made on behalf of all users, which I believe is rather unfair.
Consider a typical triangular workflow: there's a fork (say, origin) and an upstream. As you've noted before, upstream might be behind the origin, so there's an obvious reason why origin might be preferred over upstream.
But there's also an opposite scenario: one might prefer upstream over origin when sharing a link of a snippet from the upstream project -- the recipient might be confused to see a link to a fork rather than the original project.
So I, personally, would prefer to have an ability to choose the exact remote I need at the moment when calling \gh (which not necessarily opens a browser, but, in my case, copies the link to the clipboard).
People use different workflows and an interactive menu might be a frustration for some, so it would be nice to have it configurable. Although the other case -- a pre-defined behaviour choosing a single remote all the time, I guess will be more frustrating.

But there's also an opposite scenario: one might prefer upstream over origin when sharing a link of a snippet from the upstream project -- the recipient might be confused to see a link to a fork rather than the original project.

You are right. This is fair. One would not like to share a link from my personal fork to distribute.

So I, personally, would prefer to have an ability to choose the exact remote I need at the moment when calling \gh (which not necessarily opens a browser, but, in my case, copies the link to the clipboard).

@KostyaEsmukov  how did you achieve that ? Did you modify the g:gh_open_command? I am interested in that. Maybe we could update the Readme to describe that use-case too.

how did you achieve that ? Did you modify the g:gh_open_command?

Yes, this is already present in the readme (last but one sample from the How to Use section):
let g:gh_open_command = 'fn() { echo "$@" | pbcopy; }; fn '

For Linux there're alternatives to the macos's pbcopy: https://superuser.com/a/288333.

Nice discussion! Based on the discussion so far, shall we come up with the following decision?

when there is one remote, use it directly
when there are multiple remotes, provides interactive interface to let user to choose.
3?. Maybe we can preserve the first user selection and use it as the default remote in the following <leader>gh. But still we can provide a new function to user which will always give user the options to choose a remote.

How do you think? @KostyaEsmukov @ahakanbaba

implemented at https://github.com/ruanyl/vim-gh-line/pull/28


AFO has PURLs for each version

A new version of AFO is released every 3 month an can be accessed via a PURL, e.g.
http://purl.allotrope.org/voc/afo/merged/REC/2023/09/merged-without-qudt-and-inferred.ttl for the most recent one.
To get the most latest version this PURL would have to be updated, so the next version will be:
http://purl.allotrope.org/voc/afo/merged/REC/2023/12/merged-without-qudt-and-inferred.ttl.
Maybe this helps to not have to mirror it in this repo?

Thank you! Resolved by commit 479570b


Create a up-wrapper repo

We need to have a separate repo for the up to be able to register the planner for the UP env.

done https://github.com/pyPMT/up-pypmt.git


Switched to async/await. Bumped pyxeoma version

Description:
Switched to async/await syntax and bumped pyxeoma version to incorporate PR from @loredous.
https://github.com/jeradM/pyxeoma/pull/2
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If the code communicates with devices, web services, or third-party tools:

[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.

Thanks! 🐬 👍


changed laptops and amplify won’t recognise existing project

I have changed laptops recently and when I run
amplify publish -c
I get this error:

Error: You are not working inside a valid amplify project.
Use 'amplify init' in the root of your app directory to initialize your project with Amplify

I created an aws cloudfront through amplify previously but is it possible to reinitialise amplify on a new machine.
i committed all files to source control so i can’t understand from the error message what is missing

@dagda1 When you changed laptops did you run the amplify configure project command from the root of your project? If not, then please run that and then execute the subsequent commands.

i have done this but all it did was create s new iam role.  then when j try and publish i get the same error message

@dagda1 That would be the amplify configure command. I was referring to the amplify configure project command.

@kateglee I get the same message from amplify configure project

Looking at the code:
function getProjectConfigFilePath(projectPath) {
  return path.normalize(path.join(
    getDotConfigDirPath(projectPath),
    amplifyCLIConstants.ProjectConfigFileName,
  ));
}

What is it looking for that it cannot find in  getDotConfigDirPath(projectPath)

so there is no .amplify folder.  This is a hidden folder which is probably why it has not been persisted across my change of laptop.
WHat can I do to reconfigure without starting afresh.  I have cloudfront and route53 etc. set up for many months and I'd hate to have to do all that again, never mind a DNS change.

anybody help me with this.  Is my amplify toast?

@dagda1 What does your project structure look like? Do you see the amplify sub-directory in your app/project directory?

@kaustavghosh06 here is what tree outputs
.
├── LICENSE
├── README.md
├── amplify
│   └── backend
│       ├── amplify-meta.json
│       ├── awscloudformation
│       │   └── nested-cloudformation-stack.yml
│       └── hosting
│           └── S3AndCloudFront
│               └── template.json
├── data

Can you run the amplify status command from the root of your project?
Also which system are you using currently? and what's the version of the CLI that you're using?

It is the same error every time

Error: You are not working inside a valid amplify project.

I've checked the code as I mentioned above, when amplify runs it looks for a hidden .amplify directory which does not exist because it did not survive my move to a new laptop.

@dagda1 We don't create a .amplify dir but create a amplify/.config directory which seems to be missing in your case.  Would it be possible to retreive the amplify/.config directory?

@kaustavghosh06 no, I think the fact that it is a hidden folder means it did not come across.
Is there anything else I can do?

Which version of the CLI were you using? the one in mainline or @multienv? I can help you rebuild your .config folder manually.

oh man, thank you so much.
I am on 0.1.45

Here's the .config folder structure:
amplify
|_.config
|_aws-info.json
|_project-config.json
Here's a sample of these above mentioned config files. Plase fill/substitue it  with your custom information.
aws-info.json
{
    "configLevel": "project",
    "useProfile": true,
    "profileName": "default"
}

project-config.json
{
    "projectName": "testbeta",
    "projectPath": "/Users/kaustavg/testbeta",
    "defaultEditor": "sublime",
    "frontendHandler": {
        "javascript": "amplify-frontend-javascript"
    },
    "javascript": {
        "framework": "none",
        "config": {
            "SourceDir": "src",
            "DistributionDir": "dist",
            "BuildCommand": "npm run-script build",
            "StartCommand": "npm run-script start"
        }
    },
    "providers": {
        "awscloudformation": "amplify-provider-awscloudformation"
    }
}

You can run amplify configure project command to modify any of these values int he future.

brilliant, thank youi


RFE: Clickable pub keys

Having pubkeys resolve to a link wherever they show up would help with workflow, for example on suggested_opens/, it would be great to click and go to the node's amboss or 1ml

Hi, thanks for your suggestions.
Can you tell me what sections you would like to see a hyperlink added? It looks like the hyperlink is working on the Suggested Opens page already. Most pages should be using links already but may have missed some spots.
https://github.com/cryptosharks131/lndg/blob/master/gui/templates/open_list.html#L21


[New] add SquashPrTitleUsedAsDefault metric

Closes #84
Not sure about the permissions required for squashPrTitleUsedAsDefault

Why did the Automatic Rebase action fail when I was still able to rebase the PR using 'Update branch' on here? 🤔

lol good question


Fix #1240 Added contribution page

I have added contribution page in the website ...Plz review it .... @iamrahulmahato  plz review it under gssoc
https://github.com/user-attachments/assets/a8920ebe-ea93-4862-b8b4-05da92e0b6d7

#1240


[Chat] [IOU] Mobile keyboard should not be displayed at IOUConfirm step

If you haven’t already, check out our contributing guidelines for onboarding!

Problem
The mobile alphabetic keyboard is being displayed on physical devices when the IOUAmount page is displayed. It isn't always consistent but occurs most of the time with no obvious pattern. This occurs on both Android and iOS physical devices.
To reproduce this issue, apply the following diff so that 'New chat' and 'New group' launches the IOUModal:
Make sure you include the final new line!
diff --git a/src/components/CreateMenu.js b/src/components/CreateMenu.js
index 7c7afe3a..f311b4a1 100644
--- a/src/components/CreateMenu.js
+++ b/src/components/CreateMenu.js
@@ -53,12 +53,12 @@ class CreateMenu extends PureComponent {
             {
                 icon: ChatBubble,
                 text: 'New Chat',
-                onPress: () => this.setOnModalHide(() => Navigation.navigate(ROUTES.NEW_CHAT)),
+                onPress: () => this.setOnModalHide(() => Navigation.navigate(ROUTES.IOU_REQUEST)),
             },
             {
                 icon: Users,
                 text: 'New Group',
-                onPress: () => this.setOnModalHide(() => Navigation.navigate(ROUTES.NEW_GROUP)),
+                onPress: () => this.setOnModalHide(() => Navigation.navigate(ROUTES.IOU_BILL)),
             },
         ].map(item => ({
             ...item,

https://user-images.githubusercontent.com/10736861/111474608-25f02680-8724-11eb-899a-f860edf5ef80.mp4
Desired Solution
The alphabetic keyboard should not be displayed, as we are not rendering an Input field on mobile:
Upwork Link: https://www.upwork.com/ab/applicants/1372398296191315968/job-details

This looks to have been introduced with the new React Navigation changes and unrelated to the IOU screens, you can set any route or simply close the menu and it will still cause the keyboard to show.
Proposal

The bug actually lives inside ReportActionCompose. since the list of chats is really an "open drawer", there is actually a report view mounted as well:

In the componentDidUpdate we have the following code that cause the input in the report to be focused when the menu modal is closed:
        // When any modal goes from visible to hidden, bring focus to the compose field
        if (prevProps.modal.isVisible && !this.props.modal.isVisible) {
            this.setIsFocused(true);
        }

The solution would be to only run this logic when report component is actually "focused". RNav5 only provides this functionality via hooks so we'd have to set up a wrapper to be able to allow it to work with class components:

const ReportActionComposeWrapped = (props) => {
    const isFocused = useIsFocused();

    // eslint-disable-next-line react/jsx-props-no-spreading
    return <ReportActionCompose {...props} isFocused={isFocused} />;
};

Which will allow us to check if the page is focused before focusing the input which resolves the keyboard issue:
        // When any modal goes from visible to hidden, bring focus to the compose field
        if (this.props.isVisible && prevProps.modal.isVisible && !this.props.modal.isVisible) {
            this.setIsFocused(true);
        }

Android Back Issue

For the android back button, I'm unable to reproduce but it might have something to do with Navigation.dismissModal.

Hi @Maftalion, thanks for sharing the detailed solution. We would love for you to take on this issue via UpWork if that works for you?

@Julesssss thanks, just submitted a proposal!
Also just want to make sure, but you're fine with the useIsFocused hook being used, correct? I think the style guide says to avoid hooks but I don't see an alternative for this.

That's a great point @mallenexpensify. I'm not sure about this so please hold while I confirm this internally. I'll get back to you ASAP.

Okay, we’re not quite ready to start using Hooks as this requires a bit more internal discussion and we’d prefer to spend a bit more time exploring alternatives (or reverse engineering Hooks) for now.
But we'd love to hear any other thoughts you had regarding the issue.

I am posting a proposal now as I thought it was assigned to the @Maftalion.
Proposal

So as per the comment https://github.com/Expensify/Expensify.cash/issues/1855#issuecomment-803040341, we can't use hooks so I have another solution.
Surely, it's the focusing issue as mentioned in the proposed solution above.

  // When any modal goes from visible to hidden, bring focus to the compose field
        if (prevProps.modal.isVisible && !this.props.modal.isVisible) {
            this.setIsFocused(true);
        }
 ```.
 This is code is forcing the focus on the input.

 3. We can use the `NavigationContext`. Like this

ReportActionCompose.contextType = NavigationContext;
which allows us to listen for the focus event on the navigation instance.

then we can attach listners like this.

componentDidMount() {
this.unsubscribeFocus = this.context.addListener('focus', () => this.setState({
isScreenFocused: true,
}));
this.unsubscribeBlur = this.context.addListener('blur', () => this.setState({
isScreenFocused: false,
}));
}
// eslint-disable-next-line react/sort-comp
componentWillUnmount() {
    this.unsubscribeFocus();
    this.unsubscribeBlur();
}

4. Now we update the ComponentDidUpdate like this.

componentDidUpdate(prevProps) {
const valueToReturn = this.context.isFocused();
    if (this.state.isScreenFocused !== valueToReturn) {
        // If the value has changed since the last render, we need to update it.
        // This could happen if we missed an update from the event listeners during re-render.
            // eslint-disable-next-line react/no-did-update-set-state
        this.setState({
            isScreenFocused: valueToReturn,
        });
    }

    // The first time the component loads the props is empty and the next time it may contain value.
    // If it does let's update this.comment so that it matches the defaultValue that we show in textInput.
    if (this.props.comment && prevProps.comment === '' && prevProps.comment !== this.props.comment) {
        this.comment = this.props.comment;
    }

    // When any modal goes from visible to hidden, bring focus to the compose field
    if (this.props.isScreenFocused && prevProps.modal.isVisible && !this.props.modal.isVisible) {
        this.setIsFocused(true);
    }
}

which will fix this issue.

@Julesssss I'm fine with deferring this task to @parasharrajat since he took the time to figure out how to do it without using the hook. My only suggestion would be to set it up as a HOC so this can used on other screens as well without needing all the boilerplate.
I also found another way to fix this as well, if we just use this.props.isSmallScreenWidth && !Navigation.isDrawerOpen() instead of isScreenFocused then we can achieve the same result.

this.props.isSmallScreenWidth && !Navigation.isDrawerOpen()

Interesting Hack @Maftalion . Will try this one as well. Thanks for sharing.

Hi @parasharrajat and @Maftalion - thanks for both sharing potential solutions. So that I'm 100% clear on things, was it decided that Rajat was going to take this on instead?
If so, please let me know and I'll look into changing this in Upwork. @parasharrajat if you are taking this on, do you mind submitting a proposal in Upwork as well?
cc @Julesssss re: the discussion on not using hooks

@jliexpensify yeah, that's right.
Thanks to both of you for figuring this issue out.

Awesome, as discussed - I've hired @parasharrajat via Upworks. Thanks for all your help @Maftalion !

Hey guys the selected approach is good and will greatly reduce side effects caused by ReportActionCompose.componendDidUpdate
I just want to mention something that you might consider for the future:
My observations:
The componendDidUpdate in ReportActionCompose is a means to reset the view because it doesn't unmount when focus moves away:

it checks whether a new comment is loaded from props and resets the comment
it checks whether we've opened a new report and focuses the input

btw this means if we open the drawer and select the same chat (report) focus would not go to the field

it reacts to modal closes and brings focus to the input

this issue fixes an unwanted side effect for this point

With the new functionality brought in this ticket - a HOC providing focus awareness we can do the following. Instead of anticipating and reacting inside componendDidUpdate we can:

remove this lifecycle method partially or all together

there's still some stuff that we need to wait from Onix
it would reduce complexity in componendDidUpdate (or remove it altogether) if we have a parent loader component responsible for getting/waiting data from Onyx, rendering a loading state in the meantime, and mounting ReportActionCompose with the appropriate data after we have everything (which will be instant for already persisted data), compared to anticipating changes in componentDidUpdate

use focus awareness to conditionally mount the component
re-mounting would guarantee a fresh state every time we move to a specific chat
when we move away the view and it's child views will unmount fixing other bugs as this one: "When you are inside a chat and press the back button in the header the keyboard stays visible". This is because a text field is still focused it's just not in the visible area of the screen like so:

Pseudo Implementation (in ReportScreen)
<ScreenWrapper>
  <HeaderView />
  {
     isFocused
       ? <ReportView reportID={activeReportID} />
       :  <PlaceholderView reportID={activeReportID} />
  }
</ScreenWrapper>

The purpose of the PlaceholderView is to preserve smooth screen transitions - it might not be needed at all depending on when isFocused swaps states. It can be a stateless clone of the last ReportView rendered
There's one benefit I see in the ReportView staying mounted, but it still has 2 edges:

When you return to the same chat, content is already rendered - the experience is smooth
When you open another chat though, you can briefly see the previous chat's content, it has to first clean up and shortly after render the new chat

I think the fast response when you open the same chat will be preserved even if you start from unmounted state

you already have the data cached locally with ONYX
from observations as you swap between two chats that have data cached locally - It happens fast even though it's triggering re-render for most of the components (children) involved

There might be something already baked in react-navigation regarding such cases - A view outside the visible area causing side effects, or they might have a suggestion in their docs
Most of this is from the top of my head. I haven't studied this project entirely so I might come up with something better (Do chime in if you're interested), but usually side effects causing logic tend to cause issues like these and patching it with more conditional statements works only to a certain extent.

@kidroca Thanks for bringing in this and suggesting an approach. I am well aware of the issue you mentioned. That's the only reason to Introduce the HOC approach. With this, we can manage the focus more accurately. I have some thoughts on fixing the mentioned issue with much simplicity.

Thanks for that suggestion @kidroca.
Would you like to create an Expensify.cash issue to continue this discussion? We might need to discuss a bit further with other colleagues, but I think that could be a great further improvement and I would be happy to get an UpWork issue set up for that investigation/implementation.

Yes, I'd like that. Definitely needs more discussion and I don't want to spam the current ticket. I'll open a ticket when I'm done with my current work while waiting for review.

The only caveat to this approach is that I think @marcaaron started setting up the Right Docked Modals as screens, so on web/desktop it would render the PlaceholderView when those modals open on top of the report. But the isFocused functionality would definitely be useful to be set up as a HoC in general

I think it would be sufficient to just unmount the input field TextInputFocusable as a proof of concept:
ReportActionCompose.render
{
  chatHasFocus
    ? <TextInputFocusable />
    : <FakeInput>Write something...</FakeInput>
}

When there's no text input mounted it won't be able to accidentally steal focus

I left a similar comment on @parasharrajat's PR, but wondering if the another solution here is to be more selective about when we are focusing this input instead of assuming we always want to do it when "any modal closes and the screen is focused".
I like the HOC idea and there is a good chance knowing whether a screen is focused will be useful in the future, but perhaps not yet. If we know the specific situations where we want to focus the input and can find a way to focus explicitly perhaps we won't need to know if "modal is visible" or "screen has focus". But maybe this is easier said than done.

@marcaaron true, if the experience should be to focus only when the report changes (and not re-focus when a modal closes) then the conditional can probably just be simplified to (prevProps.reportID !== this.props.reportID) and the issue would be solved as well.

@Maftalion this is exactly what I did here:
https://github.com/Expensify/Expensify.cash/pull/2114/commits/c5b6bd2b37d50501ca3f124c8dbb30fe3a857ceb#diff-7fa482b2895f4e36a2a3ad8233496489c6de1256a8c992524e2fc072aaba43f8R75
ReportActionCompose.componentDidUpdate
// When the report ID changes bring focus to the compose field
if (prevProps.reportID !== this.props.reportID) {
    this.setIsFocused(true);
}

And this is the result:
https://user-images.githubusercontent.com/12156624/112685953-ef31b300-8e7d-11eb-8f9b-38d7c7d5cfc7.mp4

@parasharrajat We are currently discussing whether to just get rid of auto focusing the input altogether on native platforms. This should fix this issue and a couple of others if we decide this is the best way forward.

@marcaaron Yup sure. There is a couple of ongoing PR and opinions(including yours) that would change the objective. Thus I am waiting as per my update here. Thanks for the update info.

Here's what I am thinking a complete fix for this should be:

Disable the "modal visibility aware" autofocus logic for the chat comment input when:

we are using a native platform
we are using mobile web (defined as anything that has a touch screen or software keyboard)

Modify this logic here so that it will only focus the input on desktop/web + when the report isFocused (if necessary)
https://github.com/Expensify/Expensify.cash/blob/e9e726aa2a2f24ae98e88d9aa166acf4e8036ecb/src/pages/home/report/ReportActionCompose.js#L75-L78

Undo this change here https://github.com/Expensify/Expensify.cash/blob/e9e726aa2a2f24ae98e88d9aa166acf4e8036ecb/src/pages/home/report/ReportActionCompose.js#L261-L262

We should only want to "autoFocus" on web/desktop (see rules of step 1). So, we require a custom implementation for this anyway instead of just passing autoFocus directly to the TextInput

Finally we should make sure that the keyboard is always dismissed when navigating from a chat to the sidebar/drawer content. @kidroca I think you've mentioned that 4 will no longer be necessary once we do the changes here


How to implement hook with Meteor <IP_ADDRESS>

Hello,
I am trying to add a hook to autoform, but I don't know what I need to import to get this running. I tried so far:
`
import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
import { AutoForm } from 'aldeed/autoForm';
AutoForm.addHooks('team_edit',{
onSuccess: function(){
console.log("Hook hitted")
Modal.hide('team_edit');
}
});`
But this doesn't work due to missing a module:
`Unable to resolve some modules:
"aldeed/autoForm" in
/Users/___/Documents/Projekte/p/agile-toolbox/imports/ui/components/teams/team.js
(web.browser)
If you notice problems related to these missing modules, consider running:
meteor npm install --save laded`
I've tried to google this but with no results. perhaps you can help me?
Thanks
Thorsten

After refining my search I found the solution:
import { AutoForm } from 'meteor/aldeed:autoform';

I'm curious: how does a third-party package get to be published so that its import namespace is under "meteor/"? It took me a while to figure out that import { AutoForm } from 'aldeed:autoform' wasn't going to work because the package was actually under meteor.

@lonniev Atmosphere packages need the meteor/ prefix in the import statement, else meteor will try to resolve an NPM package instead.


LibWeb: HTTP fetch request from inside a Worker hangs

Currently any fetch request to a http or https address happening inside a Worker will hang indefinitely.
This can be reproduced by following these steps:

Put the following files into a folder:

worker-fetch-test.html:
<!DOCTYPE html>
<script>
    const worker = new Worker("worker-fetch-test.js");
    worker.onmessage = (evt) => {
        console.log(`Fetch request completed. Content: ${evt.data}`);
    };
</script>

worker-fetch-test.js:
fetch("./test.file")
    .then(response => response.text())
    .then(text => self.postMessage(text));

test.file:
Fetch works correctly!

cd into the folder containing the above files
Start a HTTP server with python3 -m http.server 8080
Visit http://localhost:8080/worker-fetch-test.html in Ladybird
The message "Fetch request completed. Content: Fetch works correctly!" should be printed to the console, but currently nothing happens.
NOTE: This behavior seems to occur intermittently. You may need to refresh the page to get it to hang.

The hang occurs because EAGAIN is returned when the response data is read.
I previously attempted to fix this issue in d0f88d49585f147164c676e2615767cba98d5fa but the change ended up having to be reverted.

This doesn't appear to hang anymore (at least I cannot reproduce it). However, the request does not succeed due to a CORS failure
Unhandled JavaScript exception (in promise): [TypeError] Request with 'cors' response tainting failed CORS check

This issue still occurs for me with the changes from #408 applied. I've updated the description to make it clear that the issue occurs intermittently.


Create alert to notify Operations Engineering when a repository becomes unowned

As a Operations Engineering Team
I want an automated process that will flag repositories that meet our unowned repository criteria (see #3260)
so that (some result) we can contact Service Managers/Development Leads to identify new owners/archive unsupported repos.
Functional Requirements:

Notification in #operations-engineering-alerts
Notification contains repository names

Non-Functional Requirements:

Alert wording makes sense and is easy to understand

Acceptance Criteria:

We receive an alert in Slack when a repository is identified that meet our unowned repo criteria.

Notes:

Add function to raise a slack message from the script, update unit tests for the Script and add new unit test in Slack unit tests. See commit.


[Event Change Request] - PurchPost.Codeunit.al - OnAfterCheckTrackingAndWarehouseForShip

We like to request the following event change:
Object: PurchPost.Codeunit.al
ToDo: add TempPurchLine
Where is the event placed:
if Ship then begin
CheckTrackingSpecification(PurchHeader, TempPurchLine);
if not (WhseShip or WhseReceive or InvtPickPutaway) then
CheckWarehouse(TempPurchLine);
end;
OnAfterCheckTrackingAndWarehouseForShip(PurchHeader, Ship, SuppressCommit, TempPurchLine);
exit(Ship);
end;
end;
Event Code:
[IntegrationEvent(false, false)]
local procedure OnAfterCheckTrackingAndWarehouseForShip(var PurchaseHeader: Record "Purchase Header"; var Ship: Boolean; CommitIsSupressed: Boolean; var TempPurchaseLine: Record "Purchase Line" temporary)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Add “CREATE STREAMLIT” privilege in grant_privileges_to_role resource

Terraform CLI and Provider Versions
Terraform CLI: 1.0.9
Snowflake-Labs/snowflake Version: 0.47.0 -> 0.80.0
Use Cases or Problem Statement
In the “new” grant resource, it is currently not possible to use the “CREATE STREAMLIT” privilege.
This kind of prevents us in having a clean privilege assignment.
Proposal
Include the privilege within the resource:
https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/main/pkg/resources/grant_privileges_to_role.go
It has already been included into the “old” resource schema_grant
https://github.com/Snowflake-Labs/terraform-provider-snowflake/commit/7b112cc94822807d3c25c78ec812ec2c2c66ea16
How much impact is this issue causing?
Medium
Additional Information
No response

@LukLight
Hey 👋
In https://github.com/Snowflake-Labs/terraform-provider-snowflake/pull/2303 we added support for create streamlit privilege, so in the next release version (0.83.0) snowflake_grant_privileges_to_role should be working correctly.

Thank you very much for the fast response (& fix)!


feat(ListBoxMenuIcon): support translatable SVG icon title

Closes IBM/carbon-components-react#1801
This PR will add support for translatable SVG titles in <ListBox />
Changelog
New

listBoxMenuIconTranslationIds prop, which takes an object with close.menu and open.menu properties

Changed

return SVG <title> if description prop is truthy for experimental ListBoxMenuIcon

@emyarod Not sure why CircleCI is stall, but I believe the snapshot needs update. Could you do that...? Thanks!

Merged as the CircleCI job itself seems to have passed - @joshblack Great if you have any insights on GH integration. Thanks!


windows 10-64bit

nats: no servers available for connection   nats://<IP_ADDRESS>:4222
[ERR] consul.watch: Watch (type: services) errored: Get http://<IP_ADDRESS>:8500/v1/catalog/services: dial tcp <IP_ADDRESS>:8500: connectex: No connection could be made because the target machine actively refused it., retry in 5s

这写的很清楚吧


filters support 'NOT' 'AND' 'OR'

Description

Types of Changes

[ ] Core
[ ] Bugfix
[x] New feature
[ ] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR

Close #303

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Codecov Report
Patch coverage: 73.33% and project coverage change: -0.20 :warning:

Comparison is base (5e146ad) 87.60% compared to head (6e2b109) 87.41%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #313      +/-   ##
==========================================
- Coverage   87.60%   87.41%   -0.20%
==========================================
  Files          33       33
  Lines        2905     2939      +34
==========================================
+ Hits         2545     2569      +24
- Misses        360      370      +10

Impacted Files
Coverage Δ

strawberry_django/filters.py
91.47% <71.42%> (-5.06%)
:arrow_down:

strawberry_django/type.py
93.36% <100.00%> (+0.06%)
:arrow_up:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

When writing multiple conditionals, how can I differentiate between (X AND Y) OR Z vs X AND (Y OR Z)?

@star2000 @bellini666 When using multiple conditionals, how can I differentiate between (X AND Y) OR Z vs X AND (Y OR Z)? And what is the default ordering that is followed if I do not specify the ordering using parentheses?

It will work just like a Q() object would work.
For (X AND Y) OR Z you can write:
filters({
  X: "foo",
  Y: "bar",
  OR: {
    Z: "bin"
  }
})

For X AND (Y OR Z)
filters({
  X: "foo",
  AND: {
    OR: {
      Y: "bar",
      Z: "bin
    }
  }
})

@star2000 @bellini666 When using multiple conditionals, how can I differentiate between (X AND Y) OR Z vs X AND (Y OR Z)? And what is the default ordering that is followed if I do not specify the ordering using parentheses?

It will work just like a Q() object would work.
For (X AND Y) OR Z you can write:
filters({
  X: "foo",
  Y: "bar",
  OR: {
    Z: "bin"
  }
})

For X AND (Y OR Z)
filters({
  X: "foo",
  AND: {
    OR: {
      Y: "bar",
      Z: "bin
    }
  }
})

For X AND (Y OR Z)
filters({
X: "foo",
AND: {
Y: "bar",
OR: {
Z: "bin
}
}
})

I didn't quite follow. Could you please provide example queries with the FruitsFilter from the tests?

Practice brings true knowledge, you will understand if you try it yourself

I didn't quite follow. Could you please provide example queries with the FruitsFilter from the tests?

I understood it, took a bit as I was new to GraphQL. Thanks


Implement claim linking to Discord

Description
The Claim It button should link to a direct link to the bounty post on Discord.
Files
components/pages/Bounties

This was in the last PR


Bounded graph size

Hi there, I was just wondering if it's possible to cap the size of the graph in one direction at all?
I've got a scenario where I've got a bunch of nodes that have no edges and they just get positioned in this really long horizontal line. I would prefer to use up some vertical space too, so I was hoping it was possible to cap the width and have new nodes wrap to the left below other nodes/sub graphs?
Thanks

@chrisregnier , I have similar issues. Did you get around this?

Unfortunately, no. I haven't really put any time into looking how to update the code either though. But you're quickest solution would be to loop over the nodes and calc the width/height yourself. If you go over a boundary, then the remaining nodes get put into a new row/column/etc.
In general, since dagre is supposed to be the one doing layouts, I'd much rather see that integrated. Or even better, a more general solution for dagre that would have hooks for others to implement so they can manage the general layout algs, but let dagre handle the more advanced/graph related layout algs. This would need some good upfront design though to figure out a model general enough to support (and automagically handle) a lot of the graph related code along with providing interesting and useful hooks. I'd definitely consider this my biggest feature request, but I know it's not really a small task.


Added test cases for quoted strings.

These are some missing tests for incubator-openwhisk - PR 2462.  Not all strings are reachable...some are in debug messages and there is no facility for enabling debugging in the cli in tests right now.
Also some of these are not reachable as there is no way for me to force a break of the code as the messages are embedded in an automated sdk install portion of the code.
I added as many tests as I could based on what was reachable via the testing framework.

@drcariel would you like to review this guy and see what you think?

@jessealva please take a look at the issue: https://github.com/apache/incubator-openwhisk-cli/issues/221 Travis build is not happy at this moment, due to async with openwhisk.