Подключение исполнительных устройств, датчиков, контроллеров.
Модератор: immortal
-
Yashalta
- Сообщения: 317
- Зарегистрирован: Вс май 20, 2018 9:27 am
-
Благодарил (а):
160 раз
-
Поблагодарили:
29 раз
Сообщение
Yashalta » Сб фев 16, 2019 11:50 am
Подскажите не понимаю!
Я создал 2 свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" и они прекрасно получают сведения с датчика "DHT22".
А как теперь эти свойства привязать к простым устройствам "TempSensor01" и "HumSensor01" я не понимаю! Все мои мысли сводятся к написанию "костыля", что не есть правильно!

-
fandaymon
- Сообщения: 1569
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
40 раз
-
Поблагодарили:
578 раз
Сообщение
fandaymon » Сб фев 16, 2019 4:02 pm
Yashalta писал(а): ↑Сб фев 16, 2019 11:50 am
Подскажите не понимаю!
Я создал 2 свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" и они прекрасно получают сведения с датчика "DHT22".
А как теперь эти свойства привязать к простым устройствам "TempSensor01" и "HumSensor01" я не понимаю! Все мои мысли сводятся к написанию "костыля", что не есть правильно!
А зачем привязывать свойства к ПУ? Передавай температуру и влажность прямо в TempSensor01 и HumSensor01
-
Yashalta
- Сообщения: 317
- Зарегистрирован: Вс май 20, 2018 9:27 am
-
Благодарил (а):
160 раз
-
Поблагодарили:
29 раз
Сообщение
Yashalta » Сб фев 16, 2019 8:23 pm
fandaymon писал(а): ↑Сб фев 16, 2019 4:02 pm
А зачем привязывать свойства к ПУ? Передавай температуру и влажность прямо в TempSensor01 и HumSensor01
Я может не правильно выразился...
Вот тут у меня и проблема не знаю как прямо TempSensor01 и HumSensor01 передавать данные с "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" или может не нужно создавать свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" а как-то сразу передавать температуру и влажность в TempSensor01 и HumSensor01?
-
fandaymon
- Сообщения: 1569
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
40 раз
-
Поблагодарили:
578 раз
Сообщение
fandaymon » Сб фев 16, 2019 8:29 pm
Yashalta писал(а): ↑Сб фев 16, 2019 8:23 pm
fandaymon писал(а): ↑Сб фев 16, 2019 4:02 pm
А зачем привязывать свойства к ПУ? Передавай температуру и влажность прямо в TempSensor01 и HumSensor01
Я может не правильно выразился...
Вот тут у меня и проблема не знаю как прямо TempSensor01 и HumSensor01 передавать данные с "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" или может не нужно создавать свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" а как-то сразу передавать температуру и влажность в TempSensor01 и HumSensor01?
Код, который по ссылочке, заносит данные в TempSensor01 и HumSensor01
http://majordomo.smartliving.ru/forum/v ... 976#p69168
-
Yashalta
- Сообщения: 317
- Зарегистрирован: Вс май 20, 2018 9:27 am
-
Благодарил (а):
160 раз
-
Поблагодарили:
29 раз
Сообщение
Yashalta » Сб фев 16, 2019 11:05 pm
я добавил код который вы указали в свой скрипт, на python и мне выдает ошибку
Код: Выделить всё
root@majordomo:/home/pi/scripts# python dht22.py
Temp=24.0*C Humidity=21.3%
Traceback (most recent call last):
File "dht22.py", line 53, in <module>
f=urllib.urlopen(link)
NameError: name 'urllib' is not defined
root@majordomo:/home/pi/scripts#
-
fandaymon
- Сообщения: 1569
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
40 раз
-
Поблагодарили:
578 раз
Сообщение
fandaymon » Вс фев 17, 2019 12:24 am
Yashalta писал(а): ↑Сб фев 16, 2019 11:05 pm
я добавил код который вы указали в свой скрипт, на python и мне выдает ошибку
Код: Выделить всё
root@majordomo:/home/pi/scripts# python dht22.py
Temp=24.0*C Humidity=21.3%
Traceback (most recent call last):
File "dht22.py", line 53, in <module>
f=urllib.urlopen(link)
NameError: name 'urllib' is not defined
root@majordomo:/home/pi/scripts#
В начале скрипта надо написать import urllib
-
omship
- Сообщения: 8
- Зарегистрирован: Вс июн 11, 2017 11:07 am
- Откуда: Краснодар
-
Благодарил (а):
6 раз
-
Поблагодарили:
0
Сообщение
omship » Чт янв 30, 2020 12:37 am
Я создал скрипт temphum, добавил код
Код: Выделить всё
$answer = shell_exec('/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 20');
$pattern = '(\d+\.*\d*)';
preg_match_all($pattern, $answer, $matches);
setGlobal("TempSensor03.value",$matches[0][1]);
setGlobal("HumSensor01.value",$matches[0][0]);
, добавил в onNewMinute
, теперь каждые 5 минут заносит данные в TempSensor03 и HumSensor01
#ЗасебяизаСашку!
-
fandaymon
- Сообщения: 1569
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
40 раз
-
Поблагодарили:
578 раз
Сообщение
fandaymon » Чт янв 30, 2020 1:20 am
omship писал(а): ↑Чт янв 30, 2020 12:37 am
Я создал скрипт temphum, добавил код
Код: Выделить всё
$answer = shell_exec('/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 20');
$pattern = '(\d+\.*\d*)';
preg_match_all($pattern, $answer, $matches);
setGlobal("TempSensor03.value",$matches[0][1]);
setGlobal("HumSensor01.value",$matches[0][0]);
, добавил в onNewMinute
, теперь каждые 5 минут заносит данные в TempSensor03 и HumSensor01
Можно конечно и так, но это какое-то извращение - вычленять шаблоном результат, вместо того чтобы просто его отправить в МДМ

Если хочется работать со стороны МДМ, можно же просто поменять вывод программы AdafruitDHT.py, чтобы она выводила 2 числа, разделенных пробелом и воспользоватся
- За это сообщение автора fandaymon поблагодарил:
- omship (Чт янв 30, 2020 11:14 pm)
-
omship
- Сообщения: 8
- Зарегистрирован: Вс июн 11, 2017 11:07 am
- Откуда: Краснодар
-
Благодарил (а):
6 раз
-
Поблагодарили:
0
Сообщение
omship » Чт янв 30, 2020 11:13 pm
в файле AdafruitDHT.py эту строку
Код: Выделить всё
print('Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temperature, humidity))
изменил на эту
Код: Выделить всё
print('{0:0.1f} {1:0.1f}'.format(temperature, humidity))
в скрипте temphum изменил на
Код: Выделить всё
$answer = shell_exec('/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 20');
$matches = explode(' ',$answer);
setGlobal("TempSensor03.value",$matches[1]);
setGlobal("HumSensor01.value",$matches[0]);
теперь все четко мана...
#ЗасебяизаСашку!