HI
ich habe das Script unten benutzt, funktioniert, email wird verschickt.
Ich hätte gerne das mir eine Datei in den Outgoing Ordner meines smstools kopiert wird, damit eine SMS mit den Temperaturen verschickt wird, die nicht ok sind
Hoffe Ihr könnt mir helfen, bin kein Softwerkler
[code=php]
#!/usr/bin/python
import os
import sys
import smtplib
from email.mime.text import MIMEText
verbose_level = 2
dead_hi = -0.02
dead_lo = -0.20
debug_level = 0
error_temp = -999
# dictionary with for 1-wire sensors: [sensor name] [1-Wire device]
sensor_dict = { 'Vorn_Oben':'28-000004c4dfe0',
'Vorn_Unten':'28-000004e0a730',
'Hinten_Oben':'28-000004e0b498',
'Hinten_Unten':'28-000004e10f1c',
'Erde':'28-000004e0f4c2'
}
#---------------------------------------------------------------------------------------------
def read_sensor(Sensor):
if verbose_level > 2:
print "1++++ read_sensor()"
print "sensor:" , Sensor
if debug_level == 0:
# get 1-Wire id from dictionary
sensor_slave = str(sensor_dict.get(Sensor))
# Open 1-wire slave file
sensor_device = '/sys/bus/w1/devices/' + str(sensor_slave) + '/w1_slave'
if verbose_level > 2:
print "open: ", sensor_device
try:
file = open(sensor_device)
filecontent = file.read() # Read content from 1-wire slave file
file.close() # Close 1-wire slave file
stringvalue = filecontent.split("\n")[1].split(" ")[9] # Extract temperature string
if stringvalue[0].find("YES") > 0:
temp = error_temp
else:
temp = float(stringvalue[2:]) / 1000 # Convert temperature value
# temp=str(temp)
except IOError:
print "PANIC read_sensor - Cannot find file >" + sensor_slave + "< in /sys/bus/w1/devices/"
print "No sensor attached"
print "check with > cat /sys/devices/w1_bus_master1/w1_master_slaves"
temp=("Sensor not attached")
return(temp) # exit function read_sensor
#---------------------------------------------------------------------------------------------
def control_sensor(Sensor,alarm_hi,alarm_lo):
cur_temp = read_sensor(Sensor)
print "Aktuelle Temperatur:", cur_temp, "/ Alarm High:", alarm_hi, "/ Alarm Low:", alarm_lo
if cur_temp >= dead_lo and cur_temp <= dead_hi or cur_temp == error_temp:
print "read error - CRC = NO"
else:
if (cur_temp > alarm_hi) or (cur_temp < alarm_lo):
emailtext = "Sensor: " + Sensor + " / Die Temperatur betraegt: " + str(cur_temp) + " Grad Celsius"
msg = MIMEText(emailtext)
msg['Subject'] = 'Temperatur Alarm'
msg['From'] = 'ABSENDER'
#msg['From'] = mail_from
msg['To'] = 'EMPFÄNGER'
#msg['To'] = mail_to
s = smtplib.SMTP('smtp.gmail.com:587')
#s = smtplib.SMTP(mail_smtp)
s.starttls()
s.login('ABSENDER','PASSWORT')
#s.login(mail_from,mail_from_pass)
s.sendmail('EMPFÄNGER',['EMPFÄNGER'], msg.as_string())
#s.sendmail(mail_to,[mail_to], msg.as_string())
s.quit()
else:
print "o.k."
return; # exit function control_sensor
#---------------------------------------------------------------------------------------------
if __name__ == "__main__":
### /etc/profile Umgebungsvariable festlegen
mail_from = os.getenv("MAIL-FROM")
mail_from_pass = os.getenv("MAIL-FROM-PASS")
mail_to = os.getenv("MAIL-TO")
mail_smtp = os.getenv("MAIL-SMTP")
### Sensor Kontrollfunktion fuer jeden aufrufen 1. Parameter = Alarm Hoechstwert 2. Parameter = Alarm Niedrigwert
control_sensor("Vorn_Oben",50.0,3.5)
control_sensor("Vorn_Unten",50.0,3.5)
control_sensor("Hinten_Oben",50.0,3.5)
control_sensor("Hinten_Unten",50.0,3.5)
control_sensor("Erde",50.0,3.5)
sys.exit(0)
[/php]