]> git.basschouten.com Git - openhab-addons.git/blob
f2d203246932defd95f265d5bda9db09020aea22
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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.local;
14
15 import static org.junit.jupiter.api.Assertions.assertEquals;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.binding.solax.internal.model.InverterType;
19 import org.openhab.binding.solax.internal.model.local.LocalInverterData;
20
21 /**
22  * The {@link TestX1HybridG4Parser} Simple test that tests for proper parsing against a real data from the inverter
23  *
24  * @author Konstantin Polihronov - Initial contribution
25  */
26 @NonNullByDefault
27 public class TestX1HybridG4Parser extends AbstractParserTest {
28
29     private static final String RAW_DATA = """
30             {
31                 sn:SOME_SERIAL_NUMBER,
32                 ver:3.008.10,
33                 type:15,
34                 Data:[
35                     2388,21,460,4998,4483,4483,10,1,487,65,
36                     2,59781,0,70,12180,500,605,33,99,12000,
37                     0,23159,0,57,100,0,39,4501,0,0,
38                     0,0,12,0,13240,0,63348,2,448,43,
39                     256,1314,900,0,350,311,279,33,33,279,1,1,652,0,708,1,65077,65535,65386,65535,0,0,0,0,0,0,0,0,0,0,0,0,65068,65535,4500,0,61036,65535,10,0,90,0,0,12,0,116,7,57,0,0,2320,0,110,0,0,0,0,0,0,12544,7440,5896,594,521,9252,0,0,0,0,0,1,1201,0,0,3342,3336,7296,54,21302,14389,18753,12852,16692,12355,13618,21302,14389,18753,12852,16692,12355,13618,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1025,4609,1026,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
40                 Information:[7.500,15,H4752TI1063020,8,1.24,0.00,1.21,1.03,0.00,1]}
41             """;
42
43     @Override
44     protected InverterType getInverterType() {
45         return InverterType.X1_HYBRID_G4;
46     }
47
48     @Override
49     protected void assertParserSpecific(LocalInverterData data) {
50         assertEquals("SOME_SERIAL_NUMBER", data.getWifiSerial());
51         assertEquals("3.008.10", data.getWifiVersion());
52
53         assertEquals(238.8, data.getInverterVoltage()); // [0]
54         assertEquals(2.1, data.getInverterCurrent()); // [1]
55         assertEquals(460, data.getInverterOutputPower()); // [2]
56         assertEquals(49.98, data.getInverterFrequency()); // [3]
57
58         assertEquals(448.3, data.getPV1Voltage()); // [4]
59         assertEquals(448.3, data.getPV2Voltage()); // [5]
60         assertEquals(1, data.getPV1Current()); // [6]
61         assertEquals(0.1, data.getPV2Current()); // [7]
62         assertEquals(487, data.getPV1Power()); // [8]
63         assertEquals(65, data.getPV2Power()); // [9]
64
65         assertEquals(2, data.getInverterWorkModeCode()); // [10]
66         assertEquals("2", data.getInverterWorkMode()); // [10]
67
68         assertEquals(121.8, data.getBatteryVoltage()); // [14]
69         assertEquals(5, data.getBatteryCurrent()); // [15]
70         assertEquals(605, data.getBatteryPower()); // [16]
71         assertEquals(33, data.getBatteryTemperature()); // [17]
72         assertEquals(99, data.getBatteryLevel()); // [18]
73
74         assertEquals(12, data.getFeedInPower()); // [32]
75     }
76
77     @Override
78     protected String getRawData() {
79         return RAW_DATA;
80     }
81
82     // Yield_Today: Data[13] / 10,
83     // Yield_Total: read32BitUnsigned(Data[11], Data[12]) / 10,
84     // PowerDc1: Data[8],
85     // PowerDc2: Data[9],
86     // BAT_Power: read16BitSigned(Data[16]),
87     // feedInPower: read32BitSigned(Data[32], Data[33]),
88     // GridAPower: read16BitSigned(Data[2]),
89     // FeedInEnergy: read32BitUnsigned(Data[34], Data[35]) / 100,
90     // ConsumeEnergy: read32BitUnsigned(Data[36], Data[37]) / 100,
91     // RunMode: Data[10],
92     // EPSAPower: read16BitSigned(Data[28]),
93     // Vdc1: Data[4] / 10,
94     // Vdc2: Data[5] / 10,
95     // Idc1: Data[6] / 10,
96     // Idc2: Data[7] / 10,
97     // EPSAVoltage: Data[29] / 10,
98     // EPSACurrent: read16BitSigned(Data[30]) / 10,
99     // BatteryCapacity: Data[18],
100     // BatteryVoltage: Data[14] / 100,
101     // BatteryTemperature: read16BitSigned(Data[17]),
102     // GridAVoltage: Data[0] / 10,
103     // GridACurrent: read16BitSigned(Data[1]) / 10,
104     // FreqacA: Data[3] / 100,
105 }