Hi,
Ich bin gerade dabei Fhem neu eizurichten (von Buster--> Bullseye). Ich habe einen DHT22 gemäß
diesen Anleitung:
https://www.laub-home.de/wiki/Raspberry_Pi_DHT22_Temperatur_Sensor
installiert. Das funktioniert soweit. Beim Aufruf von sudo dht22.py bekomme ich die Teperatur und die Luftfeuchtigkeit (Temperature: 29.5 °C Humidity: 40.3 %) angezeigt.
Wie richte ich es nun in Fhem ein? Der Vesuch hier geht nicht.
[code][code]define dht22.py dummy
# FUUID 651699cf-f33f-3570-c114-00fcc82b6b6af806
# NAME dht22.py
# NR 45
# STATE Temperatur: Temperature Luftfeuchte: Humidity
# TYPE dummy
#
setstate dht22.py Temperatur: Temperature Luftfeuchte: Humidity
[/code][/code]
Hat hier jemand ein Tip für mich?
DHT11/DHT22 werden vom RPI_1Wire Modul unterstützt.
Thread siehe hier:
https://forum.fhem.de/index.php?topic=123499.0
Gruß,
Jörg
Danke für die schnelle Antwort!
Aber gibt es ne Alternative zu "one Wire".
die Temperatur und Feuchtigkeitsabfrage läuft ja bereits OS- Ebene.
Danke
Das läuft eigentlich nicht über 1Wire, ist aber aufgrund der Ähnlichkeit in der Ansteuerung in diesem Modul eingebaut.
Wenn du dir den Thread anschaust, siehst du, das man dafür noch ein extra perl modul installiert werden, welches im ersten Post verlinkt ist, bzw. hier im Quelltext zu finden ist: https://github.com/bublath/rpi-dht
Das Perlmodul enthält die DHT-Kommunikation (in C programmiert, damit das Timing passt) und wird vom FHEM Modul angesteuert.
Ich wüsste nicht das dieser Sensor vom Kernel unterstützt wird.
Die von dir zitierte Quelle verwendet ein Pythonmodul von Adafruit - der macht wahrscheinlich auch nichts anderes, braucht aber eben Python.
Der Vorteil von Perl Modul ist, das es sich eben nahtlos in FHEM einbinden lässt.
Jörg
Ich würde deinen Versuch, wenn es denn nicht die vorgeschlagene Lösung mit einem geeignetem FHEM-Device sein soll, so interpretieren:
defmod DHT_Test_Device dummy
attr DHT_Test_Device userattr MeinShellBefehl
attr DHT_Test_Device MeinShellBefehl timeout 1 dht22.py
attr DHT_Test_Device eventMap /wert ausfuehren:Shellbefehl ausführen/
attr DHT_Test_Device readingList wert
attr DHT_Test_Device setList wert
attr DHT_Test_Device stateFormat Temperatur: Temperature Luftfeuchte: Humidity
attr DHT_Test_Device userReadings ShellCommand:wert:.ausfuehren {\
my $cmd = AttrVal($name, "MeinShellBefehl", "date");;\
return qx($cmd);;\
},\
Temperature:ShellCommand.* {\
my $val = ReadingsVal($name, "ShellCommand", "???");;\
my ($temperature) = $val =~ /Temperature: ([0-9.]+) °C/;;\
return $temperature;;\
},\
Humidity:ShellCommand.* {\
my $val = ReadingsVal($name, "ShellCommand", "???");;\
my ($humidity) = $val =~ /Humidity: ([0-9.]+) %/;;\
return $humidity;;\
}
attr DHT_Test_Device webCmd Shellbefehl ausführen
Bitte beachte, dass das Python-Skript nicht blockieren darf, denn solange das Pythonskript ausgeführt wird, wartet FHEM blockierend auf die Antwort und macht nichts anderes als warten.
Die Dokumentation zur Einbindung von DHT Sensoren mit dem RPI_1Wire Modul, war noch etwas dürftig. Habe ich jetzt etwas ergänzt:
https://wiki.fhem.de/wiki/RPI_1Wire#Einbindung_von_DHT11/DHT12_Sensoren
Hi Torxgewinde,
mit Deinen Vorschlag komme ich leider nicht klar /entweder kein Funtion oder fhem stürst ab
- ich zu blöd dafür.
Ich verstehe das define auch nicht aber dennoch vielen Dank für Deine Mühe