Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

alarme pour raspberry
#1

bonjour, suis nouveau sur le forum j ai trouvé sur un site (http://www.projects.privateeyepi.com/hom...em-project) je voulez savoir si quelqu un a deja essayé .
moi j ai suivi les explications, mais ca ne fonctionne pas pourtant ils expliquent tres bien la procedure a suivre .
merci de votre aide
Répondre
#2

Salut,
Je ne connais pas mais je vais me renseigner.
Peux tu détailler un peu plus le problème ? À quel moment arrive l'erreur, quel est son type, et quels sont les symptômes ?
C'est avec plaisir que j'essaierai de t'aider.

@+
Nicolas.

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#3

merci de ta reponse je ne recoi pas les email avec la photo jointe

le message d erreur et le suivant:
Webcam,Webcam,/n
[['Webcam', 'Webcam']]
Traceback (most recent call last):
File "webcam.py", line 310, in <module>
SendEmailPhoto(SensorNumber)
File "webcam.py", line 116, in SendEmailPhoto
part = MIMEApplication(open(latestphoto,"rb").read())
TypeError: coercing to Unicode: need string or buffer, NoneType found

je voudrais aussi faire un capteur de mouvement avec prise de photo et envoi par email a l aide d un capteur pir,une webcam mais je trouve pas de scrypt python qui me convient
Répondre
#4

C'est un projet DIY ?

Anciennement vodkaorange Wink
Forum français et communauté sur les caméras embarqués et dashcam : Dashcam-France.fr
Blog notes - Github
Répondre
#5

DIY ca veux dir quoi?
Répondre
#6

Comme ça je peux te dire qu'il y a une variable qui est déclarée avec le mauvais type. Quel python utilises tu, 2 ou 3 ?
Peux tu m'envoyer le code par mail ([email protected]) ?

@+

Nicolas.

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#7

il est parti
Répondre
#8

Oups j'ai oublié une lettre OSmile
c'est: [email protected]
Satané correcteur orthographique !

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#9

nathan04 a écrit :merci de ta reponse je ne recoi pas les email avec la photo jointe

le message d erreur et le suivant:
Webcam,Webcam,/n
[['Webcam', 'Webcam']]
Traceback (most recent call last):
File "webcam.py", line 310, in <module>
SendEmailPhoto(SensorNumber)
File "webcam.py", line 116, in SendEmailPhoto
part = MIMEApplication(open(latestphoto,"rb").read())
TypeError: coercing to Unicode: need string or buffer, NoneType found

je voudrais aussi faire un capteur de mouvement avec prise de photo et envoi par email a l aide d un capteur pir,une webcam mais je trouve pas de scrypt python qui me convient

Je ne suis pas un pro de Python et de Ruby, mais ça serait pas juste le "latestphoto.rb" qui est introuvable ?
Répondre
#10

nathan04 a écrit :DIY ca veux dir quoi?

Do I Yourself, faites le vous même Wink

Anciennement vodkaorange Wink
Forum français et communauté sur les caméras embarqués et dashcam : Dashcam-France.fr
Blog notes - Github
Répondre
#11

Do It Yourself plutôt Smile.
Répondre
#12

merci pour votre aide j ai chercher dans le script python et j ai trouvé ca:

files = glob.glob(photopath)
latestphoto = get_latest_photo(files)
msgtext = BuildMessage(SensorNumber);

msg = MIMEMultipart()

addr_to = RecordSet[][0]
addr_from = smtp_user
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = "Webcam Motion Alert"
msg.preamble = 'Multipart message.\n'
part = MIMEText(msgtext)
msg.attach(part)
part = MIMEApplication(open(latestphoto,"rb").read())
part.add_header('Content-Disposition', 'attachment', filename=latestphoto)
msg.attach(part)

# Send the message via an SMTP server with no encryption
#s = smtplib.SMTP(smtp_server)
#s.login(smtp_user,smtp_pass)
#s.sendmail(addr_from, addr_to, msg.as_string())

# Send the message via an SMTP server with TLS encryption e.g. YAHOO!
# uncommend the next 4 lines and comment the above 3 starting with s = smtp$

# Send the message via an SMTP server with SSL encryption e.g. GMAIL
# uncommend the next 3 lines and comment the above 3 starting with s = smtp$
#s = smtplib.SMTP_SSL(smtp_server, 465)
s = smtplib.SMTP("smtp.gmail.com",465)
s.ehlo()
s.starttls()
s.ehlo()

s.login(smtp_user,smtp_pass)
s.sendmail(msg['From'], msg['To'], msg.as_string())

s.quit()

mais pour moi c est du chinois
Répondre
#13

Salut,
J'ai eu un problème similaire.
Dans le bout de code que tu viens de poster, il y a une référence à la fonction get_lastest_photo. Cn'est elle qui pose soucis car elle ne renvoi pas le bon type de variable.
Je retourne dans le code.
Je te tiens au courant de mes avancées.
@+
Nicolas.

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#14

Re,
Ce qui ne va pas, je pense, c'est la liste des fichiers envoyés aux fonctions.
Par contre je n'ai pas compris le fonctionnement du système. Il y a forcement un autre script qui gère tout. Si tu exécute ce fichier seul, ça ne peux pas marcher, c'est uniquement des fonctions. Il faut un autre script pour envoyer les paramètres de ces fonctions.
@+
Nicolas.

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#15

Je partage le code pour que d'autres puissent intervenir:
Code :
######################################################################################
## webcam.py 2.00 Creates an alarm alert from webcam motion                         ##
## ---------------------------------------------------------------------------------##
## Works conjunction with host at www.privateeyepi.com                              ##
## Visit projects.privateeyepi.com for full details                                 ##
##                                                                                  ##
## J. Evans October 2013                                                            ##
##                                                                                  ##
## Revision History                                                                 ##
## V1.00 - Initial version created                                                  ##
## V2.00 - Added email alerts                                                       ##
######################################################################################

import time
import urllib2
import subprocess
global user
global password
global PrintToScreen
global smtp_server
global smtp_user
global smtp_pass
global EmailPhoto
global SensorNumber
global SendEmails
import sys
import smtplib
import os, glob, time, operator
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart

#Configure the sensor number that you set up on the server
SensorNumber = 98

# If you want to receive email alerts define SMTP email server details
# This is the SMTP server, username and password trequired to send email through your internet service provider
# If you have a GMAIL or Yahoo account or one that uses encryption you need to make the relevant changes
# to the SendEmailPhoto() and SendEmail() functions below. For help on how to do this go to:
# http://projects.privateeyepi.com/home/home-alarm-system-project/installation/configure-alarmpy-with-user-and-password
smtp_server="smtp.gmail.com"    # usually something like smtp.yourisp.com or smtp.gmail.com or smtp.mail.yahoo.com
smtp_user="fffffff"      # usually the main email address of the account holder
smtp_pass="pswd"      # usually your email address password

#User and password that has been registered on www.privateeyepi.com website
user="[email protected]"     #Enter email address here
password="pswd" #Enter password here

# Set this to True if you want to send outputs to the screen
# This is useful for debugging
PrintToScreen=True

# Change this to your path where the
# web cam pictures are stored.
# *.jpg means all JPEG files
photopath = "/home/webcam/.jpg"

#set the following to true if you want to send email alerts
SendEmails=True

#set the following to True if you want to attach photos
#to your email alerts. The latest photo specified in the
#photopath directory will be sent
EmailPhoto=True

def get_latest_photo(files):
    lt = operator.lt
    if not files:
        return None
    now = time.time()
    latest = files[0], now - os.path.getctime(files[0])
    for f in files[1:]:
        age = now - os.path.getctime(f)
        if lt(age, latest[1]):
            latest = f, age
    return latest[0]

def SendEmailPhoto(SensorNumber):
        global smtp_server
        global smtp_user
        global smtp_pass      
        global photopath
        global smtp_server
        global smtp_user
        global smtp_pass
    
        # Get the email addresses that you configured on the server
        RecordSet = GetDataFromHost(5,[0])
        if RecordSet==False:
                return
        
        numrows = len(RecordSet)
        
        if smtp_server=="":
                return
                
        for i in range(numrows):
                # Define email addresses to use
                addr_to   = RecordSet[i][0]
                addr_from = smtp_user      
        
                files = glob.glob(photopath)
                latestphoto = get_latest_photo(files)
                msgtext = BuildMessage(SensorNumber);
                
                msg = MIMEMultipart()
            
                addr_to   = RecordSet[i][0]
                addr_from = smtp_user
                msg['To']   = addr_to
                msg['From'] = addr_from
                msg['Subject'] = "Webcam Motion Alert"
                msg.preamble = 'Multipart message.\n'  
                part = MIMEText(msgtext)
                msg.attach(part)
                part = MIMEApplication(open(latestphoto,"rb").read())
                part.add_header('Content-Disposition', 'attachment', filename=latestphoto)
                msg.attach(part)
                                
                # Send the message via an SMTP server with no encryption
                #s = smtplib.SMTP(smtp_server)
                #s.login(smtp_user,smtp_pass)
                #s.sendmail(addr_from, addr_to, msg.as_string())
                
                # Send the message via an SMTP server with TLS encryption e.g. YAHOO!
                # uncommend the next 4 lines and comment the above 3 starting with s = smtplib.SMTP(smtp_server)
                s = smtplib.SMTP("smtp.gmail.com",587)
                s.ehlo()
                s.starttls()
                s.ehlo()

                # Send the message via an SMTP server with SSL encryption e.g. GMAIL
                # uncommend the next 3 lines and comment the above 3 starting with s = smtplib.SMTP(smtp_server)
                #s = smtplib.SMTP_SSL(smtp_server, 465)
                s.login(smtp_user,smtp_pass)
                s.sendmail(msg['From'], msg['To'], msg.as_string())

                s.quit()
                if PrintToScreen: print msg;
              
def NotifyHostEvent(WebcamNumber):

    # Notify the host that an IO was switched (e.g. door open)
    rt=UpdateHost(13,[WebcamNumber])
    # The host will return True if this IO port is linked to a zone that is armed, then send an email
    return(rt)      
          
def SendEmailAlert(SensorNumber):
        global smtp_server
        global smtp_user
        global smtp_pass
    
        # Get the email addresses that you configured on the server
        RecordSet = GetDataFromHost(5,[SensorNumber])
        if RecordSet==False:
                return
        
        numrows = len(RecordSet)
        
        if smtp_server=="":
                return
                
        for i in range(numrows):
                # Define email addresses to use
                addr_to   = RecordSet[i][0]
                addr_from = smtp_user #Or change to another valid email recognized under your account by your ISP      
                # Construct email
                msg = MIMEText(BuildMessage(SensorNumber))
                msg['To'] = addr_to
                msg['From'] = addr_from
                msg['Subject'] = 'Alarm Notification' #Configure to whatever subject line you want
                
                # Send the message via an SMTP server
                s = smtplib.SMTP(smtp_server)
                s.login(smtp_user,smtp_pass)
                s.sendmail(addr_from, addr_to, msg.as_string())
                
                # Send the message via an SMTP server with TLS encryption e.g. YAHOO!
                # uncommend the next 4 lines and comment the above 3 starting with s = smtplib.SMTP(smtp_server)
                #s = smtplib.SMTP(smtp_server,587)
                #s.ehlo()
                #s.starttls()
                #s.ehlo()

                # Send the message via an SMTP server with SSL encryption e.g. GMAIL
                # uncommend the next 3 lines and comment the above 3 starting with s = smtplib.SMTP(smtp_server)
                #s = smtplib.SMTP_SSL(smtp_server, 465)
                #s.login(smtp_user,smtp_pass)
                #s.sendmail(msg['From'], msg['To'], msg.as_string())
                
                s.quit()
                if PrintToScreen: print msg;


def GetDataFromHost(function,opcode):
# Request data and receive reply (request/reply) from the server

    script_path = "https://www.privateeyepi.com/alarmhost.php?u="+user+"&p="+password+"&function="+str(function)
    
    i=0
    for x in opcode:
        script_path=script_path+"&opcode"+str(i)+"="+str(opcode[i])
        i=i+1
        
    if PrintToScreen: print script_path
    try:
        rt = urllib2.urlopen(script_path)
    except urllib2.HTTPError:
        return False
    temp=rt.read()
    if PrintToScreen: print temp
    
    l = find_all(temp,"/n");
    RecordSet = temp.split(',')
    c=[]
    y=0
    c.append([])
    for x in RecordSet:
        if x=="/n":
            y=y+1
            if y < l:
                c.append([])
        else:
            if isNumber(x):
                c[y].append(int(x))
            else:
                c[y].append(x)
        if x=="/FALSE":
            return False    
    return(c)

def UpdateHost(function,opcode):
# Sends data to the server
    glob

C'est du python 2 .

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#16

oui motion capture les photos quand il y a mouvement ,webcam.py et alarm.py qui gere les broches gpio
Répondre
#17

Il envoi quoi comme données motion ?

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#18

il capture les photos les stock dans le repertoire webcam puis webcam.py les envoies
Répondre
#19

bonjour j ai fais des modifications maintenant j ai ce message d erreur:


Webcam,Webcam,/n
[['Webcam', 'Webcam']]
Traceback (most recent call last):
File "webcam.py", line 305, in <module>
SendEmailPhoto(SensorNumber)
File "webcam.py", line 131, in SendEmailPhoto
s.login(smtp_user,smtp_pass)
File "/usr/lib/python2.7/smtplib.py", line 613, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (454, '4.7.0 Too many login attempts, please try again later. ea4sm21135637wib.7 - gsmtp')
Répondre
#20

Salut,
Vérifie tes infos de connexion pour l'envoi de mail, il doit y avoir une erreur
@+
Nicolas.

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#21

Jeoffrey a écrit :Do It Yourself plutôt Smile.

Faute de frappe Wink

Anciennement vodkaorange Wink
Forum français et communauté sur les caméras embarqués et dashcam : Dashcam-France.fr
Blog notes - Github
Répondre
#22

si je suprime la ligne suivante je n ai plus de message d erreur je recois bien l email mais je n ai pas de photo

part = MIMEApplication(open(latestphoto,"rb").read())
Répondre
#23

ce message s affiche :

Subject: Webcam Motion Alert

Multipart message.

--===============0521321320==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename

This is an automated email from your house alarm system. Alarm activated for Zone: Webcam (Webcam)
--===============0521321320==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename

This is an automated email from your house alarm system. Alarm activated for Zone: Webcam (Webcam)
Répondre
#24

nathan0407 a écrit :si je suprime la ligne suivante je n ai plus de message d erreur je recois bien l email mais je n ai pas de photo

part = MIMEApplication(open(latestphoto,"rb").read())
Logique ! Tu as supprimé la ligne qui joint la photo au mail !

Projet en cours : Commande de projecteurs via un Raspberry
Mon blogTopic sur le forumDépôt GitHub
Répondre
#25

comment faut il que je fasse alors?
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)