Esempio n. 1
0
    END_TIME - timestamp string in ISO8601
    AM_DEVICE_NAME - AlertMe device name string, required if multiple MeterReaders devices exist
    PW_METER_ID - PlotWatt meter id int, required if multiple meters exist
    '''

    # parse start and end times
    utc_format = '%Y-%m-%dT%H:%M:%SZ'
    try:
        start = datetime2.strptime(START_TIME, utc_format)
        end = datetime2.strptime(END_TIME, utc_format)
    except ValueError, e:
        print 'start or end time not in ', utc_format, 'format'
        return -1

    # PlotWatt API
    pw = Plotwatt(PW_HOUSE_ID, PW_API_KEY)
    try:
        pw.list_meters()
    except urllib2.HTTPError, e:
        print 'bad PlotWatt credentials'
        return -1
    if not PW_METER_ID:
        print 'PlotWatt meter not specified'
        pw_meter_list = pw.list_meters()
        if len(pw_meter_list) == 0:
            print 'No PlotWatt meters found. Creating meter'
            pw_meter_list = pw.create_meters(1)
        PW_METER_ID = pw_meter_list[0]
        print 'Using PlotWatt meter ', PW_METER_ID

    # AlertMe API
Esempio n. 2
0
 def setUp(self):
     self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
     
     # clear any old meters
     for meter_id in self.pw.list_meters() :
         self.pw.delete_meter(meter_id)
Esempio n. 3
0
class TestDisagDayGeneration(unittest.TestCase):
    def setUp(self):
        self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
        
        # clear any old meters
        for meter_id in self.pw.list_meters() :
            self.pw.delete_meter(meter_id)
    
    def test_list_and_create_meters(self):
        assert self.pw.list_meters() == []
        self.pw.create_meters(1)
        assert len(self.pw.list_meters()) == 1
    
    def test_push_readings(self):
        new_meter_ids = self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        # testing the return value of create_meters against the return value of list_meters
        assert meter_id == new_meter_ids[0]
        assert len(new_meter_ids) == 1
        
        now = datetime.now()
        second = timedelta(seconds=1)
        self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])

        # overwrite old readings
        self.pw.push_readings(meter_id, [4, 5, 6], [now, now + 1*second, now + 2*second])

    def test_push_invalid_readings(self):
        self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        now = datetime.now() + timedelta(days = 2)
        second = timedelta(seconds=1)
        try :
            self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])
            assert 'the previous line should have raised an error'
        except PlotwattError, e:
            assert 'Unprocessable' in str(e)
 def setUp(self):
     self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
     
     # clear any old meters
     for meter_id in self.pw.list_meters() :
         self.pw.delete_meter(meter_id)
class TestDisagDayGeneration(unittest.TestCase):
    def setUp(self):
        self.pw = Plotwatt(2517, "3b0f9e9a9d98137c")
        
        # clear any old meters
        for meter_id in self.pw.list_meters() :
            self.pw.delete_meter(meter_id)
    
    def test_list_and_create_meters(self):
        assert self.pw.list_meters() == []
        self.pw.create_meters(1)
        assert len(self.pw.list_meters()) == 1
    
    def test_push_readings(self):
        new_meter_ids = self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        # testing the return value of create_meters against the return value of list_meters
        assert meter_id == new_meter_ids[0]
        assert len(new_meter_ids) == 1
        
        now = datetime.now()
        second = timedelta(seconds=1)
        self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])

        # overwrite old readings
        self.pw.push_readings(meter_id, [4, 5, 6], [now, now + 1*second, now + 2*second])

    def test_push_invalid_readings(self):
        self.pw.create_meters(1)
        meter_id = self.pw.list_meters()[0]
        
        now = datetime.now() + timedelta(days = 2)
        second = timedelta(seconds=1)
        try :
            self.pw.push_readings(meter_id, [1, 2, 3], [now, now + 1*second, now + 2*second])
            assert 'the previous line should have raised an error'
        except PlotwattError as e:
            assert 'Unprocessable' in str(e)
Esempio n. 6
0
    END_TIME - timestamp string in ISO8601
    AM_DEVICE_NAME - AlertMe device name string, required if multiple MeterReaders devices exist
    PW_METER_ID - PlotWatt meter id int, required if multiple meters exist
    '''
    
    # parse start and end times
    utc_format = '%Y-%m-%dT%H:%M:%SZ'
    try:
        start = datetime2.strptime(START_TIME, utc_format)
        end = datetime2.strptime(END_TIME, utc_format)
    except ValueError, e:
        print 'start or end time not in ',utc_format,'format'
        return -1
    
    # PlotWatt API
    pw = Plotwatt(PW_HOUSE_ID, PW_API_KEY)
    try:
        pw.list_meters()
    except urllib2.HTTPError, e:
        print 'bad PlotWatt credentials'
        return -1
    if not PW_METER_ID:
        print 'PlotWatt meter not specified'
        pw_meter_list = pw.list_meters()
        if len(pw_meter_list) == 0:
            print 'No PlotWatt meters found. Creating meter'
            pw_meter_list = pw.create_meters(1)
        PW_METER_ID = pw_meter_list[0]
        print 'Using PlotWatt meter ', PW_METER_ID

    # AlertMe API