To have E-Mail alerts on low battery use this battery pollin script:# Battery Polling and Alert Version 28.03.2012
gmailUser = "XXXXX"
gmailPwd = "XXXXXX"
subject = "Z-Wave Home Network Battery Alert"
import smtplib, logging
devices = ZWaveAPI.devices
msg = ""
skipNodes = []
for nodeId in filter(lambda (x): x not in skipNodes, devices.keys()):
if devices[nodeId].instances[0].commandClasses.has_key(0x80):
devices[nodeId].instances[0].commandClasses[0x80].Get()
if devices[nodeId].instances[0].commandClasses[0x80].data.last.value < 30 :
msg += "Battery of Node %s (%d) has battery level of %d %%
" % (ZWaveAPI.GetDeviceNameById(nodeId), nodeId, devices[nodeId].instances[0].commandClasses[0x80].data.last.value)
if devices[nodeId].instances[0].commandClasses[0x80].data.last.value == 255:
msg += "Battery of Node %s (%d) is empty!
" % (ZWaveAPI.GetDeviceNameById(nodeId),nodeId)
if len(msg):
try:
smtpserver = smtplib.SMTP("smtp.gmail.com", 587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login(gmailUser, gmailPwd)
smtpserver.sendmail(gmailUser, gmailUser, "From: %s
To: %s
Subject: %s
%s
" % (gmailUser, gmailUser, subject, msg))
except:
logging.zw.info("SMTP failed")
Run this script as action from your schedule as often as you wish.
Example: Send E-Mail alerts when some device's battery is low
Try to change logging mode to
Try to change logging mode to DEBUG (in the log window of the UI). Or use logging.program.critical()