A simple API for BLE-enabled Vevor independent heaters
Project description
vevor-heater-ble
Communication protocol
The BLE communication protocol for the heater is rather convoluted. Instead of requesting an authentication passkey, the heater expects the client to write the passkey to a predefined characteristic to authenticate itself. The heater then responds with a single notification providing the values. Any other attempts to retrieve the value of the characreristic will result in an empty response.
The service and the characteristic are identified by the following UUIDs respectively: 0000ffe0-0000-1000-8000-00805f9b34fb and 0000ffe1-0000-1000-8000-00805f9b34fb.
The latter is also used to subscribe to the response notifications.
Request format
| Offset | Value | Description |
|---|---|---|
| 0 | 0xAA | Magic version constant |
| 1 | 0x55 | Magic version constant |
| 2 | 0x0C | Two most significant decimal password digits (12) |
| 3 | 0x22 | Two least significant decimal password digits (34) |
| 4 | 0x01-0x04 | Command to run (see below for more details) |
| 5 | depends | Value to send alongside the command. |
| 6 | 0x00 | ??? (padding, always zero) |
| 7 | any | Checksum, sum of values at offset 2-6 modulo 256 |
Request commands
| Value | Accepted Data Values | Description |
|---|---|---|
| 1 | 0 | Ping, readonly device status request |
| 2 | 1, 2 | Operational mode. 1 - manual power level, 2 - automatic temperature-based control |
| 3 | 0, 1 | Turn the heater off / on |
| 4 | [1, 10] for op. mode 1, [8, 36] for op. mode 2 |
The desired temperature / power level |
Response format
All values are unsigned, little endian encoded integers, unless specified otherwise.
| Offset | Length | Values | Description |
|---|---|---|---|
| 0 | 1 | 0xAA | Magic version constant |
| 1 | 1 | 0x55 | Magic version constant |
| 2 | 1 | 0x01-0x04 | Command this message is a response to (see above for details) |
| 3 | 1 | 0x00, 0x01 | Heater power status (on / off) |
| 4 | 1 | 0x00-0x0A | Error code (range taken from printed manual) |
| 5 | 1 | 0x00-0x04 | Running state
|
| 6 | 2 | any | Altitude |
| 8 | 1 | 0x01, 0x02 | Operational mode |
| 9 | 1 | [1, 10] for op. mode 1, [8, 36] for op. mode 2 |
Target temperature / power level |
| 10 | 1 | [0, 9], only for for op. mode 2 |
Current power level. Offset by one when compared to the power level operation mode. |
| 11 | 2 | any, typ. [90, 180] |
Voltage of the power supply, in decivolts (0.1 V) |
| 13 | 2 | any | Temperature of the heating element, in degrees Celsius. |
| 15 | 2 | any | Temperature of the room, in degrees Celsius. |
| 17 | 1 | 0x01-0x0A | Display error code (should correspond with the error code on the heater display) |
| 18 | 1 | 0x00 | ??? (padding, always zero) |
| 19 | 1 | any | Checksum, sum of values at offsets [3;(last-1)] modulo 256 |
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 vevor-heater-ble-0.1.1.tar.gz.
File metadata
- Download URL: vevor-heater-ble-0.1.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eab45770dedf3ec3e71181007784f20154dd4960b1e24914a307dbaa7048f8d
|
|
| MD5 |
9753e315e3cf63b0354a94538f2dc149
|
|
| BLAKE2b-256 |
fd0d790c505f6c31342472e39d3735f65dd4123bcdc6ea555db58e23cd779462
|
File details
Details for the file vevor_heater_ble-0.1.1-py3-none-any.whl.
File metadata
- Download URL: vevor_heater_ble-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb3251b3be9149d33cb65f196ac72a846dc474339c2d00e4112b0f068870860
|
|
| MD5 |
ef333b68de77f2e737ea17dad90057f6
|
|
| BLAKE2b-256 |
8c1dbc1323d2baee83cac57ae79a95c6fcd184b1ab3976148b3ea2082e3747d5
|