A simple API client for Govee's LAN UDP API
This was done in a weekend to help support a home assistant plugin for controlling govee devices over their new(ish) LAN API
pip install govee_lan_api
Here's some sample code that I'm using to test this -- formal API docs and tests coming soon.
from govee_lan_api import GoveeClient
import asyncio
import logging
LIVING_ROOM_LIGHT = '18:66:C4:32:38:30:1E:32'
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
PURPLE = (248, 207, 255)
async def main():
logging.basicConfig(level=logging.DEBUG)
client = GoveeClient()
await client.turn_on(LIVING_ROOM_LIGHT)
await client.set_brightness(LIVING_ROOM_LIGHT, 100)
await client.set_color_by_rgb(LIVING_ROOM_LIGHT, GREEN)
await client.set_brightness(LIVING_ROOM_LIGHT, 50)
await client.set_brightness(LIVING_ROOM_LIGHT, 1)
await client.set_brightness(LIVING_ROOM_LIGHT, 100)
await client.turn_on(LIVING_ROOM_LIGHT)
await client.set_color_by_rgb(LIVING_ROOM_LIGHT, RED)
await client.set_color_by_rgb(LIVING_ROOM_LIGHT, GREEN)
await client.set_color_by_rgb(LIVING_ROOM_LIGHT, BLUE)
await client.set_color_by_rgb(LIVING_ROOM_LIGHT, PURPLE)
if __name__ == "__main__":
asyncio.run(main())