Hallo , ich programmiere gerade ein Programm was mir eine Email schickt wenn mein Magnetic Reed auf 0 (bei mir = offen) steht . Das Programm hat auch eine Log Funktion so das er jedes Event einträgt. Und deswegen hatte ich die Frage: Wie mache ich es das er nicht bei jeder Abfrage mein Mail Ordner vollspammt + die Logs? Irgendeine funktion?
Nur veränderungen Eintragen?
-
TheOverclocker -
8. April 2015 um 07:37 -
Erledigt
-
-
Nur veränderungen Eintragen?? Schau mal ob du hier fündig wirst!
-
- Offizieller Beitrag
Wieo vollspammt? Wenn ne Veränderung auf 0 ist soll er dir ne Mail senden...was spammt denn dann? Für das Logging kannst du doch einfach deine gewünschten infos in das Logfilfile umleiten.
. Das ganze kann man jetzt noch mit Uhrzeit usw. erweitern. Am besten du zeigst mal dein Script her.
-
Setz das Verschicken von Mail und das schreiben in den Log so, dass er das erst aufführt wenn sich der Zustand ändert.
Also so was inder der Art: -
- Offizieller Beitrag
In Python/C super über interrupts lösbar. Vom logging modul red ich erst gar nicht
-
Also mein Programm sieht bis jetzt so aus
Bash#!/bin/bash date=date PORT=4 OPEN=gpio -g read $PORT if [ $OPEN == "1" ]; then echo "Tür wurde geöffnet" echo "<<<$date>>> Tür offen" >> home/pi/log.log python /home/pi/mailpositive.py sleep 5 fi
Nur ich hab auch ein Problem : Unzwar wenn ich die mailpositive.py ausführen möchte findet er garnichts mehr ...Code
Alles anzeigen./mailpositive.py: line 1: import: command not found ./mailpositive.py: line 2: import: command not found ./mailpositive.py: line 3: import: command not found ./mailpositive.py: line 4: import: command not found ./mailpositive.py: line 5: import: command not found from: too many arguments ./mailpositive.py: line 9: Empfanger: command not found ./mailpositive.py: line 10: Absender: command not found ./mailpositive.py: line 11: Passwort: command not found ./mailpositive.py: line 12: syntax error near unexpected token `(' ./mailpositive.py: line 12: `smtpserver = smtplib.SMTP('smtp.gmail.com', 587) #SSL'
Python ist eigentlich installiert was mach ich falsch?
-
- Offizieller Beitrag
Er interpretiert dein python script als bash.
Zeig mal her. Funktioniert es wenn du es einzeln ausführst? -
Ok also hier ist es:
Python
Alles anzeigenimport subprocess import smtplib import socket import datetime import sys from email.mime.text import MIMEText # Accountinfo und sooo Empfanger = 'SAMPLETEXT@googlemail.com' Absender = 'SAMPLETEXT@googlemail.com' Passwort = 'Passwort' smtpserver = smtplib.SMTP('smtp.gmail.com', 587) #SSL smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo smtpserver.login(Absender, Passwort) Wert = str(sys.argv[1]) Wert += " " Wert += str(sys.argv[2]) msg = MIMEText(Wert) msg['Türbenachrichtigung'] = 'Ihr Raspberry Pi hat den Status 1 , was soviel bedeutet wie das die Tür offen ist. Eventuell sind Ninjas in ihr Haus eingebrochen und vergreifen sich jetzt an ihren Oreo Keksen.' msg['From'] = Absender msg['To'] = Empfaenger smtpserver.sendmail(Absender, [Empfaenger], msg.as_string()) smtpserver.quit() #RageQuit :D
-
- Offizieller Beitrag
Was soll das da?
ZitatWert = str(sys.argv[1])
Wert += " "
Wert += str(sys.argv[2])
Du erwartest externe Parameter und übergibst aber aus dem Bash script nichts.Das erklärt aber nicht warum er bei dem Rest Fehlermeldung scheisst
-
Ja ich hab mir den untersten Schnipsel aus dem netz geholt..
Jetzt kommt nur noch der fehlerCodeFile "mailpositive.py", line 18 SyntaxError: Non-ASCII character '\xc3' in file mailpositive.py on line 18, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Ehhhhmmmm also ich hab jetzt nen neuen Fehler und zwar nen Ascii aber ich habe alle Ü Ö Ä's entfernt :O -
- Offizieller Beitrag
Das kommt weil du "ü" deinem Text hast, und kein Coding definiert hast
so sollten die ersten beiden Zeilen deines Python Codes aussehn, dann klappts auch mit den Umlauten. Grade getestet und funktioniert -
Das kommt weil du "ü" deinem Text hast, und kein Coding definiert hast
so sollten die ersten beiden Zeilen deines Python Codes aussehn, dann klappts auch mit den Umlauten. Grade getestet und funktioniertWelchen Email provider sollte ich benutzen? Freemail ?
-
- Offizieller Beitrag
Was spricht denn gegen gmail? (Vom Datenschutz mal abgesehen )
-
Hi,
Das Bashskript passt so auch noch nicht ganz.
Zitat
date=date
PORT=4
OPEN=gpio -g read $PORT
Wenn du die Ausgabe eines Programmes oder Skriptes einer Variable zuweisen möchtest solltest du das so machen:--
Wie wird denn dieses Bashskript aufgerufen. Das muss so ja immer wieder aufgerufen werden.
Mit einem Interrupt und einer Endlosschleife könnte man das sehr schön lösen.
Und das geht mit dem 'gpio' Tool auch in Bash. (wfi) :thumbs1:Was meinst du denn genau mit "vollspammt"?
Vielleicht den Pullup bzw. bei dir den Pulldown Widerstand vergessen?
Beschreib bzw. zeichne vielleicht mal kurz die Schaltung.Und wieso sagst du hier:
Zitat
eine Email schickt wenn mein Magnetic Reed auf 0 (bei mir = offen) steht
Wenn du das dann so programmierst: :sZitatWieso hast du denn da überhaupt das Bashskript dazwischen und machst nicht gleich alles in Python bzw. Bash.
Grüße,
Joh
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!