STM32WB55 BLE extended advertising wrong TX power settings

Describe the bug
We are using the STM32WB55 platform and extended advertising API for starting legacy advertising. We are using Zephyr 3.4.0.
Before starting any advertising we issue the ST-specific ACI command (application note AN5270 - ACI_HAL_SET_TX_POWER_LEVEL) to set TX power and we are setting it to a low value for example -20dbm(value 0x01 in mentioned command description).
When starting advertising using extended advertising API we observe that there is no difference of observed RSSI at sniffer if the power is set to 0dbm or -20dbm.
What was observed is that STM32WB55 is reacting wrong in le_ext_adv_param_set(file: zephyr/subsys/bluetooth/host/adv.c ) function to:

cp->tx_power = BT_HCI_LE_ADV_TX_POWER_NO_PREF;

The BLE controller should take preference from "global" power but it returns in this part of the code:

struct bt_hci_rp_le_set_ext_adv_param *rp = (void *)rsp->data;
adv->tx_power = rp->tx_power;

value of rp->tx_power=0x06.
When we manually changed the value like below:

cp->tx_power = -20;

the returned power is 0xeb = -21. So it is close to the demanded value. And the observed RSSI changes accordingly.
The first problem is that there are no means to change the cp->tx_power by API while it should be possible as in structure "struct bt_le_ext_adv" there is field tx_power and it seems unused at this moment. At this moment this value is hardcoded to BT_HCI_LE_ADV_TX_POWER_NO_PREF;
The second problem is that the ST BLE controller is reacting wrong to the BT_HCI_LE_ADV_TX_POWER_NO_PREF value while according to BLE standard it should not care for this value and use the "global" setting
Expected behavior
Advertising should start with globally set TX power.
Impact
It is impossible to change TX power using extended advertising API with STM32WB55. Higher power usage during advertising. Issues on algorithms relying on RSSI.
Environment (please complete the following information):

OS: Linux
Zephyr SDK 0.16.1, Zephyr 3.4.0,
STM32WB55 BLE controller stm32wb5x_BLE_HCILayer_extended_fw.bin, version 1.17.0

Additional context
We have changed /modules/hal/stm32/lib/stm32wb/hci/app_conf.h and zephyr/drivers/bluetooth/hci/ipm_stm32wb.c files to turn on the Extended Advertising in Zephyr 3.4.0

@piotrParf In order to ease support, can you provide the changes you've made to /modules/hal/stm32/lib/stm32wb/hci/app_conf.h and zephyr/drivers/bluetooth/hci/ipm_stm32wb.c. ?

Hi @erwango,
We are using below patches to among others enable Extended Advertising API with STM32WB55:
diff --git a/lib/stm32wb/hci/app_conf.h b/lib/stm32wb/hci/app_conf.h
index c3b16f51..0147b3a6 100644
--- a/lib/stm32wb/hci/app_conf.h
+++ b/lib/stm32wb/hci/app_conf.h
@@ -153,7 +153,7 @@
  * Maximum number of simultaneous connections that the device will support.
  * Valid values are from 1 to 8
  */
-#define CFG_BLE_NUM_LINK            2
+#define CFG_BLE_NUM_LINK            4

 /**
  * Maximum number of Services that can be stored in the GATT database.
@@ -283,7 +283,7 @@
  * other bits: reserved (shall be set to 0)
  */
 /* Z-WB-3 */
-#define CFG_BLE_OPTIONS  (SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+#define CFG_BLE_OPTIONS  (SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)

 #define CFG_BLE_MAX_COC_INITIATOR_NBR   (32)

@@ -310,7 +310,7 @@
  * This parameter is considered by the CPU2 when CFG_BLE_OPTIONS has SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag set
  */

-#define CFG_BLE_MAX_ADV_SET_NBR     (3)
+#define CFG_BLE_MAX_ADV_SET_NBR     (4)

  /* Maximum advertising data length (in bytes)
  * Range: 31 .. 1650 with limitation:
@@ -319,7 +319,7 @@
  * This parameter is considered by the CPU2 when CFG_BLE_OPTIONS has SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag set
  */

