dht22 nach Cronjob keine Daten mehr

  • Guten Tag,


    ich habe ein Problem mit einem Außentemperatursensor dht22.

    Der Rasp pi 4 ist über WLAN angebunden. Verbaut ist ein 220v

    Modul, um eine Lampe ein und auszuschalten. Weiterhin ist

    der dht22 Sensor angebunden. Sonst hat der Pi keine Funktionen.


    Der dht22 liefert immer Werte. Am frühen Abend wird per Cronjob

    die Lampe eingeschaltet. Danach funktioniert auch noch alles.

    Um 22:00 Uhr wird die Lampe per Cronjob abgeschaltet. Ab da an

    kann der dht22 nicht mehr ausgelesen werden. Erst ein Trennen

    der Kabelverbindung des Sensors und neu verbinden bringt wieder Werte.


    Wenn ich die Lampe "manuell" per Script abschalte, kommen die Werte

    des Sensors trotzdem. Ich nutze "manuell" exakt das selbe Script, welches

    in der crontab eingetragen ist ! Ich habe die Uhrzeit des Cronjobs für die

    Lichtabschaltung geändert. Immer zu dieser Zeit können keine Messwerte

    vom dht22 mehr abgefragt werden.


    Es gibt natürlich keine Doppelbelegungen der PINS oder sowas.

    Das System hat einen aktuellen Softwarestand (Tägliche updates aller PI's,

    Server, Clients etc.).


    Hat irgendjemand ne Idee, woher dieses Phänomen kommen kann ?


    Falls noch irgendwelche Informationen zur Problemanalyse gebraucht

    werden, bitte mitteilen.



    Danke und Gruß


    GonZo

  • Hallo Dr.GonZo,


    willkommen im Forum! :)


    Falls noch irgendwelche Informationen zur Problemanalyse gebraucht

    werden, bitte mitteilen.

    Zeig mal bitte den Cronjob (in welcher Crontab?) und das Skript, das manuell funktioniert, aber per Cron nicht!


    Das Skript bitte in einem Codeblock () zeigen.

  • Post by Dr.GonZo ().

    This post was deleted by the author themselves ().
  • Hallo und danke Hyle, :)


    der Cronjob für das Licht(ein/aus) ist in der Crontab vom User pi



    crontab von pi

    Code
    02 22 * * * /opt/scripts/bin/Flurlicht_off.sh


    Code von Flurlicht_off.sh

    Bash
    #!/bin/bash
    #
    #
    #
    #
    /usr/bin/python /opt/scripts/relais/relais_aus.py
    exit


    Code von relais_aus.py

    Code
    import RPi.GPIO as GPIO
    GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern
    GPIO.setwarnings(False)
    RELAIS_1_GPIO = 17
    GPIO.setup(RELAIS_1_GPIO, GPIO.OUT) # GPIO Modus zuweisen
    GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an


    Ist etwas verschachtelt, liegt aber an der Umgebung.


    Wie gesagt; wenn per Hand

    Code
    /opt/scripts/bin/Flurlicht_off.sh

    ausgeführt wird, und somit das Licht im Flur abgeschaltet wird, liefert der dht22 weiter Werte. Wird es über die crontab ausgeführt, liefert er keine Werte mehr.


    Ich finde einfach den Zusammenhang einfach überhaupt nicht.

    Ich habe schon Logfiles durchsucht, aber da steht auch nicht wirklich etwas erhellendes drinne.


    Danke und Gruß


    GonZo

  • :)

    Das ist alles etwas historisch gewachsen. Angefangen mit einem "was issn pi?" zu "oh, da kann man mit dem Script aus

    der Schublade was schalten und das funktioniert", zu einer Hausautomation mit Kellerentfeuchtung, Lüftersteuerungen etc.pp.


    Der pi und die Scripte gehören eher an den Anfang. Haben immer funktioniert. "Never Change A Running System" :)


    Ich hab jetzt in dieser " Testumgebung" den Cronjob geändert. Ich möchte den Zeitpunkt beibehalten, um störende Seiteneffekte

    in der Analyse nicht zu verlieren.


    um 22:02 Uhr wissen wir mehr... :)

  • ;) Da gebe ich Dir absolut recht. :D



    Das Ergebnis im Test ist leider das gleiche.....


    Code
    select * from TEMP_DRAUSSEN where Datum like '2023-01-16-22%';
    +---------------------+-----------------------------------+-----------------------------------+
    | Datum               | TEMP                              | Luftfeuchtigkeit                  |
    +---------------------+-----------------------------------+-----------------------------------+
    | 2023-01-16-22:00:14 | 4.5                               | 89.3                              |
    | 2023-01-16-22:05:13 | Failed to get reading. Try again! | Failed to get reading. Try again! |
    | 2023-01-16-22:10:13 | Failed to get reading. Try again! | Failed to get reading. Try again! |
    +---------------------+-----------------------------------+-----------------------------------+
    3 rows in set (0,005 sec)

    Die Abfrage funktioniert bis zum abschalten des Lichtes um 22:02 Uhr, danach liefert der Sensor keine Daten mehr.


    Ich hatte dieses Problem nicht immer. Ich hatte vorher einfache Kabel zur Fensterdurchführung genutzt. Aber

    da kamen sehr oft verfälschte Daten. Dann hab ich auf ein Flachbandkabel für Fensterdurchführungen gewechselt.

    Damit lief alles gut...... eine Zeit lang. "Änderungen" gab es nur noch durch die Täglichen updates/upgrades das Systems.

    Dann trat irgendwann dieses Problem auf.....


    Es ist wirklich seltsam......

  • Hallo,


    wie sieht den das Skript für den Sensor aus und wie wird das gestartet bzw. am leben gehalten?


    Grüße

    Dennis

    🎧 Mein Herz pumpt nur Adrenalin, ein Feuer tobt tief in mir drin und du, du löscht es mit Benzin 🎧

  • Absolut Deiner Meinung!


    Bekommst Du diesen Fehler auch, wenn Du um diese Uhrzeit manuell schaltest? Laufen um diese Zeit auch noch andere Dinge? Könnte auch hier das evtl. das Netzteil die Ursache sein? Stichwort: Mysterium?!

    Ich hatte bei Beginn dieses Problems gar nicht die Lichtschaltung im Visier. Ich ging davon aus, dass es irgendeinen Störfaktor

    gibt, der das Problem um 22:00 Uhr auslöst. Deshalb hab ich sämtliche Faktoren überprüft. Besonders externe Faktoren.

    Den Aussensensor der Ölheizung..... benachbarte "Alexa-Steuerungen".... sämtliche Crons von allen Servern und Raps hier im Haus.....

    Nichts hat darauf hingewiesen bei den Tests..... Erst diese einfache Schaltung des Lichts im Flur. Die lief zuerst auf 22:00 Uhr.

    Dann hab ich sie auf 22:02 Uhr gesetzt und das Problem verlagerte sich auf 22:02 Uhr.


    Wenn ich manuell das Script ausführe, bleibt der Sensor am leben..... auch wenn ich das Script Zeitnah zu der sonstigen

    Ausfallzeit ausführe.....



    @ Dennis89


    Das Script für den Sensor wird von einem Rechner ausgeführt. Es wird alle 5 Minuten ausgeführt, um einen Insert in die

    Datenbank zu machen, und alle 60 Sekunden, um auf dem Dashboard angezeigt zu werden.


    Wenn ein Scriptfehler vorliegen würde, wäre der Fehler permanent, und nicht exakt jeden Abend um diese Uhrzeit.

  • Moinsen,


    Das klingt alles etwas verwirrend.
    Das du nicht bereit bist den Abfrage-Code bzw den Steuercode für diese wahrscheinlich Relaisplatine offen zu legen würde ich mal eine Vermutung äußern die hier einen möglichen Zusammenhang liefern könnte.
    Wenn du alles über Python machst, sowohl die Sensorabfrage wie auch die Relais-Schaltfunktionen und dabei RPI.GPIO verwendest, jedoch jeder Teil als eigener Thread im System läuft, darin aber auch GPIO.cleanup() benutzt wird, sehr ich an dieser Stelle einen möglichen Kollisionspunkt.

    Und dann das was hier auch schon in andere Themenbeiträgen wiederholt geäußert wurde, die Vermischung von Codes in Zusammenhang mit diesen Adafruit Bibliotheken.

    Daher wäre es am Besten, bevor du uns hier weiter raten lässt alle Codes zu veröffentlichen.

    Weiterhin gibt oder lässt die Äußerung "Tausch des Kabels" weitere Fehlermöglichkeiten zu.
    Also solltest du auch mal diese ganze Verdrahtung wie sie bei dir ausgeführt ist hier als Skizze darstellen.
    Denn wenn du schreibst, oder so entnehme ich das dem Relais_OFF Code, du den GPIO auf HIGH setzt um den Relais geschaltenen Stromkreis zu unterbrechen, verstehe ich nicht. Damit ist doch das Relais immer angezogen, wenn die Lampe aus ist ?
    Wäre es nicht sinnvoller, da die meisten Relaiskarten Umschalter als Relais verwenden, das Relais nur dann unter Strom ( HIGH Signal ) zu setzen, wenn der Verbraucher = Lampe auch aktiv ist ?

    Irgendwie so wie du das beschreibst entbehrt das ganze jeder logischen Grundlage wie man elektronische Schaltungen betreiben sollte.

    Ich hoffe du kannst hier mal voll umfänglich für Klarheit sorgen.

    Franky