@@ -33,53 +33,55 @@ public partial class ShellyEnergyMeter :
3333 public decimal ? PowerConsumption => TotalActivePower ;
3434
3535 [ ScanForState ]
36- public partial ShellyEnergyData ? EnergyData { get ; internal set ; }
36+ public partial ShellyEnergyMeterStatus ? Status { get ; internal set ; }
3737
3838 [ State ]
39- public partial ShellyEnergyMeterPhase PhaseA { get ; protected set ; }
39+ public partial ShellyEnergyMeterPhase PhaseA { get ; private set ; }
4040
4141 [ State ]
42- public partial ShellyEnergyMeterPhase PhaseB { get ; protected set ; }
42+ public partial ShellyEnergyMeterPhase PhaseB { get ; private set ; }
4343
4444 [ State ]
45- public partial ShellyEnergyMeterPhase PhaseC { get ; protected set ; }
45+ public partial ShellyEnergyMeterPhase PhaseC { get ; private set ; }
4646
47- [ Derived ]
4847 [ State ( Unit = StateUnit . WattHour , IsCumulative = true ) ]
49- public decimal ? TotalConsumedEnergy => EnergyData ? . TotalActiveEnergy ;
48+ public decimal ? TotalConsumedEnergy { get ; private set ; }
5049
5150 /// <summary>
5251 /// Gets or sets the ID of the EM1 component.
5352 /// </summary>
54- [ JsonPropertyName ( "id" ) ]
55- public partial int Id { get ; set ; }
53+ [ JsonPropertyName ( "id" ) , JsonInclude ]
54+ public partial int Id { get ; internal set ; }
5655
5756 /// <summary>
5857 /// Gets or sets the total current in amperes.
5958 /// </summary>
60- [ JsonPropertyName ( "total_current" ) , State ( Unit = StateUnit . Ampere ) ]
61- public partial double TotalCurrent { get ; set ; }
59+ [ State ( Unit = StateUnit . Ampere ) ]
60+ [ JsonPropertyName ( "total_current" ) , JsonInclude ]
61+ public partial double TotalCurrent { get ; internal set ; }
6262
6363 /// <summary>
6464 /// Gets or sets the total active power in watts.
6565 /// Active power (real power) is the actual power consumed by electrical equipment to perform useful work, such as running a motor or lighting a bulb.
6666 /// </summary>
67- [ JsonPropertyName ( "total_act_power" ) , State ( Unit = StateUnit . Watt ) ]
68- public partial decimal TotalActivePower { get ; set ; }
67+ [ JsonPropertyName ( "total_act_power" ) , JsonInclude ]
68+ public partial decimal TotalActivePower { get ; internal set ; }
6969
7070 /// <summary>
7171 /// Gets or sets the total apparent power in volt-amperes.
7272 /// Apparent power is the combination of active power (real power) and reactive power.
7373 /// It represents the total power used by the electrical equipment to do work and sustain the magnetic and electric fields.
7474 /// </summary>
75- [ JsonPropertyName ( "total_aprt_power" ) , State ( Unit = StateUnit . Watt ) ]
76- public partial double TotalApparentPower { get ; set ; }
75+ [ State ( Unit = StateUnit . WattHour ) ]
76+ [ JsonPropertyName ( "total_aprt_power" ) , JsonInclude ]
77+ public partial double TotalApparentPower { get ; internal set ; }
7778
7879 /// <summary>
7980 /// Gets or sets the current of the neutral line in amperes.
8081 /// </summary>
81- [ JsonPropertyName ( "n_current" ) , State ( Unit = StateUnit . Ampere ) ]
82- public partial double ? NeutralCurrent { get ; set ; }
82+ [ State ( Unit = StateUnit . Ampere ) ]
83+ [ JsonPropertyName ( "n_current" ) , JsonInclude ]
84+ public partial double ? NeutralCurrent { get ; internal set ; }
8385
8486 public ShellyEnergyMeter ( )
8587 {
@@ -88,17 +90,19 @@ public ShellyEnergyMeter()
8890 PhaseC = new ShellyEnergyMeterPhase ( "c" ) ;
8991 }
9092
91- public void Update ( )
93+ internal void Update ( )
9294 {
95+ TotalConsumedEnergy = Status ? . TotalActiveEnergy ;
96+
9397 PhaseA . Current = PhaseACurrent ;
9498 PhaseA . Voltage = PhaseAVoltage ;
9599 PhaseA . ActivePower = PhaseAActivePower ;
96100 PhaseA . ApparentPower = PhaseAApparentPower ;
97101 PhaseA . PowerFactor = PhaseAPowerFactor ;
98102 PhaseA . Frequency = PhaseAFrequency ;
99103
100- PhaseA . TotalActiveEnergy = EnergyData ? . PhaseATotalActiveEnergy ;
101- PhaseA . TotalActiveReturnedEnergy = EnergyData ? . PhaseATotalActiveReturnedEnergy ;
104+ PhaseA . TotalActiveEnergy = Status ? . PhaseATotalActiveEnergy ;
105+ PhaseA . TotalActiveReturnedEnergy = Status ? . PhaseATotalActiveReturnedEnergy ;
102106
103107 PhaseB . Current = PhaseBCurrent ;
104108 PhaseB . Voltage = PhaseBVoltage ;
@@ -107,8 +111,8 @@ public void Update()
107111 PhaseB . PowerFactor = PhaseBPowerFactor ;
108112 PhaseB . Frequency = PhaseBFrequency ;
109113
110- PhaseB . TotalActiveEnergy = EnergyData ? . PhaseBTotalActiveEnergy ;
111- PhaseB . TotalActiveReturnedEnergy = EnergyData ? . PhaseBTotalActiveReturnedEnergy ;
114+ PhaseB . TotalActiveEnergy = Status ? . PhaseBTotalActiveEnergy ;
115+ PhaseB . TotalActiveReturnedEnergy = Status ? . PhaseBTotalActiveReturnedEnergy ;
112116
113117 PhaseC . Current = PhaseCCurrent ;
114118 PhaseC . Voltage = PhaseCVoltage ;
@@ -117,8 +121,8 @@ public void Update()
117121 PhaseC . PowerFactor = PhaseCPowerFactor ;
118122 PhaseC . Frequency = PhaseCFrequency ;
119123
120- PhaseC . TotalActiveEnergy = EnergyData ? . PhaseCTotalActiveEnergy ;
121- PhaseC . TotalActiveReturnedEnergy = EnergyData ? . PhaseCTotalActiveReturnedEnergy ;
124+ PhaseC . TotalActiveEnergy = Status ? . PhaseCTotalActiveEnergy ;
125+ PhaseC . TotalActiveReturnedEnergy = Status ? . PhaseCTotalActiveReturnedEnergy ;
122126 }
123127
124128 /// <summary>
@@ -237,10 +241,4 @@ public void Update()
237241 /// </summary>
238242 [ JsonPropertyName ( "c_freq" ) , JsonInclude ]
239243 public double PhaseCFrequency { get ; internal set ; }
240-
241- [ JsonExtensionData ]
242- public Dictionary < string , object > ? ExtensionData { get ; set ; }
243-
244- //[JsonPropertyName("user_calibrated_phase")]
245- //public List<object> UserCalibratedPhase { get; set; }
246244}
0 commit comments