DHT22 Sensor Problem

Begonnen von hobbyman, 26 April 2019, 12:11:46

Vorheriges Thema - Nächstes Thema

hobbyman

Hallo zusammen,

Seit meiner Neuinstallation (Wechsel auch der fhem Version von 5.8 auf 5.9) bekomme ich
keine automatischen Daten mehr von meinem DHT22 Sensor.

In einem früheren Beitrag hatte ich gelesen, daß es ein Freigabe Problem ist. Dazu wurde in fhem
der Befehl fhem ALL=(ALL) NOPASSWD: ALL benutzt. Ab der Version 5.9 geht dieser Befehl nicht
mehr. Ist für den telnetPort überhaupt eine Freigabe erforderlich da die Daten über den
localhost laufen ? Benötige ich eine Freigabe über basicAuth ? Wenn ja wie einrichten.
define telnetPort telnet 7072 global
Der Reihe nach:
Der Sensor funktioniert: Daten werden ins log geschrieben

sudo /usr/local/sbin/fhem-dht  python fhemdht22.py     als root

Rechte Skript ausführen wurden auch angepasst.  chmod a+x 

Den Cron Job habe ich auch erstellt:

*/5 * * * * python /usr/local/sbin/fhem-dht/fhemdht22.py >/dev/null 2>&1


und unter /etc/cron.d/fhem-dht   fhem-dht.sh   Datei abgelegt als root


Rechte Skript ausführen wurden auch angepasst.  chmod a+x 

Wenn ich sh  fhem-dht.sh  an der Konsole ausführe erfolgt keine Fehlermeldung, es werden
aber auch keine Daten ins log geschrieben.
Soweit ich verstanden habe:  define DHT22 dummy 
Die log Daten werden ausgelöst vom cron Job und über den telnetport  an fhem übergeben.
Wie kann ich dies überprüfen ? Im Event monitor sehe ich nur die Daten der anderen Sensoren.
Ist root das Problem ? fhem läuft doch unter pi ?
Wenn ich eingebe:   crontab -l    no crontab for root

Wird mein cron Job unter /etc/cron.d/fhem-dht   fhem-dht.sh   nicht gefunden ?

Im Moment weiß ich nicht weiter, kann mir jemand weiter helfen ?

Grüsse

Wolfgang


Wernieman

irgendwie verstehe ich Dich aktuell nicht... deshalb mal von der anderen Seite angefangen:

Du hast ein Script, was Du per cronjob ausführst:
/python /usr/local/sbin/fhem-dht/fhemdht22.py

Dieses Funktioniert? Was macht es denn eigentlich?

Wie willst Du die Daten zu FHEM bringen, pullen oder pushen? Also soll fhem die Daten abholen oder werden sie FHEM gebracht?

Kurzgefasst:
Aber folgende Einträge von Dir verstehe ich nicht:
Zitatund unter /etc/cron.d/fhem-dht   fhem-dht.sh   Datei abgelegt als root
Wie angelegt? Was enthält die Datei, das Script?

Zitatfhem ALL=(ALL) NOPASSWD: ALL
Das ist mir in FHEM nicht bekannt, Du meintest warscheinlich sudo?
Und wenn ja ... hast Du ein Security-Problem

Zitatsudo /usr/local/sbin/fhem-dht  python fhemdht22.py     als root

Ist es nicht genau das, was Du im CRON auch aufrufst??

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

hobbyman

Hallo Wernieman

Der Script fhemdht22.py   holt die Werte vom Sensor und schreibt sie in das log
Der cron Job fhem-dht.sh   führt diesen Script alle 5 Minuten aus.
Alles hat funktioniert unter fehm Version 5.8

Aufbau siehe Beispiel:

https://forum.fhem.de/index.php/topic,25413.msg201619.html#msg201619

#7
Ich verwende die python-Library von Adafruit und speise die Ergebnisse per "telnet" ein.

root soll nur sagen daß beide Scripts unter user root angelegt sind
fhem ALL=(ALL) NOPASSWD: ALL    konnte so unter Version 5.8 in fhem in der
Befehlszeile eingegeben werden.

Siehe:  # 125
https://forum.fhem.de/index.php/topic,25413.120.html

Meine Fragen sind:

Wie oder wo kann ich feststellen ob der cron Job arbeitet ?
Wie kann ich feststellen ob telnet arbeitet ?
Kann ich den Cron job auch unter /home/pi/    ablegen, wie wird dieser dann gefunden und
automatisch gestartet ? Bin leider kein Profi.

Grüsse
Wolfgang

Wernieman

War über Wochenende offline .. deshalb erst jetzt:

Also .. wenn Du per Cron ein Script aufrufst, was  etwas in ein Logfile schreibt .. kannst Du doch erstmal gucken, ob das Logfile beschrieben wird?

Bezüglich "fhem ALL=(ALL) NOPASSWD: ALL"
1. Das ist eine sudo-Configuration und hat ersmal NICHTS mit fhem zu tuen.
2. Damit erhält der User fhem praktisch root rechte OHNE Passwort ...  sorry aber NEIN

Du solltest versuchen, Dein Problem erstmal zu debuggen.
1. Läuft das Script, wenn Du es per Hand startest?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hardy62

#4
Hallo,
habe eine Lösung gefunden, dass loldht nicht mehr mit sudo aufgerufen werden muss!

man geht im dem Verzeichnis, wo man sich die Software-Quellen hinkopiert hat zur
Datei dht22.c und sucht mit [Strg W] nach dem Suchstring "int lock = 1;"    (ca bei Zeile  105 von 155)
darin  die "1" gegen eine "0" tauschen und mit [Strg X] [Y]  abspeichern!

Jetzt noch aufrufen:
make

make all-am


pi@raspberrypi:~/lol_dht22_test $ nano dht22.c
pi@raspberrypi:~/lol_dht22_test $ make
make  all-am
make[1]: Entering directory '/home/pi/lol_dht22_test'
make[1]: Leaving directory '/home/pi/lol_dht22_test'
pi@raspberrypi:~/lol_dht22_test $



pi@raspberrypi:~/lol_dht22_test $ ./loldht 0
Raspberry Pi wiringPi DHT22 reader
www.lolware.net
Data not good, skip
Humidity = 68.00 % Temperature = 15.80 *C


Damit können jetzt direkt aus FHEM heraus die Werte direkt abgerufen werden und man braucht nicht mehr den Klimmzug mit einem cronjob zu machen.



Signalduino 433, Intertechno, ISK Zähler mit SML für Verrechnungszähler, Solarmax, ConfigFirmata, ARDMega&Nanos,DS18B20,DHT22,I2C, BME280,S0 Zählimpulse(Stro,Ga,Wa),SDS011 FeinstaubS,Sonoffs,Shellys,Text2Speech,UBA Luftd,Corona-Arc-GIS,RadonEye,CO2-Mess,Ecoflow D2,PV-Überschuß m PID-Regler Heizst