精密空调DataMate3000环境监控脚本

精密空调DataMate3000环境监控脚本,第1张

概述精密空调DataMate3000环境监控脚本

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#!/usr/bin/env python#Coding:utf-8"""  Author:  EDWard.Zhou -- <[email protected]>  Purpose: 监控精密空调DataMate3000状态  Created: 2015年05月02日"""import unittestimport netsnmpimport sysimport argparse#DataMate3000MIB库DaTaMate3000MIB = {    'SmartOutput': {        'Temperature': '.1.3.6.1.4.1.13400.2.10.1.2.2.1',#温度         'HumIDity': '.1.3.6.1.4.1.13400.2.10.1.2.2.2',#湿度        },'BaseStatus': {        #'''Status:   unkNown ( 1 ),ok ( 2 ),lostCommunication ( 3 ),notEstablished ( 4 )'''        'Communication': '.1.3.6.1.4.1.13400.2.10.1.3.1.1',#通信状态        },'SmartStatus': {        #'''Status:  #unkNown ( 1 ),on ( 2 ),off ( 3 )'''        'UnitOnOff': '.1.3.6.1.4.1.13400.2.10.1.3.2.1',#开关机        'MainFan': '.1.3.6.1.4.1.13400.2.10.1.3.2.2',#风机        'CoolMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.3',#制冷        'HeatMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.4',#加热        'HumIDifyMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.5',#加湿        'DehumIDifyMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.6',#除湿        'HighPressure': '.1.3.6.1.4.1.13400.2.10.1.3.2.7',#高压告警        'LowPressure': '.1.3.6.1.4.1.13400.2.10.1.3.2.8',#低压告警        'HighTemperature': '.1.3.6.1.4.1.13400.2.10.1.3.2.9',#高温告警        'LowTemperature': '.1.3.6.1.4.1.13400.2.10.1.3.2.10',#低温告警        'HighHumIDify': '.1.3.6.1.4.1.13400.2.10.1.3.2.11',#高湿告警        'LowHumIDify': '.1.3.6.1.4.1.13400.2.10.1.3.2.12',#低湿告警        'PowerFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.13',#电源故障告警        'ShortCycle': '.1.3.6.1.4.1.13400.2.10.1.3.2.14',#短周期告警        'CustomAlarm1': '.1.3.6.1.4.1.13400.2.10.1.3.2.15',#自定义告警1        'CustomAlaarm2': '.1.3.6.1.4.1.13400.2.10.1.3.2.16',#自定义告警2        'MainFanServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.17',#主风机维护请求        'HumIDifIErServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.18',#加湿器维护请求        'FilterServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.19',#过滤网维护请求        'CoilFroze': '.1.3.6.1.4.1.13400.2.10.1.3.2.20',#盘管冻结        'HumIDifIErFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.21',#加湿器故障        'SensorBoardFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.22',#传感器板故障        'dischargeTemperatureFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.23',#排气温度故障        'PowerLost': '.1.3.6.1.4.1.13400.2.10.1.3.2.24',#电源丢失        'InnerCommFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.25',#空调通讯状态        },}#设置返回状态码'''ST_OK=0 #正常ST_WR=1 #错误ST_CR=2 #严重警告ST_UK=3 #未知'''#采用snmp协议获取相应OID值def snmpGet(oID,version = 1,community = 'public',host = 'localhost'):    try:        result = netsnmp.snmpwalk(oID,Version = version,Community = community,DestHost = host)    except Exception,err:        print err        sys.exit()    if result:        return result[0]    else:        return Nonedef main():    parser = argparse.ArgumentParser(description='DataMate 3000 status check')    parser.add_argument('-i','--host',dest='host',nargs = '?',default= 'localhost',required = False,help='The specifIEd monitoring DataMate 3000 IP or Host')    parser.add_argument('-v','--version',dest='version',default= 1,type = int,help='The specifIEd snmp version')    parser.add_argument('-C','--Community',dest='Community',default= 'public',help='The specifIEd snmp community')    parser.add_argument('-V','--Variable',dest = 'Variable',default = 'Temperature',required = True,choices  = ['Temperature','HumIDity'],help = 'The specifIEd check object' )    parser.add_argument('-w','--warning',dest = 'warning',default = None,help = 'Threshold which will result in a warning status')    parser.add_argument('-c','--critical',dest = 'critical',help = 'Threshold which will result in a critical status')    args = parser.parse_args()    #检测环境温度    if args.Variable == 'Temperature':        toID = DaTaMate3000MIB['SmartOutput']['Temperature']        _result = snmpGet(toID,args.version,args.Community,args.host)        result = float(_result)        if (result / 10) < args.warning:            print "DataMate 3000 Teamperature is %s ℃,status is ok." % (result / 10)            sys.exit(0)        elif (result / 10) >= args.warning and (result / 10) <= args.critical:            print "DataMate 3000 Teamperature is %s ℃,status is warning." % (result / 10)            sys.exit(1)        elif (result / 10) >= args.critical:            print "DataMate 3000 Teamperature is %s ℃,status is critical." % (result / 10)            sys.exit(2)        else:            print "DataMate 3000 Teamperature is unkNown ℃,status is unkNown."            sys.exit(3)    #检测环境湿度    if args.Variable == 'HumIDity':        hoID = DaTaMate3000MIB['SmartOutput']['HumIDity']        _result = snmpGet(hoID,args.host)        result = float(_result)        if result < args.warning:            print "DataMate 3000 HumIDity is %s %%rH,status is ok." % result            sys.exit(0)        elif result >= args.warning and result <= args.critical:            print "DataMate 3000 HumIDity is %s %%rH,status is warning." % result            sys.exit(1)        elif result >= args.critical:            print "DataMate 3000 HumIDity is %s %%rH,status is critical." % result            sys.exit(2)        else:            print "DataMate 3000 HumIDity is unkNown %%rH,status is unkNown."            sys.exit(3)    if __name__ == '__main__':    main()

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的精密空调DataMate3000环境监控脚本全部内容,希望文章能够帮你解决精密空调DataMate3000环境监控脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存