Skip to content

Rhinomcd/govee-lan-api

Repository files navigation

Govee LAN API Client

PyPI version Quality Gate Status

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

Usage

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())