FD50 GATT fallback: const.py

This commit is contained in:
2026-07-22 01:54:13 +03:00
commit 50a75e89e8
@@ -0,0 +1,60 @@
from __future__ import annotations
from enum import Enum
GATT_MTU = 20
DEFAULT_ATTEMPTS = 0xFFFF
CHARACTERISTIC_NOTIFY = "00002b10-0000-1000-8000-00805f9b34fb"
CHARACTERISTIC_WRITE = "00002b11-0000-1000-8000-00805f9b34fb"
# Newer TuyaOS firmware (e.g. jtmspro hc7n0urm fw 6.0) drops the legacy
# 0xA201 service and exposes the data channel via these characteristics
# of the 0xFD50 service instead.
CHARACTERISTIC_NOTIFY_FD50 = "00000002-0000-1001-8001-00805f9b07d0"
CHARACTERISTIC_WRITE_FD50 = "00000001-0000-1001-8001-00805f9b07d0"
SERVICE_UUID = "0000a201-0000-1000-8000-00805f9b34fb"
MANUFACTURER_DATA_ID = 0x07D0
RESPONSE_WAIT_TIMEOUT = 60
class TuyaBLECode(Enum):
FUN_SENDER_DEVICE_INFO = 0x0000
FUN_SENDER_PAIR = 0x0001
FUN_SENDER_DPS = 0x0002
FUN_SENDER_DEVICE_STATUS = 0x0003
FUN_SENDER_UNBIND = 0x0005
FUN_SENDER_DEVICE_RESET = 0x0006
FUN_SENDER_OTA_START = 0x000C
FUN_SENDER_OTA_FILE = 0x000D
FUN_SENDER_OTA_OFFSET = 0x000E
FUN_SENDER_OTA_UPGRADE = 0x000F
FUN_SENDER_OTA_OVER = 0x0010
FUN_SENDER_DPS_V4 = 0x0027
FUN_RECEIVE_DP = 0x8001
FUN_RECEIVE_TIME_DP = 0x8003
FUN_RECEIVE_SIGN_DP = 0x8004
FUN_RECEIVE_SIGN_TIME_DP = 0x8005
FUN_RECEIVE_DP_V4 = 0x8006
FUN_RECEIVE_TIME_DP_V4 = 0x8007
FUN_RECEIVE_TIME1_REQ = 0x8011
FUN_RECEIVE_TIME2_REQ = 0x8012
class TuyaBLEDataPointType(Enum):
DT_RAW = 0
DT_BOOL = 1
DT_VALUE = 2
DT_STRING = 3
DT_ENUM = 4
DT_BITMAP = 5