Govee / Dreamcoulour LED Strips

Hm, actually if you receive a wrong status, I wouldn’t know why it should impact the other device.

What if you only include the one or the other. Do they work then (not having them at the same time).

And let me know when Govee has fixed the issue on their side and have provided an update. Currently I have no idea how I could solve it.

It must definitely have something to do with the H60A1. As soon as I activate it, only the entries with “trigger Refresh Status of device Govee Light…” appear:

H60A1 alone:

2024-07-08 16:25:34.352 [DEBUG] [.binding.govee.internal.GoveeHandler] - Starting refresh trigger job for thing Govee Light H60A1 
2024-07-08 16:25:34.452 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1
2024-07-08 16:25:34.453 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'govee:govee-light:H60A1' changed from UNKNOWN to ONLINE
2024-07-08 16:25:34.459 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.60 = {"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":250,"color":{"r":1,"g":10,"b":0},"colorTemInKelvin":16565}}}
2024-07-08 16:25:34.459 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H60A1 
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 0
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 250
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 16565
2024-07-08 16:25:34.459 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 0,0,0 vs adaptedColor: 114,100,0
2024-07-08 16:25:34.460 [TRACE] [.binding.govee.internal.GoveeHandler] - UPDATING HSB old: 0,0,0 != 114,100,0
2024-07-08 16:25:34.460 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 208% vs new: 16565 K
2024-07-08 16:25:34.460 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 208% vs new: 16565 K
2024-07-08 16:25:39.453 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1
2024-07-08 16:25:44.453 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1

One good reply…

H60A1 and H6072:

2024-07-08 16:24:45.565 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H6072
2024-07-08 16:24:45.577 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.54 = {"msg":{"cmd":"devStatus","data":{"onOff":1,"brightness":52,"color":{"r":255,"g":255,"b":255},"colorTemInKelvin":3190}}}
2024-07-08 16:24:45.577 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H6072 
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 1
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 52
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=255, g=255, b=255]
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 3190
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 0,0,52 vs adaptedColor: 0,0,52
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K
2024-07-08 16:24:45.578 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K
2024-07-08 16:24:46.151 [DEBUG] [.binding.govee.internal.GoveeHandler] - Starting refresh trigger job for thing Govee Light H60A1 
2024-07-08 16:24:46.151 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'govee:govee-light:H60A1' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2024-07-08 16:24:46.152 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'govee:govee-light:H60A1' changed from INITIALIZING to UNKNOWN
2024-07-08 16:24:46.254 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1
2024-07-08 16:24:46.256 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'govee:govee-light:H60A1' changed from UNKNOWN to ONLINE
2024-07-08 16:24:46.261 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.60 = {"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":250,"color":{"r":1,"g":10,"b":0},"colorTemInKelvin":16565}}}
2024-07-08 16:24:46.261 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H60A1 
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 0
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 250
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 16565
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 0,0,0 vs adaptedColor: 114,100,0
2024-07-08 16:24:46.261 [TRACE] [.binding.govee.internal.GoveeHandler] - UPDATING HSB old: 0,0,0 != 114,100,0
2024-07-08 16:24:46.262 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 208% vs new: 16565 K
2024-07-08 16:24:46.262 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 208% vs new: 16565 K
2024-07-08 16:24:50.566 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H6072
2024-07-08 16:24:51.260 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1
2024-07-08 16:24:55.584 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H6072
2024-07-08 16:24:56.261 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1

H6072 alone:

2024-07-08 16:24:20.559 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H6072
2024-07-08 16:24:20.574 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.54 = {"msg":{"cmd":"devStatus","data":{"onOff":1,"brightness":52,"color":{"r":255,"g":255,"b":255},"colorTemInKelvin":3190}}}
2024-07-08 16:24:20.574 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H6072 
2024-07-08 16:24:20.574 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-08 16:24:20.574 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 1
2024-07-08 16:24:20.575 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 52
2024-07-08 16:24:20.575 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=255, g=255, b=255]
2024-07-08 16:24:20.575 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 3190
2024-07-08 16:24:20.575 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 0,0,52 vs adaptedColor: 0,0,52
2024-07-08 16:24:20.575 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K
2024-07-08 16:24:20.576 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K

It doesn’t matter in which order I activate the things, as soon as the H60A1 is added, I no longer receive any updates. For both devices!

It does indeed appear that the H60A1 is preventing the binding from reading the data from both lamps. There seems to be no crach or stacktrace, but it doesn’t work…

New statement from support: The H60A1 is to receive an update in August!

Please do not post screenshots or part of them. This is hard to read on mobile devices and cannot be quoted. Please post logs as plain text in code fences.

Sorry…

Better? :slight_smile:

1 Like

Now I have finally been able to recreate the problem :slight_smile:

