Seite 4 von 5
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 26. Okt 2019 11:08
von croix-aigle
Ich weiß jetzt wo das Problem liegt, und bräuchte dafür eine neue Zeile ohne Sudo.
Die ist in der things eingetragen:
Code: Alles auswählen
Thing exec:command:dht22 [command="sudo /usr/bin/python /etc/openhab2/scripts/AdafruitDHT.py 22 17", interval=15, timeout=5, autorun=false]
Den Befehl kann ich auch ohne sudo ausführen: "./AdafruitDHT.py 22 17" und bekomme dann die Messwerte: "Temp=26.6* Humidity=51.6%"
Wie müsste der Code heißen ohne Sudo? Dann sollte es gehen, da der User "sudo" nicht mehr benötigt wird, wird auch die Privatsphäre geschützt
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 26. Okt 2019 11:35
von udo1toni
sudo ist ein Befehl, kein User. Lass einfach das Wort sudo zu Beginn der Zeile weg.
sudo erlaubt es, Programme unter einem anderen user-Kontext auszuführen, typischerweise wird das genutzt, um Befehle auszuführen, für die man eigentlich root sein müsste. sudo hat also erst mal auch nichts mit Privatsphäre zu tun.
Allerdings kann root auf dem System alles tun, was er möchte, auch Dateien öffnen, die ihm nicht gehören und zu denen er eigentlich keine Rechte hat. Damit kann root dann natürlich auch private Inhalte anschauen.
Für ein System wie openHAB spielt die Privatsphäre eine untergeordnete Rolle, eher ist da wichtig, dass openHAB nicht in der Lage ist, Dateien zu löschen oder zu manipulieren, die ihm nicht gehören.
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 27. Okt 2019 09:52
von croix-aigle
wenn ich den User sudo weg lasse kommt das:
Code: Alles auswählen
2019-10-26 12:32:21.187 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: /usr/bin/python: can't open file '/etc/openhab2/scripts/AdafruitDHT.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file '/etc/openhab2/scripts/AdafruitDHT.py': [Errno 2] No such file or directory
2019-10-26 12:32:21.201 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
was ich im Terminal noch gemacht habe:
Code: Alles auswählen
visudo
ALL ALL=(ALL) NOPASSWD: /etc/openhab2/scripts/AdafruitDHT.py
dann kommt das:
Code: Alles auswählen
2019-10-27 13:48:45.662 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
2019-10-27 13:48:45.700 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 27. Okt 2019 23:50
von udo1toni
Die Ausgabe
Code: Alles auswählen
/usr/bin/python: can't open file '/etc/openhab2/scripts/AdafruitDHT.py': [Errno 2] No such file or directory
bedeutet, dass openHAB auf die Datei nicht zugreifen kann. Entweder, Du hast an irgendeiner Stelle einen Tippfehler im Namen (schließlich gibt es keine Autoergänzung), oder die Datei gehört nicht dem User openhab, Alternativ fehlen mindestens die Ausführungsrechte.
Code: Alles auswählen
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
ist die Ausgabe von sudo, welches noch nie erfolgreich ausgeführt wurde (das bezieht sich natürlich auf den user openhab, der noch nie sein Passwort eingeben konnte.
Um dieses Problem zu beseitigen, musst Du den Befehl
ausführen. es wird eine leere Datei mit dem Namen openhab in dem Verzeichnis /var/lib/sudo/lectured angelegt. Damit geht sudo davon aus, dass der User openhab den Befehl bereits erfolgreich genutzt hat.
Es könnte auch sein, dass der Pfad unter /var/run liegt. alles unterhalb ./sudo/ ist nur für root lesbar, Du musst also immmer mit sudo arbeiten oder Dich als root anmelden, um die entsprechenden Dateien zu sehen.
visudo benötigt selbst erweiterte Rechte, Du kannst also nur mit
erfolgreich die Datei bearbeiten.
Die von Dir angegebene Zeile
Code: Alles auswählen
ALL ALL=(ALL) NOPASSWD: /etc/openhab2/scripts/AdafruitDHT.py
ist nicht gut. Zum einen erlaubt sie jedem User auf dem System, sudo zu verwenden, um ohne Passworteingabe das Script auszuführen, außerdem wird nicht angegeben, dass die Datei mit dem python Interpreter geöffnet werden soll, der Aufruf unterscheidet sich also von dem, den Du im Exec Thing angegeben hast.
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 30. Okt 2019 16:33
von croix-aigle
Ok, hab das soweit zurück gestellt, und durch deine Ausgabe, ist das Zielverzeichnis falsch, dies habe ich auch angepasst.
Den Code habe ich geändert:
Code: Alles auswählen
Thing exec:command:dht22 [command=" /usr/bin/python /etc/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 17", interval=15, timeo$
Code: Alles auswählen
2019-10-30 16:25:25.059 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-10-30 16:25:38.447 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'dht22.things'
2019-10-30 16:25:41.283 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=22.1* Humidity=58.5%
2019-10-30 16:25:41.314 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-10-30 16:25:58.491 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=22.3* Humidity=58.5%
2019-10-30 16:25:58.525 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-10-30 16:26:15.686 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=22.3* Humidity=58.5%
2019-10-30 16:26:15.716 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-10-30 16:26:32.968 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=22.3* Humidity=58.5%
2019-10-30 16:26:33.001 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-10-30 16:26:50.260 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=22.3* Humidity=58.5%
2019-10-30 16:26:50.274 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
Somit hat er schon mal die Temp und Humidity werte, schon mal ein Schritt weiter.
Wenn der Fehler noch liegt das ich in der Sitemaps nichts sehe, was ich da eintragen muss, Aktuell ist das drin:
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 7. Nov 2019 18:04
von croix-aigle
in der openhab ui unter Control she ich: "Command Value Temp =22.6* Humidity=59.3% das heist, bis hier her funktioniert es, wie muss der Eintrag noch in der Sitemap sein, das es dort auch angezeigt wird?
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 9. Nov 2019 01:59
von udo1toni
Hast Du schon ein Item pro Wert angleegt?
Du musst im Label einen Platzhalter für den Status einrichten, entweder direkt im Item, oder in der Sitemap.
Variante 1 (in der Itemdefinition):
Code: Alles auswählen
Number dht22Temp "Temperatur [%.1f°C]"
Number dht22Hum "Luftfeuchte [%.1f %]"
Variante 2, in der Sitemap:
Code: Alles auswählen
Text item=dht22Temp label="Temperatur [%.1f°C]"
Text item=dht22Hum label="Luftfeuchte [%.1f %]"
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 12. Nov 2019 08:30
von croix-aigle
das steht in der dht22.items schon drin
Code: Alles auswählen
String MyDHT22 "[%s]" {channel="exec:command:dht22:output"}
Number dht22Temp "Temperatur [%.1f °C]"
Number dht22Humidity "Luftfeuchte [%.1f %%]"
der log zeigt folgendes an:
Code: Alles auswählen
2019-11-12 08:23:40.840 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=21.6* Humidity=62.1%
2019-11-12 08:23:40.866 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
2019-11-12 08:23:57.370 [INFO ] [eclipse.smarthome.model.script.DHT22] - Der DHT22-Status enthält: Temp=21.6* Humidity=62.0%
2019-11-12 08:23:57.385 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'parse dht22 temp and hum': 1
in der Sitemaps sieht es so aus:
Das obere ist Variante 2 und das untere Variante 1

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 15. Apr 2020 22:14
von spelzl
Hallo,
@croix-aigle
@udo1toni
wie ist es denn hiermit weitergegangen?
Könnt Ihr bitte ein Status-Update geben und ggfls. die erfolgreichen Skripts, Items, Rules etc. Posten, um den DHT einzubinden?
Vielen Dank im Voraus
Bleibt gesund
Stefan
Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor
Verfasst: 16. Apr 2020 00:53
von udo1toni
Ich hab das nicht mehr weiter verfolgt, vermutlich habe ich das letzte Update vom 12. November dazu verpasst.
Ganz grundsätzlich: Am besten bindet man externe (Eigenbau-) Fühler, wenn möglich, über mqtt ein, das erspart den ganzen Hickhack mit exec.
Wenn man ein aktuelles stable Build einsetzt, benötigt das exec2 Binding eine whitelist, in der die exakten Befehlsaufrufe gelistet sein müssen.
Soweit ich weiß gibt es eine passende Library auch für Adafruit, es sollte also kein großes Problem sein, bestehende Programme um mqtt zu erweitern.