2 * Copyright (c) 2010-2023 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.impl;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.binding.solax.internal.connectivity.rawdata.LocalConnectRawDataBean;
19 * The {@link X3HybridG4InverterData} is responsible for handling commands, which are
20 * sent to one of the channels.
22 * @author Konstantin Polihronov - Initial contribution
25 public class X3HybridG4InverterData extends CommonInverterData {
27 public X3HybridG4InverterData(LocalConnectRawDataBean data) {
34 public double getVoltagePhase1() {
35 return ((double) getData(0)) / 10;
39 public double getVoltagePhase2() {
40 return ((double) getData(1)) / 10;
44 public double getVoltagePhase3() {
45 return ((double) getData(2)) / 10;
49 public double getCurrentPhase1() {
50 return ((double) getData(3)) / 10;
54 public double getCurrentPhase2() {
55 return ((double) getData(4)) / 10;
59 public double getCurrentPhase3() {
60 return ((double) getData(5)) / 10;
64 public short getOutputPowerPhase1() {
69 public short getOutputPowerPhase2() {
74 public short getOutputPowerPhase3() {
79 public short getTotalOutputPower() {
84 public double getPV1Voltage() {
85 return ((double) getData(10)) / 10;
89 public double getPV2Voltage() {
90 return ((double) getData(11)) / 10;
94 public double getPV1Current() {
95 return ((double) getData(12)) / 10;
99 public double getPV2Current() {
100 return ((double) getData(13)) / 10;
104 public short getPV1Power() {
109 public short getPV2Power() {
114 public double getFrequencyPhase1() {
115 return ((double) getData(16)) / 100;
119 public double getFrequencyPhase2() {
120 return ((double) getData(17)) / 100;
124 public double getFrequencyPhase3() {
125 return ((double) getData(18)) / 100;
131 public double getBatteryVoltage() {
132 return ((double) getData(39)) / 100;
136 public double getBatteryCurrent() {
137 return ((double) getData(40)) / 100;
141 public short getBatteryPower() {
146 public short getBatteryTemperature() {
151 public short getBatteryLevel() {
158 public short getFeedInPower() {
159 return (short) (getData(34) - getData(35));
165 public short getPowerUsage() {
170 public double getTotalEnergy() {
171 return ((double) getData(68)) / 10;
175 public short getTotalBatteryDischargeEnergy() {
180 public short getTotalBatteryChargeEnergy() {
185 public double getTotalPVEnergy() {
186 return ((double) getData(80)) / 10;
190 public short getTotalFeedInEnergy() {
195 public double getTotalConsumption() {
196 return ((double) getData(88)) / 10;
200 public double getTodayEnergy() {
201 return ((double) getData(82)) / 10;
205 public double getTodayFeedInEnergy() {
206 return ((double) getData(90)) / 100;
210 public double getTodayConsumption() {
211 return ((double) getData(92)) / 100;
215 public double getTodayBatteryDischargeEnergy() {
216 return ((double) getData(78)) / 10;
220 public double getTodayBatteryChargeEnergy() {
221 return ((double) getData(79)) / 10;