FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hans Preuth am 29 September 2023, 15:08:45

Titel: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Hans Preuth am 29 September 2023, 15:08:45
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?
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Adimarantis am 29 September 2023, 15:59:44
DHT11/DHT22 werden vom RPI_1Wire Modul unterstützt.
Thread siehe hier:
https://forum.fhem.de/index.php?topic=123499.0

Gruß,
Jörg
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Hans Preuth am 29 September 2023, 17:34:23
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
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Adimarantis am 29 September 2023, 18:02:07
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
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Torxgewinde am 29 September 2023, 22:55:46
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.
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Adimarantis am 01 Oktober 2023, 13:57:44
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
Titel: Aw: DHT22 via Bullseye mit Fhem verbinden
Beitrag von: Hans Preuth am 11 Oktober 2023, 20:32:39
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