Датчики TUYA

Материал из MajorDoMo инфо

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 или оформить как сервис