DHT-22 RasPi

Begonnen von Harrymotte785, 27 November 2016, 22:28:21

Vorheriges Thema - Nächstes Thema

Harrymotte785

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

Prof. Dr. Peter Henning

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

Tedious

Ich werfe mal das Stichwort "LaCrosse" in den Raum.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

wthiess

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&');; }
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......