ich bin langsam am Verzweifeln und hoffe auf eure Unterstützung. Ich habe nach über einem Tag suchen und probieren immer noch keine Lösung gefunden.
Ich bastele gerade an einer automatisierten Licht-/ Temperatursteuerung für meine Terrarien. Damit bin auch soweit fertig. Jetzt möchte ich den Gehäuselüfter des Pi bei einer bestimmten CPU-Temperatur einschalten lassen und mir eine Mail senden lassen. Das schalten des Lüfters klappt ohne Probleme, jetzt möchte ich aus dem Python-Script welches die Temperatur der CPU ausliest und bei Erreichen eines Schwellwertes den Lüfter über GPIO einschaltet ein anderes Script starten welchen eine Mail versendet.
Versucht habe ich das Ganze mit „subprocess.Popen("/Pfad/Script")“, „./Script“, „sudo python /Pfad/Script„ …
Ich bekomme immer folgende Fehlermeldung:
File "0_Gehaeuseluefter.py", line 23
subprocess.Popen("./CPU_Mail.py")
^
IndentationError: unexpected indent
Mein Lüfterscript sieht wie folgt aus:
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: utf-8 -*-
import os
import time
import RPi.GPIO as GPIO
import subprocess
import sys
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT)
def getCPUtemperature():
res = os.popen('vcgencmd measure_temp').readline()
return(res.replace("temp=","").replace("'C\n",""))
temp_float = float(getCPUtemperature())
path = "/media/HDD/Scripts"
try:
if (temp_float > 50):
print temp_float
print "power on fan..."
subprocess.Popen("path/CPU_Mail.py")
# ein
GPIO.output(8, True)
time.sleep(180)
print "power off fan..."
# aus
GPIO.output(8, False)
print float(getCPUtemperature())
else:
print temp_float
print "temp too low"
except KeyboardInterrupt:
print float(getCPUtemperature())
print "power off fan..."
GPIO.output(8, False)
print "cancelling..."
Vielen Dank für eure Unterstützung