лови скрипт надо доустановить к питону пакет pahosega6549 писал(а): ↑Чт июл 05, 2018 5:08 pmвсем привет нужна ваша помощь, нужно подключить к мажеру 10 датчиков Xiaomi mi Flora Monitor, как я понял есть какой то скрипт на питоне, который может опрашивать эти датчики по блютус, но скрипт не под нашу систему и мне например как человеку далекому от этого не под силу это сделать, может кто выложит готовый скрипт сюда и еще инструкцию как это все использовать, есть сервер на компе под убунтой 16. и еще вопрос уже к Сергею, почему бы не запилить под такие устройства отдельный модуль? таких устройств очень много и думаю всем было бы интересна такая возможность
import time
from miflora.miflora_poller import MiFloraPoller, \
MI_CONDUCTIVITY, MI_MOISTURE, MI_LIGHT, MI_TEMPERATURE, MI_BATTERY
def update(address,idx_moist,idx_temp,idx_lux,idx_cond):
poller = MiFloraPoller(address)
# reading error in poller (happens sometime, you go and bug the original author):
#
# 26231 fertility
# 136% moisture
# 4804.2 temperature
# 61149 lux
loop = 0
try:
temp = poller.parameter_value("temperature")
except:
temp = 201
while loop < 2 and temp > 200:
print("Patched: Error reading value retry after 5 seconds...\n")
time.sleep(5)
poller = MiFloraPoller(address)
loop += 1
try:
temp = poller.parameter_value("temperature")
except:
temp = 201
if temp > 200:
print("Patched: Error reading value\n")
return
# global domoticzserver
print("Mi Flora: " + address)
print("Firmware: {}".format(poller.firmware_version()))
print("Name: {}".format(poller.name()))
print("Temperature: {}°C".format(poller.parameter_value("temperature")))
print("Moisture: {}%".format(poller.parameter_value(MI_MOISTURE)))
print("Light: {} lux".format(poller.parameter_value(MI_LIGHT)))
print("Fertility: {} uS/cm?".format(poller.parameter_value(MI_CONDUCTIVITY)))
print("Battery: {}%".format(poller.parameter_value(MI_BATTERY)))
val_bat = "{}".format(poller.parameter_value(MI_BATTERY))
publish.single("/flower_care/Battery/" + address, val_bat, hostname="192.168.1.13")
# Update temp
val_temp = "{}".format(poller.parameter_value("temperature"))
publish.single("/flower_care/Temperature/" + address, val_temp, hostname="192.168.1.13")
# Update lux
val_lux = "{}".format(poller.parameter_value(MI_LIGHT))
publish.single("/flower_care/LUX/" + address, val_lux, hostname="192.168.1.13")
# Update moisture
val_moist = "{}".format(poller.parameter_value(MI_MOISTURE))
publish.single("/flower_care/Moisture/" + address, val_moist, hostname="192.168.1.13")
# Update fertility
val_cond = "{}".format(poller.parameter_value(MI_CONDUCTIVITY))
publish.single("/flower_care/Fertitily/" + address, val_cond, hostname="192.168.1.13")
time.sleep(1)
# format address, moist (%), temp (°C), lux, fertility
print("\n1: Guest Room")
update("C4:7C:8D:62:DE:4A","470","138","140","141")
print("\n2: Bad Room")
update("C4:7C:8D:63:3C:3C","471","338","339","348")
print("\n3: Cabinet")
update("C4:7C:8D:63:55:11","472","337","340","347")
тут три датчика