]> git.basschouten.com Git - openhab-addons.git/blob
4c5673cb502b619d2e36e0a17639cd21847571d7
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.solax.internal.model.impl;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.binding.solax.internal.connectivity.rawdata.LocalConnectRawDataBean;
17
18 /**
19  * The {@link X3HybridG4InverterData} is responsible for handling commands, which are
20  * sent to one of the channels.
21  *
22  * @author Konstantin Polihronov - Initial contribution
23  */
24 @NonNullByDefault
25 public class X3HybridG4InverterData extends CommonInverterData {
26
27     public X3HybridG4InverterData(LocalConnectRawDataBean data) {
28         super(data);
29     }
30
31     // Inverter data
32
33     @Override
34     public double getVoltagePhase1() {
35         return ((double) getData(0)) / 10;
36     }
37
38     @Override
39     public double getVoltagePhase2() {
40         return ((double) getData(1)) / 10;
41     }
42
43     @Override
44     public double getVoltagePhase3() {
45         return ((double) getData(2)) / 10;
46     }
47
48     @Override
49     public double getCurrentPhase1() {
50         return ((double) getData(3)) / 10;
51     }
52
53     @Override
54     public double getCurrentPhase2() {
55         return ((double) getData(4)) / 10;
56     }
57
58     @Override
59     public double getCurrentPhase3() {
60         return ((double) getData(5)) / 10;
61     }
62
63     @Override
64     public short getOutputPowerPhase1() {
65         return getData(6);
66     }
67
68     @Override
69     public short getOutputPowerPhase2() {
70         return getData(7);
71     }
72
73     @Override
74     public short getOutputPowerPhase3() {
75         return getData(8);
76     }
77
78     @Override
79     public short getTotalOutputPower() {
80         return getData(9);
81     }
82
83     @Override
84     public double getPV1Voltage() {
85         return ((double) getData(10)) / 10;
86     }
87
88     @Override
89     public double getPV2Voltage() {
90         return ((double) getData(11)) / 10;
91     }
92
93     @Override
94     public double getPV1Current() {
95         return ((double) getData(12)) / 10;
96     }
97
98     @Override
99     public double getPV2Current() {
100         return ((double) getData(13)) / 10;
101     }
102
103     @Override
104     public short getPV1Power() {
105         return getData(14);
106     }
107
108     @Override
109     public short getPV2Power() {
110         return getData(15);
111     }
112
113     @Override
114     public double getFrequencyPhase1() {
115         return ((double) getData(16)) / 100;
116     }
117
118     @Override
119     public double getFrequencyPhase2() {
120         return ((double) getData(17)) / 100;
121     }
122
123     @Override
124     public double getFrequencyPhase3() {
125         return ((double) getData(18)) / 100;
126     }
127
128     // Battery
129
130     @Override
131     public double getBatteryVoltage() {
132         return ((double) getData(39)) / 100;
133     }
134
135     @Override
136     public double getBatteryCurrent() {
137         return ((double) getData(40)) / 100;
138     }
139
140     @Override
141     public short getBatteryPower() {
142         return getData(41);
143     }
144
145     @Override
146     public short getBatteryTemperature() {
147         return getData(105);
148     }
149
150     @Override
151     public short getBatteryLevel() {
152         return getData(103);
153     }
154
155     // Feed in power
156
157     @Override
158     public short getFeedInPower() {
159         return (short) (getData(34) - getData(35));
160     }
161
162     // Totals
163
164     @Override
165     public short getPowerUsage() {
166         return getData(47);
167     }
168
169     @Override
170     public double getTotalEnergy() {
171         return ((double) getData(68)) / 10;
172     }
173
174     @Override
175     public short getTotalBatteryDischargeEnergy() {
176         return getData(74);
177     }
178
179     @Override
180     public short getTotalBatteryChargeEnergy() {
181         return getData(76);
182     }
183
184     @Override
185     public double getTotalPVEnergy() {
186         return ((double) getData(80)) / 10;
187     }
188
189     @Override
190     public short getTotalFeedInEnergy() {
191         return getData(86);
192     }
193
194     @Override
195     public double getTotalConsumption() {
196         return ((double) getData(88)) / 10;
197     }
198
199     @Override
200     public double getTodayEnergy() {
201         return ((double) getData(82)) / 10;
202     }
203
204     @Override
205     public double getTodayFeedInEnergy() {
206         return ((double) getData(90)) / 100;
207     }
208
209     @Override
210     public double getTodayConsumption() {
211         return ((double) getData(92)) / 100;
212     }
213
214     @Override
215     public double getTodayBatteryDischargeEnergy() {
216         return ((double) getData(78)) / 10;
217     }
218
219     @Override
220     public double getTodayBatteryChargeEnergy() {
221         return ((double) getData(79)) / 10;
222     }
223 }