Browse Source

add simple script to poll for some standard fields...

main
John-Mark Gurney 5 years ago
parent
commit
fecebe2103
1 changed files with 50 additions and 0 deletions
  1. +50
    -0
      poll.py

+ 50
- 0
poll.py View File

@@ -0,0 +1,50 @@
import json
import RainEagle
import sys
import time

if __name__ == '__main__':
with open('eagle.config') as fp:
conf = json.load(fp)

raineagle = RainEagle.Eagle( debug=0 , addr=conf['addr'],
username = conf['username'],
password = conf['password']
)

try:
macid = conf['macid']
except KeyError:
ret_data = raineagle.list_devices()
#print 'list devices:', `ret_data`
macid = ret_data['DeviceInfo']['DeviceMacId']
#print "device MacID = ", macid
print >>sys.stderr, 'macid not specified, detected:', `macid`

#macid = '0xd8d5b90000001346'

#print `raineagle.get_instantaneous_demand(macid)`
#print `raineagle.get_summation_values(macid, interval='day')`
#print `raineagle.get_fast_poll_status(macid)`
interval = conf.get('interval', 10)
s = time.time()
while True:
usage_data = raineagle.get_usage_data(macid)
if False:
print `usage_data`
else:
#{u'message_queue': u'active', u'threshold_lower_demand': u'-2.000000', u'fast_poll_frequency': u'0x00', u'summation_delivered': u'65374.021', u'message_read': u'Y', u'price': u'0.2700', u'demand_timestamp': u'1571842464', u'fast_poll_endtime': u'0x00000000', u'meter_status': u'Connected', u'message_confirm_required': u'N', u'message_confirmed': u'N', u'demand_units': u'kW', u'summation_units': u'kWh', u'demand': u'0.9980', u'price_units': u'840', u'message_timestamp': u'946684800', u'price_label': u'Set by User', u'threshold_upper_demand': u'9.155000', u'message_id': u'0', u'summation_received': u'0.000'}
fields = [ 'demand_timestamp', 'meter_status', 'demand',
'threshold_upper_demand', 'demand_units', 'summation_delivered',
'summation_received', 'summation_units', ]
print '\t'.join(usage_data[x].encode('utf8').encode('string-escape') for x in fields)
e = time.time()
s += interval
delay = s - e
print `delay`
if delay <= 0:
s = time.time()
continue

time.sleep(delay)
#print `raineagle.get_time_source(macid)`

Loading…
Cancel
Save