[fronius] Add support for Fronius Smart Meter 65A (#12258)

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
This commit is contained in:
jimtng 2022-02-11 03:54:01 +10:00 committed by GitHub
parent 70e57e43e2
commit a0236bf993
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 36 deletions

View File

@ -2,7 +2,12 @@
This binding uses the [Fronius Solar API V1](https://www.fronius.com/en/photovoltaics/products/all-products/system-monitoring/open-interfaces/fronius-solar-api-json-) to obtain data from Fronius devices. This binding uses the [Fronius Solar API V1](https://www.fronius.com/en/photovoltaics/products/all-products/system-monitoring/open-interfaces/fronius-solar-api-json-) to obtain data from Fronius devices.
It supports Fronius inverters and Fronius Smart Meter. Tested with a Fronius Symo 8.2-3-M and Fronius Smart Meter 63A. It supports Fronius inverters and Fronius Smart Meter. Supports:
* Fronius Symo
* Fronius Symo Gen24
* Fronius Smart Meter 63A
* Fronius Smart Meter TS 65A-3
* Fronius Ohmpilot
## Supported Things ## Supported Things

View File

@ -17,83 +17,89 @@ import com.google.gson.annotations.SerializedName;
/** /**
* The {@link MeterRealtimeBodyData} is responsible for storing * The {@link MeterRealtimeBodyData} is responsible for storing
* the "data" node of the JSON response * the "data" node of the JSON response
*
* The main SerializedName values use Smart Meter 63A names
* The first SerializedName alternate names use Smart Meter 65A names
* *
* @author Jimmy Tanagra - Initial contribution * @author Jimmy Tanagra - Initial contribution
*/ */
public class MeterRealtimeBodyDataDTO { public class MeterRealtimeBodyDataDTO {
@SerializedName("Current_AC_Phase_1") @SerializedName(value = "Current_AC_Phase_1", alternate = { "ACBRIDGE_CURRENT_ACTIVE_MEAN_01_F32" })
private double currentACPhase1; private double currentACPhase1;
@SerializedName("Current_AC_Phase_2") @SerializedName(value = "Current_AC_Phase_2", alternate = { "ACBRIDGE_CURRENT_ACTIVE_MEAN_02_F32" })
private double currentACPhase2; private double currentACPhase2;
@SerializedName("Current_AC_Phase_3") @SerializedName(value = "Current_AC_Phase_3", alternate = { "ACBRIDGE_CURRENT_ACTIVE_MEAN_03_F32" })
private double currentACPhase3; private double currentACPhase3;
@SerializedName("Details") @SerializedName("Details")
private MeterRealtimeDetailsDTO details; private MeterRealtimeDetailsDTO details;
@SerializedName("Enable") @SerializedName(value = "Enable", alternate = { "COMPONENTS_MODE_ENABLE_U16" })
private int enable; private int enable;
@SerializedName("EnergyReactive_VArAC_Sum_Consumed") @SerializedName(value = "EnergyReactive_VArAC_Sum_Consumed", alternate = {
"SMARTMETER_ENERGYREACTIVE_CONSUMED_SUM_F64" })
private double energyReactiveVArACSumConsumed; private double energyReactiveVArACSumConsumed;
@SerializedName("EnergyReactive_VArAC_Sum_Produced") @SerializedName(value = "EnergyReactive_VArAC_Sum_Produced", alternate = {
"SMARTMETER_ENERGYREACTIVE_PRODUCED_SUM_F64" })
private double energyReactiveVArACSumProduced; private double energyReactiveVArACSumProduced;
@SerializedName("EnergyReal_WAC_Minus_Absolute") @SerializedName(value = "EnergyReal_WAC_Minus_Absolute", alternate = {
"SMARTMETER_ENERGYACTIVE_ABSOLUT_MINUS_F64" })
private double energyRealWACMinusAbsolute; private double energyRealWACMinusAbsolute;
@SerializedName("EnergyReal_WAC_Plus_Absolute") @SerializedName(value = "EnergyReal_WAC_Plus_Absolute", alternate = { "SMARTMETER_ENERGYACTIVE_ABSOLUT_PLUS_F64" })
private double energyRealWACPlusAbsolute; private double energyRealWACPlusAbsolute;
@SerializedName("EnergyReal_WAC_Sum_Consumed") @SerializedName(value = "EnergyReal_WAC_Sum_Consumed", alternate = { "SMARTMETER_ENERGYACTIVE_CONSUMED_SUM_F64" })
private double energyRealWACSumConsumed; private double energyRealWACSumConsumed;
@SerializedName("EnergyReal_WAC_Sum_Produced") @SerializedName(value = "EnergyReal_WAC_Sum_Produced", alternate = { "SMARTMETER_ENERGYACTIVE_PRODUCED_SUM_F64" })
private double energyRealWACSumProduced; private double energyRealWACSumProduced;
@SerializedName("Frequency_Phase_Average") @SerializedName(value = "Frequency_Phase_Average", alternate = { "GRID_FREQUENCY_MEAN_F32" })
private double frequencyPhaseAverage; private double frequencyPhaseAverage;
@SerializedName("Meter_Location_Current") @SerializedName(value = "Meter_Location_Current", alternate = { "SMARTMETER_VALUE_LOCATION_U16" })
private int meterLocationCurrent; private int meterLocationCurrent;
@SerializedName("PowerApparent_S_Phase_1") @SerializedName(value = "PowerApparent_S_Phase_1", alternate = { "SMARTMETER_POWERAPPARENT_01_F64" })
private double powerApparentSPhase1; private double powerApparentSPhase1;
@SerializedName("PowerApparent_S_Phase_2") @SerializedName(value = "PowerApparent_S_Phase_2", alternate = { "SMARTMETER_POWERAPPARENT_02_F64" })
private double powerApparentSPhase2; private double powerApparentSPhase2;
@SerializedName("PowerApparent_S_Phase_3") @SerializedName(value = "PowerApparent_S_Phase_3", alternate = { "SMARTMETER_POWERAPPARENT_03_F64" })
private double powerApparentSPhase3; private double powerApparentSPhase3;
@SerializedName("PowerApparent_S_Sum") @SerializedName(value = "PowerApparent_S_Sum", alternate = { "SMARTMETER_POWERAPPARENT_MEAN_SUM_F64" })
private double powerApparentSSum; private double powerApparentSSum;
@SerializedName("PowerFactor_Phase_1") @SerializedName(value = "PowerFactor_Phase_1", alternate = { "SMARTMETER_FACTOR_POWER_01_F64" })
private double powerFactorPhase1; private double powerFactorPhase1;
@SerializedName("PowerFactor_Phase_2") @SerializedName(value = "PowerFactor_Phase_2", alternate = { "SMARTMETER_FACTOR_POWER_02_F64" })
private double powerFactorPhase2; private double powerFactorPhase2;
@SerializedName("PowerFactor_Phase_3") @SerializedName(value = "PowerFactor_Phase_3", alternate = { "SMARTMETER_FACTOR_POWER_03_F64" })
private double powerFactorPhase3; private double powerFactorPhase3;
@SerializedName("PowerFactor_Sum") @SerializedName(value = "PowerFactor_Sum", alternate = { "SMARTMETER_FACTOR_POWER_SUM_F64" })
private double powerFactorSum; private double powerFactorSum;
@SerializedName("PowerReactive_Q_Phase_1") @SerializedName(value = "PowerReactive_Q_Phase_1", alternate = { "SMARTMETER_POWERREACTIVE_01_F64" })
private double powerReactiveQPhase1; private double powerReactiveQPhase1;
@SerializedName("PowerReactive_Q_Phase_2") @SerializedName(value = "PowerReactive_Q_Phase_2", alternate = { "SMARTMETER_POWERREACTIVE_02_F64" })
private double powerReactiveQPhase2; private double powerReactiveQPhase2;
@SerializedName("PowerReactive_Q_Phase_3") @SerializedName(value = "PowerReactive_Q_Phase_3", alternate = { "SMARTMETER_POWERREACTIVE_03_F64" })
private double powerReactiveQPhase3; private double powerReactiveQPhase3;
@SerializedName("PowerReactive_Q_Sum") @SerializedName(value = "PowerReactive_Q_Sum", alternate = { "SMARTMETER_POWERREACTIVE_MEAN_SUM_F64" })
private double powerReactiveQSum; private double powerReactiveQSum;
@SerializedName("PowerReal_P_Phase_1") @SerializedName(value = "PowerReal_P_Phase_1", alternate = { "SMARTMETER_POWERACTIVE_01_F64" })
private double powerRealPPhase1; private double powerRealPPhase1;
@SerializedName("PowerReal_P_Phase_2") @SerializedName(value = "PowerReal_P_Phase_2", alternate = { "SMARTMETER_POWERACTIVE_02_F64" })
private double powerRealPPhase2; private double powerRealPPhase2;
@SerializedName("PowerReal_P_Phase_3") @SerializedName(value = "PowerReal_P_Phase_3", alternate = { "SMARTMETER_POWERACTIVE_03_F64" })
private double powerRealPPhase3; private double powerRealPPhase3;
@SerializedName("PowerReal_P_Sum") @SerializedName(value = "PowerReal_P_Sum", alternate = { "SMARTMETER_POWERACTIVE_MEAN_SUM_F64" })
private double powerRealPSum; private double powerRealPSum;
@SerializedName("TimeStamp") @SerializedName("TimeStamp")
private int timeStamp; private int timeStamp;
@SerializedName("Visible") @SerializedName(value = "Visible", alternate = { "COMPONENTS_MODE_VISIBLE_U16" })
private int visible; private int visible;
@SerializedName("Voltage_AC_PhaseToPhase_12") @SerializedName(value = "Voltage_AC_PhaseToPhase_12", alternate = { "ACBRIDGE_VOLTAGE_MEAN_12_F32" })
private double voltageACPhaseToPhase12; private double voltageACPhaseToPhase12;
@SerializedName("Voltage_AC_PhaseToPhase_23") @SerializedName(value = "Voltage_AC_PhaseToPhase_23", alternate = { "ACBRIDGE_VOLTAGE_MEAN_23_F32" })
private double voltageACPhaseToPhase23; private double voltageACPhaseToPhase23;
@SerializedName("Voltage_AC_PhaseToPhase_31") @SerializedName(value = "Voltage_AC_PhaseToPhase_31", alternate = { "ACBRIDGE_VOLTAGE_MEAN_31_F32" })
private double voltageACPhaseToPhase31; private double voltageACPhaseToPhase31;
@SerializedName("Voltage_AC_Phase_1") @SerializedName(value = "Voltage_AC_Phase_1", alternate = { "SMARTMETER_VOLTAGE_01_F64" })
private double voltageACPhase1; private double voltageACPhase1;
@SerializedName("Voltage_AC_Phase_2") @SerializedName(value = "Voltage_AC_Phase_2", alternate = { "SMARTMETER_VOLTAGE_02_F64" })
private double voltageACPhase2; private double voltageACPhase2;
@SerializedName("Voltage_AC_Phase_3") @SerializedName(value = "Voltage_AC_Phase_3", alternate = { "SMARTMETER_VOLTAGE_03_F64" })
private double voltageACPhase3; private double voltageACPhase3;
public double getCurrentACPhase1() { public double getCurrentACPhase1() {