Страница 3 из 3

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Сб фев 16, 2019 11:50 am
Yashalta
Подскажите не понимаю!
Я создал 2 свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" и они прекрасно получают сведения с датчика "DHT22".
А как теперь эти свойства привязать к простым устройствам "TempSensor01" и "HumSensor01" я не понимаю! Все мои мысли сводятся к написанию "костыля", что не есть правильно! :(

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Сб фев 16, 2019 4:02 pm
fandaymon
Yashalta писал(а): Сб фев 16, 2019 11:50 am Подскажите не понимаю!
Я создал 2 свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" и они прекрасно получают сведения с датчика "DHT22".
А как теперь эти свойства привязать к простым устройствам "TempSensor01" и "HumSensor01" я не понимаю! Все мои мысли сводятся к написанию "костыля", что не есть правильно! :(
А зачем привязывать свойства к ПУ? Передавай температуру и влажность прямо в TempSensor01 и HumSensor01

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Сб фев 16, 2019 8:23 pm
Yashalta
fandaymon писал(а): Сб фев 16, 2019 4:02 pm А зачем привязывать свойства к ПУ? Передавай температуру и влажность прямо в TempSensor01 и HumSensor01
Я может не правильно выразился...
Вот тут у меня и проблема не знаю как прямо TempSensor01 и HumSensor01 передавать данные с "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" или может не нужно создавать свойства "ThisComputer.HumFromDHT22" и "ThisComputer.TempFromDHT22" а как-то сразу передавать температуру и влажность в TempSensor01 и HumSensor01?

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Сб фев 16, 2019 8:29 pm
fandaymon
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

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Сб фев 16, 2019 11:05 pm
Yashalta
fandaymon писал(а): Сб фев 16, 2019 8:29 pm Код, который по ссылочке, заносит данные в TempSensor01 и HumSensor01
http://majordomo.smartliving.ru/forum/v ... 976#p69168
я добавил код который вы указали в свой скрипт, на 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#

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Вс фев 17, 2019 12:24 am
fandaymon
Yashalta писал(а): Сб фев 16, 2019 11:05 pm
fandaymon писал(а): Сб фев 16, 2019 8:29 pm Код, который по ссылочке, заносит данные в TempSensor01 и HumSensor01
http://majordomo.smartliving.ru/forum/v ... 976#p69168
я добавил код который вы указали в свой скрипт, на 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

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Чт янв 30, 2020 12:37 am
omship
Я создал скрипт 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

Код: Выделить всё

if($m%5 == 0){
runScript('temphum'); 
}
, теперь каждые 5 минут заносит данные в TempSensor03 и HumSensor01

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Чт янв 30, 2020 1:20 am
fandaymon
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

Код: Выделить всё

if($m%5 == 0){
runScript('temphum'); 
}
, теперь каждые 5 минут заносит данные в TempSensor03 и HumSensor01
Можно конечно и так, но это какое-то извращение - вычленять шаблоном результат, вместо того чтобы просто его отправить в МДМ 8-) Если хочется работать со стороны МДМ, можно же просто поменять вывод программы AdafruitDHT.py, чтобы она выводила 2 числа, разделенных пробелом и воспользоватся

Код: Выделить всё

explode(' ',$answer);

Re: Raspberry 3 GPIO DHT22(AM2301)

Добавлено: Чт янв 30, 2020 11:13 pm
omship
в файле 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]); 
теперь все четко мана...