Python While schleife und Email

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Metachen
User
Beiträge: 2
Registriert: Mittwoch 6. Februar 2013, 13:20

Guten Morgen :D .
Ich arbeite seit einiger Zeit an einem Projekt und stehe nun kurz vorm Abschluss. Nur muss für mich die letzte Hürde natürlich die schwierigste sein. ich erkläre kurz das Projekt: Ich habe an einer Plantine 3 Temperatursensoren angelötet, und diese mit Kabel an einem Raspberry Pi verbunden, ich konnte also mit dem coolen mini-PC Temperaturen im Terminal auslesen. Da die Temperatursensoren manchmal ein bisschen spinnen und einen temperaturwert (immer) von -1,25°C ausgeben, habe ich noch eine While schleife geschrieben, die die Temperatur neu ausliest, falls der Wert -1,25 erscheint. Da ich die Temperatursensoren in einen Server Raum stellen möchte, musste ich eine Lösung finden, wie man die Temperaturen von anderen PCs aus empfängt. Also schloss ich den Pi ans Netzwerk an und schrieb jedem Temperatursensor seine Variable, damit ich alle 3 Temperatursensoren in einem ebenfalls vom Python script erstellten HTML Dokument printen kann. Mit Cronjobs hab ich eingestellt, dass der Script jede Minute ausgeführt wird. Die Vorletzten Schritte waren die einfachsten. Ich musste mir nur noch einen WebServer installieren und als kleinen Zusatz noch Webmin. Nun kann man von allen PCs im Netzwerk die Temperaturen sehen und sie werden jede Minute automatisch aktualisiert. Nun mein Problem: Wie schreibe ich eine Schleife, die sobald eine Temperatur über 40 oder 30 Grad steigt, eine Email an jemanden schickt? Danke für Antworten

edit: Ich habe auf webmin natürlich einen Mail server und über Internet verfüge ich auch
edit2: Ich habe mich entschieden es ohne Mail server zu machen.

Code: Alles auswählen

#!/usr/bin/python

import smtplib
import time

absender = 'xxxxxxxxxxx@yahoo.de'
adressat = 'xxxxxxxxxxxxxx@googlemail.com'
betreff = xxxxxxxxxxxxxxxxxxxxx'
inhalt = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
zeit = time.ctime(time.time())

### String bauen
text =  'From: '+absender+'\n' 
text += 'To: '+adressat+'\n'
text += 'Date: '+zeit+'\n' 
text += 'Subject: '+betreff+'\n'
text = text + inhalt
print text

### Email senden
### SMTP server
server = smtplib.SMTP('smtp.xxxxxxxxxx.xxx')
### Authentifizierung
server.login('username','secret')
### Abschicken
server.sendmail(absender,adressat,text)
server.quit()
 
 


mit diesem Code kann ich Emails verschicken... nur wie bau ich den in eine While Schleife ein, sodass wenn eine bedingung erfüllt ist, er erst eine mail verschickt? Danke für Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Code: Alles auswählen

if bedingung:
    ### Email senden
    ### SMTP server
    server = smtplib.SMTP('smtp.xxxxxxxxxx.xxx')
    ### Authentifizierung
    server.login('username','secret')
    ### Abschicken
    server.sendmail(absender,adressat,text)
    server.quit()
Wie kriegst du deine Temparatur Daten in python rein?
Metachen
User
Beiträge: 2
Registriert: Mittwoch 6. Februar 2013, 13:20

indem man sie zu Variabeln macht, z.B Temperatur1.
mit "print Temperatur1" werden sie angezeigt im Terminal
mit "print >>f, Temperatur1" wird die Variable dann angezeigt in einer .txt datei zum Beispiel
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Das oben erscheint mir ein ziemlich einfaches Problem, mich wundert, dass du darüber stolperst. Es in eine Funktion zu packen, ist doch recht normal???
Antworten