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.kostalinverter.internal.secondgeneration;
15 import java.util.ArrayList;
16 import java.util.List;
18 import javax.measure.Unit;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.library.unit.SIUnits;
22 import org.openhab.core.library.unit.Units;
25 * The {@link SecondGenerationChannelConfiguration} class defines methods, which set up channel configuration,
26 * used in the second generation part of the binding.
29 * @author Christian Schneider - Initial contribution
30 * @author Christoph Weitkamp - Incorporated new QuantityType (Units of Measurement)
31 * @author Örjan Backsell - Added channels for (Piko1020, Piko New Generation)
35 public class SecondGenerationChannelConfiguration {
40 public String dxsEntries;
42 public SecondGenerationChannelConfiguration(String id, String tag, int num, Unit<?> unit, String dxsEntries) {
47 this.dxsEntries = dxsEntries;
50 public static List<SecondGenerationChannelConfiguration> getChannelConfiguration() {
51 final List<SecondGenerationChannelConfiguration> channelConfiguration = new ArrayList<>();
53 channelConfiguration.add(new SecondGenerationChannelConfiguration(
54 SecondGenerationBindingConstants.CHANNEL_GRIDOUTPUTPOWER, "td", 4, Units.WATT, "67109120"));
55 channelConfiguration.add(new SecondGenerationChannelConfiguration(
56 SecondGenerationBindingConstants.CHANNEL_YIELD_DAY_SECOND_GEN, "td", 7, Units.WATT_HOUR, "251658754"));
57 channelConfiguration.add(new SecondGenerationChannelConfiguration(
58 SecondGenerationBindingConstants.CHANNEL_YIELD_TOTAL_SECOND_GEN, "td", 10, Units.KILOWATT_HOUR,
60 channelConfiguration.add(new SecondGenerationChannelConfiguration(
61 SecondGenerationBindingConstants.CHANNEL_OPERATING_STATUS, "td", 13, Units.ONE, "16780032"));
62 channelConfiguration.add(new SecondGenerationChannelConfiguration(
63 SecondGenerationBindingConstants.CHANNEL_GRIDVOLTAGEL1, "td", 16, Units.VOLT, "67109378"));
64 channelConfiguration.add(new SecondGenerationChannelConfiguration(
65 SecondGenerationBindingConstants.CHANNEL_GRIDCURRENTL1, "td", 19, Units.AMPERE, "67109377"));
66 channelConfiguration.add(new SecondGenerationChannelConfiguration(
67 SecondGenerationBindingConstants.CHANNEL_GRIDPOWERL1, "td", 22, Units.WATT, "67109379"));
68 channelConfiguration.add(new SecondGenerationChannelConfiguration(
69 SecondGenerationBindingConstants.CHANNEL_GRIDVOLTAGEL2, "td", 25, Units.VOLT, "67109634"));
70 channelConfiguration.add(new SecondGenerationChannelConfiguration(
71 SecondGenerationBindingConstants.CHANNEL_GRIDCURRENTL2, "td", 28, Units.AMPERE, "67109633"));
72 channelConfiguration.add(new SecondGenerationChannelConfiguration(
73 SecondGenerationBindingConstants.CHANNEL_GRIDPOWERL2, "td", 31, Units.WATT, "67109635"));
74 channelConfiguration.add(new SecondGenerationChannelConfiguration(
75 SecondGenerationBindingConstants.CHANNEL_GRIDVOLTAGEL3, "td", 34, Units.VOLT, "67109890"));
76 channelConfiguration.add(new SecondGenerationChannelConfiguration(
77 SecondGenerationBindingConstants.CHANNEL_GRIDCURRENTL3, "td", 37, Units.AMPERE, "67109889"));
78 channelConfiguration.add(new SecondGenerationChannelConfiguration(
79 SecondGenerationBindingConstants.CHANNEL_GRIDPOWERL3, "td", 40, Units.WATT, "67109891"));
80 channelConfiguration.add(new SecondGenerationChannelConfiguration(
81 SecondGenerationBindingConstants.CHANNEL_DCPOWERPV, "td", 43, Units.WATT, "33556736"));
82 channelConfiguration.add(new SecondGenerationChannelConfiguration(
83 SecondGenerationBindingConstants.CHANNEL_DC1VOLTAGE, "td", 46, Units.VOLT, "33555202"));
84 channelConfiguration.add(new SecondGenerationChannelConfiguration(
85 SecondGenerationBindingConstants.CHANNEL_DC1CURRENT, "td", 49, Units.AMPERE, "33555201"));
86 channelConfiguration.add(new SecondGenerationChannelConfiguration(
87 SecondGenerationBindingConstants.CHANNEL_DC1POWER, "td", 52, Units.WATT, "33555203"));
88 channelConfiguration.add(new SecondGenerationChannelConfiguration(
89 SecondGenerationBindingConstants.CHANNEL_DC2VOLTAGE, "td", 55, Units.VOLT, "33555458"));
90 channelConfiguration.add(new SecondGenerationChannelConfiguration(
91 SecondGenerationBindingConstants.CHANNEL_DC2CURRENT, "td", 58, Units.AMPERE, "33555457"));
92 channelConfiguration.add(new SecondGenerationChannelConfiguration(
93 SecondGenerationBindingConstants.CHANNEL_DC2POWER, "td", 61, Units.WATT, "33555459"));
94 channelConfiguration.add(new SecondGenerationChannelConfiguration(
95 SecondGenerationBindingConstants.CHANNEL_DC3VOLTAGE, "td", 64, Units.VOLT, "33555714"));
96 channelConfiguration.add(new SecondGenerationChannelConfiguration(
97 SecondGenerationBindingConstants.CHANNEL_DC3CURRENT, "td", 67, Units.AMPERE, "33555713"));
98 channelConfiguration.add(new SecondGenerationChannelConfiguration(
99 SecondGenerationBindingConstants.CHANNEL_DC3POWER, "td", 70, Units.WATT, "33555715"));
101 return channelConfiguration;
104 public static List<SecondGenerationChannelConfiguration> getChannelConfigurationExt() {
105 final List<SecondGenerationChannelConfiguration> channelConfigurationExt = new ArrayList<>();
107 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
108 SecondGenerationBindingConstants.CHANNEL_AKTHOMECONSUMTIONSOLAR, "td", 73, Units.WATT, "83886336"));
109 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
110 SecondGenerationBindingConstants.CHANNEL_AKTHOMECONSUMPTIONBAT, "td", 76, Units.WATT, "83886592"));
111 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
112 SecondGenerationBindingConstants.CHANNEL_AKTHOMECONSUMPTIONGRID, "td", 79, Units.WATT, "83886848"));
113 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
114 SecondGenerationBindingConstants.CHANNEL_PHASESELHOMECONSUMPL1, "td", 82, Units.WATT, "83887106"));
115 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
116 SecondGenerationBindingConstants.CHANNEL_PHASESELHOMECONSUMPL2, "td", 85, Units.WATT, "83887362"));
117 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
118 SecondGenerationBindingConstants.CHANNEL_PHASESELHOMECONSUMPL3, "td", 88, Units.WATT, "83887618"));
119 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
120 SecondGenerationBindingConstants.CHANNEL_GRIDFREQ, "td", 91, Units.HERTZ, "67110400"));
121 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
122 SecondGenerationBindingConstants.CHANNEL_GRIDCOSPHI, "td", 94, Units.DEGREE_ANGLE, "67110656"));
123 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
124 SecondGenerationBindingConstants.CHANNEL_HOMECONSUMPTION_DAY, "td", 97, Units.WATT_HOUR, "251659010"));
125 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
126 SecondGenerationBindingConstants.CHANNEL_OWNCONSUMPTION_DAY, "td", 100, Units.WATT_HOUR, "251659266"));
127 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
128 SecondGenerationBindingConstants.CHANNEL_OWNCONSRATE_DAY, "td", 103, Units.PERCENT, "251659278"));
129 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
130 SecondGenerationBindingConstants.CHANNEL_AUTONOMYDEGREE_DAY, "td", 106, Units.PERCENT, "251659279"));
131 channelConfigurationExt.add(
132 new SecondGenerationChannelConfiguration(SecondGenerationBindingConstants.CHANNEL_HOMECONSUMPTION_TOTAL,
133 "td", 109, Units.WATT_HOUR, "251659009"));
134 channelConfigurationExt.add(
135 new SecondGenerationChannelConfiguration(SecondGenerationBindingConstants.CHANNEL_OWNCONSUMPTION_TOTAL,
136 "td", 112, Units.WATT_HOUR, "251659265"));
137 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
138 SecondGenerationBindingConstants.CHANNEL_OPERATINGTIME_TOTAL, "td", 115, Units.HOUR, "251658496"));
139 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
140 SecondGenerationBindingConstants.CHANNEL_CURRENT, "td", 118, Units.AMPERE, "33556238"));
141 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
142 SecondGenerationBindingConstants.CHANNEL_CURRENTDIR, "td", 121, Units.ONE, "33556230"));
143 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
144 SecondGenerationBindingConstants.CHANNEL_CHARGECYCLES, "td", 124, Units.ONE, "33556228"));
145 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
146 SecondGenerationBindingConstants.CHANNEL_BATTERYTEMPERATURE, "td", 127, SIUnits.CELSIUS, "33556227"));
147 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
148 SecondGenerationBindingConstants.CHANNEL_LOGINTERVAL, "td", 130, Units.MINUTE, "150995968"));
149 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
150 SecondGenerationBindingConstants.CHANNEL_S0INPULSECNT, "td", 133, Units.ONE, "184549632"));
151 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
152 SecondGenerationBindingConstants.CHANNEL_OWNCONSRATE_TOTAL, "td", 136, Units.PERCENT, "251659280"));
153 channelConfigurationExt.add(new SecondGenerationChannelConfiguration(
154 SecondGenerationBindingConstants.CHANNEL_AUTONOMYDEGREE_TOTAL, "td", 139, Units.PERCENT, "251659281"));
156 return channelConfigurationExt;
159 public static List<SecondGenerationChannelConfiguration> getChannelConfigurationExtExt() {
160 final List<SecondGenerationChannelConfiguration> channelConfigurationExtExt = new ArrayList<>();
162 channelConfigurationExtExt.add(new SecondGenerationChannelConfiguration(
163 SecondGenerationBindingConstants.CHANNEL_BATTERYVOLTAGE, "td", 142, Units.VOLT, "33556226"));
164 channelConfigurationExtExt.add(new SecondGenerationChannelConfiguration(
165 SecondGenerationBindingConstants.CHANNEL_BATSTATEOFCHARGE, "td", 145, Units.PERCENT, "33556229"));
166 channelConfigurationExtExt.add(new SecondGenerationChannelConfiguration(
167 SecondGenerationBindingConstants.CHANNEL_SELFCONSUMPTION, "td", 148, Units.WATT, "83888128"));
168 return channelConfigurationExtExt;
171 public static List<SecondGenerationChannelConfiguration> getChannelConfigurationConfigurable() {
172 final List<SecondGenerationChannelConfiguration> channelConfigurationConfigurable = new ArrayList<>();
173 channelConfigurationConfigurable.add(new SecondGenerationChannelConfiguration(
174 SecondGenerationBindingConstants.CHANNEL_BATTERYUSAGECONSUMPTION, "td", 151, Units.WATT, "33556249"));
175 channelConfigurationConfigurable.add(new SecondGenerationChannelConfiguration(
176 SecondGenerationBindingConstants.CHANNEL_SMARTBATTERYCONTROL, "td", 154, Units.ONE, "33556484"));
177 channelConfigurationConfigurable.add(new SecondGenerationChannelConfiguration(
178 SecondGenerationBindingConstants.CHANNEL_MAXDEPTHOFDISCHARGE, "td", 157, Units.ONE, "33556247"));
179 channelConfigurationConfigurable.add(new SecondGenerationChannelConfiguration(
180 SecondGenerationBindingConstants.CHANNEL_SHADOWMANAGEMENT, "td", 160, Units.ONE, "33556483"));
181 channelConfigurationConfigurable.add(new SecondGenerationChannelConfiguration(
182 SecondGenerationBindingConstants.CHANNEL_EXTERNALMODULECONTROL, "td", 163, Units.ONE, "33556482"));
183 return channelConfigurationConfigurable;