To do this, I created a test device within the govee binding, which I respond to directly via powershell from my computer. I can therefore also see the incoming values in the openHAB log…

The following values cause the govee binding to crash, but without a log entry:

{"msg": {"cmd": "devStatus", "data": {"onOff": 0, "brightness": 100, "color": {"r": 1, "g": 10, "b": 0}, "colorTemInKelvin": 9070}}}

If “colorTemInKelvin” >= 9070, the value of “onOff” does not matter.

{"msg": {"cmd": "devStatus", "data": {"onOff": 1, "brightness": 101, "color": {"r": 1, "g": 10, "b": 0}, "colorTemInKelvin": 9096}}}

If “onOff” = 1 and “brightness” >= 101.

Log:

2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 0
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 250
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 1000
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 114,100,0 vs adaptedColor: 114,100,0
2024-07-11 10:47:39.871 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 0% vs new: 2000 K
2024-07-11 10:47:41.054 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light test
2024-07-11 10:47:46.054 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light test
2024-07-11 10:47:47.259 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.246 = {"msg": {"cmd": "devStatus", "data": {"onOff": 1, "brightness": 101, "color": {"r": 1, "g": 10, "b": 0}, "colorTemInKelvin": 1000}}}
2024-07-11 10:47:47.259 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light test 
2024-07-11 10:47:47.259 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 1
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 101
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 1000
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 114,100,0 vs adaptedColor: 114,100,0
2024-07-11 10:47:47.260 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 0% vs new: 2000 K
2024-07-11 10:47:48.720 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.246 = {"msg": {"cmd": "devStatus", "data": {"onOff": 1, "brightness": 101, "color": {"r": 1, "g": 10, "b": 0}, "colorTemInKelvin": 1000}}}
2024-07-11 10:47:48.720 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light test 
2024-07-11 10:47:48.720 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State
2024-07-11 10:47:48.720 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 1
2024-07-11 10:47:48.720 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 101
2024-07-11 10:47:48.720 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]
2024-07-11 10:47:48.720 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 1000
2024-07-11 10:47:51.056 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light test
2024-07-11 10:47:56.056 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light test

I also had a look at the code and it must happen at the following point:

Within the “updateState” function, because the first log entries after receiving the “broken” values are still output.

@stefan.hoehn Maybe you can recreate the problem :slight_smile:

Thanks for debugging it. I’ll put it on my todo list. It would be awesome if you could create an issue on github, so I can pick it up there and fix it?

[govee] binding crashes silently if receiving “wrong” values · Issue #17041 · openhab/openhab-addons (github.com)

1 Like

Thanks for fixing, now its working :smiley:

2024-07-17 11:15:11.092 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H60A1

2024-07-17 11:15:11.093 [TRACE] [.govee.internal.CommunicationManager] - Sending {"msg":{"cmd":"devStatus","data":{}}} to 192.168.222.60

2024-07-17 11:15:11.102 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.60 = {"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":250,"color":{"r":1,"g":10,"b":0},"colorTemInKelvin":16565}}}

2024-07-17 11:15:11.103 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H60A1

2024-07-17 11:15:11.103 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State

2024-07-17 11:15:11.104 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 0

2024-07-17 11:15:11.104 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 250

2024-07-17 11:15:11.104 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=1, g=10, b=0]

2024-07-17 11:15:11.105 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 16565

2024-07-17 11:15:11.105 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 114,100,0 vs adaptedColor: 114,100,0

2024-07-17 11:15:11.105 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 4730 K 100% vs new: 9000 K

2024-07-17 11:15:11.106 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 4730 K 100% vs new: 9000 K

2024-07-17 11:15:12.243 [DEBUG] [.binding.govee.internal.GoveeHandler] - trigger Refresh Status of device Govee Light H6072

2024-07-17 11:15:12.244 [TRACE] [.govee.internal.CommunicationManager] - Sending {"msg":{"cmd":"devStatus","data":{}}} to 192.168.222.54

2024-07-17 11:15:12.255 [TRACE] [.govee.internal.CommunicationManager] - Response from 192.168.222.54 = {"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":52,"color":{"r":255,"g":255,"b":255},"colorTemInKelvin":3190}}}

2024-07-17 11:15:12.255 [DEBUG] [.govee.internal.CommunicationManager] - processing status updates for thing Govee Light H6072

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - Receiving Device State

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - newOnOff = 0

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - newBrightness = 52

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - newColor = Color[r=255, g=255, b=255]

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - newColorTempInKelvin = 3190

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - HSB old: 0,0,0 vs adaptedColor: 0,0,0

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K

2024-07-17 11:15:12.256 [TRACE] [.binding.govee.internal.GoveeHandler] - Color-Temperature Status: old: 2000 K 17% vs new: 3190 K
1 Like

Kudos go to @lsiepel who stepped in for me :metal: