ich bin neu hier im Forum und suche für meine Herausforderung DEN Lösungsansatz.
Mein Projekt: Ein Raspi 3 prüft via GPIO24 einen Taster innen an der Gartentür, bei Betätigung wird via Bash-Script ein Relais+Türöffner betätigt.
Dies klappt reibungslos, nur nicht die Funktion, dies in eine SQL-DB zu schreiben. Nach einem Reboot klappt das für ca. 1h, manchmal auch nur 30min.
Gleiches gilt für ein weiteres Script, welches via Astrisk ein DECT-Telefon anruft, wenn der Taster aussen gedrückt wird.
Auch dies funktionierte bis heute immer, nur der SQL-Teil nicht. Nach einem Reboot schon.
Heute nun das erste mal, dass auch neben der SQL-Funktion das Script garnicht mehr funktionierte.
Was mache ich wohl falsch?
Ich möchte hierbei anmerken, dass ich eher gut mit PHP unterwegs bin und ich mich eher noch in der Lernphase bei Python befinde.
Ich würde mich über Kommentare/Support sehr freuen. DANKE!
Hier mein Taster-Script innen:
Code: Alles auswählen
#!/usr/bin/python3.7
import mysql.connector
import time
import shutil
import RPi.GPIO as gpio
import os
import sys
import subprocess
#Einstellungen
klingel_gpio = 24 #GPIO, der mit der Schaltung verbunden ist
#Datenbank
mydb = mysql.connector.connect(
host="192.168.2.xxx",
port="3307",
user="klingel",
password="xxxxx",
database="klingel_log"
)
gpio.setmode(gpio.BCM)
gpio.setup(klingel_gpio, gpio.IN, pull_up_down=gpio.PUD_UP)
while True:
time.sleep(0.01)
if not gpio.input(klingel_gpio):
time.sleep(0.1)
if not gpio.input(klingel_gpio):
# hier Bash-Script öffnen
subprocess.run(["oeffner.sh"])
# hier in DB schreiben
mycursor = mydb.cursor()
sql = "INSERT INTO klingel_liste (klingel, foto_url) VALUES (%s, %s)"
val = ("Öffner Knopf", "xxx.jpg")
mycursor.execute(sql, val)
mydb.commit()
mycursor.close()
time.sleep(6)
#6 Sekunden warten, bis neu in SQL geschrieben werden kann, Taster wird erst nach 7 Sek wieder geprüft, da 6 Sek Relais aktiv