Seite 1 von 1

Openhab2 dht 11 einbinden

Verfasst: 21. Mai 2017 15:14
von pottie
Guten Tag,

seit bereits 2 Tagen versuche ich den dht 11 in Openhab2 einzubinden.
Ich bekomme immer nur Fehlermeldungen.
Hier die Konfiguration:
Thing:

Code: Alles auswählen

Thing exec:command:temp [command="bash /home/openhabian/Adafruit_Python_DHT/examples/dht11.sh", interval=60]
dht11.sh:

Code: Alles auswählen

#!/bin/bash
DHT_DEVICE=11
GPIO_PIN=13
cd /home/openhabian/Adafruit_Python_DHT/examples/
eval `./AdafruitDHT.py $DHT_DEVICE $GPIO_PIN | sed -e 's/*C//g' | sed -e 's/%//$

echo "$Temp"
exit 0
item:

Code: Alles auswählen

String temp_wohnzimmer "Wohnzimmer Temperatur: %s°C" <temperature> {channel="exec:command:temp:output"}
Fehlermeldung im PaperUI:

Code: Alles auswählen

/usr/lib/python2.7/dist-packages/pkg_resources.py:1049: 
UserWarning: /var/lib/openhab2/.python-eggs is writable by group/others and 
vulnerable to attack when used with get_resource_filename. Consider a more secure 
location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
 warnings.warn(msg, UserWarning) Traceback (most recent call last): File "./AdafruitDHT.py", 
 line 41, in <module> humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) 
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 94, in read_retry 
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 81, in read 
 File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py", line 34, 
 in read RuntimeError: Error accessing GPIO. /usr/lib/python2.7/dist-packages/pkg_resources.py:1049:
  UserWarning: /var/lib/openhab2/.python-eggs is writable by group/others and
   vulnerable to attack when used with get_resource_filename. Consider a 
   more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
    warnings.warn(msg, UserWarning) Traceback (most recent call last):
     File "./AdafruitDHT.py", line 41, in <module> humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) 
     File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 94, in read_retry 
     File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 81, in read 
     File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py", line 34, 
     in read RuntimeError: Error accessing GPIO.
Komischerweise gibt er die Fehlermeldung auch 2x hintereinander aus.
Wenn ich das Python script Adafruit_DHT.py in der ssh konsole ausführe funktioniert es einwandfrei.
Hat jemand eine Idee was ich falsch mache?
Ich bedanke mich schon mal im voraus!

Re: Openhab2 dht 11 einbinden

Verfasst: 4. Jun 2017 10:26
von Romanow23
Guten Tag,

vielleicht ist es nur ein Berechtigungsproblem
Per SSH sudo visudo in der Datei folgende Zeilen hinzufügen:
openhab ALL= NOPASSWD:/etc/openhab2/scripts/, /usr/local/bin/send, /home/openhabian/lol_dht22/loldht ,/etc/openhab2/scripts/dht22.sh
Die Pfade zu den jeweiligen Skripten und Ordnern musst du anpassen.


Ich Verwende einen dht22, vielleicht hilft dir mein Script etwas weiter.

item

Code: Alles auswählen

Number	tmp_keller		   		"Temperatur [%.2f °C]"				<temperature>
Number	humidity_keller	   		"Luftfeuchtigkeit [%.1f %%]" 		<humidity>	
rules

Code: Alles auswählen

rule "Keller"
when
	Time cron "0 */5 * * * ?"
then
	val TEMP = executeCommandLine("/etc/openhab2/scripts/dht22.sh 1 TEMP", 5000)
	tmp_keller.postUpdate(TEMP)
	tmp_keller_alexa.postUpdate(TEMP)
	Thread::sleep(5000)
	val HUMID = executeCommandLine("/etc/openhab2/scripts/dht22.sh 1 HUM", 5000)
	humidity_keller.postUpdate(HUMID)
	humidity_keller_alexa.postUpdate(HUMID)
	logInfo("Keller", "Temperatur: " + TEMP.toString() + "°C, Feuchte: " + HUMID.toString() + "%")
end
sitemap

Code: Alles auswählen

	Frame label="Keller"
	{
		Text item=tmp_keller	
		Text item=humidity_keller
		
	}
scripts dht22.sh

Code: Alles auswählen

#!/bin/bash
 
GPIO=$1
INPUT=$(sudo /home/openhabian/lol_dht22/loldht $GPIO |grep "Temperature")

HUM=$(echo $INPUT|cut -d " " -f3)
TEMP=$(echo $INPUT|cut -d " " -f7)
 
if [ "$2" = "HUM" ]; then
   echo $HUM
fi
 
if [ "$2" = "TEMP" ]; then
   echo $TEMP
fi


Re: Openhab2 dht 11 einbinden

Verfasst: 6. Jan 2018 01:15
von Tt49
Hallo zusammen,

jetzt hab ich mich extra für dieses Thema angemeldet, nur um Dir zu sagen, dass Du mir mit diesem Post richtig weiter geholfen hast. Ich sitze an diesem Problem schon volle 2 Tage, habe viel gelesen, ausprobiert und neu installiert.

Mit deinen drei Codes funktioniert es tadellos. Vielen Dank, Romanow23!

VG
Thomas