winleafs / Winleafs

Winleafs: Windows application for Nanoleaf lights
GNU General Public License v3.0
84 stars 9 forks source link

Some Games freeze Screen Mirror Feature #206

Open morgindale opened 2 years ago

morgindale commented 2 years ago

Hey Guys,

first of all, you don't know how thankful i am, that i found your alternative Software to replace that crap original Nanoleaf App. :-)

About my problem and first of all, i don't use any predefined Effects or Scenes, all i want is Screen Mirroring and the last couple of days i used the Screen Mirror feature without any problem at all. I used the PC for normal Web-Stuff, Office and one Game "God of War" (i only play one game at a time). In God of War everything worked fine, even in a several-hour-session. Yesterday i finished the main story and today i wanted to start a new game, so i started "Tales of Arise". First, everything worked fine, Screen Mirror was updating the panels just fine while looking around, but after a couple of minutes the panels got "stuck", so still lit up in different colors, but no more update. Switching to the Winleafs App everything looked normal, but a click on "reload effect" just showed a message that it's not able to reload the effect. Then i closed Winleafs, waited a bit, startet it again and the panels went off. Another Winleafs restart activated the Panels again, including Screen Mirror Update. Then starting the game again, same thing after a couple of minutes... I tried fullscreen, borderless and windowed mode - seems like only windowed mode is working without a problem. Btw, i'm using a mix of small and big triangles of the Shapes Line. They're brandnew and newest Firmware (6.something)

Any idea how to fix this?

To Reproduce Just as i said above, start Tales of Arise in fullscreen or borderless mode and the panels will freeze after a couple of minutes

Logs Following log is from the state on it still works till it gets stuck 2022-03-06 10:59:22.3227|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/layout, Method: GET, Body: 2022-03-06 10:59:22.3739|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/globalOrientation, Method: GET, Body: 2022-03-06 10:59:22.4215|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60 2022-03-06 10:59:22.4215|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60 2022-03-06 10:59:22.4215|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 0 } } 2022-03-06 10:59:22.5026|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }

StijnOostdam commented 2 years ago

Hey, thanks for the message. So first of all, if it could not reload the effects, there must be a log of that somewhere. Try searching for "exception" in your log files and see if any of those state that the effects could not be loaded. Please share that here.

I would start with resetting Winleafs, since I find it odd that it could not load the effects. You can do this by deleting the settings.txt file in the folder above the log folder. Furthermore, your logs show a brightness of 0, what if you increase the brightness?

I know that we have had some problems with full screen apps in the past, I will ask my friend if he knows more.

morgindale commented 2 years ago

Wow that answer was fast, thank you very much :-)

Ok, so, i wanted to replicate the problem again and the funny thing is, i don't know why, but now it even gets stuck on the desktop for example while watching Youtube Videos?? Here's what i did. Restartet Winleafs two times, so Screen Mirror would work again. Then i closed it and deleted the Log. Then started it up again and it's still working fine. after a couple of minutes, Panels get stuck again (only on desktop). Then a click on "Reload effects" i get the same error that they cannot be reloaded. A quick look into the Schedule i only can select one effect which is "Turn off", all others are missing. Then i closed the App and deleted the Settings file. Started it up, Paired them again (which worked fine), setup everything again (including setting brightness to 50 (what does that btw? i see no change between 0 and 100...)) and till now it's working without a problem. Here's the complete log, i hope you'll find something, i don't want to reset the app everyday, that's why i was moving from the original app :D

Thanks in advance!

