The Govee integration allows you to control and monitor lights using the Govee API.
To set up this integration, click Configuration in the sidebar and then click Integrations. Click the + icon to add "Govee" to the integrations. An API key is necessary, you need to obtain it in the 'Govee Home' app on your mobile, in the User menu - About us - Apply for API Key. The key will be sent to you by email.
A lot of effort is going into that integration. So if you can afford it and want to support us:
Thank you!
Some devices do not support pulling state. In this case we assume the state on your last input. For others, we assume the state just after controlling the light, but will otherwise request it from the cloud API.
You shouldn't use this feature in normal operation, but if something is broke e.g. on Govee API you could help yourself and others on the forum with a little tweak.
Not all attribute updates can be disabled, but most can. Fiddling here could also lead to other misbehavours, but it could help with some issues.
Let's talk about an example:
We can have state from two sources: 'API' and 'HISTORY'. History for example means, when we turn on a light we already guess the state will be on, so we set a history state of on before we get data from the API. In the default configuration you could also see this, as it shows two buttons until the final state from API arrives.
So let's say we have an issue, that the ON/OFF state from API is wrong, we always get OFF. (This happended, and this is why I developed that feature). If we disable the power state we get from API we could work around this, and thats exactly what we do:
- 'API' or 'History': state from which source do we want to disable? In our example the API state is wrong, as we could see in logs, so we choose 'API'
- Look up the attribute you want to disable in GoveeDevice data class. Don't worry, you don't need to understand any of the code here. Here is that data class (click). In our Example we will find 'power_state'
- Next, in Home Assistant we open Configuration - Integrations and click on the options on the Govee integration. Here is an example how this config option could look:
- With the information from 1. and 2. we could write a string disabling power_state from API. This will do the trick for our case:
API:power_state
IF you want to disable a state from both sources, do that separately. You may have as many disables as you like.
API:online;HISTORY:online
If you fix an issue like that, consider helping other users on the forum thread (click).
ALWAYS REMEMBER: this should always be a temporarly workaround, if you use it in daily business you should probably request a feature or bug fix :)
To remind you disabling it asap, this wil log a warning on every update.
Usually you don't have to do anything here - just in case something feels wrong read on:
40:83:FF:FF:FF:FF:FF:FF:
set_brightness_max: 100
get_brightness_max: 100
before_set_brightness_turn_on: false
config_offline_is_off: false
Different Govee devices use different settings. These will be learned by the used library, or can be configured by you.
- set_brightness_max: is autolearned, defines the range to set the brightness to 0-100 or 0-254.
- get_brightness_max: is autolearned, defines the range how to interpet brightness state (also 0-100 or 0-254).
- before_set_brightness_turn_on: Configurable by you, default false. When true, if the device is off and you set the brightness > 0 the device is turned on first, then after a second the brightness is set. Some device don't turn on with the set brightness command.
- config_offline_is_off: Configurable by you, default false. This is useful if your device is e.g. powered by a TV's USB port, where when the TV is off, the LED is also off. Usually we stay in the state we know, this changes this to OFF state when the device disconnects.
Support thread is here: https://community.home-assistant.io/t/govee-led-strips-integration/228516 There you'll also find links to code repositories and their issue trackers.
For bug reports, include the debug log, which can be enabled in configuration YAML + restart:
logger:
default: warning
logs:
homeassistant.components.govee: debug
custom_components.govee: debug
govee_api_laggat: debug
Then in Settings - Logs click on “full logs” button and add them to the bug report after removing personal data.
You can set a pull interval, but don't set it too low as the API has a limit of 60 requests per minute, and each device needs one request per state pull and control action. If you have more than one lamp use a higher interval. Govee wants to implement a single request for all devices in 2021.
Once the integration is active, you will see all your registered devices, and may control on/off, brightness, color temperature and color.