|
- #!/usr/local/bin/python2.7
- """
- A simple script get current meter values
- """
-
- __author__ = "Peter Shipley"
-
- import sys
- sys.path.append('/usr/home/shipley/Projects/Eagle') # temp
-
-
- # import RainEagle
- from RainEagle import Eagle, to_epoch_1970
- import time
- from pprint import pprint
- import json
-
- last_delivered = 0
- debug = 0
-
-
- def main() :
- eg = Eagle( debug=debug , addr="10.1.1.39")
- # timeout=45,
-
- # print "\nlist_devices :"
- # r = eg.list_devices()
- # print "pprint 2"
- # pprint(r)
-
-
-
- print "\nget_device_data :"
- r = eg.get_device_data()
- print
-
- # pprint(r['InstantaneousDemand'])
- print_instantdemand( r['InstantaneousDemand'])
- print
-
- # pprint(r['CurrentSummation'])
- print_currentsummation(r['CurrentSummation'])
- print
-
- exit(0)
-
-
- def print_currentsummation(cs) :
-
- multiplier=int(cs['Multiplier'], 16)
- divisor=int(cs['Divisor'], 16)
- delivered=int(cs['SummationDelivered'], 16)
- received=int(cs['SummationReceived'], 16)
-
- if multiplier == 0 :
- multiplier=1
-
- if divisor == 0 :
- divisor=1
-
- reading_received = received * multiplier / float (divisor )
- reading_delivered = delivered * multiplier / float (divisor )
-
- time_stamp = to_epoch_1970(cs['TimeStamp'])
-
- print time.asctime(time.localtime(time_stamp)), " : "
- print "\tReceived=", reading_received, "Kw"
- print "\tDelivered=", reading_delivered, "Kw"
- print "\t\t", (reading_delivered - reading_received)
-
-
- # print "{0}\t{1:.4f}\t{2:0.4f}\t{3:.4f}".format(
- # time.strftime("%Y-%m-%d %H:%M:%S", time_struct),
- # reading_received,
- # reading_delivered,
- # (reading_delivered - reading_received) )
-
-
- def print_instantdemand(idemand) :
-
- time_stamp = to_epoch_1970(idemand['TimeStamp'])
-
- multiplier=int(idemand['Multiplier'], 16)
- divisor=int(idemand['Divisor'], 16)
- demand=int(idemand['Demand'], 16)
-
- # print "Multiplier=", multiplier, "Divisor=", divisor, "Demand=", demand
-
- if multiplier == 0 :
- multiplier=1
-
- if divisor == 0 :
- divisor=1
-
- reading = demand * multiplier / float (divisor )
-
- print time.asctime(time.localtime(time_stamp)), " : "
- print "\tDemand=", reading, "Kw"
- print "\tAmps={:.3f}".format( ((reading * 1000) / 240) )
-
-
-
- def print_reading(eg, rd) :
- for dat in rd['Reading'] :
- the_time = time.asctime(time.localtime( to_epoch_1970(dat['TimeStamp']) ) )
- print the_time, "Type=", dat['Type'], "Value=", dat['Value']
-
- #
- if __name__ == "__main__":
- # import __main__
- # print(__main__.__file__)
- # print("syntax ok")
- main()
- exit(0)
-
|