2022-03-06 12:14:29.1971|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state/on, Method: GET, Body: 
2022-03-06 12:14:31.2024|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:14:31.2024|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { on = { value = False } }
2022-03-06 12:14:33.2057|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:14:40.4062|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:14:40.4506|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:14:40.4926|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:14:40.4926|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:14:40.4955|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 0 } }
2022-03-06 12:14:40.5632|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }
2022-03-06 12:16:55.5644|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects/effectsList, Method: GET, Body: 
2022-03-06 12:16:57.5685|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:00.8021|ERROR|Winleafs.Wpf.Views.MainWindows.MainWindow|Failed to reload effects list
System.NullReferenceException: Object reference not set to an instance of an object.
   at Winleafs.Models.Models.Device.LoadEffectsFromNameList(IEnumerable`1 effectNames) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Models\Models\Device.cs:line 56
   at Winleafs.Wpf.Views.MainWindows.MainWindow.Reload_Click(Object sender, RoutedEventArgs e) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Views\MainWindows\MainWindow.xaml.cs:line 297
2022-03-06 12:17:10.3592|INFO|Winleafs.Server.Endpoints.WinleafsServerEndpoint|Sending following request Winleafs Server: Address: https://api.winleafs.com/, URL: /spotify/is-connected/be63304b-f30d-442e-b9fa-1453abe8c761, Method: GET, Body: 
2022-03-06 12:17:20.7256|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:17:20.7351|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:17:22.7469|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:22.7469|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:17:24.7512|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:24.7512|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:17:24.7512|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:17:24.7512|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 0 } }
2022-03-06 12:17:25.9205|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects/effectsList, Method: GET, Body: 
2022-03-06 12:17:26.7499|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:26.7499|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { select = Winleafs - Screen mirror }
2022-03-06 12:17:27.9252|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:28.7670|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:28.7670|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Winleafs - Screen mirror } }
2022-03-06 12:17:30.7817|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:17:30.7817|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Winleafs - Screen mirror } }
2022-03-06 12:17:31.9410|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 404 NotFound, status description: Not Found, content: 
2022-03-06 12:17:31.9410|ERROR|Winleafs.Wpf.Views.MainWindows.MainWindow|Failed to reload effects list
System.NullReferenceException: Object reference not set to an instance of an object.
   at Winleafs.Models.Models.Device.LoadEffectsFromNameList(IEnumerable`1 effectNames) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Models\Models\Device.cs:line 56
   at Winleafs.Wpf.Views.MainWindows.MainWindow.Reload_Click(Object sender, RoutedEventArgs e) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Views\MainWindows\MainWindow.xaml.cs:line 297
