Closed coziestz closed 1 year ago
Hey @coziestz, could I ask you to download the latest beta version and try again. Hopefully this should resolve the problem, but if it persists, could you upload the logs located at: %appdata%\Elgato\StreamDeck\Plugins\com.geekyeggo.goveecontroller.sdPlugin\logs
Same issue here for me, even after installing the latest beta and installing on Windows 11 host. Logs attached GoveeController.log .
Could this be related to the new Rate limiting released on May 4? Do I just need to add a delay of XX ms between multiaction calls? https://govee-public.s3.amazonaws.com/developer-docs/GoveeAPIReference.pdf
@danielbmarshall thanks for uploading your logs file. The problem you're encountering definitely appears to be rate limit related, although the concerning part is:
2022-05-15 09:59:27.0017 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.0017 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.0364 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:27.1204 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.2495 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:27.3364 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.4665 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:27.5525 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.6836 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:27.8183 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:27.9012 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:27.9795 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:28.1329 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:28.2118 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:28.3345 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:28.4169 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:28.5356 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:28.6144 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: OK {"code":200,"message":"Success","data":{}}.
2022-05-15 09:59:28.7380 [DEBUG] GoveeController.Services.GoveeService: Reading devices from cache.
2022-05-15 09:59:28.7766 [DEBUG] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: TooManyRequests Rate limit exceeded, retry in 58 seconds..
2022-05-15 09:59:28.7766 [ERROR] GoveeController.Govee.GoveeHttpClient: Request: https://developer-api.govee.com/v1/devices/control, Response: TooManyRequests.
The intention of the cache is to prevent multiple calls to the API, which appears may not be the case. I'm not sure if this is a direct result of the changes to the Govee API so it will need further investigation.
The logs do indicate the API can't find any of your devices though; is this what you would expect?
The devices are expected to be there, and are powered on and are confirmed as receiving instructions via wireless from the mobile Android app. The scenario I'm trying to reproduce essentially is a "push button" enabling of a Scheme/Plan using the Stream Deck. I have 7 Govee lights for which I am using a Multi Action for each. Turn On > Adjust Brightness >Adjust Color . By stacking the actions, it allows me to accomplish what I normally would have to open the app for and choose a Scheme/Plan. Previous to May, everything worked exactly as expected. Currently, the first few lights change, but the rest do nothing (which seems to be when it hits the api limits). I let everything sit overnight, and tried again, but same results
GoveeController.log
.
Thank you for the detailed description @danielbmarshall, it really helps when debugging issues such as these.
Referring to the API documentation it should be possible to run the actions you've listed. The limits are:
As these are per device, I'm confused as to why throttling is occurring. I suspect the plugin is being throttled due to an issue with "get devices", which subsequently is throttling all requests. Sadly I've been unable to investigate things further yet, but will hopefully find time this week.
I have a similar issue going on, but it doesn't appear to be tied to the API rate limits. I've attached a sanitized log. Mac client, using the latest beta you've linked in this thread. The log shows that the refreshes are occurring so it's at least interfacing properly up front. Device list populates. However, when I press a button on the Stream Deck it doesn't make a call out. I've confirmed this using Wireshark, filtering for all the public IPs that resolve to developer-api.govee.com
.
If I hard code an API call into Postman and call it from the same machine, it executes without issue.
Any advice or help would be appreciated.
@danielbmarshall are you also running on macOS? I'm a little perplexed as to what's happening, as this evening I've run some tests locally and everything seems fine... as is typically the case when trying to encounter the problem, lol. 😅
I've created beta 1.2.1 which improves logging further. Could I ask you and @jordanrvillarreal to retry, and upload the new log files.
Ok, so I can pretty safely say my issue had nothing to do with the plug in at this point. For me, and it took a bit to catch on, my entire Stream Deck had stopped accepting button presses. Even simple things like navigating through folders had broken but I didn't notice it as I was focused on this plug-in. So with a series of uninstalls, reboots, OS upgrades, etc... It started working for me. I did put the new beta on and can confirm that it is, at very least, working for me.
Thank you for your patience! Windows 11 host, fully patched. Downloaded and installed the Beta 1.2.1. Restarted the Govee software app several times for good measure on the PC, and cleared the existing logs. Pressed the "Chill" multi action button on the Stream Deck, with no apparent affect on lighting as a result. I've attached the logs as well as grabbing the pertinent section from the Profile (manifest.json) for the multi action. Later tonight I may just backup the profile and do a complete uninstall and start with just a clean SD with just the Govee multi action and see if there is a different outcome. I'll send the logs and update if I get a different result. GoveeController.log Chill.json.txt
Thanks @danielbmarshall, I've checked the logs and confusingly it looks like they aren't from the latest beta. I suspect this might be Stream Deck being funky. Could I ask you to...
%APPDATA%\Elgato\StreamDeck\Plugins
.com.geekyeggo.goveecontroller.sdPlugin
.Plugin folder deleted and beta 1.2.1 installed. New log file attached. GoveeController.log
Consolidating this into #20, which will hopefully fix some HTTP errors.
I have setup the govee plugin with my streamdeck mini, the api key and everything was inputted correctly, it comes up with the name of my device in the dropdown menu, but when I press the stream deck button to try and do an action (ie shutting off the lights) nothing happens, a green checkmark appears over the icon, and my lights do nothing. how do I fix this?