Guten Morgen miteinander,
ich habe eine lokale MySQL-DB auf dem Raspberry angelegt und ein passendes Skript dazu geschrieben. Nun würde ich gerne nach einem Reboot das Skript automatisch ausführen lassen. Jedoch schreibt mir das Skript nichts in die Datenbank. Der MySQL-Server startet erfoglreich nach einem reboot, nur wird nichts reingeschrieben. Ich habe extra die rc.local angepasst, das beim booten ein Datum in eine Datei geschrieben, daher weiß ich dass das die rc.local ausgeführt wird. Auch ein Sleep-Befehl bringt nichts.
Bin so langsam am Verzweifeln. Unten findet ihr den Code des Skripts und der rc.Local.
Gruß freakontour
rc.local:
Bash
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
date>/tmp/testdebug.log
(sleep 10;python mDB.py)&
exit 0
Alles anzeigen
python skript:
Python
#!/usr/bin/python
# coding: utf8
import os
import string
import time
from os import getenv
import RPi.GPIO as gp
from time import gmtime, strftime, sleep, localtime
import datetime
import sys
import csv
import MySQLdb
'Deklaration der Variabeln'
pin = [17,18,21,22,23,24,16]
pinTextI = ['MaschineI', 'MotorI', 'HandbetriebI', 'AutomatikI', 'RüstenI', 'StueckzahlI']
pinTextO = ['MaschineO', 'MotorO', 'HandbetriebO', 'AutomatikO',' RüstenO', 'StueckzahlO']
gp.cleanup
'Setzen der PINS'
gp.setwarnings(False)
gp.setmode(gp.BCM)
gp.setup(pin[0], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[1], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[2], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[3], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[4], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[5], gp.IN, pull_up_down= gp.PUD_DOWN)
gp.setup(pin[6], gp.IN, pull_up_down= gp.PUD_DOWN)
def datei_schreiben(zMaschine, zMotor, zHandbetrieb, zAutomatik, zRuesten, zStueckzahl):
#Datenbank prüfen ----------------------------------------------
try:
tempfile = open("/sys/class/thermal/thermal_zone0/temp")
cpu_temp = tempfile.read()
tempfile.close()
Temperatur = str(float(cpu_temp)/1000)
Temperatur = int(Temperatur[0:2])
#date = strftime("%d%m%Y %H:%M:%S", localtime())
date = datetime.datetime.now().replace(microsecond=0)
print date
conn = MySQLdb.connect(host="localhost", user="root", passwd="PASSWORT", db="MDE")
cursor = conn.cursor()
cursor.executemany("INSERT INTO tblRP_MDE (Date, Maschine, Motor, Handbetrieb, Automatik, Ruesten, Stueckzahl, Temperatur) Values (%s, %s, %s, %s, %s, %s, %s, %s)", [(date, zMaschine, zMotor, zHandbetrieb, zAutomatik, zRuesten, zStueckzahl, Temperatur)])
conn.commit()
conn.close()
except RuntimeError:
print('RuntimeError, Programmcode verursacht einen Fehler ')
sys.exit()
#Programmcode
while True:
try:
zeitAe = 1
zeit = time.time()
t=0.2
while gp.input(pin[0]):
#Produktion im Automatikmodus
if (gp.input(pin[1]) and gp.input(pin[2]) and gp.input(pin[5])):
print('Produktion im Handbetrieb ')
datei_schreiben("1", "1", "1", "0", "0", "1")
sleep(t)
#Produktion im Automatikmodus
elif (gp.input(pin[1]) and gp.input(pin[3]) and gp.input(pin[5])):
print('Produktion im Automatikbetrieb ')
datei_schreiben("1", "1", "0", "1", "0", "1")
sleep(t)
#Maschine steht im Automatikbetrieb
elif (gp.input(pin[1]) and gp.input(pin[3])):
print('Maschine steht im Automatikbetrieb ')
datei_schreiben("1", "1", "0", "1", "0", "0")
sleep(t)
#Maschine steht im Handbetrieb
elif (gp.input(pin[1]) and gp.input(pin[2])):
print('Maschine steht im Handbetrieb ')
datei_schreiben("1", "1", "1", "0", "0", "0")
sleep(t)
#Maschine wird umgerüstet
elif (gp.input(pin[1]) and gp.input(pin[6])):
print('Maschine wird umgerüstet')
datei_schreiben("1", "1", "0", "0", "1", "0")
sleep(t)
#Maschine und Hauptantrieb ist an
elif gp.input(pin[1]):
print('Maschine und Motor ')
print(pinTextI[0],pinTextI[1])
datei_schreiben("1", "1", "0", "0", "0", "0")
sleep(t)
#Maschine wird gerüstet
elif (gp.input(pin[4])):
print('Maschine wird gerüstet ')
datei_schreiben("1", "0", "0", "0", "1", "0")
sleep(t)
#Maschine ist an
else:
print('Maschine ist an ')
datei_schreiben("1", "0", "0", "0", "0", "0")
sleep(t)
sleep(t)
print('Maschine ist aus ')
datei_schreiben("0", "0", "0", "0", "0", "0")
sleep(t)
except RuntimeError:
print('RuntimeError, Programmcode verursacht einen Fehler ')
sys.exit()
finally:
gp.cleanup
Alles anzeigen