-#define CFG_BLE_MAX_ADV_DATA_LEN    (1650)
+#define CFG_BLE_MAX_ADV_DATA_LEN    (1035)

  /* RF TX Path Compensation Value (16-bit signed integer). Units: 0.1 dB.
   * Range: -1280 .. 1280

and for ipm

diff --git a/drivers/bluetooth/hci/ipm_stm32wb.c b/drivers/bluetooth/hci/ipm_stm32wb.c
index 8b694af3e2..23be94b43c 100644
--- a/drivers/bluetooth/hci/ipm_stm32wb.c
+++ b/drivers/bluetooth/hci/ipm_stm32wb.c
@@ -100,7 +100,16 @@ static void stm32wb_start_ble(void)
 	    CFG_BLE_HSE_STARTUP_TIME,
 	    CFG_BLE_VITERBI_MODE,
 	    CFG_BLE_OPTIONS,
-	    0 }
+	   	0,
+		CFG_BLE_MAX_COC_INITIATOR_NBR,
+     	CFG_BLE_MIN_TX_POWER,
+     	CFG_BLE_MAX_TX_POWER,
+    	CFG_BLE_RX_MODEL_CONFIG,
+     	CFG_BLE_MAX_ADV_SET_NBR,
+     	CFG_BLE_MAX_ADV_DATA_LEN,
+     	CFG_BLE_TX_PATH_COMPENS,
+     	CFG_BLE_RX_PATH_COMPENS
+		}
 	};

 	/**

@piotrParf I'm converting this point to a discussion as the feature isn't available in upstream, so that isn't actually bug but we'll try to follow up on support


getGeneratedKeys() only returns one ID on multiple insertions

If i make multiple insertions in one query
INSERT INTO 'mytable' ('id', 'name') VALUES   ('1', 'alex'),   ('2', 'jean');
The ResultSet of getGeneratedKeys() will only hold the ID of the last entry

I think that's the default behaviour of SQLite to return a single value. You can check about RETURNING.

Closing this in favor of #329


Web auth keeps popping up in issue page

When I view an issue at url such as https://mysite/issues/36, the web auth pops up.

I'm not sure if this is a bug or confliction with other plugins, but I tried two ways to cease the bugging:

pass the web auth
Removing the redmine_issue_dynamic_Edit plugin.

Currently I am using some other plugins that might alter the Issue functions.
Will try them, too.
redmine_checklists
redmine_dmsf
easy_gantt_pro

There is not much log to investigate.  let me know if uploading anything could help.
I, [2023-08-28T05:57:00.814034 #1]  INFO -- : Started GET "/issues/36.json" for <IP_ADDRESS> at 2023-08-28 05:57:00 +0000
I, [2023-08-28T05:57:00.814568 #1]  INFO -- : Processing by IssuesController#show as JSON
I, [2023-08-28T05:57:00.814608 #1]  INFO -- :   Parameters: {"id"=>"36"}
I, [2023-08-28T05:57:00.844007 #1]  INFO -- :   Current user: anonymous
I, [2023-08-28T05:57:00.847334 #1]  INFO -- : Completed 401 Unauthorized in 33ms (ActiveRecord: 28.6ms | Allocations: 2685)

Hi,
Try the fix https://github.com/Ilogeek/redmine_issue_dynamic_edit/issues/104
It should solve this problem

Thanks.
Closing the issue now.
Expecting a merged release


camera not working and file upload not working in some phones

I have not gotten the cam to work at all and the file upload works on some cameras and not on others..just a guess maybe you need to add Camera2 permissions..are you thinking of adding this?

I'm not sure what device you're using.
As for camera2api, I haven't tested it yet and if you're thinking about giving it a try, sure do.
Start with your manifest and let me know if it works.
<uses-feature android:name="android.hardware.camera2.full"/>

I switched to your new gradle code and camera and file upload is working well now..one issue but I think it is a server side problem not a SmartWebView issue
		//noinspection GradleCompatible
		implementation 'com.android.support:appcompat-v7:28.0.0'
		testImplementation 'junit:junit:4.12'
		implementation 'com.google.android.gms:play-services-auth:16.0.1'
		implementation 'com.google.android.gms:play-services-location:16.0.0'

I'm glad it worked. :relaxed:


it often shows  "the windows has crashed" when I use vscode

it is very easy to show below error:
the windows has crashed(reason:'crashed', code:'-1073741819')
No special steps to reproduce, just normal operation as below:
1.when start vscode
2.Open a folder,  ctrl+p to find a file, choose the file to edit
reinstall or reboot can not help to improve.

/needsMoreInfo including version  and platform.
Also, please investigate whether one of your extensions is causing this. The "Start Extension Bisect" command from Command Palette can be useful here.


⚠ Bofrost.de has degraded performance

In bfe01af, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1093 ms

Resolved: Bofrost.de performance has improved in dda95af after 9 minutes.


Client authentication (if the client has credentials) or the client_id parameter is required for an authorization request using the code grant type

Hi Hans,
I'm using a Dockerfile to test out mod_auth_openidc to give to some customers but I'm hitting some errors. The module works when going up against Google, but when I go against our internal IDP I get this error:
client authentication (if the client has credentials) or the client_id parameter is requiredfor an authorization request using the code grant type.","error":"invalid_client"
Environment
Here is the Dockerfile to install mod_auth_openidc:
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install apache2 -y
RUN apt-get install php -y
RUN apt-get install libapache2-mod-php -y
RUN apt-get install libcurl3 -y
RUN apt-get install libjansson4 -y
RUN apt-get install wget -y
RUN wget http://ftp.us.debian.org/debian/pool/main/liba/libapache2-mod-auth-openidc/libapache2-mod-auth-openidc_1.6.0-1_amd64.deb
RUN dpkg -i libapache2-mod-auth-openidc_1.6.0-1_amd64.deb
RUN a2enmod auth_openidc
RUN a2dismod ssl
Apache.conf contains the correct information as well:
`#OIDC config

	AuthType openid-connect
	Require valid-user

OIDCProviderMetadataURL ${METADATA}
OIDCClientID ${CLIENT_ID}
OIDCClientSecret ${CLIENT_SECRET}
OIDCRedirectURI ${REDIRECT_URI}
OIDCScope ${SCOPE}
OIDCCryptoPassPhrase P@ssw0rd
OIDCRemoteUserClaim sub
OIDCOAuthSSLValidateServer Off
OIDCSSLValidateServer Off
`
I think this is the error:
https://...com/as/token.oauth2, data=grant_type=authorization_code&code=dce3H6JOhDIQ6SCfOSacVUDZOhftJFphi6rSAAAB&redirect_uri=http%3A%2F%2Flocalhost%2Fredirect, content_type=application/x-www-form-urlencoded, basic_auth=sampleclient:test123test, bearer_token=(null), ssl_validate_server=0, referer: http://localhost/
Should it be posting the client_id and secret in basic?
Configuration and Log files
Log files:
`[Fri Aug 24 01:16:05.528792 2018] [auth_openidc:debug] [pid 14] src/util.c(562): [client <IP_ADDRESS>:40706] oidc_util_http_post_form: post data="grant_type=authorization_code&code=dce3H6JOhDIQ6SCfOSacVUDZOhftJFphi6rSAAAB&redirect_uri=http%3A%2F%2Flocalhost%2Fredirect", referer: http://localhost/
[Fri Aug 24 01:16:05.528797 2018] [auth_openidc:debug] [pid 14] src/util.c(427): [client <IP_ADDRESS>:40706] oidc_util_http_call: url=https://...com/as/token.oauth2, data=grant_type=authorization_code&code=dce3H6JOhDIQ6SCfOSacVUDZOhftJFphi6rSAAAB&redirect_uri=http%3A%2F%2Flocalhost%2Fredirect, content_type=application/x-www-form-urlencoded, basic_auth=sampleclient:test123test, bearer_token=(null), ssl_validate_server=0, referer: http://localhost/
[Fri Aug 24 01:16:06.079298 2018] [auth_openidc:debug] [pid 14] src/util.c(516): [client <IP_ADDRESS>:40706] oidc_util_http_call: response={"error_description":"Client authentication (if the client has credentials) or the client_id parameter is requiredfor an authorization request using the code grant type.","error":"invalid_client"}\r\n, referer: http://localhost/
[Fri Aug 24 01:16:06.080615 2018] [auth_openidc:error] [pid 14] [client <IP_ADDRESS>:40706] oidc_util_json_string_print: oidc_util_check_json_error: response contained a "error" key with string value: "invalid_client", referer: http://localhost/
[Fri Aug 24 01:16:06.080633 2018] [auth_openidc:error] [pid 14] [client <IP_ADDRESS>:40706] oidc_util_json_string_print: oidc_util_check_json_error: response contained a "error_description" key with string value: "Client authentication (if the client has credentials) or the client_id parameter is required for an authorization request using the code grant type.", referer: http://localhost/`

NOTE - the clientid/secret are correct, because I can get a client_credentials bearer token from them.

You really must not use version 1.6.0 which almost 4 years old now and has known bugs and security issues. Support for such an old version can only be delivered on a commercial basis. Having said that, to me it looks like the server hasn't  configured any authentication method for the client or perhaps a different authentication method than client_secret_basic.


Unable to activate virtual environment after running bash file

Greetings,
I was unable to see any virtual environment folder being created even after running 'run.sh'. Please let me know how can I activate the virtual environment as mentioned in readme file.
Thanks

There is no more virtual environment creating in the run.sh so the README.md needs update; will look into it this week. Let me know if you get it to work with pip install .
https://github.com/google-research/growneuron/commit/95da417d06a2e84272d143d4f03874ea04e4399d

Do you know whether there is a pytorch version of your repo? If so, could you redirect me to that?

None that I know is public yet.

Updated README.md to reflect that no virtual environment is used.


Change module name to 'sbol2'

This includes changing at least:

setup.py
directory sbol => sbol2
Update any 'import sbol' to 'import sbol2'

In tests
In example programs

Maybe more...

Closed by #149


tests: update cmd/analytics integration test

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew tests with your changes locally?

This change updates test_analytics to allow for the possibility that the user has set a value for ENV["HOMEBREW_NO_ANALYTICS"], which was previously overlooked in #558. Thanks to @DomT4 for pointing this out. I also updated the relevant assert_match to clarify that "Analytics is disabled (by HOMEBREW_NO_ANALYTICS)".
Is there no way to simply delete ENV["HOMEBREW_NO_ANALYTICS"] from within the test? I tried adding ENV.delete and ENV["HOMEBREW_NO_ANALYTICS"] = nil to the beginning of the test (to no avail).
Thanks.

Is there no way to simply delete ENV["HOMEBREW_NO_ANALYTICS"] from within the test? I tried adding ENV.delete and ENV["HOMEBREW_NO_ANALYTICS"] = nil to the beginning of the test (to no avail).

I think your current approach is good/better anyway!
Thanks again @eirinikos!

Thanks for following up on this @eirinikos, Appreciated 😃.

Is there no way to simply delete ENV["HOMEBREW_NO_ANALYTICS"] from within the test? I tried adding ENV.delete and ENV["HOMEBREW_NO_ANALYTICS"] = nil to the beginning of the test (to no avail).

The reason for this is this line in the cmd_output method so all changes to the environment that are supposed to affect the spawned brew process need to happen after that (e.g. by passing the environment overrides to cmd[_fail] as you did here).

Thanks @UniqMartin, makes total sense.


Can't get the add-on to work

The add-on connects to my account and finds all my devices but doesn't report them to MQTT and then just stops running.  I run the mosquitto add-on but entered my MQTT config info just in case.  Had previously tried to start the add-on with those fields blank and got the same result.  Logs below.
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=XXXXX
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=XXXXX
GOVEE_MQTT_USER=MQTT
++ cd /app
++ exec /app/govee serve
GOVEE_MQTT_PORT=1883
[2024-01-04T03:47:59 INFO  govee::commands::serve] Starting service. version 2024.01.03-b19908a2
[2024-01-04T03:47:59 INFO  govee::commands::serve] Querying platform API for device list
Error: request status 200: OK: parsing response as json: {"code":200,"message":"success","data":[{"sku":"H7111","device":"12:A8:D4:AD:FC:43:1F:A8","deviceName":"Smart Floor Fan","type":"devices.types.fan","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"oscillationToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.work_mode","instance":"workMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"workMode","dataType":"ENUM","options":[{"name":"FanSpeed","value":1},{"name":"Custom","value":2},{"name":"Auto","value":3},{"name":"Sleep","value":5},{"name":"Nature","value":6},{"name":"Storm","value":7}],"required":true},{"fieldName":"modeValue","dataType":"ENUM","options":[{"name":"FanSpeed","options":[{"value":1},{"value":2},{"value":3},{"value":4},{"value":5},{"value":6},{"value":7},{"value":8}]},{"defaultValue":0,"name":"Custom"},{"defaultValue":0,"name":"Auto"},{"defaultValue":0,"name":"Sleep"},{"defaultValue":0,"name":"Nature"},{"defaultValue":0,"name":"Storm"}],"required":true}]}}]},{"sku":"H7141","device":"1C:40:D4:AD:FC:45:3D:E8","deviceName":"Smart Humidifier","type":"devices.types.humidifier","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.work_mode","instance":"workMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"workMode","dataType":"ENUM","options":[{"name":"Manual","value":1},{"name":"Custom","value":2},{"name":"Auto","value":3}],"required":true},{"fieldName":"modeValue","dataType":"ENUM","options":[{"name":"Manual","options":[{"value":1},{"value":2},{"value":3},{"value":4},{"value":5},{"value":6},{"value":7},{"value":8}]},{"defaultValue":0,"name":"Custom"},{"name":"Auto","range":{"min":40,"max":70}}],"required":false}]}},{"type":"devices.capabilities.range","instance":"humidity","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":40,"max":70,"precision":1}}},{"type":"devices.capabilities.event","instance":"lackWaterEvent","alarmType":51,"eventState":{"options":[{"name":"lack","value":1,"message":"Lack of Water"}]}}]},{"sku":"H7131","device":"81:C8:D4:AD:FC:74:ED:30","deviceName":"Smart Space Heater","type":"devices.types.heater","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"oscillationToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"nightlightToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.mode","instance":"nightlightScene","parameters":{"dataType":"ENUM","options":[{"name":"Flame","value":1},{"name":"Rainbow","value":2},{"name":"Rhythm","value":3},{"name":"Easy","value":4},{"name":"Sleep","value":5}]}},{"type":"devices.capabilities.temperature_setting","instance":"targetTemperature","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"autoStop","defaultValue":0,"dataType":"ENUM","options":[{"name":"Auto Stop","value":1},{"name":"Maintain","value":0}],"required":false},{"fieldName":"temperature","dataType":"INTEGER","range":{"min":5,"max":30,"precision":1},"required":true},{"fieldName":"unit","defaultValue":"Celsius","dataType":"ENUM","options":[{"name":"Celsius","value":"Celsius"},{"name":"Fahrenheit","value":"Fahrenheit"}],"required":true}]}},{"type":"devices.capabilities.property","instance":"sensorTemperature"},{"type":"devices.capabilities.work_mode","instance":"workMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"workMode","dataType":"ENUM","options":[{"name":"gearMode","value":1},{"name":"Fan","value":9},{"name":"Auto","value":3}],"required":true},{"fieldName":"modeValue","dataType":"ENUM","options":[{"name":"gearMode","options":[{"name":"Low","value":1},{"name":"Medium","value":2},{"name":"High","value":3}]},{"defaultValue":0,"name":"Fan"},{"defaultValue":0,"name":"Auto"}],"required":true}]}}]},{"sku":"H7121","device":"AA:63:D4:AD:FC:02:2C:36","deviceName":"Smart Air Purifier","type":"devices.types.air_purifier","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.work_mode","instance":"workMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"workMode","dataType":"ENUM","options":[{"name":"High","value":3},{"name":"Medium","value":2},{"name":"Low","value":1},{"name":"Sleep","value":16}],"required":true},{"fieldName":"modeValue","dataType":"ENUM","options":[{"defaultValue":0,"name":"High"},{"defaultValue":0,"name":"Medium"},{"defaultValue":0,"name":"Low"},{"defaultValue":0,"name":"Sleep"}],"required":true}]}},{"type":"devices.capabilities.property","instance":"filterLifeTime"},{"type":"devices.capabilities.property","instance":"airQuality"}]},{"sku":"H6052","device":"08:F4:EB:27:7D:C1:34:22","deviceName":"Aura Table Lamp","type":"devices.types.light","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"brightness","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true}]}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":true}]}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"min":2000,"max":9000,"precision":1}}},{"type":"devices.capabilities.dynamic_scene","instance":"lightScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.music_setting","instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"musicMode","dataType":"ENUM","options":[{"name":"Spectrum","value":1},{"name":"Vibrate","value":2},{"name":"Energic","value":3},{"name":"Rhythm","value":4}],"required":true},{"unit":"unit.percent","fieldName":"sensitivity","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true},{"fieldName":"autoColor","dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":false}]}},{"type":"devices.capabilities.dynamic_scene","instance":"diyScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.dynamic_scene","instance":"snapshot","parameters":{"dataType":"ENUM","options":[]}}]},{"sku":"H6059","device":"D0:9E:D6:39:32:35:5C:12","deviceName":"Aura Mini","type":"devices.types.light","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"brightness","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true}]}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"min":2000,"max":9000,"precision":1}}},{"type":"devices.capabilities.dynamic_scene","instance":"lightScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.music_setting","instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"musicMode","dataType":"ENUM","options":[{"name":"Magic","value":1},{"name":"Rhythm","value":2}],"required":true},{"unit":"unit.percent","fieldName":"sensitivity","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true},{"fieldName":"autoColor","dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":false}]}},{"type":"devices.capabilities.dynamic_scene","instance":"diyScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.dynamic_scene","instance":"snapshot","parameters":{"dataType":"ENUM","options":[]}}]},{"sku":"H6057","device":"92:D8:C1:9A:47:CA:6E:A7","deviceName":"Night Light","type":"devices.types.light","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"brightness","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true}]}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":true}]}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"min":2000,"max":9000,"precision":1}}},{"type":"devices.capabilities.dynamic_scene","instance":"lightScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.music_setting","instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"musicMode","dataType":"ENUM","options":[{"name":"Energic","value":1},{"name":"Dynamic","value":2},{"name":"Calm","value":3},{"name":"Spectrum","value":4},{"name":"LightWaves","value":5},{"name":"ColorPainting","value":6},{"name":"Hopping","value":7},{"name":"Dandelion","value":8}],"required":true},{"unit":"unit.percent","fieldName":"sensitivity","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true},{"fieldName":"autoColor","dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":false}]}},{"type":"devices.capabilities.dynamic_scene","instance":"diyScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.dynamic_scene","instance":"snapshot","parameters":{"dataType":"ENUM","options":[]}}]},{"sku":"H618A","device":"5F:CC:D4:AD:FC:D9:1A:FB","deviceName":"Alex's Light Strip","type":"devices.types.light","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.toggle","instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"brightness","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true}]}},{"type":"devices.capabilities.segment_color_setting","instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"segment","size":{"min":1,"max":15},"dataType":"Array","elementRange":{"min":0,"max":14},"elementType":"INTEGER","required":true},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":true}]}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"min":2000,"max":9000,"precision":1}}},{"type":"devices.capabilities.dynamic_scene","instance":"lightScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.music_setting","instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"musicMode","dataType":"ENUM","options":[{"name":"Energic","value":1},{"name":"Rhythm","value":2},{"name":"Spectrum","value":3},{"name":"Rolling","value":4},{"name":"Separation","value":5},{"name":"Hopping","value":6},{"name":"PianoKeys","value":7},{"name":"Fountain","value":8},{"name":"DayAndNight","value":9},{"name":"Sprouting","value":10},{"name":"Shiny","value":11}],"required":true},{"unit":"unit.percent","fieldName":"sensitivity","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true},{"fieldName":"autoColor","dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":false}]}},{"type":"devices.capabilities.dynamic_scene","instance":"diyScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.dynamic_scene","instance":"snapshot","parameters":{"dataType":"ENUM","options":[]}}]},{"sku":"H70B1","device":"1F:E0:F8:75:82:01:4B:C4","deviceName":"Smart Curtain Lights","type":"devices.types.light","capabilities":[{"type":"devices.capabilities.on_off","instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]}},{"type":"devices.capabilities.range","instance":"brightness","parameters":{"unit":"unit.percent","dataType":"INTEGER","range":{"min":1,"max":100,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1}}},{"type":"devices.capabilities.color_setting","instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"min":2000,"max":9000,"precision":1}}},{"type":"devices.capabilities.dynamic_scene","instance":"lightScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.music_setting","instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"fieldName":"musicMode","dataType":"ENUM","options":[{"name":"MeteorShower","value":1},{"name":"Crossing","value":2},{"name":"DreamColor","value":3},{"name":"FloatingMist","value":4},{"name":"Spectrum","value":5},{"name":"FallingSand","value":6}],"required":true},{"unit":"unit.percent","fieldName":"sensitivity","dataType":"INTEGER","range":{"min":0,"max":100,"precision":1},"required":true},{"fieldName":"autoColor","dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"fieldName":"rgb","dataType":"INTEGER","range":{"min":0,"max":16777215,"precision":1},"required":false}]}},{"type":"devices.capabilities.dynamic_scene","instance":"diyScene","parameters":{"dataType":"ENUM","options":[]}},{"type":"devices.capabilities.dynamic_scene","instance":"snapshot","parameters":{"dataType":"ENUM","options":[]}}]}]}: unknown field `options`, expected `name` or `value` at line 1 column 1203

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2: std::backtrace::Backtrace::create
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/backtrace.rs:331:13
   3: anyhow::error::<impl anyhow::Error>::msg
   4: anyhow::__private::format_err
   5: govee::cache::CacheResult<T>::into_result
   6: govee::platform_api::GoveeApiClient::get_devices::{{closure}}
   7: govee::commands::serve::ServeCommand::run::{{closure}}
   8: govee::Args::run::{{closure}}
   9: tokio::runtime::park::CachedParkThread::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: govee::main
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: std::rt::lang_start::{{closure}}
  14: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:284:13
  15: std::panicking::try::do_call
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  16: std::panicking::try
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  17: std::panic::catch_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  18: std::rt::lang_start_internal::{{closure}}
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:48
  19: std::panicking::try::do_call
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  20: std::panicking::try
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  21: std::panic::catch_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  22: std::rt::lang_start_internal
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:20
  23: std::rt::lang_start
  24: main
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Sorry, spoke too soon. I've added that data as a test case and adjusted the schema accordingly. An updated image should be available in about 10 minutes

Still not working for me.  Logs below.  I hopefully didn't leave in anything too personal haha
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=XXXXX
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=XXXXX
GOVEE_MQTT_USER=addons
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-05T00:05:59 INFO  govee::commands::serve] Starting service. version 2024.01.04-cde6fe80
[2024-01-05T00:05:59 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-05T00:05:59 INFO  govee::commands::serve] Querying undocumented API for device + room list
Error: request https://app2.govee.com/device/rest/devices/v1/list status 200: OK

Caused by:
    0: parsing https://app2.govee.com/device/rest/devices/v1/list response
    1: devices[0].deviceExt.deviceSettings: invalid type: integer `12`, expected a string at line 1 column 372. Input: {"devices":[{"groupId":0,"device":"1F:E0:F8:75:82:01:4B:C4","sku":"H70B1","spec":"","versionHard":"3.04.01","versionSoft":"1.00.26","deviceName":"Smart Curtain Lights","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"F8:75:82:01:4B:C4\",\"bleName\":\"Govee_H70B1_4BC4\",\"topic\":\"GD/270ee739c286efa042376f9e2c2dcf25\",\"wifiMac\":\"D4:AD:FC:E2:F4:D0\",\"pactType\":2,\"pactCode\":1,\"wifiSoftVersion\":\"2.00.30\",\"wifiHardVersion\":\"1.02.00\",\"ic\":520,\"secretCode\":\"J234dYIBS8Q=\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"dspVersionSoft\":12,\"sku\":\"H70B1\",\"device\":\"1F:E0:F8:75:82:01:4B:C4\",\"deviceName\":\"Smart Curtain Lights\",\"versionHard\":\"3.04.01\",\"versionSoft\":\"1.00.26\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/28fda3421d4000d1fd2be0e3acebef8a-add_list_type_device_70b1.png\",\"headOnImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/08be3e7bd228e4d9178c1ab5361539a1-new_light_title_70b1_on.png\",\"headOnImgNew\":\"\",\"headOffImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/b689a01eec9792c9305abb3a8d83c0cf-new_light_title_70b1_off.png\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":520}"},"pactType":2,"pactCode":1,"share":0,"deviceId":17050107,"goodsType":134,"attributesId":52,"supportScene":0},{"groupId":0,"device":"5F:CC:D4:AD:FC:D9:1A:FB","sku":"H618A","spec":"","versionHard":"2.01.02","versionSoft":"2.06.15","deviceName":"Alex's Light Strip","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D4:AD:FC:D9:1A:FB\",\"bleName\":\"GBK_H618A_1AFB\",\"topic\":\"GD/42b4159fea0b0ff3bdce84f7a5ad1138\",\"wifiMac\":\"60:74:F4:07:55:99\",\"pactType\":2,\"pactCode\":1,\"wifiSoftVersion\":\"2.05.08\",\"wifiHardVersion\":\"1.02.00\",\"ic\":15,\"secretCode\":\"+xrZ/K3UYYo=\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H618A\",\"device\":\"5F:CC:D4:AD:FC:D9:1A:FB\",\"deviceName\":\"Alex's Light Strip\",\"versionHard\":\"2.01.02\",\"versionSoft\":\"2.06.15\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/1888088d25fbf1fedd34316acccf9ee3-add_list_type_device_618ac.png.png\",\"headOnImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/eed1b442fc5d3aaa28563ded4284e057-new_light_title_6160_on.png\",\"headOnImgNew\":\"\",\"headOffImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/cb48afdb8618c2ddfd8fe16673336af0-new_light_title_6160_off.png\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":15}"},"pactType":2,"pactCode":1,"share":0,"deviceId":13436317,"goodsType":74,"attributesId":17,"supportScene":1},{"groupId":8468356,"device":"AA:63:D4:AD:FC:02:2C:36","sku":"H7121","spec":"","versionHard":"1.02.00","versionSoft":"1.00.30","deviceName":"Smart Air Purifier","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D4:AD:FC:02:2C:37\",\"bleName\":\"ihoment_H7121_2C37\",\"topic\":\"GD/e89b222bc5f28746e2c5136ee661840d\",\"wifiMac\":\"D4:AD:FC:02:2C:36\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"1.00.30\",\"wifiHardVersion\":\"1.02.00\",\"ic\":0,\"secretCode\":\"ZVEHCXpWAgc=\",\"filterExpireOnOff\":1,\"mcuSoftVersion\":\"01.01.02\",\"mcuHardVersion\":\"01.00.01\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H7121\",\"device\":\"AA:63:D4:AD:FC:02:2C:36\",\"deviceName\":\"Smart Air Purifier\",\"versionHard\":\"1.02.00\",\"versionSoft\":\"1.00.30\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/96e6e357d8b360781c9c4564469c4c4a-add_list_type_device_7121.png\",\"headOnImg\":\"\",\"headOnImgNew\":\"\",\"headOffImg\":\"\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":9480745,"goodsType":72,"attributesId":0,"supportScene":0},{"groupId":9171999,"device":"92:D8:C1:9A:47:CA:6E:A7","sku":"H6057","spec":"","versionHard":"3.03.01","versionSoft":"1.00.22","deviceName":"Night Light","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"C1:9A:47:CA:6E:A7\",\"bleName\":\"GVH6057_6EA7\",\"topic\":\"GD/f724c99a444f434875501920f6429962\",\"wifiMac\":\"D4:AD:FC:99:75:AA\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"2.00.20\",\"wifiHardVersion\":\"1.02.00\",\"ic\":0,\"secretCode\":\"c57BmkfKbqc=\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H6057\",\"device\":\"92:D8:C1:9A:47:CA:6E:A7\",\"deviceName\":\"Night Light\",\"versionHard\":\"3.03.01\",\"versionSoft\":\"1.00.22\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/96fc4b5ffc2044976af234ccd6d2588c-add_list_type_device_6052%403x.png\",\"headOnImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/53279151deed46c38e7cc69f659dab18-new_light_title_6057_on%403x.png\",\"headOnImgNew\":\"\",\"headOffImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/6bed7288e9a5745a30fcf8d0ed2ef996-new_light_title_6057_off%403x.png\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":10199818,"goodsType":104,"attributesId":46,"supportScene":0},{"groupId":9171982,"device":"D0:9E:D6:39:32:35:5C:12","sku":"H6059","spec":"","versionHard":"3.01.01","versionSoft":"1.00.14","deviceName":"Aura Mini","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D6:39:32:35:5C:12\",\"bleName\":\"Govee_H6059_5C12\",\"topic\":\"GD/dc7295190e9e2faee600774fc3188568\",\"wifiMac\":\"D4:AD:FC:27:69:02\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"\",\"wifiHardVersion\":\"\",\"ic\":0,\"secretCode\":\"me7WOTI1XBI=\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H6059\",\"device\":\"D0:9E:D6:39:32:35:5C:12\",\"deviceName\":\"Aura Mini\",\"versionHard\":\"3.01.01\",\"versionSoft\":\"1.00.14\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/5934d5252d49bcdd25d1cd56d38d1bfd-add_list_type_device_6059.png\",\"headOnImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/d7ca4018b88520ac4e983ad83d734e9e-new_light_title_6059_on%403x.png\",\"headOnImgNew\":\"\",\"headOffImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/04c4ecb60459cc2626fd5f42f408ea82-new_light_title_6059_off%403x.png\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":10075545,"goodsType":84,"attributesId":21,"supportScene":0},{"groupId":8468342,"device":"08:F4:EB:27:7D:C1:34:22","sku":"H6052","spec":"","versionHard":"1.00.01","versionSoft":"1.00.35","deviceName":"Aura Table Lamp","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"BA:03:27:EB:F4:08\",\"bleName\":\"ihoment_H6052_F408\",\"topic\":\"GD/8879caf6dba28a8dbf1980ffadcb5a7b\",\"wifiMac\":\"7C:A6:B0:19:DA:36\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"1.00.11\",\"wifiHardVersion\":\"1.00.01\",\"ic\":0,\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H6052\",\"device\":\"08:F4:EB:27:7D:C1:34:22\",\"deviceName\":\"Aura Table Lamp\",\"versionHard\":\"1.00.01\",\"versionSoft\":\"1.00.35\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/15b1e1780e091ab45a45d4ad09fe7cc9-add_list_type_device_6052.png\",\"headOnImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/3fb3edbc32daf52017762baf281b5daf-new_light_title_6052_on.png\",\"headOnImgNew\":\"\",\"headOffImg\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/44f4c393e3348d4b15c1df5a45613a9d-new_light_title_6052_off.png\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":9529788,"goodsType":22,"attributesId":5,"supportScene":0},{"groupId":8468342,"device":"81:C8:D4:AD:FC:74:ED:30","sku":"H7131","spec":"","versionHard":"1.02.00","versionSoft":"1.00.25","deviceName":"Smart Space Heater","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D4:AD:FC:74:ED:31\",\"bleName\":\"ihoment_H7131_ED31\",\"topic\":\"GD/a26a7411765d163b10c996715b904151\",\"wifiMac\":\"D4:AD:FC:74:ED:30\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"1.00.25\",\"wifiHardVersion\":\"1.02.00\",\"ic\":0,\"secretCode\":\"+PSXHkn5FBQ=\",\"dumpOnOff\":1,\"mcuSoftVersion\":\"1.00.02\\u0000\",\"mcuHardVersion\":\"1.00.02\\u0000\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H7131\",\"device\":\"81:C8:D4:AD:FC:74:ED:30\",\"deviceName\":\"Smart Space Heater\",\"versionHard\":\"1.02.00\",\"versionSoft\":\"1.00.25\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/0767bab50f0e2497918764e72ebaca23-add_list_type_device_7131.png\",\"headOnImg\":\"\",\"headOnImgNew\":\"\",\"headOffImg\":\"\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":9480701,"goodsType":115,"attributesId":0,"supportScene":0},{"groupId":8468356,"device":"1C:40:D4:AD:FC:45:3D:E8","sku":"H7141","spec":"","versionHard":"1.02.00","versionSoft":"1.00.30","deviceName":"Smart Humidifier","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D4:AD:FC:45:3D:E9\",\"bleName\":\"ihoment_H7141_3DE9\",\"topic\":\"GD/38d0d585ed0ac0060040487541df0ea1\",\"wifiMac\":\"D4:AD:FC:45:3D:E8\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"1.00.30\",\"wifiHardVersion\":\"1.02.00\",\"ic\":0,\"secretCode\":\"A3wiILLyWQo=\",\"waterShortageOnOff\":1,\"mcuSoftVersion\":\"01.00.04\",\"mcuHardVersion\":\"01.00.02\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H7141\",\"device\":\"1C:40:D4:AD:FC:45:3D:E8\",\"deviceName\":\"Smart Humidifier\",\"versionHard\":\"1.02.00\",\"versionSoft\":\"1.00.30\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/9665fd8703926801c0b62ff03bd25f6e-add_list_type_device_7141.png\",\"headOnImg\":\"\",\"headOnImgNew\":\"\",\"headOffImg\":\"\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":9480675,"goodsType":61,"attributesId":0,"supportScene":0},{"groupId":8468342,"device":"12:A8:D4:AD:FC:43:1F:A8","sku":"H7111","spec":"","versionHard":"1.02.00","versionSoft":"1.00.23","deviceName":"Smart Floor Fan","deviceExt":{"deviceSettings":"{\"wifiName\":\"XXX\",\"address\":\"D4:AD:FC:43:1F:A9\",\"bleName\":\"ihoment_H7111_1FA9\",\"topic\":\"GD/db68057befc46480794a176eda9a38ef\",\"wifiMac\":\"D4:AD:FC:43:1F:A8\",\"pactType\":1,\"pactCode\":1,\"wifiSoftVersion\":\"1.00.23\",\"wifiHardVersion\":\"1.02.00\",\"ic\":0,\"secretCode\":\"JDz8KVcjiig=\",\"mcuSoftVersion\":\"1.00.03\\u0000\",\"mcuHardVersion\":\"1.00.01\\u0000\",\"boilWaterCompletedNotiOnOff\":1,\"completionNotiOnOff\":1,\"autoShutDownOnOff\":1,\"sku\":\"H7111\",\"device\":\"12:A8:D4:AD:FC:43:1F:A8\",\"deviceName\":\"Smart Floor Fan\",\"versionHard\":\"1.02.00\",\"versionSoft\":\"1.00.23\",\"playState\":false}","lastDeviceData":"{\"online\":false}","extResources":"{\"skuUrl\":\"https://d1f2504ijhdyjw.cloudfront.net/sku-img/5c898345c5db4797ccb0dde8e5665aac-add_list_type_device_7111.png\",\"headOnImg\":\"\",\"headOnImgNew\":\"\",\"headOffImg\":\"\",\"headOffImgNew\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"deviceId":7929415,"goodsType":86,"attributesId":0,"supportScene":0}],"groups":[{"groupId":9171999,"groupName":"Margot's Room"},{"groupId":9171982,"groupName":"Alex's Room"},{"groupId":8468356,"groupName":"Master Bedroom"},{"groupId":8468342,"groupName":"Office"}],"sort":[],"sortTime":0,"message":"","status":200}

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2: std::backtrace::Backtrace::create
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/backtrace.rs:331:13
   3: anyhow::error::<impl anyhow::Error>::msg
   4: govee::platform_api::from_json
   5: govee::undoc_api::GoveeUndocumentedApi::get_device_list::{{closure}}
   6: govee::commands::serve::ServeCommand::run::{{closure}}
   7: govee::Args::run::{{closure}}
   8: tokio::runtime::park::CachedParkThread::block_on
   9: tokio::runtime::context::runtime::enter_runtime
  10: tokio::runtime::runtime::Runtime::block_on
  11: govee::main
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: std::rt::lang_start::{{closure}}
  14: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:284:13
  15: std::panicking::try::do_call
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  16: std::panicking::try
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  17: std::panic::catch_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  18: std::rt::lang_start_internal::{{closure}}
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:48
  19: std::panicking::try::do_call
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
  20: std::panicking::try
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
  21: std::panic::catch_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
  22: std::rt::lang_start_internal
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:20
  23: std::rt::lang_start
  24: main
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Ah, sorry about that. Check for updates in the addons section and you should see a newer version with a fix for this.

@wez
Should I see my govee devices in my MQTT integration devices/entities?
With the updates you've sent out, my add-on has gotten further but I'm still not quite there yet.
The add-on definitely finds my devices (and doesn't crash!) and even MQTT explorer sees 5 entries, which would be my lights (no appliances) but HA isn't seeing anything.
I'll post my latest logs in a few.

Sometimes you need to force reload the hass webui for the entities to show up there

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=MQTT
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-05T09:25:44 INFO  govee::commands::serve] Starting service. version 2024.01.05-816211da
[2024-01-05T09:25:44 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-05T09:25:44 INFO  govee::commands::serve] Querying undocumented API for device + room list
[2024-01-05T09:25:44 INFO  govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-05T09:25:45 INFO  govee::commands::serve] Starting LAN discovery
[2024-01-05T09:25:45 INFO  govee::service::http] http server addr is <IP_ADDRESS>:8056
[2024-01-05T09:25:52 ERROR govee::service::hass] run_mqtt_loop: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Night Light (92:D8:C1:9A:47:CA:6E:A7) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Curtain Lights (1F:E0:F8:75:82:01:4B:C4) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Table Lamp (08:F4:EB:27:7D:C1:34:22) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Mini (D0:9E:D6:39:32:35:5C:12) None
[2024-01-05T09:26:05 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36) None
[2024-01-05T09:41:05 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8) None
[2024-01-05T09:41:05 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:05 INFO  govee::commands::serve] requesting update via Platform API Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8) None
[2024-01-05T09:41:06 ERROR govee::commands::serve] while polling Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8): unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T09:41:06 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8) None
[2024-01-05T09:41:06 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:06 INFO  govee::commands::serve] requesting update via Platform API Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8) None
[2024-01-05T09:41:08 ERROR govee::commands::serve] while polling Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8): unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T09:41:08 INFO  govee::commands::serve] requesting update via IoT MQTT Night Light (92:D8:C1:9A:47:CA:6E:A7) None
[2024-01-05T09:41:08 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:08 INFO  govee::commands::serve] requesting update via Platform API Night Light (92:D8:C1:9A:47:CA:6E:A7) None
[2024-01-05T09:41:08 ERROR govee::commands::serve] while polling Night Light (92:D8:C1:9A:47:CA:6E:A7): mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:08 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Curtain Lights (1F:E0:F8:75:82:01:4B:C4) None
[2024-01-05T09:41:08 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:08 INFO  govee::commands::serve] requesting update via Platform API Smart Curtain Lights (1F:E0:F8:75:82:01:4B:C4) None
[2024-01-05T09:41:09 ERROR govee::commands::serve] while polling Smart Curtain Lights (1F:E0:F8:75:82:01:4B:C4): mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:09 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Table Lamp (08:F4:EB:27:7D:C1:34:22) None
[2024-01-05T09:41:09 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:09 INFO  govee::commands::serve] requesting update via Platform API Aura Table Lamp (08:F4:EB:27:7D:C1:34:22) None
[2024-01-05T09:41:11 ERROR govee::commands::serve] while polling Aura Table Lamp (08:F4:EB:27:7D:C1:34:22): mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:11 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Mini (D0:9E:D6:39:32:35:5C:12) None
[2024-01-05T09:41:11 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:11 INFO  govee::commands::serve] requesting update via Platform API Aura Mini (D0:9E:D6:39:32:35:5C:12) None
[2024-01-05T09:41:12 ERROR govee::commands::serve] while polling Aura Mini (D0:9E:D6:39:32:35:5C:12): mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36) None
[2024-01-05T09:41:12 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:12 INFO  govee::commands::serve] requesting update via Platform API Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36) None
[2024-01-05T09:41:13 ERROR govee::commands::serve] while polling Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36): unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T09:41:13 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Space Heater (81:C8:D4:AD:FC:74:ED:30) Some(DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "AWS IoT API", updated: 2024-01-05T15:25:46.219593221Z })
[2024-01-05T09:41:13 ERROR govee::commands::serve] Failed: mosq error: MOSQ_ERR_NO_CONN
[2024-01-05T09:41:13 INFO  govee::commands::serve] requesting update via Platform API Smart Space Heater (81:C8:D4:AD:FC:74:ED:30) Some(DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "AWS IoT API", updated: 2024-01-05T15:25:46.219593221Z })
[2024-01-05T09:41:15 ERROR govee::commands::serve] while polling Smart Space Heater (81:C8:D4:AD:FC:74:ED:30): unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}

I think there are two issues:

There's some unexpected data coming back from the platform API that is preventing some of the per-device state from showing up
The AWS IoT connection isn't working

Can you set the debug level to govee=trace and restart the addon?
That will make some more verbose logs.
Take care when sharing those logs: one of the things I expect to see in there is the response to a login request that will reveal tokens and certificates; be sure to redact p12, p12_pass and token fields from any logs that you share here!

s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=addons
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-05T10:26:52 INFO  govee::commands::serve] Starting service. version 2024.01.05-816211da
[2024-01-05T10:26:52 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-05T10:26:52 TRACE govee::cache] cache hit for device-list
[2024-01-05T10:26:52 INFO  govee::commands::serve] Querying undocumented API for device + room list
[2024-01-05T10:26:52 TRACE govee::cache] cache hit for account-info
[2024-01-05T10:26:52 TRACE govee::cache] cache hit for account-info
[2024-01-05T10:26:52 TRACE govee::service::iot] LoginAccountResponse {
    a: "testiot.cert",
    b: "testIot",
    account_id: 4001711,
    client: "XXXX",
    is_savvy_user: true,
    refresh_token: Some(
        "",
    ),
    client_name: Some(
        "",
    ),
    push_token: Some(
        "",
    ),
    version_code: Some(
        "",
    ),
    version_name: Some(
        "",
    ),
    sys_version: Some(
        "",
    ),
    token: "XXXX",
    token_expire_cycle: 57600,
    topic: "GA/1fb983a97ba59fefdb9c062dbb4ace71",
}
[2024-01-05T10:26:52 TRACE govee::cache] cache hit for iot-key
[2024-01-05T10:26:52 TRACE govee::service::iot] IotKey {
    endpoint: "aqm3wd1qlc3dy-ats.iot.us-east-1.amazonaws.com",
    log: "pro0",
    p12: "XXXXX",
    p12_pass: "XXXXX",
}
[2024-01-05T10:26:52 INFO  govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-05T10:26:52 INFO  govee::commands::serve] Starting LAN discovery
[2024-01-05T10:26:52 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:26:52 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:26:52 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:53 INFO  govee::service::http] http server addr is <IP_ADDRESS>:8056
[2024-01-05T10:26:54 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:26:54 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:26:54 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:54 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:54 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:54 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:26:54 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:26:54.959808204Z }
[2024-01-05T10:26:54 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:26:54 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:26:54 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle
[2024-01-05T10:26:58 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:26:58 TRACE govee::cache] cache miss for scene-list-H7111-12:A8:D4:AD:FC:43:1F:A8
[2024-01-05T10:26:58 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:26:58 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:58 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:58 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:26:58 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:26:58 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:26:58.896659587Z }
[2024-01-05T10:26:58 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:26:58 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:26:58 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle
[2024-01-05T10:26:59 TRACE govee::cache] cache miss for scene-list-diy-H7111-12:A8:D4:AD:FC:43:1F:A8
[2024-01-05T10:26:59 TRACE govee::cache] cache hit for scenes-H7111
[2024-01-05T10:26:59 ERROR govee::service::hass] run_mqtt_loop: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T10:27:06 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:27:06 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:27:06 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:06 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:06 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:06 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:27:06 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:27:06.884794485Z }
[2024-01-05T10:27:06 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:27:06 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:27:06 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Table Lamp (08:F4:EB:27:7D:C1:34:22) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Curtain Lights (1F:E0:F8:75:82:01:4B:C4) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Night Light (92:D8:C1:9A:47:CA:6E:A7) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Space Heater (81:C8:D4:AD:FC:74:ED:30) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Aura Mini (D0:9E:D6:39:32:35:5C:12) None
[2024-01-05T10:27:12 INFO  govee::commands::serve] requesting update via IoT MQTT Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36) None
[2024-01-05T10:27:12 TRACE govee::service::iot] GA/1fb983a97ba59fefdb9c062dbb4ace71 -> {"proType":2,"sku":"H7111","device":"12:A8:D4:AD:FC:43:1F:A8","softVersion":"1.00.23","wifiSoftVersion":"1.00.23","cmd":"status","type":0,"transaction":"v_1704472032691000","pactType":1,"pactCode":1,"state":{"onOff":0,"result":1},"op":{"command":["qhIAAAAAAAAAAAAAAAAAAAAAALg=","qhEAAAAAAAAAAAAAAAAAAAAAALs=","qgUBAQAAAAAAAAAAAAAAAAAAAK8=","qgUCAAgAPAA8BQA8ADwB/////6E=","qgUDBQo8CAuGAAAAAAAAAAAAABo=","qgUAAQAAAAAAAAAAAAAAAAAAAK4=","qggAAAAAAAAAAAAAAAAAAAAAAKI=","qh8BAAAAAAAAAAAAAAAAAAAAALQ=","qhYA/////wAAAAAAAAAAAAAAALw="]}}
[2024-01-05T10:27:12 DEBUG govee::service::iot] Packet { sku: "H7111", device: "12:A8:D4:AD:FC:43:1F:A8", cmd: "status", state: StateUpdate { on_off: Some(0), brightness: None, color: None, color_temperature_kelvin: None } }
[2024-01-05T10:27:12 TRACE govee::cache] cache hit for scene-list-H7111-12:A8:D4:AD:FC:43:1F:A8
[2024-01-05T10:27:12 TRACE govee::cache] cache hit for scene-list-diy-H7111-12:A8:D4:AD:FC:43:1F:A8
[2024-01-05T10:27:12 TRACE govee::cache] cache hit for scenes-H7111
[2024-01-05T10:27:22 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:27:22 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:27:22 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:22 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:22 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:22 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:27:22 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:27:22.874578726Z }
[2024-01-05T10:27:22 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:27:22 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:27:22 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle
[2024-01-05T10:27:54 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:27:54 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:27:54 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:54 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:54 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:27:54 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:27:54 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:27:54.910931808Z }
[2024-01-05T10:27:54 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:27:54 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:27:54 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle
[2024-01-05T10:28:54 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-05T10:28:55 TRACE govee::lan_api] query status from <IP_ADDRESS>
[2024-01-05T10:28:55 TRACE govee::commands::serve] LAN disco: update and notify 5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:28:55 TRACE govee::cache] cache hit for scene-list-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:28:55 TRACE govee::cache] cache hit for scene-list-diy-H618A-5F:CC:D4:AD:FC:D9:1A:FB
[2024-01-05T10:28:55 TRACE govee::cache] cache hit for scenes-H618A
[2024-01-05T10:28:55 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 255, b: 255 }, brightness: 4, scene: None, source: "LAN API", updated: 2024-01-05T16:28:55.241740804Z }
[2024-01-05T10:28:55 TRACE govee::service::hass] gv2mqtt/light/5FCCD4ADFCD91AFB/state -> {"state":"OFF"}
[2024-01-05T10:28:55 TRACE govee::service::hass] gv2mqtt/switch/5FCCD4ADFCD91AFB/powerSwitch/state -> OFF
[2024-01-05T10:28:55 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Alex's Light Strip (5F:CC:D4:AD:FC:D9:1A:FB) gradientToggle

OK, it looks like an issue parsing the scenes for your H7111 fan, and that blocks and breaks the rest of the logic that registers with hass. I've pushed a commit that should ignore these errors and clarify more context around them, so you should get unblocked.
Once we have the logs from that (you can go back to normal debug log levels now), I may ask you to do something to capture a dump of the offending data if it isn't already included in the logs so that I can handle this better.

Ok I am reasonably sure everything is working now.  I appreciate all the help and you taking the time to build this.  Down the road I may look to try to help add speed settings for appliances.
Let me know if you do want any other information from me.  If not, you are welcome to close this.
Thanks again!!

Good to hear! I'd appreciate it if you can share any warnings that the 2024.01.05-79e43690 build that I just published outputs for your device(s)

All the lights seem to be working as expected.  I'm just getting this every minute or so for appliances:
[2024-01-05T11:25:47 ERROR govee::service::hass] Unable to list scenes for Smart Floor Fan (12:A8:D4:AD:FC:43:1F:A8): list_scene_names: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T11:26:46 ERROR govee::service::hass] Unable to list scenes for Smart Humidifier (1C:40:D4:AD:FC:45:3D:E8): list_scene_names: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T11:26:46 ERROR govee::service::hass] Unable to list scenes for Smart Space Heater (81:C8:D4:AD:FC:74:ED:30): list_scene_names: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}
[2024-01-05T11:26:46 ERROR govee::service::hass] Unable to list scenes for Smart Air Purifier (AA:63:D4:AD:FC:02:2C:36): list_scene_names: unexpected type DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}

If you update to 79e43690 those should be warnings with a bit more context

They look like this now:
[2024-01-05T11:53:20 WARN  govee::platform_api] get_scene_caps(sku=H7111 device=12:A8:D4:AD:FC:43:1F:A8): Unexpected cap.parameters in scene_caps: DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}. Ignoring this entry.
[2024-01-05T11:53:20 WARN  govee::platform_api] get_scene_caps(sku=H7121 device=AA:63:D4:AD:FC:02:2C:36): Unexpected cap.parameters in scene_caps: DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}. Ignoring this entry.
[2024-01-05T11:53:20 WARN  govee::platform_api] get_scene_caps(sku=H7131 device=81:C8:D4:AD:FC:74:ED:30): Unexpected cap.parameters in scene_caps: DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}. Ignoring this entry.
[2024-01-05T11:53:20 WARN  govee::platform_api] get_scene_caps(sku=H7141 device=1C:40:D4:AD:FC:45:3D:E8): Unexpected cap.parameters in scene_caps: DeviceCapability {
    kind: DynamicScene,
    instance: "lightScene",
    parameters: None,
    alarm_type: None,
    event_state: None,
}. Ignoring this entry.

OK, in the latest release, I think we should be simply skipping those now. If you still see stuff in the logs, please reopen this issue!


Document HIP workaround

May need to change it soon when 23.11 comes around

This is still required for Blender to function correctly. May need to write a patch for Nixpkgs upstream...