# HG changeset patch
# User drewp@bigasterisk.com
# Date 1450168044 28800
# Node ID 7d3645c2157ef7db0e1c55506b1688964836ec8f
# Parent 75717a0be824cba7ca51ad10ae018c7616e8b85b
rainforest eagle data -> carbon
Ignore-this: 953342d0ec8b882acb5a107468457b69
diff -r 75717a0be824 -r 7d3645c2157e service/powerEagle/reader.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/service/powerEagle/reader.py Tue Dec 15 00:27:24 2015 -0800
@@ -0,0 +1,60 @@
+#!bin/python
+import json, logging, time
+import sys
+sys.path.append("/my/proj/homeauto/lib")
+from logsetup import log
+sys.path.append("/my/proj/room")
+from carbondata import CarbonClient
+from twisted.internet.task import LoopingCall
+from twisted.internet.defer import inlineCallbacks
+from twisted.internet import reactor
+from cyclone.httpclient import fetch
+
+from private_config import deviceIp, cloudId, installId, macId, periodSec
+
+auth = (cloudId + ':' + installId).encode('base64').strip()
+
+carbon = CarbonClient(serverHost='bang')
+
+class Poller(object):
+ def __init__(self, carbon):
+ self.carbon = carbon
+ self.lastPollTime = 0
+ LoopingCall(self.poll).start(interval=periodSec)
+
+ @inlineCallbacks
+ def poll(self):
+ ret = None
+ try:
+ resp = yield fetch(
+ 'http://{deviceIp}/cgi-bin/cgi_manager'.format(deviceIp=deviceIp),
+ method='POST',
+ headers={'Authorization': ['Basic %s' % auth]},
+ postdata='''
+ get_usage_data
+ 0x{macId}
+
+
+ get_price_blocks
+ 0x{macId}
+ '''.format(macId=macId))
+ ret = json.loads(resp.body)
+ if ret['demand_units'] != 'kW':
+ raise ValueError
+ if ret['summation_units'] != 'kWh':
+ raise ValueError
+ self.carbon.send('system.house.powerEagle.demand_w',
+ float(ret['demand']) * 1000)
+ self.carbon.send('system.house.powerEagle.summation_delivered_kWh',
+ float(ret['summation_delivered']))
+ except Exception as e:
+ log.error("failed: %r", e)
+ log.error(repr(ret))
+
+ self.lastPollTime = time.time()
+
+
+log.setLevel(logging.INFO)
+carbon = CarbonClient(serverHost='bang')
+p = Poller(carbon)
+reactor.run()
diff -r 75717a0be824 -r 7d3645c2157e service/powerEagle/requirements.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/service/powerEagle/requirements.txt Tue Dec 15 00:27:24 2015 -0800
@@ -0,0 +1,3 @@
+cyclone==1.1
+service-identity==14.0.0
+Twisted==15.5.0