Датчики TUYA

Материал из MajorDoMo инфо
Версия от 20:45, 22 января 2024; Алексей (обсуждение | вклад) (Алексей переименовал страницу Категория:Датчики в Датчики TUYA)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Bluetooth Temp & Humidity Sensor, Model: THB2, BTH01

BTH01 датчик температуры
THB2.jpg


https://github.com/pvvx/THB2/blob/master/README.md

Данная прошивка позволяет отвязать датчик от облака.

Через скрипт на Python можно забирать данные.

from bluepy.btle import Scanner, DefaultDelegate, UUID, Peripheral
import time
from struct import unpack
import json
import requests
class ScanDelegate(DefaultDelegate):
    def __init__(self):
        DefaultDelegate.__init__(self)

    def handleDiscovery(self, dev, isNewDev, isNewData):
        if isNewDev:
            print ("Discovered device", dev.addr)
        elif isNewData:
            print ("Received new data from", dev.addr)


while True:
  scanner = Scanner()
  devices = scanner.scan(5.0)   
  for dev in devices:
    print ("Device %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi))
    CurrentDevAddr = dev.addr
    for (adtype, desc, value) in dev.getScanData():
        if 'd2fc' in value:        
         print ("  %s = %s = %s" % (desc, value, CurrentDevAddr))
         data = bytes(bytearray.fromhex(value))        
         xvalue = data[8:10]
         (temp,) = unpack("<h", xvalue)
         temp=str(temp / 100)
         xvalue = data[11:13]
         (humi,) = unpack("<h", xvalue)
         humi=str(humi / 100)
         bat=str(data[6])
         data='&temp='+temp+'&humi='+humi+'&bat='+bat
         url = 'http://IP/objects/?script=TUYA'+data
         response=requests.get(url)
         print(response.url)
         print(response.text)
         print(response.status_code)

Скрипт можно запускать из самого MJDM или оформить как сервис