Hauptmenü

DHT22

Begonnen von JoergS, 06 April 2018, 17:32:45

Vorheriges Thema - Nächstes Thema

JoergS

Hallo,
Ich versuche vergeblich (wie offensichtlich einige im Forum) die Messwerte eine DHT22 an GPIO7 einzulesen.

Die Werte im über das Adafruit Script einzulesen funktioniert.
pi@raspberrypi:~/Adafruit_Python_DHT/examples $ ./AdafruitDHT.py 22 4
Temp=24.9*  Humidity=31.6%


Ich komme es aber nicht ins FHEM übertragen.
setreading Innen.DHT22 Temperature 2 aus der FHEM Kommandozeile funktioniert
pi@raspberrypi:~ $ perl /opt/fhem/fhem.pl 7072 "setreading Innen.DHT22 Temperature 2"

funktioniert nicht.

Im Logfile steht folgenden
2018.04.06 16:58:40 4: Connection accepted from telnetPort_127.0.0.1_36610
2018.04.06 16:59:40 4: Connection accepted from telnetPort_127.0.0.1_36612
2018.04.06 17:00:41 4: Connection accepted from telnetPort_127.0.0.1_36614


Was kann ich noch tun?


betateilchen

Was funktioniert denn da nicht?

Ich habe gerade einen dummy definiert der Innen_DHT22 heißt und ein reading Temperature besitzt (seit wann schreibt man solche readings mit Großbuchstaben?)

udo@fhemaws:~$ perl /opt/fhem/fhem.pl 7072 "setreading Innen.DHT22 Temperature 2"

liefert als Ergebnis


Internals:
   CFGFN     
   NAME       Innen_DHT22
   NR         26
   STATE      ???
   TYPE       dummy
   Helper:
     DBLOG:
       Temperature:
         dbLog:
           TIME       1523033851.33228
           VALUE      2
   READINGS:
     2018-04-06 18:57:31   Temperature     2
Attributes:
   readingList Temperature


Übrigens:
Punkte in deviceNames sind nie eine gute Idee, deshalb habe ich in meinem Beispiel lieber den Unterstrich verwendet.
Wie Du im Beispiel siehst, löst setreading den angegebenen Punkt im deviceName als regexp auf. Das ist nicht immer das, was man möchte.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoergS

Mich freut schon mal, ne Antwort bekommen zu haben. Danke
Ich bin blutiger Anfänger und froh über jeden guten Hinweis.

Ich hatte versucht zu beschreiben, dass genau das bei mir eben nicht passiert/funktioniert.
Inzwischen habe ich es auch mit Punkt und Unterstrich im Device-Namen versucht und ich auch die Groß.- und Kleinschreibung im Reading-Namen versucht. Kein Unterschied.

Trotzdem, denke für den Hinweis.

Jedenfalls, wenn ich
perl /opt/fhem/fhem.pl 7072 "setreading Innen.DHT22 Temperature 2"
eingebe, bekomme ich weder eine Fehlermeldung, noch übernimmt der dummy den Wert.

Internals:
   CFGFN     
   NAME       Innen_DHT22
   NR         546
   STATE      T: temperature
   TYPE       dummy
   READINGS:
Attributes:
   stateFormat T: temperature


Ich vermute, dass ich irgendeine Berechtigung für den Telnet port nicht richtig eingerichtet habe, oder noch ein Attribut für die "dummy" device vergeben muß.

Allerdings fehlt mir der Hintergrund um dies zu diagnostizieren.

Letztlich will ich nur die Werte des DHT22 einlesen und verarbeiten. Ursprünglich wollte ich nach folgenden Tutorial vorgehen:
https://test-wetterstation.de/temperaturmessung-mit-dem-raspberry-pi

Auch dieser Weg:
https://forum.fhem.de/index.php/topic,25413.msg201619.html#msg201619 
ist vermutlich am gleichen Fehler gescheitert :-(

Danke und Gruß
Jörg
   

betateilchen

Du versuchst, in Deinem dummy ein reading "Temperature" zu setzen, das in dem dummy nicht existiert.

Schau Dir nochmal mein Beispiel genau an, dann siehst Du, dass ich dort genau dieses reading per Attribut "readingList" definiert habe.

Zitat von: JoergS am 09 April 2018, 23:49:18
Ich vermute, dass ich irgendeine Berechtigung für den Telnet port nicht richtig eingerichtet habe, oder noch ein Attribut für die "dummy" device vergeben muß.

dann solltest Du zumindest eine Fehlermeldung bekommen (oder im Log finden) die auf ein Berechtigungsproblem hinweist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoergS

Problem gefunden...
Ich hatte den Telnet port mit einen Passwort versehen. Nachdem das wieder offen war, war alles recht einfach.

Nochmals Danke für die Tips