Skip to content

About

ioBroker adapter for Govee WiFi devices — control via LAN, MQTT and Cloud.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

984 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ioBroker.govee-smart

Release: npm version stable Installations npm downloads

Build: Test and Release Node TypeScript License Sentry

Support: Ko-fi PayPal

Important

This adapter cannot be installed from github

Control all Govee WiFi products from ioBroker — lights, sensors and appliances. Bluetooth-only devices are not supported.

The adapter uses every available Govee channel (LAN, Cloud REST, AWS IoT MQTT, OpenAPI MQTT, App API) and picks whichever delivers the fastest answer for each device. Details in the Wiki.


Documentation

Full user documentation lives in the Wiki.

A short guide ships with the adapter: English · Deutsch.

Topic English Deutsch
Landing page Home Startseite
Channels, credentials, API key, experimental devices Setup Einrichtung
Supported models, status meanings, contributing yours Devices Geräte
Every datapoint, where it lands, what it does State tree Datenpunkte
Thermometers, heaters, kettles, etc. — state tree, updates, troubleshooting Sensors and Appliances Sensoren und Appliances
Lights — segment count, wizard, cut strips, batch commands Segments Segmente
Lights — scene library, speed slider, Cloud vs local snapshots Scenes and Snapshots Szenen und Snapshots
Lights — group fan-out, capability intersection Groups Gruppen
Folder naming, startup, diagnostics, troubleshooting Behavior Verhalten

Features

  • Capability-driven — states are generated from what the Govee API reports for each device, so a model nobody has listed yet still gets its datapoints. Per-model code exists only where a model needs it: a catalog correction where Govee's own data is wrong, a decoder for a device's status frames once they are measured.
  • LAN-first for lights — UDP multicast discovery, sub-50 ms commands, status updates via AWS IoT MQTT
  • Cloud + MQTT push for sensors and appliances — readings via the App API, events via the OpenAPI MQTT broker
  • Per-segment color and brightness for LED strips with the right capability, including batch commands and a visual segment-detection wizard (with a live, correctable strip map) for cut strips
  • Scenes, DIY scenes, music mode, gradient toggle — activated locally via BLE-over-LAN where possible, Cloud fallback otherwise
  • Cloud and local snapshots — Govee-app snapshots and ioBroker-side snapshots side by side
  • Groups — bridge Govee groups into ioBroker with capability intersection across members
  • Diagnostics report per device — tab Expert → Diagnostics: an anonymised JSON report to attach to a bug report
  • Works without credentials — LAN-only out of the box, each credential tier unlocks more
  • Rate-limited Cloud usage — daily and per-minute budgets aligned to Govee's quota

Sentry / Error reporting

This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. Reporting is active by default. It stays off when the ioBroker diagnostics setting is none (diag in the system configuration), when data reporting is disabled for this instance or its host (disableDataReporting), and on CI systems. A report contains the error with its stack trace and technical context such as versions and platform, plus an anonymous installation ID.

For details and how to disable it, see the Sentry plugin documentation. Error reporting requires js-controller 3.0 or newer.

Requirements

  • Node.js >= 22
  • ioBroker js-controller >= 7.2.5
  • ioBroker Admin >= 8.2.0
  • A Govee account and at least one Govee WiFi device. LAN control needs a light with LAN mode enabled in the Govee Home app — see Govee's LAN-supported device list.

Getting started

The adapter works LAN-only without any credentials. Adding an API key unlocks scenes, segments and appliance control. Adding your Govee email and password adds sensor readings (temperature/humidity via the App API), real-time status push and full group control. See the Setup page for credential levels, how to get an API key, and network requirements.


Device support

Each device shows its test status under diag.tier. The Devices page lists every supported model and what the status means.


Troubleshooting

Common issues (no devices discovered, empty scenes dropdown, segment colors not changing, limited group commands, delayed status updates) are covered on the Wiki Behavior / Verhalten page.

For anything else, open the adapter's Expert tab, press Diagnostics, pick the affected device and press the button — your browser saves the report as a file. Attach that file to a GitHub Issue; it is far too long to paste into one.


Acknowledgments

This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementation was informed by research from govee2mqtt by Wez Furlong. Their reverse-engineering of the Govee AWS IoT MQTT protocol and undocumented API endpoints was invaluable.


Changelog

WORK IN PROGRESS

  • Fixed: the diagnostics report contains the object tree again
  • Improved: the diagnostics report names the source of a device's reachability and segment count
  • Fixed: the colour temperature no longer keeps its old value while the light shows a colour, and the colour no longer shows Govee's placeholder in colour-temperature mode
  • New: a colour temperature set in the Govee app as a white colour also shows as colour temperature
  • Fixed: local snapshots and the segment wizard restore a colour as a colour and a colour temperature as a colour temperature
  • Fixed: a device renamed in the Govee app also shows its new name after a restart
  • Fixed: a device's IP address is no longer emptied when the adapter starts before it finds the device on the network again
  • Fixed: after a rate-limit answer from Govee, no further call goes to that server until the wait Govee asks for has passed
  • Improved: the adapter settings page loads about 8 MB less and opens faster
  • Changed: needs js-controller 7.2.5 and Admin 8.2.0

3.2.1 (2026-10-15)

  • Fixed: the H1771 table lamp no longer offers a DreamView switch that Govee refuses for this model

