DHT22 via Raspberry in symcon?

Hi,
Hat von euch schon mal jemand den feuchtigkeitssensor D HT22 schon In IPS einbinden können?

Hardlog

Hallo,
ja. Ich habe eine kleine Anwendung in c# mit der Laufzeitumgebung Mono für den Raspberry geschrieben. Für DHT11 und DHT22…

Die Anwendung aktualisiert zyklisch über Netzwerk die Variablen in IPS. Funktioniert auch wenn IPS auf dem selben Raspberry installiert ist.

Bei Interesse stelle ich es gerne mit einer kleinen Anleitung zur Verfügung.

mfg

Klar hab ich Interesse.

Gruß
hardlog

Ich hätte auch Interesse an einer Anleitung.

Danke
Gruß
Timo

Hi,
na dann mal los:

Als erstes ein

sudo apt-get update

Dann muss die Laufzeitumgebung installiert werden

sudo apt-get install mono-complete

Das Tool Screen wird benötigt um die Konsolenanwendung im Hintergrund laufen zu lassen

sudo apt-get install screen

Zwei Variablen vom Typ Float in IPS anlegen.

Die Anwendung aus dem Anhang entpacken, ein Verzeichnis auf dem Raspberry erstellen und die Dateien dorthin übertragen. Die Dateien müssen ausführbar sein.

In dieses Verzeichnis wechseln und die . exe mit folgenden Parametern aufrufen:

DHTLogger.exe [pin] [TYPE DHT] [IPS IP] [IPS PORT] [IPS User] [IPS Password] [IPS ID Humidity] [IPS ID Temp]

z.B.

sudo mono DHTLogger.exe P1Pin7 DHT22 192.168.99.251 3777 user@user 0815 75416 79531

Jetzt solltest du die Ausgabe der Temperatur und der relativen Feuchte auf der Konsole sehen und in IPS sollten sich die beiden Variablen aktualisieren.

Wenn du jetzt die Konsole wieder schließt würde sich auch die Anwendung beenden. Dafür benutzen wir Screen.

sudo screen -mdS DHT mono DHTLogger.exe P1Pin7 DHT22 192.168.99.251 3777 user@user 0815 75416 79531

Zur Kontrolle dass die Anwendung auch mit screen läuft

sudo screen -ls

Mit folgendem Aufruf holt man sich die Konsole der Anwendung wieder in den Vordergrund

sudo screen -x DHT

Und mit dieser Anweisung beendet man die Anwendung in Screen

sudo screen -r DHT -X quit

Autostart einrichten:

Eine Datei autostart.sh mit folgendem Inhalt anlegen und ausführbar machen.

#!/bin/sh
su root -c 'screen -mdS DHT /usr/bin/mono /Pfad zur exe/DHTLogger.exe P1Pin7 DHT22 192.168.99.99 3777 user@user 0815 42514 57407'

Und die /etc/rc.local wie folgt anpassen

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s
" "$_IP"
fi

#autostart
su root -c /Pfad zum Script/autostart.sh >/tmp/autostart.txt
exit 0

Dann viel Spaß.

mfg

DHT310116.rar (264 KB)

Erst mal Danke für die Anleitung.

In der Console des Rasp zeigt er die Messwerte korrekt an.
Leider überträgr er nichts an meinen IPS-Server…
Wie beschrieben 2 Floats angelegt, entdsprechende IDs in Aufruf von DHTLogger… aber nichts kommt an?

Hardlog

Hi,
es wird auf Port 3777 über JsonRPC mit IPS kommuniziert. Ich habe hier keine IPS 3.4 nur die 4.
Gibt es hier evtl. Unterschiede?

mfg

Ich habe die Rückmeldung von dem json request mit in die Konsolenausgabe eingebaut. Bitte tausche die exe aus und probiere noch mal und poste die Ausgabe.

Hi,

Bin momentan noch auf der 3.4 und der Port ist in diesem Fall 82 (wenn ich mich nicht irre). Kannst du das so anpassen, das man zur ip-Angabe in der Kommandozentrale zusätzlich „einfach“ den entsprechenden Port anhängt?

Gruß hardlog

Hinzugefügt.

COOL, geht!

1000 Dank.

Noch ne frage für nen Anfänger in Sachen Linux: Muss ich noch was machen, das die Sache auch nach nem reboot des RaspBerry noch weiter läuft?

Gruß
hardlog

Hallo,
eigentlich wollte ich das schon beim 1. Mal beschreiben, habs aber vergessen…
Nun ist es im Beitrag.

mfg

Ich bekomme es nicht ganz hin.

Hab die autostart.sh angelegt und entsprechende Verzeichnisse angepaßt.
Nach dem Reboot des Pi läuft das Programm aber nicht.
Bzw. mit

sudo screen -ls

Ist der Dienst nicht aktiv.
Wie kann ich prüfen wo der Fehler liegen kann. Wird der Startversuch der autostart irgendwo geloggt?
Wenn ich in der Pi-Console

/etc/rc.local

direkt ausführte melde er:
Zugiffsrechtsproblem -> Zugriffsrechte geändert. -> Keine Fehlermeldung mehr. Nach dem Reboot kommt aber immer noch die Meldung „No Sockets found…“

WIe gesagt bin noch ziemlicher linux-Laie… kann es an den Zugriffsrechten (root-Rechte) allgemein liegen. mit „su -c …“ will er bei mir (wenn ich es in der Konsole angebe) ein Passwort haben?

Gruß
hardlog

Poste mal den Inhalt der 2 Dateien.
Steht etwas in /tmp/autostart.txt?
Hast du die autostart.sh ausführbar gemacht?
Wo hast du die Datei abgelegt?

Vielen vielen Dank für die tolle Anleitung. Funktioniert Super.

Ein Problem habe ich allerdings. Ab und zu bekomme ich die Meldung „Unable to read data“. Wird der Sensor vielleicht zu oft und zu schnell abgefragt das er keine Daten lesen kann?

Gruß
Timo

Danke @joschmd

Lag tatsächlich an der Ausführbarkeit von autostart.sh.

Das Thema „Unable ro read Data“ kommt bei mir mal häufiger (mal jeder 2.) mal seltener (aktuell jeder 8. Leseversuch).

Gruß
hardlog

Hallo,
der DHT22 stellt alle 2 Sekunden seine Werte zur Verfügung. Zu Anfang kann es zu dieser Meldung kommen und sollte sich im weiteren Verlauf optimieren.
Ich habe die Meldung etwas entschärft, probiert bitte mal aus ich habe aktuell keinen DHT22 angeschlossen.

Klasse Sache!
Habe da aber mal ne Frage, muss ich irgendwo deklarieren ob ich einen DHT11 oder DHT22 habe?

Wenn ich in der Konsole schreibe kommen reale Werte zurück

sudo ./AdafruitDHT.py 11 4
Temp=22.0*  Humidity=37.0%

aber wenn ich dies schreibe

sudo mono DHTLogger.exe P1Pin7 192.168.123.212 3777 hallo@hallo Kennwort 14761 11783

kommt dies als Antwort

Return IPS_Request: True
Return IPS_Request: True
3750,40% humidity, 281,6°C, 1 attempts
Return IPS_Request: True
Return IPS_Request: True
3750,40% humidity, 281,6°C, 1 attempts
Return IPS_Request: True

Danke und Gruß

Stefan

Hallo,
hab ich hinzugefügt.

lg
jörg

Perfekt!
Danke dir.

Gruß

Stefan