예제 #1
0
 def test_dc(self):
     r = aggregate_statuses([self.status], dc_voltage=True)
     self.assertEqual({
         'energy_gen': 5670,
         'power_gen': 170,
         'temp': Decimal('21.1'),
         'voltage': Decimal('451.8'),
     }, r)
예제 #2
0
 def test_one(self):
     r = aggregate_statuses([self.status])
     self.assertEqual({
         'energy_gen': 5670,
         'power_gen': 170,
         'temp': Decimal('21.1'),
         'voltage': Decimal('228.5'),
     }, r)
예제 #3
0
    def test_two(self):
        status2 = dict(self.status)
        status2['internal_temperature'] = Decimal('22.1')
        status2['grid_voltage'] = Decimal('229.5')

        r = aggregate_statuses([self.status, status2])
        self.assertEqual({
            'energy_gen': 11340,
            'power_gen': 340,
            'temp': Decimal('21.6'),
            'voltage': Decimal('229.0'),
        }, r)
예제 #4
0
 def test_three_phase(self):
     status = dict(self.status)
     del status['grid_voltage']
     status['grid_voltage_r_phase'] = Decimal('228.6')
     status['grid_voltage_s_phase'] = Decimal('229.6')
     status['grid_voltage_t_phase'] = Decimal('229.5')
     r = aggregate_statuses([status])
     self.assertEqual({
         'energy_gen': 5670,
         'power_gen': 170,
         'temp': Decimal('21.1'),
         'voltage': Decimal('229.2'),
     }, r)
예제 #5
0
파일: cli.py 프로젝트: nacnudus/solar
        def upload():
            """Uploads status to PVOutput."""
            # Todo: this should be asynchronous so that multiple inverters can be requested at once
            status_data = aggregate_statuses(
                [inv.status() for inv in inverters], dc_voltage=dc_voltage)
            if not status_data:
                logging.info(
                    "Not uploading, no inverter has operating mode normal")
                return

            # Upload
            logging.info("Uploading status data: %s", status_data)
            if not dry_run:
                add_status(system_id, api_key, **status_data)
예제 #6
0
 def test_non_normal_operation_mode(self):
     self.status['operation_mode'] = "Not normal"
     result = aggregate_statuses([self.status])
     self.assertIsNone(result)