zoneminder报警(微信、QQ提醒)

zoneminder报警:当无人在家(dhcp保留手机IP,通过ping手机IP判断是否有人在家),过去10秒所有帧画面平均分值超过10分时,发送报警邮件到QQ邮箱,微信开通邮件提醒后,可以直接经过微信通知

suspend:检测到手机,不报警

fine:检测不到手机,开启报警,无警报

alarm:检测不到手机,开启报警,有警报

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
import smtplib
import datetime
import os
from email.mime.text import MIMEText


mail_host = 'smtp.163.com'
mail_user = '***'
mail_pass = '***'
mail_postfix = '163.com'
mail_subject = 'zm_alarm:' + datetime.datetime.now().strftime('%y-%m-%d_%H:%M:%S')
strsql='select e.id,f.score from frames f,events e where f.eventid=e.id and e.monitorid=1 and f.timestamp>date_sub(now(), interval 10 second)'


def send_mail(sub,content):
        me='zm<' + mail_user + '@' + mail_postfix + '>'
        msg = MIMEText(content,_subtype='html',_charset='utf-8')
        msg['Subject'] = sub
        msg['From'] = me
        msg['To'] = '***@qq.com'
        try:
                server = smtplib.SMTP()
                server.connect(mail_host)
                server.login(mail_user,mail_pass)
                server.sendmail(me, '***@qq.com', msg.as_string())
                server.close()
        except Exception, e:
                print str(e)


if len(os.popen('ping -c 2 -W 1 192.168.2.188 | grep time | grep from ').readlines()) == 0:
        db = MySQLdb.connect('192.168.2.50','zmuser','zmpass','zm' )
        cur = db.cursor()
        num = cur.execute(strsql)
        data = cur.fetchall()
        score = 0
        scoremax = 0
        eventid = 0
        for rec in data:
                score = score + rec[1]
                if rec[1] > 10:
                        eventid = rec[0]
                if scoremax < rec[1]:
                        scoremax=rec[1]
        if score > num * 10:
                print 'ALARM'
                send_mail(mail_subject + '[mx:%s]'%(scoremax,),\
                        'Alarm <br />EventID:<a href="http://***/zm?view=event&mode=stream&amp;mid=1&eid=%s">%s</a>'\
                        '<br />Frames: %s<br />MaxScore: %s<br />'\
                        'CAM_VIEW:<a href="http://***/zm/?view=montage&group=0" target="_blank">http://***/zm/?view=montage&group=0</a>'%(eventid,eventid,num,scoremax))
                os.system('echo `date "+%Y-%m-%d %H:%M:%S : 1 - ALARM."` >> /var/works/mlog')
        else:
                os.system('echo `date "+%Y-%m-%d %H:%M:%S : 0 - FINE."` >> /var/works/mlog')
        cur.close()
        db.close()
else:
        os.system('echo `date "+%Y-%m-%d %H:%M:%S : 0 - SUSPEND."` >> /var/works/mlog')
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值