diff --git a/app/octopus_to_influxdb.py b/app/octopus_to_influxdb.py index 1cead72..1cdb509 100644 --- a/app/octopus_to_influxdb.py +++ b/app/octopus_to_influxdb.py @@ -71,6 +71,9 @@ def store_series(connection, series, metrics, rate_data): def fields_for_measurement(measurement): consumption = measurement['consumption'] + conversion_factor = rate_data.get('conversion_factor', None) + if conversion_factor: + consumption *= conversion_factor rate = active_rate_field(measurement) rate_cost = rate_data[rate] cost = consumption * rate_cost @@ -149,6 +152,9 @@ def cmd(config_file, from_date, to_date): g_mpan = config.get('gas', 'mpan', fallback=None) g_serial = config.get('gas', 'serial_number', fallback=None) + g_meter_type = config.get('gas', 'meter_type', fallback=1) + g_vcf = config.get('gas', 'volume_correction_factor', fallback=1.02264) + g_cv = config.get('gas', 'calorific_value', fallback=40) if not g_mpan or not g_serial: raise click.ClickException('No gas meter identifiers') g_url = 'https://api.octopus.energy/v1/gas-meter-points/' \ @@ -184,6 +190,8 @@ def cmd(config_file, from_date, to_date): 'gas', 'standing_charge', fallback=0.0 ), 'unit_rate': config.getfloat('gas', 'unit_rate', fallback=0.0), + # SMETS1 meters report kWh, SMET2 report m^3 and need converting to kWh first + 'conversion_factor': (float(g_vcf) * float(g_cv)) / 3.6 if int(g_meter_type) > 1 else None, } } diff --git a/example-octograph.ini b/example-octograph.ini index 811bf13..9142191 100644 --- a/example-octograph.ini +++ b/example-octograph.ini @@ -25,3 +25,9 @@ mpan = 12345 serial_number = 12A3456 standing_charge = 16.80 unit_rate = 3.03 +# 1 for SMETS1 meters, 2 for SMETS2 meters +meter_type = 1 +# volume correction factor, and calorific values used to convert SMETS2 consumption from m^3 to kWh +# Defaults are typically used values. Your energy bill will show you the values used for your supply. +volume_correction_factor = 1.02264 +calorific_value = 40