Hi,
Hat von euch schon mal jemand den feuchtigkeitssensor D HT22 schon In IPS einbinden können?
Hardlog
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