gtermors

homewizardEnergylink.py

Mar 17th, 2014
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 KB | None | 0 0
  1. import sys
  2. import pushover
  3. import homewizardapi
  4. import MySQLdb as mdb
  5. from datetime import datetime, timedelta
  6.  
  7. # Variables
  8. homewizard = homewizardapi.HomeWizard()
  9.  
  10. # Init PushOver
  11. poConfigRead = pushover.readconfig()
  12.  
  13. # Read HW Config
  14. hwConfigRead = homewizard.readconfig()
  15.  
  16. print 'ConfigRead: ' + str(hwConfigRead)
  17.  
  18. # Handshake
  19. if hwConfigRead:
  20.    hwHandshake = homewizard.handshake()
  21. else:
  22.    hwHandshake = False
  23.  
  24. print 'Handshake : ' + str(hwHandshake)
  25.  
  26. # Exit if Config or Handshake error
  27. if not hwConfigRead or not hwHandshake:
  28.    pushover.notify('HW EnergyLink: Error Connecting!',
  29.                    'ConfigRead: ' + str(hwConfigRead) + '\nHandshake : ' + str(hwHandshake),
  30.                    1,
  31.                    'alien',
  32.                    '',
  33.                    '')
  34.    sys.exit(-1)
  35.  
  36. # Read EnergyLink Day
  37. hwSuccess, hwResponse = homewizard.energylinkDay()
  38.  
  39. print 'Success   : ' + str(hwSuccess)
  40.  
  41. if hwSuccess:
  42.    # Setup DB Connection
  43.  
  44.    try:
  45.       db = mdb.connect('server', 'user', 'password', 'homewizard');
  46.       cursor = db.cursor()
  47.    except mdb.Error, e:
  48.       errorMsg =  'Error %d: %s' % (e.args[0],e.args[1])
  49.       print '\n' + errorMsg + '\n'
  50.      
  51.       pushover.notify('HW EnergyLink: MySQL Error!',
  52.                       errorMsg,
  53.                       1,
  54.                       'alien',
  55.                       '',
  56.                       '')
  57.       sys.exit(-1)      
  58.  
  59.    # Process Items
  60.    for dayItem in hwResponse:
  61.       t  = dayItem['t']
  62.       u  = dayItem['u']
  63.       a  = dayItem['a']
  64.       s1 = dayItem['s1']
  65.       s2 = dayItem['s2']
  66.       g  = dayItem['g']
  67.  
  68.       date = t[:10]
  69.       time = t[-5:]
  70.  
  71.       #print 'Date: ' + date + ' Time: ' + time
  72.      
  73.       sqlInsert = "INSERT IGNORE INTO EnergyLinkDay VALUES ('%s','%s', '%s', %i,%i,%i,%i,%f)" % (t,date,time,u,a,s1,s2,g)
  74.  
  75.       try:
  76.          cursor.execute(sqlInsert)
  77.       except mdb.Error, e:
  78.          errorMsg =  'Error %d: %s' % (e.args[0],e.args[1])
  79.          print '\n' + errorMsg + '\n'
  80.  
  81.          pushover.notify('HW EnergyLink: MySQL INSERT Error!',
  82.                          errorMsg,
  83.                          1,
  84.                          'alien',
  85.                          '',
  86.                          '')
  87.          
  88.          sys.exit(-1)      
  89.  
  90.    # Close DB
  91.    db.close()
  92. else:
  93.    pushover.notify('HW EnergyLink: Error Retrieving Data!',
  94.                    datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S'),
  95.                    0,
  96.                    'alien',
  97.                    '',
  98.                    '')
Advertisement
Add Comment
Please, Sign In to add comment