Raspberry Pi zeigt nur eine uhrzeit an
Verfasst: Montag 2. September 2024, 13:38
Hi zusammen,
erstmal kurzes vorwort damit es leichter zu verstehen ist. Ich habe ein Projekt in meinem Ausbildungsbetrieb bekommen, per Magnetschalter eine Überwachung für das Rolltor zu bauen. Ich habe es mittlerweile geschafft, dass bei Statusänderung automatisch in der Commandline eine Nachricht erscheint mit Timestamp und dem Aktuellen Status nur habe ich das Problem, dass sobald der Code gestartet wird sich der Timestamp nicht mehr ändert. Habe ich hier einen Denkfehler? Geht das überhaupt nicht?
Des weiteren, würde ich zeitgleich eine *.txt Datei erstellen mit dem genannten Timestamp und der Statusänderung erzeugen also quasi ein LOG (alle änderungen sollen in die gleiche Datei geschrieben werden) Wie ist das möglich?
Hier der Code:
from datetime import datetime
import signal
import sys
import RPi.GPIO as GPIO
MAGNET_GPIO = 17
jetzt = datetime.now()
datum_zeit = jetzt.strftime("%Y-%m-%d %H:%M:%S")
def signal_handler (sig, frame):
GPIO.cleanup()
sys.exit(0)
def button_callback(channel):
if not GPIO.input(MAGNET_GPIO):
print(f"{datum_zeit}:" "tor offen")
wert = 1
else:
print(f"{datum_zeit}:" "Tor geschlossen")
wert = 0
if __name__ == '__main__':
GPIO.setmode(GPIO.BCM)
GPIO.setup(MAGNET_GPIO, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(MAGNET_GPIO, GPIO.BOTH, callback=button_callback, bouncetime=50)
signal.signal (signal.SIGINT, signal_handler)
signal.pause()
Ich hoffe es war halbwegs verständlich und bedanke mich im voraus für die Antworten.
erstmal kurzes vorwort damit es leichter zu verstehen ist. Ich habe ein Projekt in meinem Ausbildungsbetrieb bekommen, per Magnetschalter eine Überwachung für das Rolltor zu bauen. Ich habe es mittlerweile geschafft, dass bei Statusänderung automatisch in der Commandline eine Nachricht erscheint mit Timestamp und dem Aktuellen Status nur habe ich das Problem, dass sobald der Code gestartet wird sich der Timestamp nicht mehr ändert. Habe ich hier einen Denkfehler? Geht das überhaupt nicht?
Des weiteren, würde ich zeitgleich eine *.txt Datei erstellen mit dem genannten Timestamp und der Statusänderung erzeugen also quasi ein LOG (alle änderungen sollen in die gleiche Datei geschrieben werden) Wie ist das möglich?
Hier der Code:
from datetime import datetime
import signal
import sys
import RPi.GPIO as GPIO
MAGNET_GPIO = 17
jetzt = datetime.now()
datum_zeit = jetzt.strftime("%Y-%m-%d %H:%M:%S")
def signal_handler (sig, frame):
GPIO.cleanup()
sys.exit(0)
def button_callback(channel):
if not GPIO.input(MAGNET_GPIO):
print(f"{datum_zeit}:" "tor offen")
wert = 1
else:
print(f"{datum_zeit}:" "Tor geschlossen")
wert = 0
if __name__ == '__main__':
GPIO.setmode(GPIO.BCM)
GPIO.setup(MAGNET_GPIO, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(MAGNET_GPIO, GPIO.BOTH, callback=button_callback, bouncetime=50)
signal.signal (signal.SIGINT, signal_handler)
signal.pause()
Ich hoffe es war halbwegs verständlich und bedanke mich im voraus für die Antworten.