2022-03-06 12:17:39.4267|INFO|Winleafs.Wpf.Views.MainWindows.DeviceUserControl|User manually enabling effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:17:39.4267|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:17:39.4267|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 50 } }
2022-03-06 12:17:39.4816|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { select = Winleafs - Screen mirror }
2022-03-06 12:17:39.5154|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 400 BadRequest, status description: Bad Request, content: 
2022-03-06 12:17:39.5154|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Winleafs - Screen mirror } }
2022-03-06 12:17:39.5279|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 404 NotFound, status description: Not Found, content: 
2022-03-06 12:17:39.5279|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Winleafs - Screen mirror } }
2022-03-06 12:17:39.5279|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 404 NotFound, status description: Not Found, content: 
2022-03-06 12:18:16.5950|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state/on, Method: GET, Body: 
2022-03-06 12:18:16.6040|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { on = { value = False } }
2022-03-06 12:18:31.0419|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:18:31.0813|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:18:31.1226|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:18:31.1226|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 0 for device 192.168.5.60
2022-03-06 12:18:31.1226|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 0 } }
2022-03-06 12:18:31.1847|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }
2022-03-06 12:18:34.2938|INFO|Winleafs.Server.Endpoints.WinleafsServerEndpoint|Sending following request Winleafs Server: Address: https://api.winleafs.com/, URL: /spotify/is-connected/be63304b-f30d-442e-b9fa-1453abe8c761, Method: GET, Body: 
2022-03-06 12:18:44.2408|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects/effectsList, Method: GET, Body: 
2022-03-06 12:18:44.2521|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Aurora magic } }
2022-03-06 12:18:44.2684|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Beatdrop } }
2022-03-06 12:18:44.2684|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Blaze } }
2022-03-06 12:18:44.2829|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Blinding Lights } }
2022-03-06 12:18:44.2829|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Cocoa Beach } }
2022-03-06 12:18:44.2980|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Cotton Candy } }
2022-03-06 12:18:44.2980|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Date Night } }
2022-03-06 12:18:44.3142|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Hip Hop } }
2022-03-06 12:18:44.3236|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Hot Sauce } }
2022-03-06 12:18:44.3236|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Jungle } }
2022-03-06 12:18:44.3236|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Lightscape } }
2022-03-06 12:18:44.3491|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = moonlight } }
2022-03-06 12:18:44.3555|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Morning Sky } }
2022-03-06 12:18:44.3555|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Netflix And Chill } }
2022-03-06 12:18:44.3555|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Northern Lights } }
2022-03-06 12:18:44.3759|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Ocean } }
2022-03-06 12:18:44.3759|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Pop Rocks } }
2022-03-06 12:18:44.3925|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Prism } }
2022-03-06 12:18:44.3925|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = ScreenMirror } }
2022-03-06 12:18:44.4091|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Starlight } }
2022-03-06 12:18:44.4091|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Sundown } }
2022-03-06 12:18:44.4249|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Try this before you skip it } }
2022-03-06 12:18:44.4331|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Vibrant Sunrise } }
2022-03-06 12:18:44.4331|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = request, animName = Waterfall } }
2022-03-06 12:19:05.6222|INFO|Winleafs.Wpf.Views.MainWindows.DeviceUserControl|User manually enabling effect Winleafs - Screen mirror with brightness 100 for device 192.168.5.60
2022-03-06 12:19:05.6222|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 100 for device 192.168.5.60
2022-03-06 12:19:05.6222|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { brightness = { value = 100 } }
2022-03-06 12:19:05.6667|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }
2022-03-06 12:19:36.8065|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/effects/effectsList, Method: GET, Body: 
2022-03-06 12:19:38.8092|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:19:40.1160|ERROR|Winleafs.Wpf.Views.MainWindows.MainWindow|Failed to reload effects list
System.NullReferenceException: Object reference not set to an instance of an object.
   at Winleafs.Models.Models.Device.LoadEffectsFromNameList(IEnumerable`1 effectNames) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Models\Models\Device.cs:line 56
   at Winleafs.Wpf.Views.MainWindows.MainWindow.Reload_Click(Object sender, RoutedEventArgs e) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Views\MainWindows\MainWindow.xaml.cs:line 297
2022-03-06 12:19:54.4782|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state/on, Method: GET, Body: 
2022-03-06 12:19:56.4800|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:19:56.4800|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/yraZMP2fYCcaooQkRjodGeq0L4GrETJh/state, Method: PUT, Body: { on = { value = False } }
2022-03-06 12:19:58.4832|WARN|Winleafs.Api.Endpoints.NanoleafEndpoint|Nanoleaf request failed, statuscode: 0 0, status description: , content: 
2022-03-06 12:20:08.2886|INFO|Winleafs.Wpf.Views.Setup.SetupWindow|Discovered following device: Shapes-C5DD, IPs: 192.168.5.60,2003:e7:d735:d200:828a:f7ff:fe00:c5dd%14,fe80::828a:f7ff:fe00:c5dd%14, Port: 16021
2022-03-06 12:20:11.2317|INFO|Winleafs.Wpf.Views.Setup.SetupWindow|Selected following device: 192.168.5.60:16021
2022-03-06 12:20:34.8525|INFO|Winleafs.Wpf.Views.Setup.SetupWindow|Discovered following device: Shapes-C5DD, IPs: 192.168.5.60,2003:e7:d735:d200:828a:f7ff:fe00:c5dd%14,fe80::828a:f7ff:fe00:c5dd%14, Port: 16021
2022-03-06 12:20:37.6016|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/identify, Method: PUT, Body: 
2022-03-06 12:20:37.6383|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects/effectsList, Method: GET, Body: 
2022-03-06 12:20:46.3423|INFO|Winleafs.Wpf.Views.Setup.SetupWindow|Successfully added device ShapesBuero
2022-03-06 12:20:46.3821|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:20:46.3953|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:20:46.4329|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler turning device 192.168.5.60 off
2022-03-06 12:20:46.4329|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state/on, Method: GET, Body: 
2022-03-06 12:20:46.4329|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state, Method: PUT, Body: { on = { value = False } }
2022-03-06 12:20:46.5137|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Aurora magic } }
2022-03-06 12:20:46.5137|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Beatdrop } }
2022-03-06 12:20:46.5337|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Blaze } }
2022-03-06 12:20:46.5419|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Blinding Lights } }
2022-03-06 12:20:46.5419|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Cocoa Beach } }
2022-03-06 12:20:46.5419|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Cotton Candy } }
2022-03-06 12:20:46.5609|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Date Night } }
2022-03-06 12:20:46.5609|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Hip Hop } }
2022-03-06 12:20:46.5753|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Hot Sauce } }
2022-03-06 12:20:46.5753|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Jungle } }
2022-03-06 12:20:46.5753|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Lightscape } }
2022-03-06 12:20:46.5942|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = moonlight } }
2022-03-06 12:20:46.5942|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Morning Sky } }
2022-03-06 12:20:46.6086|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Netflix And Chill } }
2022-03-06 12:20:46.6086|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Northern Lights } }
2022-03-06 12:20:46.6209|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Ocean } }
2022-03-06 12:20:46.6209|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Pop Rocks } }
2022-03-06 12:20:46.6360|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Prism } }
2022-03-06 12:20:46.6360|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = ScreenMirror } }
2022-03-06 12:20:46.6360|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Starlight } }
2022-03-06 12:20:46.6570|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Sundown } }
2022-03-06 12:20:46.6570|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Try this before you skip it } }
2022-03-06 12:20:46.6723|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Vibrant Sunrise } }
2022-03-06 12:20:46.6723|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = request, animName = Waterfall } }
2022-03-06 12:20:49.8751|INFO|Winleafs.Server.Endpoints.WinleafsServerEndpoint|Sending following request Winleafs Server: Address: https://api.winleafs.com/, URL: /spotify/is-connected/4369a59c-d598-4459-86b2-8cb624fde502, Method: GET, Body: 
2022-03-06 12:21:11.1965|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler turning device 192.168.5.60 off
2022-03-06 12:21:11.2196|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:21:11.2196|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state/on, Method: GET, Body: 
2022-03-06 12:21:11.2196|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:21:11.2373|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler turning device 192.168.5.60 off
2022-03-06 12:21:11.2373|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state/on, Method: GET, Body: 
2022-03-06 12:21:13.2597|INFO|Winleafs.Server.Endpoints.WinleafsServerEndpoint|Sending following request Winleafs Server: Address: https://api.winleafs.com/, URL: /spotify/is-connected/4369a59c-d598-4459-86b2-8cb624fde502, Method: GET, Body: 
2022-03-06 12:21:45.2197|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:21:45.2197|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:21:45.2197|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:21:45.2349|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:21:45.2349|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:21:45.2349|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state, Method: PUT, Body: { brightness = { value = 50 } }
2022-03-06 12:21:45.2831|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }
2022-03-06 12:21:46.3902|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:21:46.3902|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:21:46.3902|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state, Method: PUT, Body: { brightness = { value = 50 } }
2022-03-06 12:22:04.2061|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state/on, Method: GET, Body: 
2022-03-06 12:22:04.2147|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state, Method: PUT, Body: { on = { value = False } }
2022-03-06 12:22:08.4204|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/layout, Method: GET, Body: 
2022-03-06 12:22:08.4544|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/panelLayout/globalOrientation, Method: GET, Body: 
2022-03-06 12:22:08.4943|INFO|Winleafs.Wpf.Api.ScheduleTimer|Scheduler activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:22:08.4958|INFO|Winleafs.Wpf.Api.Orchestrator|Orchestrator is activating effect Winleafs - Screen mirror with brightness 50 for device 192.168.5.60
2022-03-06 12:22:08.4958|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/state, Method: PUT, Body: { brightness = { value = 50 } }
2022-03-06 12:22:08.5584|INFO|Winleafs.Api.Endpoints.NanoleafEndpoint|Sending following request to Nanoleaf: Address: http://192.168.5.60:16021/, URL: api/v1/bXKb2BbfEJmtF0efjzMjJayJVPkTsmIS/effects, Method: PUT, Body: { write = { command = display, animType = extControl, extControlVersion = v2 } }
2022-03-06 12:22:09.2731|ERROR|Winleafs.Wpf.Api.Orchestrator|Enabling effect failed for device ShapesBuero with trigger effect Winleafs - Screen mirror
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Collections.Generic.List`1.Enumerator.MoveNext()
   at Winleafs.Wpf.Api.Orchestrator.TriggerEffectChangedCallbacks() in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Api\Orchestrator.cs:line 236
   at Winleafs.Wpf.Api.Orchestrator.ActivateEffect(String effectName, Int32 brightness) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Api\Orchestrator.cs:line 126
StijnOostdam commented 2 years ago

Well brightness changes how bright your lights are, should work, maybe try it with a normal effect first to see the difference. Could you maybe share your settings file?

morgindale commented 2 years ago

Sure thing! And one more thing: happened again, Desktop only - i had lunch for about half an hour, before everything worked fine, now they're stuck again... no screensaver or anything... :-/

I cannot imagine what changed in comparison to the last couple of days?

About the brightness: Ah ok, so it's for the effects, that's why it does not apply to screen mirror, because there the brightness is part of the scene (white screen is 100% white panels and dark grey screen is like 20% white panels)

log.log Settings.txt

morgindale commented 2 years ago

Additional Info: Restarted the PC, Screen Mirror worked fine for a around 1-2 hours in Cyberpunk, now it's stuck again. I'll restart again and see how it behaves...

StijnOostdam commented 2 years ago

What if you try to turn down the number of refreshes per second in the screen mirror settings?

morgindale commented 2 years ago

Already tried that - didn't change anything sadly... Current state: right after my last post (16:37) and a restart, i'm playing Cyberpunk and so far it's working again. But as said earlier, this doesnt have to mean anything, because last time it was fine for around 2 hours till it froze...

StijnOostdam commented 2 years ago

Your settings look good, nothing out of the ordinary. You posted this error:

2022-03-06 12:22:09.2731|ERROR|Winleafs.Wpf.Api.Orchestrator|Enabling effect failed for device ShapesBuero with trigger effect Winleafs - Screen mirror
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Collections.Generic.List`1.Enumerator.MoveNext()
   at Winleafs.Wpf.Api.Orchestrator.TriggerEffectChangedCallbacks() in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Api\Orchestrator.cs:line 236
   at Winleafs.Wpf.Api.Orchestrator.ActivateEffect(String effectName, Int32 brightness) in C:\Users\easy_\source\repos\winleafs\Winleafs\Winleafs.Wpf\Api\Orchestrator.cs:line 126

Is this one occuring every time screen mirror stops working? Because then it is something to look into. Otherwise we need to find something in the logs that happens everytime it stops working. Maybe you could try to pinpoint that?

In any case, I am suggesting lowering the refresh rate since I have had problems with that in the past, where my lights would crash from the amount of updates send to it

morgindale commented 2 years ago

The Log in the first post is a clean one from "still working" to "crashed/frozen" and as you can see, nothing in there sadly... So far, since 16:37 i'm still playing and till now it's working fine.

About the refresh rate, whats a good value you would say? What i don't want is a too big of a lag in updating the colors. Most of the time in most environments it's ok if it lags a bit, for example if you're underwater it's morge blueish nevertheless and green in jungles. But games with fast changing light sources like in Cyberpunk / Night City, or thunderstorms is something i dont want to lag behind with an delay. I mean in worst case i think it still would be fine, but it would be cool if the delay stays at a minimum.

StijnOostdam commented 2 years ago

I have it at 5 myself, which is a good middleground I think. Any below that is noticable lag

The Log in the first post is a clean one from "still working" to "crashed/frozen" and as you can see, nothing in there sadly... So far, since 16:37 i'm still playing and till now it's working fine.

This is more reason for me to believe that it is something on the panels side, and not Winleafs. I too had those crashes at seemingly random times and no logs. To actually determine this, you could install a network watcher and see if Winleafs still sends messages to your panels if they crashed

morgindale commented 2 years ago

You mean a packet sniffer like Wireshark? Could do that, yes. My last time using Wireshark is a bit in the past, i have to see if i still be able to use it :D

And i'll lower the refresh rate to 5 then :-)

morgindale commented 2 years ago

Ok, i just went away for 30 minutes, same thing again... i'll look into Wireshark :D

morgindale commented 2 years ago

Ok... final verdict: It's the panels... at least i think. Wireshark still shows updates sent to the Panels, even if they're stuck. Closing Winleafs and these updates stop, so i can say for sure they're coming from Winleafs. So what's the problem here? Can't the panels keep up with the updates sent from Winleafs? I don't get it... Mirror Mode with the official App works fine, although you have to enable it every single start and you cannot mirror it, stretch it, it doesnt save position, and so on... And what i also don't get is, why did it work for around 20-30 hours in God of War without one problem? I also had the refresh rate at 10 and now at 5 and it even freezes on desktop only. I really don't get it...

StijnOostdam commented 2 years ago

It is very vague in my experience as well. There is some limit on the amount of requests the panels can handle, or maybe it happens when the panels take too long to transition from one color to the other and cannot keep up anymore. This is something that is not stated in the docs and therefore we cannot know it. I already made a big improvement in our code some time ago, so I cannot improve it until I know the hard limit. Perhaps you could ask it in the Nanoleaf developers forum?

morgindale commented 2 years ago

Well currently i did a fresh hard reset on them and a pc restart, currently they're working again.. i'll test further.

Problem with the Nanoleaf forums is, i already looked at a bunch of forum posts there and they NEVER get answered... other people have freezing problems too and they don't get an answer, even after two years or so... In reddit posts you can read sometimes something from nanoleaf team, but all they do is "get in contact" and from time to time you get a new controller or whatever, but since you can find YEARS old posts with freezing problems on Panels and they didn't fix it till now lets me believe, that they aren't really interested in fixing it... either they don't know whats the problem is or they know it (for example too weak processor or something), but it would cost too much to fix it... I still cannot get my head around these kind of issues... i have light panels on the wall with an <1qm2 area for around 300 Euros and i have to deal with sh** like that... its kind of sad :-/

StijnOostdam commented 2 years ago

Agree, although in this case it is not the hardware's fault, but more them not giving us all relevant documentation. Since their app works, they know what kind of limits their hardware has. But I am not able to program that if they do not provide that information.

morgindale commented 2 years ago

Yeah.. the only thing you could do is, to compare the packet size and the numbers of them sent to the panels in a specific time compared to the original app. If you don't send more data (either bigger packets, or faster) and it still crashes, it has to bet something else...

Another thing i saw happening: Yesterday my Internet Router dropped DSL-Sync two times - around the same time i had freezing problems, this didn't happen for months and i don't know if it's a real provider problem, or this could be caused by network traffic somehow? In the Sys-Log it even says that the Connection Drop may be caused by my Powerline i use (which i never had any problems for years now), so maybe this is a false-positive and it's caused by Winleafs? I mean this is very unlikely, but it is strange that this happens right now at the same time :D

morgindale commented 2 years ago

Just a quick update for others that read this issue: Since the Hard Reset and lowering the Refresh Rate to 5, the panels are running fine - i hope it stays that way fingers crossed :)

morgindale commented 2 years ago

Dammit and they're stuck again... i shouldn't have said anything :D

morgindale commented 2 years ago

Update: I dug a bit deeper (and sorry for that much posts...) and i think the problem is caused by Winleafs and not the panels. When the panels "freeze", they aren't really frozen... Winleafs is still sending packets, yes, but here's what i did:

So i don't think this has something to do with the panels itself hardware-wise, i think it's software based. I mean yes, it could be that what you said, that theres a treshold and you're overloading them, but even if i set the update frequency to 1 it happens, so i don't think it's an overload issue... Also what i can see in Wireshark, if the panels are frozen, i see a couple of ICMP Packets with Content "Destination unreachable" and that the port isn't answering.

StijnOostdam commented 2 years ago

Thanks for the comments, you being so thorough helps a lot. If it occurs even when the refresh rate is set to 1, it is indeed not an overloading issue. Perhaps we are sending invalid UDP requests. I hope I have some time this weekend to look into it. I can try to reproduce it on my own lights by sending invalid requests. Only difference is that I don't have the shapes, only aurora and canvas

morgindale commented 2 years ago

No problem, and i would be very thankful if this problem could be fixed :-)

About the shapes, i think the canvas ones should have the same controller - they also have the integrated rythm module, correct? At least the firmware is the same:

Shapes: 6.3.1 Canvas: 6.3.1 Light Panels: 5.1.0

After my last post i also tried controlling the panels through curl calls which worked fine while not in "stuck" mode. If they're stuck, both Postman (HTTP request) and curl calls stop working, curl says "connection refused". In that time, if i look into Wireshark i see that Winleafs still sends udp packets and once in a while gets a ICMP packet back with "destination unreachable, port unreachable". This goes on as long as Winleaf is running, no HTTP request, no curl, nothing. The moment i exit Winleafs, Postman and Curl Calls are working again. And if i start Winleafs again it's responding to it again too.

As i said, i also tested that with refresh time 1, still the same problem, so could it be a blacklist maybe? Like a fail2ban? So if a udp packet is faulty or throws an error from time to time at some point the panels block an ip? Just an idea... But what's against that theory is, in the time the panels are unreachable, even my smartphone app shows them as "unreachable", so maybe they block API calls in general if something isn't right.

There are a lot of variables sadly...

If you need help, just contact me, i'll try to help as good as i can. I'm a Developer myself, but a Web Dev, so i know a thing here and there, but programming directly isn't my thing :-)

morgindale commented 2 years ago

Found a new "thing": I'm using the schedule feature, so my panels have a specific effect from 8am to 5pm weekdays and after that screen mirror. The switching works fine and on time, but about a minute ago they froze again. But this time i tried something different: Without refreshing the effects, i selected "Turn Off" as manual effect and the panels went of, then "Stop Manual" and Screen Mirror is working again, all without stopping anything - this is really strange, isnt it??

Edit: And another "thing": Tested further... Panels getting stuck after a couple of minutes already, everytime after i "unstuck" them. Then i did a Hard Reset, waited a couple of minutes, and bam, frozen again. After a couple more tries, turning the panels off and on, softreset, restarting winleafs, it worked for a couple of minutes and then froze. Now, i unstuck them once more and before they got stuck again, i just simply restarted the PC - and till now it's working again without freezing. Is there something you're doing in the back, beside the app, like some sort of Windows Service or something like that? It's really strange that nothing helped, but restarting the PC did...

Edit 2: Aaaand it seems like they always freeze when i'm away from my PC - at least it happened everytime the last 10 times or so...