3.2.0 (2026-10-15)

  • New: lights without a local connection switch through your Govee account, faster than through the Cloud
  • Changed: a command shows as confirmed only when it really reached the device
  • Changed: a group command shows as confirmed only when every light of the group took it
  • New: a diagnostics report for each device in the Expert tab, with your personal data replaced by placeholders
  • Changed: the datapoint diag.lastExport is removed from every device
  • Improved: a device that does not answer no longer holds up the others
  • Fixed: a device reached only through the Cloud shows offline while the Cloud is not connected
  • Fixed: a heater's target temperature is shown and set in °C, also on models that work in °F
  • Fixed: the refresh button of a light is confirmed only when Govee answered
  • Changed: an untested model asks for a diagnostics report and never claims that it works
  • New: seven models added as untested: Smart Gateway 1s (H5044, R5044), Wi-Fi Gateway (H5151), Smart Light (H610E, H610F), Outdoor String Lights 2 (H7030), Smart Fan (H7108)
  • Improved: an outage of a Govee service is shown as a status instead of a stream of warnings
  • Fixed: the network address chosen in the settings now applies to every connection to Govee

3.1.1 (2026-10-01)

  • Fixed: a cloud command that fails because the Govee server name cannot be resolved is sent again within 10 seconds instead of being lost after one try
  • Fixed: after a failed command the light's real state is read back right away, so its datapoint no longer stays on the wrong value — also without a Govee account
  • Fixed: calls that never reached Govee (DNS or connection errors) no longer use up the daily budget, so an appliance is not blocked for the rest of the day
  • Fixed: a group command that only some of its lights took now names the lights that did not switch and why, so a dark light no longer goes unnoticed
  • Improved: connection errors in the log are written in plain words, e.g. that the Govee server name could not be resolved and the DNS is the likely cause

3.1.0 (2026-10-01)

  • Fixed: a rejected background token refresh of the Govee account now counts toward the login protection and asks to check email/password instead of retrying silently
  • Fixed: "Test login" in the connection card counts toward the account's login limit (3 per hour) and says when the next test is possible
  • Fixed: segment colours and brightness are confirmed only after the command went out — a refused Cloud command no longer leaves them acked
  • Fixed: stopping the adapter while it is still starting really stops it — it no longer goes on to search the network or log in to your Govee account afterwards
  • Fixed: a light found on the network before the saved data loads keeps its scene speed and remembered libraries after a restart
  • Fixed: a group offers only the colour temperatures every member supports, so no member is sent a value outside its range
  • Fixed: when Govee no longer accepts the account session, scene, music and DIY libraries, snapshots and groups ask for a fresh login instead of reading as empty
  • Fixed: a Cloud rate limit or rejected API key is reported once, with the real waiting time — no longer three times or with a wrong retry hint
  • Fixed: moving a 2.x device tree to its new id no longer loses recordings or room assignments when the move fails or is interrupted
  • Fixed: a light whose scene library has not loaded yet keeps its scenes.scene_speed datapoint, value and recording — a start without saved data deleted and re-created it
  • Improved: a restart leaves the object tree untouched when nothing changed, so scripts and history that watch object changes no longer see needless updates
  • Fixed: a mode or level dropdown only takes a value the device declares — a fan speed no longer shows 50, an air purifier's level no longer 0 in Auto mode
  • Fixed: the manual device sync after a failed start shows the Cloud connected and stops the pending retry; a device it adds gets its first values without a log warning
  • Fixed: a Govee e-mail or password of spaces only counts as not entered — at start, in the sensor hint and in the connection card's test
  • Fixed: the refresh button of a light keeps its scene list across restarts and corrects a wrong segment count; devices that are not lights no longer use up Cloud calls
  • Fixed: a temperature reading carries °C whichever way it arrives — a model that declares Fahrenheit no longer flips the unit to °F (the value is always °C)
  • Fixed: a segment colour above 255 is sent as 255 — it wrapped to 0 before; a segment brightness is rounded like the light's brightness
  • Improved: a lamp that is unplugged or unreachable on your network leaves one warning in the log instead of a new warning for every command you send to it
  • Fixed: a group that is switched off or set to a colour clears its scene and music dropdowns the same way a single light already does
  • Fixed: a heater that declares no temperature unit shows none instead of an invented °F; a command delivered after the device came back shows the value that was sent
  • Fixed: an untested model without catalog corrections no longer warns to turn on the experimental switch — it works as it is; the log only asks for a diagnostics report
  • Fixed: the settings describe the experimental switch for what it does — it turns on the catalog corrections of untested models; every device appears without it
  • Improved: after you press the device sync or the refresh button, the log tells you what it found, for example which new devices were added to the object tree
  • Fixed: the connection card words every answer in the admin's language — a full login window shows the time on your own clock, and a repeated login test no longer claims a code was just requested
  • Fixed: the music mode read from Govee's state answer showed the mode at that position instead of the reported one; a mode the device never declared is no longer written
  • Fixed: the segment detection wizard no longer counts a dark segment at the end when the measurement runs all the way to the longest strip Govee supports
  • Improved: appliance modes and levels and the device type show readable names in your ioBroker language; scripts may still write the names Govee uses, such as Auto

3.0.1 (2026-09-27)

  • Improved: the note the Admin shows before an update to 3.x is short now: the warning, one example old → new and a link to the details

Older changelogs can be found there

Support

Support Development

This adapter is free and open source. If you find it useful, consider buying me a coffee:

Ko-fi PayPal


License

MIT License

Copyright (c) 2026 krobi krobi@power-dreams.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Developed with assistance from Claude.ai

About

ioBroker adapter for Govee WiFi devices — control via LAN, MQTT and Cloud.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages