Govee2MQTT Setup Guide - ajgillis04/GillisDockerDepot GitHub Wiki
Govee2MQTT Service Overview
Govee2MQTT bridges Govee LAN-enabled lights directly to your MQTT broker, allowing local API control, rapid status updates, and automation via Home Assistant without relying on Govee's cloud API.
Key Features & Requirements
- Local LAN Control: Provides fast, local control of Govee lighting fixtures (requires LAN Control enabled per device within the official Govee Home app).
- Network Mode: Operates using
network_mode: hostto facilitate local UDP device discovery across your network segment. - Home Assistant Integration: Automatically discovers connected Govee lights when linked to the same Mosquitto MQTT broker.
- Full Lighting Controls: Supports state, brightness, RGB color selection, lighting effects, and custom transitions.
Step 1: Deploy Service Template
- Copy the
govee2mqtt.yamltemplate into your active server compose directory:
cp compose/templates/govee2mqtt.yaml compose/server1/govee2mqtt.yaml
- Verify that your root
.envcontains the required network settings (SERVER_IP,TZ,GOVEE_MAC, etc.).
Step 2: Service Definition
# ------------------------------------------------------------------------------
# Govee2MQTT - LAN Control for Govee Lights
# ------------------------------------------------------------------------------
# This container bridges Govee LAN-enabled lights to MQTT, enabling
# real-time control and automation via Home Assistant.
#
# Key Features:
# - Local control of Govee lights (no cloud required)
# - Supports color, brightness, effects, and transitions
# - Publishes device state and listens for commands via MQTT
#
# Notes:
# - Requires LAN control enabled in Govee app
# - MQTT broker must be reachable at ${MQTT_HOST}
# ------------------------------------------------------------------------------
services:
govee2mqtt:
container_name: govee2mqtt.${HOST_NAME}
hostname: govee2mqtt.${HOST_NAME}.lan
image: ghcr.io/wez/govee2mqtt:latest
environment:
TZ: ${TZ}
GOVEE_MQTT_HOST: ${SERVER_IP}
PUID: ${PUID}
PGID: ${PGID}
MQTT_PORT: 1883
GOVEE_MAC: ${GOVEE_MAC}
GOVEE_MODEL: H705E
GOVEE_NAME: govee_outdoor
GOVEE_CONFIG: /config/config.yaml
volumes:
- ${DOCKERDIR}/govee2mqtt/config:/config
restart: always
network_mode: host
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
labels:
- "com.centurylinklabs.watchtower.enable=true"
Note: The volume mount is set to standard
${DOCKERDIR}/govee2mqtt/config:/configfor consistency with the rest of your appdata stack.
Deployment Commands
Launch or restart the container using your project stack flag:
-
Deploy Service:
docker compose -p mediaserver -f docker-compose-server1.yaml up -d govee2mqtt -
Check Container Logs (Device Discovery):
docker compose -p mediaserver -f docker-compose-server1.yaml logs -f govee2mqtt