2 * Copyright (c) 2010-2024 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.solax.internal.model;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.eclipse.jdt.annotation.Nullable;
19 * The {@link InverterData} Interface for the parsed inverter data in meaningful format
21 * @author Konstantin Polihronov - Initial contribution
24 public interface InverterData {
27 String getWifiSerial();
30 String getWifiVersion();
32 InverterType getInverterType();
37 default double getPV1Voltage() {
38 return Short.MIN_VALUE;
41 default double getPV1Current() {
42 return Short.MIN_VALUE;
45 default short getPV1Power() {
46 return Short.MIN_VALUE;
49 default double getPV2Voltage() {
50 return Short.MIN_VALUE;
53 default double getPV2Current() {
54 return Short.MIN_VALUE;
57 default short getPV2Power() {
58 return Short.MIN_VALUE;
61 default double getPVTotalPower() {
62 return getPV1Power() + getPV2Power();
65 default double getPVTotalCurrent() {
66 return getPV1Current() + getPV2Current();
69 default double getBatteryVoltage() {
70 return Short.MIN_VALUE;
73 default double getBatteryCurrent() {
74 return Short.MIN_VALUE;
77 default short getBatteryPower() {
78 return Short.MIN_VALUE;
81 default short getBatteryTemperature() {
82 return Short.MIN_VALUE;
85 default short getInverterTemperature1() {
86 return Short.MIN_VALUE;
89 default short getInverterTemperature2() {
90 return Short.MIN_VALUE;
93 default short getInverterWorkModeCode() {
94 return Short.MIN_VALUE;
97 default String getInverterWorkMode() {
98 return String.valueOf(getInverterWorkModeCode());
101 default short getBatteryLevel() {
102 return Short.MIN_VALUE;
105 default short getFeedInPower() {
106 return Short.MIN_VALUE;
109 default short getPowerUsage() {
110 return Short.MIN_VALUE;
113 default double getTotalEnergy() {
114 return Short.MIN_VALUE;
117 default short getTotalBatteryDischargeEnergy() {
118 return Short.MIN_VALUE;
121 default short getTotalBatteryChargeEnergy() {
122 return Short.MIN_VALUE;
125 default double getTotalPVEnergy() {
126 return Short.MIN_VALUE;
129 default short getTotalFeedInEnergy() {
130 return Short.MIN_VALUE;
133 default double getTotalConsumption() {
134 return Short.MIN_VALUE;
137 default double getTodayEnergy() {
138 return Short.MIN_VALUE;
141 default double getTodayFeedInEnergy() {
142 return Short.MIN_VALUE;
145 default double getTodayConsumption() {
146 return Short.MIN_VALUE;
149 default double getTodayBatteryDischargeEnergy() {
150 return Short.MIN_VALUE;
153 default double getTodayBatteryChargeEnergy() {
154 return Short.MIN_VALUE;
157 default double getInverterVoltage() {
158 return Short.MIN_VALUE;
161 default double getInverterCurrent() {
162 return Short.MIN_VALUE;
165 default short getInverterOutputPower() {
166 return Short.MIN_VALUE;
169 default double getInverterFrequency() {
170 return Short.MIN_VALUE;
173 default double getVoltagePhase1() {
174 return Short.MIN_VALUE;
177 default double getVoltagePhase2() {
178 return Short.MIN_VALUE;
181 default double getVoltagePhase3() {
182 return Short.MIN_VALUE;
185 default double getCurrentPhase1() {
186 return Short.MIN_VALUE;
189 default double getCurrentPhase2() {
190 return Short.MIN_VALUE;
193 default double getCurrentPhase3() {
194 return Short.MIN_VALUE;
197 default short getOutputPowerPhase1() {
198 return Short.MIN_VALUE;
201 default short getOutputPowerPhase2() {
202 return Short.MIN_VALUE;
205 default short getOutputPowerPhase3() {
206 return Short.MIN_VALUE;
209 default short getTotalOutputPower() {
210 return Short.MIN_VALUE;
213 default double getFrequencyPhase1() {
214 return Short.MIN_VALUE;
217 default double getFrequencyPhase2() {
218 return Short.MIN_VALUE;
221 default double getFrequencyPhase3() {
222 return Short.MIN_VALUE;
225 default String toStringDetailed() {
226 return "WifiSerial = " + getWifiSerial() + ", WifiVersion = " + getWifiVersion() + ", InverterType = "
227 + getInverterType() + ", BatteryPower = " + getBatteryPower() + "W, Battery SoC = " + getBatteryLevel()
228 + "%, FeedIn Power = " + getFeedInPower() + "W, Total PV Power = " + (getPV1Power() + getPV2Power())