Hallo zusammen,
ich bin einigermaßen neu hier, daher freue ich mich über jegliche Hilfe. :)
Nun zum Thema:
Ich würde gerne meinen Temp.- Humidity-Sensor DHT-22 über fhem auslesen.
Ich habe hierzu bisher kein ausführliches Tutorial gefunden und wäre für eine "Step-by-Step" Hilfe sehr dankbar. ;)
Das ganze läuft bei mir auf meinem RasPi.
Danke schon mal im Vorhinein.
(Infos zum Sensor:)
https://www.sweetpi.de/blog/436/luftfeuchtigkeit-und-temperatur-mit-dem-raspberry-pi-messen
Bitte erst mal noch etwas länger suchen und die FHEM-Dokumentation lesen, das ist hier schon tausende Male diskutiert worden. Findet man sogar mit Google...
LG
pah
Ich werfe mal das Stichwort "LaCrosse" in den Raum.
Hallo!
Aus meiner internen Doku!
Ohne Gewähr!
lg
Wolfgang
#DH22
git clone https://github.com/technion/lol_dht22
cd lol_dht22
./configure
make
apt-get update
apt-get install build-essential python-dev git-core
git clone https://github.com/adafruit/Adafruit_Python_DHT
cd Adafruit_Python_DHT
python setup.py install
cat << 'EOF' > /usr/local/sbin/fhem-dht
#!/usr/bin/python
import Adafruit_DHT
import socket
### CONFIG ###
# fhem's telnet port
host = 'localhost'
port = 7072
sensors = [
{
'name': 'Dach.DHT22',
'type': Adafruit_DHT.DHT22,
'pin': 4
},
{
'name': 'Wohnzimmer.DHT22',
'type': Adafruit_DHT.DHT22,
'pin': 17
},
]
# retry in case of error
retries = 15
delay = 2
## config reference:
# sensors = [
# {
# 'name': 'DHT22',
# 'type': Adafruit_DHT.DHT22,
# 'pin': 4
# },
# {
# 'name': 'DHT11',
# 'type': Adafruit_DHT.DHT11,
# 'pin': 4
# },
# {
# 'name': 'AM2302',
# 'type': Adafruit_DHT.AM2302,
# 'pin': 4
# },
# ]
### END CONFIG ###
def netcat(hostname, port, content):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
s.sendall(content)
s.shutdown(socket.SHUT_WR)
while 1:
data = s.recv(1024)
if data == "":
break
if data:
print "Received:", repr(data)
s.close()
# empty netcat string
s = "";
for sensor in sensors:
humidity, temperature = Adafruit_DHT.read_retry(sensor['type'], sensor['pin'], retries, delay)
if humidity is not None and temperature is not None:
s += 'setreading {0} Temperature {1:0.1f}\n'.format(sensor['name'], temperature)
s += 'setreading {0} Humidity {1:0.1f}\n'.format(sensor['name'], humidity)
s += 'setreading {0} Error 0\n'.format(sensor['name'])
else:
s += 'setreading {0} Error 1\n'.format(sensor['name'])
s += "quit"
netcat(host, port, s)
EOF
chmod +x /usr/local/sbin/fhem-dht
https://forum.fhem.de/index.php/topic,25413.30.html
#DHT22
define Dach.DHT22 dummy
attr Dach.DHT22 room temp
attr Dach.DHT22 stateFormat T: Temperature H: Humidity
define Wohnzimmer.DHT22 dummy
attr Wohnzimmer.DHT22 room temp
attr Wohnzimmer.DHT22 stateFormat T: Temperature H: Humidity
define FileLog_DHT22 FileLog ./log/DHT22-%Y.log Dach.DHT22:.*|Wohnzimmer.DHT22:.*
attr FileLog_DHT22 logtype text
attr FileLog_DHT22 room temp
define DHT22at at +*00:01:00 { system('sudo /usr/local/sbin/fhem-dht&');; }