Manage Govee DreamView T1 (H6199) BLE devices
Project description
Govee DreamView T1 (H6199) Ble client
This is a simple python client to control the Govee DreamView T1 (H6199) via BLE.
Limitations
The client was tested on a device with 1.10.04 / 3.02.01 FW/HW versions.
Getting current mode would not return currently set color of a static mode and wouldn't distinguish specific music modes and their parameters. The former is caused by device responding with all zeroes, and the latter can be fixed in the future.
There is no support for setting colors for specific segments, nor controling the brightness for individual segments.
Usage
The client uses bleak library and relies on it's BleakClient instance.
Client supports the following actions (from govee_h6199_ble.commands package):
- Get state
- power
- fw version
- hw version
- mac address
- brightness
- current mode
- Turn on/off
- Set brightness
- Set Static color mode
- Set Music color mode
- Energic mode
- Rythm mode
- Spectrum mode
- Rolling mode
- Set Video color mode
- Movie mode
- Game mode
More information can be found by inspecting the govee_h6199_ble.commands package.
Example
from bleak import BleakClient, BleakScanner
from govee_h6199_ble import GoveeH6199, GetFirmwareVersion, PowerOn, PowerOff
if __name__ == '__main__':
# scan and find first usable device
devices = await BleakScanner.discover()
named_devices = (device for device in devices if device.name)
h6199_devices = (
device for device in named_devices
if device.name.startswith("Govee_H6199")
)
if device := next(h6199_devices, None):
# connect
async with BleakClient(first_device) as client:
async with connected(client) as h6199:
power = await device.send_command(GetPowerState())
if power:
print("power on")
# get firmware version
fw_version = await device.send_command(GetFirmwareVersion())
print(fw_version)
# turn off
await device.send_command(PowerOff())
else:
# turn on
await device.send_command(PowerOn())
The chain of commands can be sent using send_commands but in this mode you will not receive any responses.
You can also run raw commands using:
async def command_with_reply(
self,
cmd: int,
group: int,
payload: list[int] | None = None,
timeout=5.0,
) -> bytes:...
and inspect responses manually.
Be aware, if the command is not implemented in the device this call command will raise asyncio.TimeoutError, since response will not be received.
Credits
Govee for the device and the app.
https://github.com/Obi2000/Govee-H6199-Reverse-Engineering for the details of the protocol.
Contributing
Both bug reports and pull requests are appreciated.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file govee_h6199_ble-0.2.1.tar.gz.
File metadata
- Download URL: govee_h6199_ble-0.2.1.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
578132499e968c776097c0936e37ac2da1c246fa9bc8bdc548e3cda5795fc02e
|
|
| MD5 |
391b402f355bc61cd0d3c90538daf00c
|
|
| BLAKE2b-256 |
d2b54044347db389d21c4052c5091789687fbc9ae339ac1d127423acf0c747bf
|
File details
Details for the file govee_h6199_ble-0.2.1-py3-none-any.whl.
File metadata
- Download URL: govee_h6199_ble-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
340a4b2179c4f0f92e06dcf9b27fc5579982d7e4c3a71aec82b58a98de4b8b7c
|
|
| MD5 |
ae0e8922a58380ea50f8f5a2cdfa5545
|
|
| BLAKE2b-256 |
9b2a55b4241ace9edd10cb0fd31f3f8354deabf592a20e2a4930c01c79e14711
|