Open Chavife opened 8 months ago
Please set the debug level to govee::service::iot=debug,info
and run through your reproduction steps again.
For my devices, I see a Packet come in from the IoT connect to notify us of the device state change and I'm curious to see if that is happening for your device.
Can you be more specific about where/how to set the debug level? I am running the gv2mqtt in docker.
For docker, you can set RUST_LOG
in your .env
file, or otherwise tell docker to set it in the environment:
RUST_LOG=govee::service::iot=debug,info
Thanks, here is the log:
[2024-01-11T15:03:17 INFO govee::commands::serve] Starting service. version 2024.01.10-2ddf9413
[2024-01-11T15:03:17 INFO govee::commands::serve] Querying platform API for device list
[2024-01-11T15:03:18 INFO govee::commands::serve] Querying undocumented API for device + room list
[2024-01-11T15:03:20 INFO govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-11T15:03:20 INFO govee::commands::serve] Starting LAN discovery
[2024-01-11T15:03:20 INFO govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
[2024-01-11T15:03:20 INFO govee::commands::serve] Waiting 10 seconds for LAN API discovery
[2024-01-11T15:03:30 INFO govee::commands::serve] Devices returned from Govee's APIs
[2024-01-11T15:03:30 INFO govee::commands::serve] H6176_4B06 (0F:AD:C2:39:32:33:4B:06) sku=H6176
[2024-01-11T15:03:30 INFO govee::commands::serve] LAN API: ip=10.0.0.136
[2024-01-11T15:03:30 INFO govee::commands::serve] Platform API: devices.types.light. supports_rgb=true supports_brightness=true
[2024-01-11T15:03:30 INFO govee::commands::serve] color_temp=Some((2000, 9000)) segment_rgb=Some(0..15)
[2024-01-11T15:03:30 INFO govee::commands::serve] Undoc: room=None supports_iot=true ble_only=false
[2024-01-11T15:03:30 INFO govee::commands::serve] Quirk { sku: "H6176", icon: "mdi:light-bulb", supports_rgb: true, supports_brightness: true, color_temp_range: Some((2000, 9000)), avoid_platform_api: false, ble_only: false, lan_api_capable: true, device_type: Light, supports_scenes: None }
[2024-01-11T15:03:30 INFO govee::commands::serve]
[2024-01-11T15:03:30 INFO govee::service::http] http server addr is 0.0.0.0:8056
[2024-01-11T15:03:38 INFO govee::service::hass] Wait 1s for hass to settle on 20 entity configs
[2024-01-11T15:03:39 INFO govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
[2024-01-11T15:04:00 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06): {
"state": "ON",
"effect": "Atlantis"
}
[2024-01-11T15:04:00 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06) to scene Atlantis
[2024-01-11T15:04:03 DEBUG govee::service::iot] Packet { sku: Some("H6176"), device: Some("0F:AD:C2:39:32:33:4B:06"), cmd: Some("ptReal"), msg: None, state: StateUpdate { on_off: None, brightness: None, color: None, color_temperature_kelvin: None, sku: None, device: None }, op: Some(OpData { command: [Generic([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]), SetHumidifierMode { mode: 0, param: 0 }], mode_value: [], sleep_value: [], wakeup_value: [], timer_value: [] }) }
I have the same issue, I am using only the API KEY with no username/password. Are you doing the same @Chavife ?
However I also had the same issue with Govee HomeBridge which is what I'm switching from. When you toggle ON, it actually switches to ON for a second but quickly (not sure if this is just UI side). If the toggle is still highlighted as ON, and you quickly toggle OFF before it gets a chance to refresh it will toggle OFF successfully. After toggling many times, I was able to get it to stay in the ON position however then I had the same issue but in reverse where the toggle reports ON but the device state is OFF. When toggling OFF nothing happens because the device is already OFF but after a second the toggle switches back to ON while the device stays OFF, but if I toggle OFF and then ON quickly the device does turn on. This happens for both my H6199 TV Lightstrip and H7060 Flood lights.
In the case of my TV Lightstrip w/ camera H6199 govee2mqtt discovers the segments and has some options like DreamView and Gradient toggle (looks very cool!). I'm not exactly sure what the Dreamview and Gradient toggles do (is it camera mode, and gradient vs single colour?), the segments, dreamview, and gradients don't seem to have any effect. I read the FAQ and understand it may be device dependent whether brightness works, but neither the brightness nor color has any effect. The lightstrip stays in camera mode, perhaps I need to somehow toggle camera mode off first before the segment control will work?
On the H7060 the segment changing brightness/colors works properly. The H6199 does have segments that can be controller through the Govee App, so I wouldn't think it would be a device limitation.
Despite these minor issues, I just want to say this project looks fantastic and I'm looking forward to making it a permanent replacement for Govee Homebridge & the HA Govee integration which both used at one point or another.
@ctml91 actually I do have the username and password defined as well with LAN control enabled. Does the API key work without username and pass? Interesting.
The issue here is in the notification we get back from the AWS IoT connection:
StateUpdate { on_off: None,
Govee doesn't set the overall power state to anything in particular.
It does send some other packets:
Generic([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]),
SetHumidifierMode { mode: 0, param: 0 }],
There are a few things that need to happen for the power state to show up well here:
I undefined the username and password from the .env
file, effectively disabling IoT service and keeping LAN to update the status.
Unfortunately the issue is the same.
2024-01-12T09:35:29 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06): {
"state": "ON",
"effect": "Atlantis"
}
[2024-01-12T09:35:29 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06) to scene Atlantis
[2024-01-12T09:35:29 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-12T09:35:29 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-12T09:35:29 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-12T09:35:29 TRACE hyper::client::pool] checkout waiting for idle connection: ("https", openapi.api.govee.com)
[2024-01-12T09:35:29 DEBUG reqwest::connect] starting new connection: https://openapi.api.govee.com/
[2024-01-12T09:35:29 TRACE hyper::client::connect::http] Http::connect; scheme=Some("https"), host=Some("openapi.api.govee.com"), port=None
[2024-01-12T09:35:29 DEBUG hyper::client::connect::dns] resolving host="openapi.api.govee.com"
[2024-01-12T09:35:29 DEBUG hyper::client::connect::http] connecting to 184.72.178.138:443
[2024-01-12T09:35:29 DEBUG hyper::client::connect::http] connected to 184.72.178.138:443
[2024-01-12T09:35:30 TRACE hyper::client::conn] client handshake Http1
[2024-01-12T09:35:30 TRACE hyper::client::client] handshake complete, spawning background dispatcher task
[2024-01-12T09:35:30 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy }
[2024-01-12T09:35:30 TRACE hyper::client::pool] checkout dropped for ("https", openapi.api.govee.com)
[2024-01-12T09:35:30 TRACE hyper::proto::h1::role] encode_headers;
[2024-01-12T09:35:30 TRACE hyper::proto::h1::role] -> encode_headers;
[2024-01-12T09:35:30 TRACE hyper::proto::h1::role] Client::encode method=POST, body=Some(Known(200))
[2024-01-12T09:35:30 TRACE hyper::proto::h1::role] <- encode_headers;
[2024-01-12T09:35:30 TRACE hyper::proto::h1::role] -- encode_headers;
[2024-01-12T09:35:30 TRACE hyper::proto::h1::encode] sized write, len = 200
[2024-01-12T09:35:30 TRACE hyper::proto::h1::io] buffer.flatten self.len=195 buf.len=200
[2024-01-12T09:35:30 DEBUG hyper::proto::h1::io] flushed 395 bytes
[2024-01-12T09:35:30 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] Conn::read_head
[2024-01-12T09:35:31 TRACE hyper::proto::h1::io] received 318 bytes
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] parse_headers;
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] -> parse_headers;
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] Response.parse bytes=318
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] Response.parse Complete(318)
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] <- parse_headers;
[2024-01-12T09:35:31 TRACE hyper::proto::h1::role] -- parse_headers;
[2024-01-12T09:35:31 DEBUG hyper::proto::h1::io] parsed 10 headers
[2024-01-12T09:35:31 DEBUG hyper::proto::h1::conn] incoming body is chunked encoding
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: Start, chunk_len: 0, extensions_cnt: 0 }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Read chunk start
[2024-01-12T09:35:31 TRACE hyper::proto::h1::io] received 201 bytes
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Chunk size is 195
[2024-01-12T09:35:31 DEBUG hyper::proto::h1::decode] incoming chunked header: 0xC3 (195 bytes)
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Chunked read, remaining=195
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Body(Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }), writing: KeepAlive, keep_alive: Busy }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-12T09:35:31 TRACE hyper::proto::h1::io] received 5 bytes
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] Chunk size is 0
[2024-01-12T09:35:31 TRACE hyper::proto::h1::decode] end of chunked
[2024-01-12T09:35:31 DEBUG hyper::proto::h1::conn] incoming body completed
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] maybe_notify; read_from_io blocked
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-12T09:35:31 TRACE hyper::client::pool] pool dropped, dropping pooled (("https", openapi.api.govee.com))
[2024-01-12T09:35:31 TRACE hyper::proto::h1::dispatch] client tx closed
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] State::close_read()
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] State::close_write()
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Closed, writing: Closed, keep_alive: Disabled }
[2024-01-12T09:35:31 TRACE hyper::proto::h1::conn] shut down IO complete
[2024-01-12T09:35:36 TRACE govee::lan_api] Send disco packet to 239.255.255.250
[2024-01-12T09:35:36 TRACE govee::lan_api] process_packet: addr=10.0.0.136:58731 data={"msg":{"cmd":"scan","data":{"ip":"10.0.0.136","device":"0F:AD:C2:39:32:33:4B:06","sku":"H6176","bleVersionHard":"3.01.10","bleVersionSoft":"3.04.30","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-12T09:35:36 TRACE govee::commands::serve] LAN disco: LanDevice { ip: 10.0.0.136, device: "0F:AD:C2:39:32:33:4B:06", sku: "H6176", ble_version_hard: "3.01.10", ble_version_soft: "3.04.30", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-12T09:35:36 TRACE govee::lan_api] query status of 10.0.0.136
[2024-01-12T09:35:36 TRACE govee::lan_api] LanDevice::send_request to 10.0.0.136 DevStatus
[2024-01-12T09:35:36 TRACE govee::lan_api] process_packet: addr=10.0.0.136:58732 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":1,"color":{"r":0,"g":0,"b":0},"colorTemInKelvin":0}}}
[2024-01-12T09:35:36 TRACE govee::commands::serve] LAN disco: update and notify 0F:AD:C2:39:32:33:4B:06
[2024-01-12T09:35:36 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-12T09:35:36 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-12T09:35:36 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-12T09:35:36 TRACE govee::hass_mqtt::light] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 1, scene: Some("Atlantis"), source: "LAN API", updated: 2024-01-12T08:35:36.250992434Z }
[2024-01-12T09:35:36 TRACE govee::service::hass] gv2mqtt/light/0FADC23932334B06/state -> {"state":"OFF"}
[2024-01-12T09:35:36 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m48, 'gv2mqtt/light/0FADC23932334B06/state', ... (15 bytes))
[2024-01-12T09:35:36 TRACE govee::service::hass] gv2mqtt/switch/0FADC23932334B06/powerSwitch/state -> OFF
[2024-01-12T09:35:36 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m49, 'gv2mqtt/switch/0FADC23932334B06/powerSwitch/state', ... (3 bytes))
[2024-01-12T09:35:36 TRACE govee::hass_mqtt::switch] CapabilitySwitch::notify_state: didn't find state for H6176_4B06 (0F:AD:C2:39:32:33:4B:06) gradientToggle
Maybe related: changes of scenes/effects in the Govee Home app are not notified/updated in the mqtt topic. Other changes like brightness and colors are updated. Also any change to the effects also by tap to run group controls do not update. Although there is a message comming but without any change. Is there a way to disable caching in the govee2mqtt docker? I would try if that helps
Please try the latest version and let me know how you get on with it!
Looks like it is not published? docker-compose is saying "up to date" with version 2024.01.10-2ddf9413
try this to force a pull:
$ docker compose up -d --pull=always
Updated to version: 2024.01.13-13871749
Issue not fixed, same results.
Please share the logs from this version
[2024-01-13T21:49:16 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176): {
"state": "ON",
"effect": "Atlantis"
}
[2024-01-13T21:49:16 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) to scene Atlantis
[2024-01-13T21:49:16 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:16 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:16 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-13T21:49:16 TRACE hyper::client::pool] checkout waiting for idle connection: ("https", openapi.api.govee.com)
[2024-01-13T21:49:16 DEBUG reqwest::connect] starting new connection: https://openapi.api.govee.com/
[2024-01-13T21:49:16 TRACE hyper::client::connect::http] Http::connect; scheme=Some("https"), host=Some("openapi.api.govee.com"), port=None
[2024-01-13T21:49:16 DEBUG hyper::client::connect::dns] resolving host="openapi.api.govee.com"
[2024-01-13T21:49:16 DEBUG hyper::client::connect::http] connecting to 18.215.11.0:443
[2024-01-13T21:49:16 DEBUG hyper::client::connect::http] connected to 18.215.11.0:443
[2024-01-13T21:49:16 TRACE hyper::client::conn] client handshake Http1
[2024-01-13T21:49:16 TRACE hyper::client::client] handshake complete, spawning background dispatcher task
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy }
[2024-01-13T21:49:16 TRACE hyper::client::pool] checkout dropped for ("https", openapi.api.govee.com)
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] encode_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] -> encode_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] Client::encode method=POST, body=Some(Known(200))
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] <- encode_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] -- encode_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::encode] sized write, len = 200
[2024-01-13T21:49:16 TRACE hyper::proto::h1::io] buffer.flatten self.len=195 buf.len=200
[2024-01-13T21:49:16 DEBUG hyper::proto::h1::io] flushed 395 bytes
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] Conn::read_head
[2024-01-13T21:49:16 TRACE hyper::proto::h1::io] received 318 bytes
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] parse_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] -> parse_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] Response.parse bytes=318
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] Response.parse Complete(318)
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] <- parse_headers;
[2024-01-13T21:49:16 TRACE hyper::proto::h1::role] -- parse_headers;
[2024-01-13T21:49:16 DEBUG hyper::proto::h1::io] parsed 10 headers
[2024-01-13T21:49:16 DEBUG hyper::proto::h1::conn] incoming body is chunked encoding
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: Start, chunk_len: 0, extensions_cnt: 0 }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Read chunk start
[2024-01-13T21:49:16 TRACE hyper::proto::h1::io] received 201 bytes
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Chunk size is 195
[2024-01-13T21:49:16 DEBUG hyper::proto::h1::decode] incoming chunked header: 0xC3 (195 bytes)
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Chunked read, remaining=195
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Body(Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }), writing: KeepAlive, keep_alive: Busy }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-13T21:49:16 TRACE hyper::proto::h1::io] received 5 bytes
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] Chunk size is 0
[2024-01-13T21:49:16 TRACE hyper::proto::h1::decode] end of chunked
[2024-01-13T21:49:16 DEBUG hyper::proto::h1::conn] incoming body completed
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] maybe_notify; read_from_io blocked
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-13T21:49:16 TRACE hyper::client::pool] pool dropped, dropping pooled (("https", openapi.api.govee.com))
[2024-01-13T21:49:16 TRACE hyper::proto::h1::dispatch] client tx closed
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] State::close_read()
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] State::close_write()
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Closed, writing: Closed, keep_alive: Disabled }
[2024-01-13T21:49:16 TRACE hyper::proto::h1::conn] shut down IO complete
[2024-01-13T21:49:17 DEBUG mosquitto_rs::lowlevel] Client AP/9492568/c2d35c60469a40f5a1c0f9ab83ec3f73 received PUBLISH (d0, q0, r0, m0, 'GA/26b3505415863ed3c1b21c0305e265c3', ... (329 bytes))
[2024-01-13T21:49:17 TRACE govee::service::iot] GA/26b3505415863ed3c1b21c0305e265c3 -> {"proType":2,"sku":"H6176","device":"0F:AD:C2:39:32:33:4B:06","softVersion":"3.04.30","wifiSoftVersion":"2.05.08","wifiHardVersion":"1.02.00","cmd":"ptReal","type":1,"transaction":"oapi_1705178956694","pactType":1,"pactCode":1,"state":{"result":1},"op":{"command":["owIAAAAAAAAAAAAAAAAAAAAAAKE=","MwUAAAAAAAAAAAAAAAAAAAAAADY="]}}
[2024-01-13T21:49:17 DEBUG govee::service::iot] Packet { sku: Some("H6176"), device: Some("0F:AD:C2:39:32:33:4B:06"), cmd: Some("ptReal"), msg: None, state: StateUpdate { on_off: None, brightness: None, color: None, color_temperature_kelvin: None, sku: None, device: None }, op: Some(OpData { command: [Generic([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]), SetHumidifierMode { mode: 0, param: 0 }], mode_value: [], sleep_value: [], wakeup_value: [], timer_value: [] }) }
[2024-01-13T21:49:17 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:17 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:17 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-13T21:49:17 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state -> Available
[2024-01-13T21:49:17 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m48, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state', ... (9 bytes))
[2024-01-13T21:49:17 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes -> {"http":null,"iot":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-13T20:49:17.619945016Z"},"lan":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"LAN API","updated":"2024-01-13T20:48:46.337430233Z"},"overall":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-13T20:49:17.619945016Z"},"platform_metadata":{"capabilities":[{"alarmType":null,"eventState":null,"instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.on_off"},{"alarmType":null,"eventState":null,"instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.toggle"},{"alarmType":null,"eventState":null,"instance":"brightness","parameters":{"dataType":"INTEGER","range":{"max":100,"min":1,"precision":1},"unit":"unit.percent"},"type":"devices.capabilities.range"},{"alarmType":null,"eventState":null,"instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"brightness","range":{"max":100,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"max":16777215,"min":0,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"max":9000,"min":2000,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"lightScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"dataType":"ENUM","defaultValue":null,"fieldName":"musicMode","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},{"dataType":"INTEGER","defaultValue":null,"fieldName":"sensitivity","range":{"max":100,"min":0,"precision":1},"required":true,"unit":"unit.percent"},{"dataType":"ENUM","defaultValue":null,"fieldName":"autoColor","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":false,"unit":null}]},"type":"devices.capabilities.music_setting"},{"alarmType":null,"eventState":null,"instance":"diyScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"snapshot","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"}],"device":"0F:AD:C2:39:32:33:4B:06","deviceName":"H6176_4B06","sku":"H6176","type":"devices.types.light"},"platform_state":null}
[2024-01-13T21:49:17 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m49, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes', ... (4106 bytes))
[2024-01-13T21:49:17 TRACE govee::hass_mqtt::light] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 255, b: 255 }, brightness: 1, scene: Some("Atlantis"), source: "AWS IoT API", updated: 2024-01-13T20:49:17.619945016Z }
[2024-01-13T21:49:17 TRACE govee::service::hass] gv2mqtt/light/0FADC23932334B06/state -> {"state":"OFF"}
[2024-01-13T21:49:17 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m50, 'gv2mqtt/light/0FADC23932334B06/state', ... (15 bytes))
[2024-01-13T21:49:17 TRACE govee::service::hass] gv2mqtt/switch/0FADC23932334B06/powerSwitch/state -> OFF
[2024-01-13T21:49:17 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m51, 'gv2mqtt/switch/0FADC23932334B06/powerSwitch/state', ... (3 bytes))
[2024-01-13T21:49:17 TRACE govee::hass_mqtt::switch] CapabilitySwitch::notify_state: didn't find state for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) gradientToggle
[2024-01-13T21:49:18 TRACE govee::lan_api] Send disco packet to 239.255.255.250
[2024-01-13T21:49:18 TRACE govee::lan_api] process_packet: addr=10.0.0.136:63030 data={"msg":{"cmd":"scan","data":{"ip":"10.0.0.136","device":"0F:AD:C2:39:32:33:4B:06","sku":"H6176","bleVersionHard":"3.01.10","bleVersionSoft":"3.04.30","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-13T21:49:18 TRACE govee::commands::serve] LAN disco: LanDevice { ip: 10.0.0.136, device: "0F:AD:C2:39:32:33:4B:06", sku: "H6176", ble_version_hard: "3.01.10", ble_version_soft: "3.04.30", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-13T21:49:18 TRACE govee::lan_api] query status of 10.0.0.136
[2024-01-13T21:49:18 TRACE govee::lan_api] LanDevice::send_request to 10.0.0.136 DevStatus
[2024-01-13T21:49:18 TRACE govee::lan_api] process_packet: addr=10.0.0.136:63031 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":1,"color":{"r":0,"g":255,"b":255},"colorTemInKelvin":0}}}
[2024-01-13T21:49:18 TRACE govee::commands::serve] LAN disco: update and notify 0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:18 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:18 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-13T21:49:18 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-13T21:49:18 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state -> Available
[2024-01-13T21:49:18 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m52, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state', ... (9 bytes))
[2024-01-13T21:49:18 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes -> {"http":null,"iot":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-13T20:49:17.619945016Z"},"lan":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"LAN API","updated":"2024-01-13T20:49:18.388499064Z"},"overall":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"LAN API","updated":"2024-01-13T20:49:18.388499064Z"},"platform_metadata":{"capabilities":[{"alarmType":null,"eventState":null,"instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.on_off"},{"alarmType":null,"eventState":null,"instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.toggle"},{"alarmType":null,"eventState":null,"instance":"brightness","parameters":{"dataType":"INTEGER","range":{"max":100,"min":1,"precision":1},"unit":"unit.percent"},"type":"devices.capabilities.range"},{"alarmType":null,"eventState":null,"instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"brightness","range":{"max":100,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"max":16777215,"min":0,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"max":9000,"min":2000,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"lightScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"dataType":"ENUM","defaultValue":null,"fieldName":"musicMode","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},{"dataType":"INTEGER","defaultValue":null,"fieldName":"sensitivity","range":{"max":100,"min":0,"precision":1},"required":true,"unit":"unit.percent"},{"dataType":"ENUM","defaultValue":null,"fieldName":"autoColor","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":false,"unit":null}]},"type":"devices.capabilities.music_setting"},{"alarmType":null,"eventState":null,"instance":"diyScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"snapshot","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"}],"device":"0F:AD:C2:39:32:33:4B:06","deviceName":"H6176_4B06","sku":"H6176","type":"devices.types.light"},"platform_state":null}
[2024-01-13T21:49:18 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m53, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes', ... (4102 bytes))
[2024-01-13T21:49:18 TRACE govee::hass_mqtt::light] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 255, b: 255 }, brightness: 1, scene: Some("Atlantis"), source: "LAN API", updated: 2024-01-13T20:49:18.388499064Z }
[2024-01-13T21:49:18 TRACE govee::service::hass] gv2mqtt/light/0FADC23932334B06/state -> {"state":"OFF"}
[2024-01-13T21:49:18 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m54, 'gv2mqtt/light/0FADC23932334B06/state', ... (15 bytes))
[2024-01-13T21:49:18 TRACE govee::service::hass] gv2mqtt/switch/0FADC23932334B06/powerSwitch/state -> OFF
[2024-01-13T21:49:18 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m55, 'gv2mqtt/switch/0FADC23932334B06/powerSwitch/state', ... (3 bytes))
[2024-01-13T21:49:18 TRACE govee::hass_mqtt::switch] CapabilitySwitch::notify_state: didn't find state for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) gradientToggle
Also this version introduced this warning:
[2024-01-13T21:52:18 WARN govee::hass_mqtt::switch] CapabilitySwitch::notify_state: Do something with DeviceCapabilityState {
kind: Toggle,
instance: "gradientToggle",
state: Object {
"value": String(""),
},
}
Issue still persists on version 2024.01.14-bd981e4e
New logs:
[2024-01-15T12:20:17 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176): {
"state": "ON",
"effect": "Atlantis"
}
[2024-01-15T12:20:17 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) to scene Atlantis
[2024-01-15T12:20:17 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-15T12:20:17 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-15T12:20:17 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-15T12:20:17 TRACE hyper::client::pool] checkout waiting for idle connection: ("https", openapi.api.govee.com)
[2024-01-15T12:20:17 DEBUG reqwest::connect] starting new connection: https://openapi.api.govee.com/
[2024-01-15T12:20:17 TRACE hyper::client::connect::http] Http::connect; scheme=Some("https"), host=Some("openapi.api.govee.com"), port=None
[2024-01-15T12:20:17 DEBUG hyper::client::connect::dns] resolving host="openapi.api.govee.com"
[2024-01-15T12:20:17 DEBUG hyper::client::connect::http] connecting to 23.21.196.107:443
[2024-01-15T12:20:18 DEBUG hyper::client::connect::http] connected to 23.21.196.107:443
[2024-01-15T12:20:18 TRACE hyper::client::conn] client handshake Http1
[2024-01-15T12:20:18 TRACE hyper::client::client] handshake complete, spawning background dispatcher task
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy }
[2024-01-15T12:20:18 TRACE hyper::client::pool] checkout dropped for ("https", openapi.api.govee.com)
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] encode_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] -> encode_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] Client::encode method=POST, body=Some(Known(200))
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] <- encode_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] -- encode_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::encode] sized write, len = 200
[2024-01-15T12:20:18 TRACE hyper::proto::h1::io] buffer.flatten self.len=195 buf.len=200
[2024-01-15T12:20:18 DEBUG hyper::proto::h1::io] flushed 395 bytes
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] Conn::read_head
[2024-01-15T12:20:18 TRACE hyper::proto::h1::io] received 318 bytes
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] parse_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] -> parse_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] Response.parse bytes=318
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] Response.parse Complete(318)
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] <- parse_headers;
[2024-01-15T12:20:18 TRACE hyper::proto::h1::role] -- parse_headers;
[2024-01-15T12:20:18 DEBUG hyper::proto::h1::io] parsed 10 headers
[2024-01-15T12:20:18 DEBUG hyper::proto::h1::conn] incoming body is chunked encoding
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: Start, chunk_len: 0, extensions_cnt: 0 }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Read chunk start
[2024-01-15T12:20:18 TRACE hyper::proto::h1::io] received 201 bytes
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Chunk size is 195
[2024-01-15T12:20:18 DEBUG hyper::proto::h1::decode] incoming chunked header: 0xC3 (195 bytes)
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Chunked read, remaining=195
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Body(Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }), writing: KeepAlive, keep_alive: Busy }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] decode; state=Chunked { state: BodyCr, chunk_len: 0, extensions_cnt: 0 }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-15T12:20:18 TRACE hyper::proto::h1::io] received 5 bytes
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Read chunk hex size
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] Chunk size is 0
[2024-01-15T12:20:18 TRACE hyper::proto::h1::decode] end of chunked
[2024-01-15T12:20:18 DEBUG hyper::proto::h1::conn] incoming body completed
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] maybe_notify; read_from_io blocked
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle }
[2024-01-15T12:20:18 TRACE hyper::client::pool] pool dropped, dropping pooled (("https", openapi.api.govee.com))
[2024-01-15T12:20:18 TRACE hyper::proto::h1::dispatch] client tx closed
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] State::close_read()
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] State::close_write()
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] flushed({role=client}): State { reading: Closed, writing: Closed, keep_alive: Disabled }
[2024-01-15T12:20:18 TRACE hyper::proto::h1::conn] shut down IO complete
[2024-01-15T12:20:19 DEBUG mosquitto_rs::lowlevel] Client AP/9492568/eb4a532521b04e50ac4845a4358e85e6 received PUBLISH (d0, q0, r0, m0, 'GA/26b3505415863ed3c1b21c0305e265c3', ... (329 bytes))
[2024-01-15T12:20:19 TRACE govee::service::iot] GA/26b3505415863ed3c1b21c0305e265c3 -> {"proType":2,"sku":"H6176","device":"0F:AD:C2:39:32:33:4B:06","softVersion":"3.04.30","wifiSoftVersion":"2.05.08","wifiHardVersion":"1.02.00","cmd":"ptReal","type":1,"transaction":"oapi_1705317618434","pactType":1,"pactCode":1,"state":{"result":1},"op":{"command":["owIAAAAAAAAAAAAAAAAAAAAAAKE=","MwUAAAAAAAAAAAAAAAAAAAAAADY="]}}
[2024-01-15T12:20:19 DEBUG govee::service::iot] Packet { sku: Some("H6176"), device: Some("0F:AD:C2:39:32:33:4B:06"), cmd: Some("ptReal"), msg: None, state: StateUpdate { on_off: None, brightness: None, color: None, color_temperature_kelvin: None, sku: None, device: None }, op: Some(OpData { command: [Base64HexBytes([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]), Base64HexBytes([33, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 36])], mode_value: [], sleep_value: [], wakeup_value: [], timer_value: [] }) }
[2024-01-15T12:20:19 DEBUG govee::service::iot] Decoded: Generic([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]) for H6176
[2024-01-15T12:20:19 DEBUG govee::service::iot] Decoded: Generic([33, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 36]) for H6176
[2024-01-15T12:20:19 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-15T12:20:19 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-15T12:20:19 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-15T12:20:19 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state -> Available
[2024-01-15T12:20:19 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m78, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state', ... (9 bytes))
[2024-01-15T12:20:19 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes -> {"http":null,"iot":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-15T11:20:19.323990932Z"},"lan":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"LAN API","updated":"2024-01-15T11:19:59.687758269Z"},"overall":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-15T11:20:19.323990932Z"},"platform_metadata":{"capabilities":[{"alarmType":null,"eventState":null,"instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.on_off"},{"alarmType":null,"eventState":null,"instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.toggle"},{"alarmType":null,"eventState":null,"instance":"brightness","parameters":{"dataType":"INTEGER","range":{"max":100,"min":1,"precision":1},"unit":"unit.percent"},"type":"devices.capabilities.range"},{"alarmType":null,"eventState":null,"instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"brightness","range":{"max":100,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"max":16777215,"min":0,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"max":9000,"min":2000,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"lightScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"dataType":"ENUM","defaultValue":null,"fieldName":"musicMode","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},{"dataType":"INTEGER","defaultValue":null,"fieldName":"sensitivity","range":{"max":100,"min":0,"precision":1},"required":true,"unit":"unit.percent"},{"dataType":"ENUM","defaultValue":null,"fieldName":"autoColor","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":false,"unit":null}]},"type":"devices.capabilities.music_setting"},{"alarmType":null,"eventState":null,"instance":"diyScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"snapshot","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"}],"device":"0F:AD:C2:39:32:33:4B:06","deviceName":"H6176_4B06","sku":"H6176","type":"devices.types.light"},"platform_state":null}
[2024-01-15T12:20:19 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m79, 'gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes', ... (4106 bytes))
[2024-01-15T12:20:19 TRACE govee::hass_mqtt::light] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 255, b: 255 }, brightness: 1, scene: Some("Atlantis"), source: "AWS IoT API", updated: 2024-01-15T11:20:19.323990932Z }
[2024-01-15T12:20:19 TRACE govee::service::hass] gv2mqtt/light/0FADC23932334B06/state -> {"state":"OFF"}
[2024-01-15T12:20:19 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m80, 'gv2mqtt/light/0FADC23932334B06/state', ... (15 bytes))
[2024-01-15T12:20:19 TRACE govee::service::hass] gv2mqtt/switch/0FADC23932334B06/powerSwitch/state -> OFF
[2024-01-15T12:20:19 DEBUG mosquitto_rs::lowlevel] Client (null) sending PUBLISH (d0, q0, r0, m81, 'gv2mqtt/switch/0FADC23932334B06/powerSwitch/state', ... (3 bytes))
[2024-01-15T12:20:19 TRACE govee::hass_mqtt::switch] CapabilitySwitch::notify_state: didn't find state for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) gradientToggle
the last Warning disappeared
Please adjust your debug log level; rather than using trace
, use govee=trace
, so that it is easier to see what is happening in the application.
Can you remind me what exactly you are trying and what isn't working? It's not obvious from the logs!
Sorry if I was not descriptive enough in the "Describe the issue" section. What is not working is that the light is on (in real life) but the state of the light claims OFF after turning the light ON with an effect change.
Step by step repro:
{"state": "ON", "effect": "Atlantis"}
on topic gv2mqtt/light/0FADC23932334B06/command
I tried this with my other light H6076 and it works without any issue, so the problem should be with H6176.
new logs with govee=trace
. Hope the filtering helps, but all the below is present in previous logs as well.
[2024-01-16T09:39:25 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176): {
"state": "ON",
"effect": "Atlantis"
}
[2024-01-16T09:39:25 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) to scene Atlantis
[2024-01-16T09:39:25 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-16T09:39:25 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-16T09:39:25 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-16T09:39:26 TRACE govee::service::iot] GA/26b3505415863ed3c1b21c0305e265c3 -> {"proType":2,"sku":"H6176","device":"0F:AD:C2:39:32:33:4B:06","softVersion":"3.04.30","wifiSoftVersion":"2.05.08","wifiHardVersion":"1.02.00","cmd":"ptReal","type":1,"transaction":"oapi_1705394365719","pactType":1,"pactCode":1,"state":{"result":1},"op":{"command":["owIAAAAAAAAAAAAAAAAAAAAAAKE=","MwUAAAAAAAAAAAAAAAAAAAAAADY="]}}
[2024-01-16T09:39:26 DEBUG govee::service::iot] Packet { sku: Some("H6176"), device: Some("0F:AD:C2:39:32:33:4B:06"), cmd: Some("ptReal"), msg: None, state: StateUpdate { on_off: None, brightness: None, color: None, color_temperature_kelvin: None, sku: None, device: None }, op: Some(OpData { command: [Base64HexBytes([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]), Base64HexBytes([33, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 36])], mode_value: [], sleep_value: [], wakeup_value: [], timer_value: [] }) }
[2024-01-16T09:39:26 DEBUG govee::service::iot] Decoded: Generic([A3, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, A1]) for H6176
[2024-01-16T09:39:26 DEBUG govee::service::iot] Decoded: Generic([33, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 36]) for H6176
[2024-01-16T09:39:26 TRACE govee::cache] cache hit for scene-list-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-16T09:39:26 TRACE govee::cache] cache hit for scene-list-diy-H6176-0F:AD:C2:39:32:33:4B:06
[2024-01-16T09:39:26 TRACE govee::cache] cache hit for scenes-H6176
[2024-01-16T09:39:26 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/state -> Available
[2024-01-16T09:39:26 TRACE govee::service::hass] gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes -> {"http":null,"iot":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-16T08:39:26.627210501Z"},"lan":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"LAN API","updated":"2024-01-16T08:38:59.385691446Z"},"overall":{"brightness":1,"color":{"b":255,"g":255,"r":0},"kelvin":0,"on":false,"online":null,"scene":"Atlantis","source":"AWS IoT API","updated":"2024-01-16T08:39:26.627210501Z"},"platform_metadata":{"capabilities":[{"alarmType":null,"eventState":null,"instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.on_off"},{"alarmType":null,"eventState":null,"instance":"gradientToggle","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.toggle"},{"alarmType":null,"eventState":null,"instance":"brightness","parameters":{"dataType":"INTEGER","range":{"max":100,"min":1,"precision":1},"unit":"unit.percent"},"type":"devices.capabilities.range"},{"alarmType":null,"eventState":null,"instance":"segmentedBrightness","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"brightness","range":{"max":100,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"segmentedColorRgb","parameters":{"dataType":"STRUCT","fields":[{"dataType":"Array","defaultValue":null,"elementRange":{"max":14,"min":0},"elementType":"INTEGER","fieldName":"segment","options":[],"required":true,"size":{"max":15,"min":1}},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":true,"unit":null}]},"type":"devices.capabilities.segment_color_setting"},{"alarmType":null,"eventState":null,"instance":"colorRgb","parameters":{"dataType":"INTEGER","range":{"max":16777215,"min":0,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"colorTemperatureK","parameters":{"dataType":"INTEGER","range":{"max":9000,"min":2000,"precision":1},"unit":null},"type":"devices.capabilities.color_setting"},{"alarmType":null,"eventState":null,"instance":"lightScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"musicMode","parameters":{"dataType":"STRUCT","fields":[{"dataType":"ENUM","defaultValue":null,"fieldName":"musicMode","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},{"dataType":"INTEGER","defaultValue":null,"fieldName":"sensitivity","range":{"max":100,"min":0,"precision":1},"required":true,"unit":"unit.percent"},{"dataType":"ENUM","defaultValue":null,"fieldName":"autoColor","options":[{"name":"on","value":1},{"name":"off","value":0}],"required":false},{"dataType":"INTEGER","defaultValue":null,"fieldName":"rgb","range":{"max":16777215,"min":0,"precision":1},"required":false,"unit":null}]},"type":"devices.capabilities.music_setting"},{"alarmType":null,"eventState":null,"instance":"diyScene","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"},{"alarmType":null,"eventState":null,"instance":"snapshot","parameters":{"dataType":"ENUM","options":[]},"type":"devices.capabilities.dynamic_scene"}],"device":"0F:AD:C2:39:32:33:4B:06","deviceName":"H6176_4B06","sku":"H6176","type":"devices.types.light"},"platform_state":null}
[2024-01-16T09:39:26 TRACE govee::hass_mqtt::light] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 255, b: 255 }, brightness: 1, scene: Some("Atlantis"), source: "AWS IoT API", updated: 2024-01-16T08:39:26.627210501Z }
[2024-01-16T09:39:26 TRACE govee::service::hass] gv2mqtt/light/0FADC23932334B06/state -> {"state":"OFF"}
[2024-01-16T09:39:26 TRACE govee::service::hass] gv2mqtt/switch/0FADC23932334B06/powerSwitch/state -> OFF
[2024-01-16T09:39:26 TRACE govee::hass_mqtt::switch] CapabilitySwitch::notify_state: didn't find state for H6176_4B06 (0F:AD:C2:39:32:33:4B:06 H6176) gradientToggle
I guess from the logs you can see:
msg: None, state: StateUpdate { on_off: None .......
(I guess this is already parsed)I tried to record a video of what am I doing and that the status is showing OFF after turning the strip ON. Note that the light strip will turn ON after the command is published.
I can also see a new MQTT message after the command on topic gv2mqtt/sensor/sensor-0FADC23932334B06-gv2mqtt-status/attributes
maybe could be useful
{
"http": null,
"iot": {
"brightness": 1,
"color": {
"b": 255,
"g": 255,
"r": 0
},
"kelvin": 0,
"on": false,
"online": null,
"scene": "Atlantis",
"source": "AWS IoT API",
"updated": "2024-01-16T11:17:40.726495678Z"
},
"lan": {
"brightness": 1,
"color": {
"b": 255,
"g": 255,
"r": 0
},
"kelvin": 0,
"on": false,
"online": null,
"scene": "Atlantis",
"source": "LAN API",
"updated": "2024-01-16T11:17:32.183292146Z"
},
"overall": {
"brightness": 1,
"color": {
"b": 255,
"g": 255,
"r": 0
},
"kelvin": 0,
"on": false,
"online": null,
"scene": "Atlantis",
"source": "AWS IoT API",
"updated": "2024-01-16T11:17:40.726495678Z"
},
"platform_metadata": {
"capabilities": [
{
"alarmType": null,
"eventState": null,
"instance": "powerSwitch",
"parameters": {
"dataType": "ENUM",
"options": [
{
"name": "on",
"value": 1
},
{
"name": "off",
"value": 0
}
]
},
"type": "devices.capabilities.on_off"
},
{
"alarmType": null,
"eventState": null,
"instance": "gradientToggle",
"parameters": {
"dataType": "ENUM",
"options": [
{
"name": "on",
"value": 1
},
{
"name": "off",
"value": 0
}
]
},
"type": "devices.capabilities.toggle"
},
{
"alarmType": null,
"eventState": null,
"instance": "brightness",
"parameters": {
"dataType": "INTEGER",
"range": {
"max": 100,
"min": 1,
"precision": 1
},
"unit": "unit.percent"
},
"type": "devices.capabilities.range"
},
{
"alarmType": null,
"eventState": null,
"instance": "segmentedBrightness",
"parameters": {
"dataType": "STRUCT",
"fields": [
{
"dataType": "Array",
"defaultValue": null,
"elementRange": {
"max": 14,
"min": 0
},
"elementType": "INTEGER",
"fieldName": "segment",
"options": [],
"required": true,
"size": {
"max": 15,
"min": 1
}
},
{
"dataType": "INTEGER",
"defaultValue": null,
"fieldName": "brightness",
"range": {
"max": 100,
"min": 0,
"precision": 1
},
"required": true,
"unit": null
}
]
},
"type": "devices.capabilities.segment_color_setting"
},
{
"alarmType": null,
"eventState": null,
"instance": "segmentedColorRgb",
"parameters": {
"dataType": "STRUCT",
"fields": [
{
"dataType": "Array",
"defaultValue": null,
"elementRange": {
"max": 14,
"min": 0
},
"elementType": "INTEGER",
"fieldName": "segment",
"options": [],
"required": true,
"size": {
"max": 15,
"min": 1
}
},
{
"dataType": "INTEGER",
"defaultValue": null,
"fieldName": "rgb",
"range": {
"max": 16777215,
"min": 0,
"precision": 1
},
"required": true,
"unit": null
}
]
},
"type": "devices.capabilities.segment_color_setting"
},
{
"alarmType": null,
"eventState": null,
"instance": "colorRgb",
"parameters": {
"dataType": "INTEGER",
"range": {
"max": 16777215,
"min": 0,
"precision": 1
},
"unit": null
},
"type": "devices.capabilities.color_setting"
},
{
"alarmType": null,
"eventState": null,
"instance": "colorTemperatureK",
"parameters": {
"dataType": "INTEGER",
"range": {
"max": 9000,
"min": 2000,
"precision": 1
},
"unit": null
},
"type": "devices.capabilities.color_setting"
},
{
"alarmType": null,
"eventState": null,
"instance": "lightScene",
"parameters": {
"dataType": "ENUM",
"options": []
},
"type": "devices.capabilities.dynamic_scene"
},
{
"alarmType": null,
"eventState": null,
"instance": "musicMode",
"parameters": {
"dataType": "STRUCT",
"fields": [
{
"dataType": "ENUM",
"defaultValue": null,
"fieldName": "musicMode",
"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
},
{
"dataType": "INTEGER",
"defaultValue": null,
"fieldName": "sensitivity",
"range": {
"max": 100,
"min": 0,
"precision": 1
},
"required": true,
"unit": "unit.percent"
},
{
"dataType": "ENUM",
"defaultValue": null,
"fieldName": "autoColor",
"options": [
{
"name": "on",
"value": 1
},
{
"name": "off",
"value": 0
}
],
"required": false
},
{
"dataType": "INTEGER",
"defaultValue": null,
"fieldName": "rgb",
"range": {
"max": 16777215,
"min": 0,
"precision": 1
},
"required": false,
"unit": null
}
]
},
"type": "devices.capabilities.music_setting"
},
{
"alarmType": null,
"eventState": null,
"instance": "diyScene",
"parameters": {
"dataType": "ENUM",
"options": []
},
"type": "devices.capabilities.dynamic_scene"
},
{
"alarmType": null,
"eventState": null,
"instance": "snapshot",
"parameters": {
"dataType": "ENUM",
"options": []
},
"type": "devices.capabilities.dynamic_scene"
}
],
"device": "0F:AD:C2:39:32:33:4B:06",
"deviceName": "H6176_4B06",
"sku": "H6176",
"type": "devices.types.light"
},
"platform_state": null
}
New information: when I publish a command with brightness specified as well, the state updates correctly to ON.
{
"brightness": 10,
"state": "ON",
"effect": "Atlantis"
}
Thanks for spelling things out. So I think the current state of things is this:
just tried out
Therefore the state may report incorrectly until you click on the "Request Platform API State" diagnostic button
and interestingly it doesn't help: The API returns an OFF state, So I guess there is a bug in the firmware of the light itself?
Well, now that I know it can be hacked by providing "brightness" as well, I am not blocked anymore for my automation plan.
Oh, it seems like that is a bug to report to Govee then!
Govee Device SKU
H6176
Govee2MQTT Version
2024.01.10-2ddf9413
Describe the issue
Startup Diagnostics
[2024-01-11T09:28:18 INFO govee::commands::serve] Starting service. version 2024.01.10-2ddf9413 [2024-01-11T09:28:18 INFO govee::commands::serve] Querying platform API for device list [2024-01-11T09:28:19 INFO govee::commands::serve] Querying undocumented API for device + room list [2024-01-11T09:28:21 INFO govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted. [2024-01-11T09:28:21 INFO govee::commands::serve] Starting LAN discovery [2024-01-11T09:28:21 INFO govee::commands::serve] Waiting 10 seconds for LAN API discovery [2024-01-11T09:28:21 INFO govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted. [2024-01-11T09:28:31 INFO govee::commands::serve] Devices returned from Govee's APIs [2024-01-11T09:28:31 INFO govee::commands::serve] H6176_4B06 (0F:AD:C2:39:32:33:4B:06) sku=H6176 [2024-01-11T09:28:31 INFO govee::commands::serve] LAN API: ip=10.0.0.136 [2024-01-11T09:28:31 INFO govee::commands::serve] Platform API: devices.types.light. supports_rgb=true supports_brightness=true [2024-01-11T09:28:31 INFO govee::commands::serve] color_temp=Some((2000, 9000)) segment_rgb=Some(0..15) [2024-01-11T09:28:31 INFO govee::commands::serve] Undoc: room=None supports_iot=true ble_only=false [2024-01-11T09:28:31 INFO govee::commands::serve] Quirk { sku: "H6176", icon: "mdi:light-bulb", supports_rgb: true, supports_brightness: true, color_temp_range: Some((2000, 9000)), avoid_platform_api: false, ble_only: false, lan_api_capable: true, device_type: Light, supports_scenes: None } [2024-01-11T09:28:31 INFO govee::commands::serve] [2024-01-11T09:28:31 INFO govee::service::http] http server addr is 0.0.0.0:8056 [2024-01-11T09:28:37 INFO govee::service::hass] Wait 1s for hass to settle on 20 entity configs [2024-01-11T09:28:38 INFO govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted. [2024-01-11T09:31:36 INFO govee::service::hass] Command for H6176_4B06 (0F:AD:C2:39:32:33:4B:06): { "state": "ON", "effect": "Atlantis" } [2024-01-11T09:31:36 INFO govee::service::state] Using Platform API to set H6176_4B06 (0F:AD:C2:39:32:33:4B:06) to scene Atlantis
Additional Logs
MQTT Explorer: the light in real life is ON (inconsistent state)
Home Assistant Logs
Anything else?
related: https://github.com/wez/govee2mqtt/issues/41