From e8ee223cb72372651ae2edb4b204f7347b894a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96rjan=20Backsell?= Date: Mon, 25 Nov 2024 18:58:14 +0100 Subject: [PATCH] [ferroamp] Binding for ferroamp 20241125 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes done in: ferroamp.properties FerroampConfiguration.java FerroampHandler.java FerroampMqttCommunication.java README.md thing-types.xml Signed-off-by: Örjan Backsell --- .../org.openhab.binding.ferroamp/README.md | 14 +- .../internal/FerroampConfiguration.java | 2 - .../ferroamp/internal/FerroampHandler.java | 78 ++-- .../internal/FerroampMqttCommunication.java | 176 +++++---- .../resources/OH-INF/i18n/ferroamp.properties | 341 ------------------ .../resources/OH-INF/thing/thing-types.xml | 10 - 6 files changed, 148 insertions(+), 473 deletions(-) diff --git a/bundles/org.openhab.binding.ferroamp/README.md b/bundles/org.openhab.binding.ferroamp/README.md index a15760afae8..c482bf8a2ff 100644 --- a/bundles/org.openhab.binding.ferroamp/README.md +++ b/bundles/org.openhab.binding.ferroamp/README.md @@ -5,7 +5,7 @@ The Ferroamp binding is used to get live data from Ferroamp EnergyHub The Ferroamp binding is compatible with EnergyHub Wall and EnergyHub XL, and connects to your local EnergyHub via LAN. Data and commands are received/sent using MQTT where the user connects to the MQTT broker residing on the EnergyHub. The communication with the broker might take some minute to establish, so Please just be patient. The Thing will be -in state INITIALIZATION during this time and then change to state ONLINE once connection is established. +in state INITIALIZATION and UNKNOWN during this time and then change to state ONLINE once connection is established. *note* Contact Ferroamp support to enable MQTT in the EnergyHub and to get the Username and Password: @@ -37,8 +37,6 @@ The following configuration parameters are available. | userName | text | Username to access the device | N/A | yes | no | | password | text | Password to access the device | N/A | yes | no | | hasBattery | boolean | Has the system a battery connected? | N/A | no | yes | -| eso | boolean | Has the system an Eso unit connected? | N/A | no | no | -| esm | boolean | Has the system an Esm unit connected? | N/A | no | no | ## Channels @@ -126,8 +124,8 @@ The following configuration parameters are available. | timestamp | DateTime | R | Time Stamp | Time stamp when message was published | | battery-energy-produced | Number:Energy | R | Battery Energy Produced | Only sent when system has batteries | | battery-energy-consumed | Number:Energy | R | Battery Energy Consumed | Only sent when system has batteries | -| soc | Number:Percentage | R | System State of Check | State of the system | -| soh | Number:Percentage | R | System State of Health | | +| soc | Number:Dimensionless | R | System State of Check | State of the system | +| soh | Number:Dimensionless | R | System State of Health | | | power-battery | Number:Power | R | Battery Power | Only sent when system has batteries | | total-capacity-batteries | Number:Energy | R | Total Capacity Batteries | Total rated capacity of all batteries | @@ -176,7 +174,7 @@ The following configuration parameters are available. | eso-current-battery | Number:ElectricCurrent | R | Eso Current on Battery Side | Measured on battery side | | eso-battery-energy-produced | Number:Energy | R | Eso Battery Energy Produced | Total energy produced by ESO, i.e total energy charged | | eso-battery-energy-consumed | Number:Energy | R | Eso Battery Energy Consumed | Total energy consumed by ESO, i.e total energy discharged | -| eso-soc | Number:Percentage | R | Eso State of Charge | State of Charge for ESO | +| eso-soc | Number:Dimensionless | R | Eso State of Charge | State of Charge for ESO | | eso-relay-status | Contact | R | Eso Relay Status | 0 = relay closed, 1 = relay open | | eso-temperature | Number:Temperature | R | Eso Temperature on PCB | Measured inside ESO | | eso-fault-code | String | R | Eso FaultCode | See section 4.1.3.1 in Ferroamp-External-API-specifikation | @@ -186,8 +184,8 @@ The following configuration parameters are available. | esm-id | String | R | Esm Unique Identifier | Unique identifier of battery. If available, this will be the unique id that the battery reports | -| esm-soh | Number:Percentage | R | Esm System State of Health | State of Health for ESM | -| esm-soc | Number:Percentage | R | Esm System State of Charge | State of Charge for ESM | +| esm-soh | Number:Dimensionless | R | Esm System State of Health | State of Health for ESM | +| esm-soc | Number:Dimensionless | R | Esm System State of Charge | State of Charge for ESM | | esm-total-capacity | Number:Energy | R | Esm Rated Capacity | Rated capacity of all batteries | | esm-power-battery | Number:Power | R | Esm Rated Power of Battery | Rated power of battery | | esm-status | String | R | Esm Status | Dependent on battery manufacturer | diff --git a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampConfiguration.java b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampConfiguration.java index caf42b7f332..22bff72fa80 100644 --- a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampConfiguration.java +++ b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampConfiguration.java @@ -27,6 +27,4 @@ public class FerroampConfiguration { public String userName = ""; public String password = ""; public boolean hasBattery = false; - public boolean eso = false; - public boolean esm = false; } diff --git a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampHandler.java b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampHandler.java index 80ba4248be7..c47b20b4b6c 100644 --- a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampHandler.java +++ b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampHandler.java @@ -44,9 +44,9 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs private final static Logger logger = LoggerFactory.getLogger(FerroampHandler.class); private @Nullable static MqttBrokerConnection ferroampConnection; FerroampMqttCommunication ferroampMqttCommunication = new FerroampMqttCommunication(thing); - final FerroampConfiguration ferroampConfig = getConfigAs(FerroampConfiguration.class); + private @Nullable FerroampConfiguration ferroampConfig; - private List channelConfigEhub = new ArrayList<>(); + private static List channelConfigEhub = new ArrayList<>(); private static List channelConfigSsoS1 = new ArrayList<>(); private static List channelConfigSsoS2 = new ArrayList<>(); private static List channelConfigSsoS3 = new ArrayList<>(); @@ -55,8 +55,6 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs private static List channelConfigEsm = new ArrayList<>(); long refreshInterval = 30; - static boolean isEsoAvailable = false; - static boolean isEsmAvailable = false; public FerroampHandler(Thing thing) { super(thing); @@ -84,6 +82,8 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs @Override public void initialize() { + // Set configuration parameters + ferroampConfig = getConfigAs(FerroampConfiguration.class); // Set channel configuration parameters channelConfigEhub = FerroampChannelConfiguration.getChannelConfigurationEhub(); channelConfigSsoS1 = FerroampChannelConfiguration.getChannelConfigurationSsoS1(); @@ -93,32 +93,39 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs channelConfigEso = FerroampChannelConfiguration.getChannelConfigurationEso(); channelConfigEsm = FerroampChannelConfiguration.getChannelConfigurationEsm(); - final MqttBrokerConnection ferroampConnection = new MqttBrokerConnection(ferroampConfig.hostName, - FerroampBindingConstants.BROKER_PORT, false, false, ferroampConfig.userName); + if (ferroampConfig != null && channelConfigEhub != null && channelConfigSsoS1 != null + && channelConfigSsoS2 != null && channelConfigSsoS3 != null && channelConfigSsoS4 != null + && channelConfigEso != null && channelConfigEsm != null) { - scheduler.scheduleWithFixedDelay(this::pollTask, 60, refreshInterval, TimeUnit.SECONDS); - this.setFerroampConnection(ferroampConnection); + final MqttBrokerConnection ferroampConnection = new MqttBrokerConnection(ferroampConfig.hostName, + FerroampBindingConstants.BROKER_PORT, false, false, ferroampConfig.userName); + + scheduler.scheduleWithFixedDelay(this::pollTask, 60, refreshInterval, TimeUnit.SECONDS); + this.setFerroampConnection(ferroampConnection); + updateStatus(ThingStatus.UNKNOWN); + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR); + logger.debug("Configuration problems"); + } } private void pollTask() { try { startMqttConnection(); } catch (InterruptedException e) { - logger.debug("Problems with startMqttConnection()"); + logger.debug("Not connected to the MqttBroker"); + return; } - Objects.requireNonNull(ferroampConnection, "MqttBrokerConnection ferroampConnection cannot be null"); - if (ferroampConnection.connectionState().toString().equals("DISCONNECTED")) { + MqttBrokerConnection ferroampConnection = FerroampHandler.ferroampConnection; + + if (ferroampConnection == null || ferroampConnection.connectionState().toString().equals("DISCONNECTED")) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR); logger.debug("Problem connection to MqttBroker"); - } - - Objects.requireNonNull(ferroampConnection, "MqttBrokerConnection ferroampConnection cannot be null, "); - if (ferroampConnection.connectionState().toString().equals("CONNECTED")) { + } else if (ferroampConnection.connectionState().toString().equals("CONNECTED")) { + updateStatus(ThingStatus.ONLINE); try { channelUpdate(); - updateStatus(ThingStatus.ONLINE); - } catch (RuntimeException scheduleWithFixedDelayException) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, scheduleWithFixedDelayException.getClass().getName() + ":" @@ -128,6 +135,7 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs } private void startMqttConnection() throws InterruptedException { + MqttBrokerConnection localSubscribeConnection = FerroampHandler.getFerroampConnection(); Objects.requireNonNull(localSubscribeConnection, @@ -201,27 +209,31 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs } } - if (ferroampConfig.eso == true) { - String[] esoUpdateChannels; - esoUpdateChannels = FerroampMqttCommunication.getEsoChannelUpdateValues(); + String[] esoUpdateChannels = new String[11]; + esoUpdateChannels = FerroampMqttCommunication.getEsoChannelUpdateValues(); + if (esoUpdateChannels.length > 0) { int channelValuesCounterEso = 0; - for (FerroampChannelConfiguration cConfig : channelConfigEso) { - String esoChannel = cConfig.id; - State esoState = StringType.valueOf(esoUpdateChannels[channelValuesCounterEso]); - updateState(esoChannel, esoState); - channelValuesCounterEso++; + if (esoUpdateChannels.length <= 9) { + for (FerroampChannelConfiguration cConfig : channelConfigEso) { + String esoChannel = cConfig.id; + State esoState = StringType.valueOf(esoUpdateChannels[channelValuesCounterEso]); + updateState(esoChannel, esoState); + channelValuesCounterEso++; + } } } - if (ferroampConfig.esm == true) { - String[] esmUpdateChannels; - esmUpdateChannels = FerroampMqttCommunication.getEsmChannelUpdateValues(); + String[] esmUpdateChannels = new String[7]; + esmUpdateChannels = FerroampMqttCommunication.getEsmChannelUpdateValues(); + if (esmUpdateChannels.length > 0) { int channelValuesCounterEsm = 0; - for (FerroampChannelConfiguration cConfig : channelConfigEsm) { - String esmChannel = cConfig.id; - State esmState = StringType.valueOf(esmUpdateChannels[channelValuesCounterEsm]); - updateState(esmChannel, esmState); - channelValuesCounterEsm++; + if (esmUpdateChannels.length <= 9) { + for (FerroampChannelConfiguration cConfig : channelConfigEsm) { + String esmChannel = cConfig.id; + State esmState = StringType.valueOf(esmUpdateChannels[channelValuesCounterEsm]); + updateState(esmChannel, esmState); + channelValuesCounterEsm++; + } } } } diff --git a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampMqttCommunication.java b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampMqttCommunication.java index bba484ec28a..8b580dd6ec6 100644 --- a/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampMqttCommunication.java +++ b/bundles/org.openhab.binding.ferroamp/src/main/java/org/openhab/binding/ferroamp/internal/FerroampMqttCommunication.java @@ -51,9 +51,6 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber { static String ssoS3IdCheck = ""; static String ssoS4IdCheck = ""; - static boolean isEsoAvailable = false; - static boolean isEsmAvailable = false; - private final static Logger logger = LoggerFactory.getLogger(FerroampMqttCommunication.class); public FerroampMqttCommunication(Thing thing) { @@ -690,7 +687,7 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber { // Prepare actual Json-topic Eso-message and update values for channels void processIncomingJsonMessageEso(String topic, String messageJsonEso) { - String[] esoChannelPostsValue = new String[10]; // Array for ESO, Energy Storage Optimizer ) Posts + String[] esoChannelPostsValue = new String[11]; // Array for ESO, Energy Storage Optimizer ) Posts JsonObject jsonElementsObjectEso = new Gson().fromJson(new Gson().fromJson(messageJsonEso, JsonObject.class), JsonObject.class); @@ -699,61 +696,75 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber { String jsonElementsStringTemp = ""; Gson gson = new Gson(); - // faultcode - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(0)).toString(); + if (!jsonElementsObjectEso.isEmpty()) { + // id + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(0)).toString(); + GetGeneralValues id = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[0] = id.getVal(); - GetGeneralValues faultcode = checkNullGeneralValues( - gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[0] = faultcode.getVal(); + // ubat + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(1)).toString(); + GetGeneralValues ubat = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[1] = ubat.getVal(); - // id - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(1)).toString(); - GetGeneralValues id = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[1] = id.getVal(); + // ibat + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(2)).toString(); + GetGeneralValues ibat = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[2] = ibat.getVal(); - // ibat - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(2)).toString(); - GetGeneralValues ibat = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[2] = ibat.getVal(); + // wbatprod + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(3)).toString(); + GetGeneralValues wbatprod = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[3] = mJTokWh(jsonStripOneLiners(wbatprod.getVal())); - // ubat - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(3)).toString(); - GetGeneralValues ubat = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[3] = ubat.getVal(); + // wbatcons + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(4)).toString(); + GetGeneralValues wbatcons = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[4] = mJTokWh(jsonStripOneLiners(wbatcons.getVal())); - // relaystatus - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(4)).toString(); - GetGeneralValues relaystatus = checkNullGeneralValues( - gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[4] = relaystatus.getVal(); + // soc + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(5)).toString(); + GetGeneralValues soc = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[5] = soc.getVal(); - // soc - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(5)).toString(); - GetGeneralValues soc = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[5] = soc.getVal(); + // relaystatus + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(6)).toString(); + GetGeneralValues relaystatus = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[6] = relaystatus.getVal(); - // temp - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(6)).toString(); - GetGeneralValues temp = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[6] = temp.getVal(); + // temp + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(7)).toString(); + GetGeneralValues temp = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[7] = temp.getVal(); - // wbatprod - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(7)).toString(); - GetGeneralValues wbatprod = checkNullGeneralValues( - gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[7] = mJTokWh(jsonStripOneLiners(wbatprod.getVal())); + // faultcode + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(8)).toString(); + GetGeneralValues faultcode = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[8] = faultcode.getVal(); - // udc - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(8)).toString(); - GetGeneralValues udc = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[8] = udc.getVal(); + // udc + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(9)).toString(); + GetGeneralValues udc = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[9] = udc.getVal(); - // ts - jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(9)).toString(); - GetGeneralValues ts = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esoChannelPostsValue[9] = ts.getVal(); + // ts + jsonElementsStringTemp = jsonElementsObjectEso.get(EsoJsonElements.getJsonElementsEso().get(10)).toString(); + GetGeneralValues ts = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esoChannelPostsValue[10] = ts.getVal(); - esoChannelsUpdateValues = esoChannelPostsValue; + esoChannelsUpdateValues = esoChannelPostsValue; + } else { + return; + } } // Prepare actual Json-topic Esm-message and update values for channels @@ -767,44 +778,51 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber { String jsonElementsStringTemp = ""; Gson gson = new Gson(); - // soc - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(0)).toString(); - GetGeneralValues soc = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[0] = soc.getVal(); + if (!jsonElementsObjectEsm.isEmpty()) { + // id + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(0)).toString(); + GetGeneralValues id = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[0] = id.getVal(); - // soh - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(1)).toString(); - GetGeneralValues soh = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[1] = soh.getVal(); + // soh + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(1)).toString(); + GetGeneralValues soh = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[1] = soh.getVal(); - // ratedcapacity - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(2)).toString(); - GetGeneralValues ratedcapacity = checkNullGeneralValues( - gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[2] = ratedcapacity.getVal(); + // soc + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(2)).toString(); + GetGeneralValues soc = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[2] = soc.getVal(); - // id - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(3)).toString(); - GetGeneralValues id = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[3] = id.getVal(); + // ratedcapacity + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(3)).toString(); + GetGeneralValues ratedcapacity = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[3] = ratedcapacity.getVal(); - // ratedpower - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(4)).toString(); - GetGeneralValues ratedpower = checkNullGeneralValues( - gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[4] = ratedpower.getVal(); + // ratedpower + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(4)).toString(); + GetGeneralValues ratedpower = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[4] = ratedpower.getVal(); - // status - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(5)).toString(); - GetGeneralValues status = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[5] = status.getVal(); + // status + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(5)).toString(); + GetGeneralValues status = checkNullGeneralValues( + gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[5] = status.getVal(); - // ts - jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(6)).toString(); - GetGeneralValues ts = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); - esmChannelPostsValue[6] = ts.getVal(); + // ts + jsonElementsStringTemp = jsonElementsObjectEsm.get(EsmJsonElements.getJsonElementsEsm().get(6)).toString(); + GetGeneralValues ts = checkNullGeneralValues(gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class)); + esmChannelPostsValue[6] = ts.getVal(); - esmChannelsUpdateValues = esmChannelPostsValue; + esmChannelsUpdateValues = esmChannelPostsValue; + } else { + return; + } } public @Nullable static String[] getEhubChannelUpdateValues() { diff --git a/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/i18n/ferroamp.properties b/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/i18n/ferroamp.properties index c3d276e687f..006cdbf9eba 100644 --- a/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/i18n/ferroamp.properties +++ b/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/i18n/ferroamp.properties @@ -153,10 +153,6 @@ thing-type.ferroamp.energyhub.channel.total-solar-energy.label = Total Solar Ene # thing types config -thing-type.config.ferroamp.energyhub.esm.label = ESM Module Available -thing-type.config.ferroamp.energyhub.esm.description = Has the system an Esm unit connected? -thing-type.config.ferroamp.energyhub.eso.label = ESO Module Available -thing-type.config.ferroamp.energyhub.eso.description = Has the system an Eso unit connected? thing-type.config.ferroamp.energyhub.hasBattery.label = Battery Available thing-type.config.ferroamp.energyhub.hasBattery.description = Has the system a battery connected? thing-type.config.ferroamp.energyhub.hostName.label = Hostname @@ -180,340 +176,3 @@ channel-type.ferroamp.request.label = String channel-type.ferroamp.request.description = Used for control of system channel-type.ferroamp.string.label = String channel-type.ferroamp.temperature.label = Temperature - -# thing types - -thing-type.ferroamp.energyhub.channel.grid-current-active-l1.label = Grid Current Active L1 -thing-type.ferroamp.energyhub.channel.grid-current-active-l2.label = Grid Current Active L2 -thing-type.ferroamp.energyhub.channel.grid-current-active-l3.label = Grid Current Active L3 -thing-type.ferroamp.energyhub.channel.grid-current-reactive-l1.label = Grid Reactive Current L1 -thing-type.ferroamp.energyhub.channel.grid-current-reactive-l2.label = Grid Reactive Current L2 -thing-type.ferroamp.energyhub.channel.grid-current-reactive-l3.label = Grid Reactive Current L3 -thing-type.ferroamp.energyhub.channel.inverter-current-active-l1.label = Inverter Active Current L1 -thing-type.ferroamp.energyhub.channel.inverter-current-active-l2.label = Inverter Active Current L2 -thing-type.ferroamp.energyhub.channel.inverter-current-active-l3.label = Inverter Active Current L3 -thing-type.ferroamp.energyhub.channel.inverter-current-reactive-l1.label = Inverter Reactive Current L1 -thing-type.ferroamp.energyhub.channel.inverter-current-reactive-l2.label = Inverter Reactive Current L2 -thing-type.ferroamp.energyhub.channel.inverter-current-reactive-l3.label = Inverter Reactive Current L3 -thing-type.ferroamp.energyhub.channel.inverter-load-l1.label = Inverter Load L1 -thing-type.ferroamp.energyhub.channel.inverter-load-l2.label = Inverter Load L2 -thing-type.ferroamp.energyhub.channel.inverter-load-l3.label = Inverter Load L3 -thing-type.ferroamp.energyhub.channel.s0-dc-link-voltage.label = S0 DC Link Voltage -thing-type.ferroamp.energyhub.channel.s0-fault-code.label = S0 FaultCode -thing-type.ferroamp.energyhub.channel.s0-id.label = S0 ID -thing-type.ferroamp.energyhub.channel.s0-pv-current.label = S0 Measured Current on PV String Side -thing-type.ferroamp.energyhub.channel.s0-pv-voltage.label = S0 Measured Voltage on PV String Side -thing-type.ferroamp.energyhub.channel.s0-relay-status.label = S0 RelayStatus -thing-type.ferroamp.energyhub.channel.s0-temperature.label = S0 Temperature Measured on PCB -thing-type.ferroamp.energyhub.channel.s0-timestamp.label = S0 Time Stamp When Message was Published -thing-type.ferroamp.energyhub.channel.s0-total-solar-energy.label = S0 Total Solar Energy - -# thing types config - -thing-type.config.ferroamp.energyhub.ssoS0.label = SSO String S0 Available -thing-type.config.ferroamp.energyhub.ssoS0.description = First SSO Unit Available -thing-type.config.ferroamp.energyhub.ssoS1.label = SSO String S1 Available -thing-type.config.ferroamp.energyhub.ssoS1.description = Second SSO Unit Available -thing-type.config.ferroamp.energyhub.ssoS2.label = SSO String S2 Available -thing-type.config.ferroamp.energyhub.ssoS2.description = Third SSO Unit Available -thing-type.config.ferroamp.energyhub.ssoS3.label = SSO String S3 Available -thing-type.config.ferroamp.energyhub.ssoS3.description = Fourth SSO Unit Available - -# channel types - -channel-type.ferroamp.dimensionless.label = Dimensionless - -# thing types - -thing-type.ferroamp.energyhub.channel.esm-rated-power-battery.label = Esm Rated Power of Battery -thing-type.ferroamp.energyhub.channel.esm-total-rated-capacity-all-batteries.label = Esm Rated Capacity -thing-type.ferroamp.energyhub.channel.esm-unique-identifier.label = Esm Unique Identifier -thing-type.ferroamp.energyhub.channel.eso-unique-identifier.label = Eso Unique Identifier -thing-type.ferroamp.energyhub.channel.external-energy-consumed-3p.label = External Energy Consumed 3p -thing-type.ferroamp.energyhub.channel.external-energy-consumed-l1.label = External Energy Consumed L1 -thing-type.ferroamp.energyhub.channel.external-energy-consumed-l2.label = External Energy Consumed L2 -thing-type.ferroamp.energyhub.channel.external-energy-consumed-l3.label = External Energy Consumed L3 -thing-type.ferroamp.energyhub.channel.external-energy-produced-3p.label = External Energy Produced 3p -thing-type.ferroamp.energyhub.channel.external-energy-produced-l1.label = External Energy Produced L1 -thing-type.ferroamp.energyhub.channel.external-energy-produced-l2.label = External Energy Produced L2 -thing-type.ferroamp.energyhub.channel.external-energy-produced-l3.label = External Energy Produced L3 -thing-type.ferroamp.energyhub.channel.inverter-energy-consumed-3p.label = Inverter Energy Consumed 3p -thing-type.ferroamp.energyhub.channel.inverter-energy-produced-3p.label = Inverter Energy Produced 3p -thing-type.ferroamp.energyhub.channel.load-energy-consumed-3p.label = Load Energy Consumed 3p -thing-type.ferroamp.energyhub.channel.load-energy-produced-3p.label = Load Energy Produced 3p -thing-type.ferroamp.energyhub.channel.measured-current-battery.label = Eso Current Measured on Battery Side -thing-type.ferroamp.energyhub.channel.measured-voltage-battery.label = Eso Voltage Measured on Battery Side -thing-type.ferroamp.energyhub.channel.s0-measured-current-pv-string.label = S0 Measured Current on PV String Side -thing-type.ferroamp.energyhub.channel.s0-measured-voltage-pv-string.label = S0 Measured Voltage on PV String Side -thing-type.ferroamp.energyhub.channel.s1-measured-current-pv-string.label = S1 Measured Current on PV String Side -thing-type.ferroamp.energyhub.channel.s1-measured-voltage-pv-string.label = S1 Measured Voltage on PV String Side -thing-type.ferroamp.energyhub.channel.s2-measured-current-pv-string.label = S2 Measured Current on PV String Side -thing-type.ferroamp.energyhub.channel.s2-measured-voltage-pv-string.label = S2 Measured Voltage on PV String Side -thing-type.ferroamp.energyhub.channel.s3-measured-current-pv-string.label = S3 Measured Current on PV String Side -thing-type.ferroamp.energyhub.channel.s3-measured-voltage-pv-string.label = S3 Measured Voltage on PV String Side -thing-type.ferroamp.energyhub.channel.total-rated-capacity-all-batteries.label = Total Rated Capacity of All Batteries - -# channel group types - -channel-group-type.ferroamp.date-time.label = Date Time -channel-group-type.ferroamp.dimensionless.label = Dimensionless -channel-group-type.ferroamp.electric-current.label = Electric Current -channel-group-type.ferroamp.electric-potential.label = Electrical Potential -channel-group-type.ferroamp.energy.label = Energy -channel-group-type.ferroamp.frequency.label = Frequency -channel-group-type.ferroamp.power.label = Power -channel-group-type.ferroamp.string.label = String -channel-group-type.ferroamp.temperature.label = Temperature - -# channel types - -channel-type.ferroamp.ehub-gridfreq.label = EHUB, Estimated Grid Frequency -channel-type.ferroamp.ehub-gridfreq.description = Estimated grid frequency -channel-type.ferroamp.ehub-iace-l1.label = EHUB, ACE Equalization L1 -channel-type.ferroamp.ehub-iace-l1.description = ACE equalization l1 -channel-type.ferroamp.ehub-iace-l2.label = EHUB, ACE Equalization L2 -channel-type.ferroamp.ehub-iace-l2.description = ACE equalization l2 -channel-type.ferroamp.ehub-iace-l3.label = EHUB, ACE Equalization L3 -channel-type.ferroamp.ehub-iace-l3.description = ACE equalization l3 -channel-type.ferroamp.ehub-iext-l1.label = EHUB, External/Grid RMS Current L1 -channel-type.ferroamp.ehub-iext-l1.description = External/Grid rms current l1 -channel-type.ferroamp.ehub-iext-l2.label = EHUB, External/Grid RMS Current L2 -channel-type.ferroamp.ehub-iext-l2.description = External/Grid rms current l2 -channel-type.ferroamp.ehub-iext-l3.label = EHUB, External/Grid RMS Current L3 -channel-type.ferroamp.ehub-iext-l3.description = External/Grid rms current l3 -channel-type.ferroamp.ehub-iextd-l1.label = EHUB, External/Grid Reactive Current L1 -channel-type.ferroamp.ehub-iextd-l1.description = External/Grid reactive current l1 -channel-type.ferroamp.ehub-iextd-l2.label = EHUB, External/Grid Reactive Current L2 -channel-type.ferroamp.ehub-iextd-l2.description = External/Grid reactive current l2 -channel-type.ferroamp.ehub-iextd-l3.label = EHUB, External/Grid Reactive Current L3 -channel-type.ferroamp.ehub-iextd-l3.description = External/Grid reactive current l3 -channel-type.ferroamp.ehub-iextq-l1.label = EHUB, External/Grid Active Current L1 -channel-type.ferroamp.ehub-iextq-l1.description = External/Grid active current l1 -channel-type.ferroamp.ehub-iextq-l2.label = EHUB, External/Grid Active Current L2 -channel-type.ferroamp.ehub-iextq-l2.description = External/Grid active current l2 -channel-type.ferroamp.ehub-iextq-l3.label = EHUB, External/Grid Active Current L3 -channel-type.ferroamp.ehub-iextq-l3.description = External/Grid active current l3 -channel-type.ferroamp.ehub-il-l1.label = EHUB, Inverter RMS Current L1 -channel-type.ferroamp.ehub-il-l1.description = Inverter rms current l1 -channel-type.ferroamp.ehub-il-l2.label = EHUB, Inverter RMS Current L2 -channel-type.ferroamp.ehub-il-l2.description = Inverter rms current l2 -channel-type.ferroamp.ehub-il-l3.label = EHUB, Inverter RMS Current L3 -channel-type.ferroamp.ehub-il-l3.description = Inverter rms current l3 -channel-type.ferroamp.ehub-ild-l1.label = EHUB, Inverter Reactive Current L1 -channel-type.ferroamp.ehub-ild-l1.description = Inverter reactive current l1 -channel-type.ferroamp.ehub-ild-l2.label = EHUB, Inverter Reactive Current L2 -channel-type.ferroamp.ehub-ild-l2.description = Inverter reactive current l2 -channel-type.ferroamp.ehub-ild-l3.label = EHUB, Inverter Reactive Current L3 -channel-type.ferroamp.ehub-ild-l3.description = Inverter reactive current l3 -channel-type.ferroamp.ehub-iloadd-l1.label = EHUB, ILoadd L1 -channel-type.ferroamp.ehub-iloadd-l2.label = EHUB, ILoadd L2 -channel-type.ferroamp.ehub-iloadd-l3.label = EHUB, ILoadd L3 -channel-type.ferroamp.ehub-iloadq-l1.label = EHUB, ILoadq L1 -channel-type.ferroamp.ehub-iloadq-l2.label = EHUB, ILoadq L2 -channel-type.ferroamp.ehub-iloadq-l3.label = EHUB, ILoadq L3 -channel-type.ferroamp.ehub-ilq-l1.label = EHUB, Inverter Active Current L1 -channel-type.ferroamp.ehub-ilq-l1.description = Inverter active current l1 -channel-type.ferroamp.ehub-ilq-l2.label = EHUB, Inverter Active Current L2 -channel-type.ferroamp.ehub-ilq-l2.description = Inverter active current l2 -channel-type.ferroamp.ehub-ilq-l3.label = EHUB, Inverter Active Current L3 -channel-type.ferroamp.ehub-ilq-l3.description = Inverter active current l3 -channel-type.ferroamp.ehub-pbat.label = EHUB, Power Batteries -channel-type.ferroamp.ehub-pbat.description = Only sent when system has batteries -channel-type.ferroamp.ehub-pext-l1.label = EHUB, External/Grid Power, Active L1 -channel-type.ferroamp.ehub-pext-l1.description = External/Grid power, active l1 -channel-type.ferroamp.ehub-pext-l2.label = EHUB, External/Grid Power, Active L2 -channel-type.ferroamp.ehub-pext-l2.description = External/Grid power, active l2 -channel-type.ferroamp.ehub-pext-l3.label = EHUB, External/Grid Power, Active L3 -channel-type.ferroamp.ehub-pext-l3.description = External/Grid power, active l3 -channel-type.ferroamp.ehub-pextreactive-l1.label = EHUB, External/Grid Power, Reactive L1 -channel-type.ferroamp.ehub-pextreactive-l1.description = External/Grid power, reactive l1 -channel-type.ferroamp.ehub-pextreactive-l2.label = EHUB, External/Grid Power, Reactive L2 -channel-type.ferroamp.ehub-pextreactive-l2.description = External/Grid power, reactive l2 -channel-type.ferroamp.ehub-pextreactive-l3.label = EHUB, External/Grid Power, Reactive L3 -channel-type.ferroamp.ehub-pextreactive-l3.description = External/Grid power, reactive l3 -channel-type.ferroamp.ehub-pinv-l1.label = EHUB, Inverter Power, Active L1 -channel-type.ferroamp.ehub-pinv-l1.description = Inverter power, active l1 -channel-type.ferroamp.ehub-pinv-l2.label = EHUB, Inverter Power, Active L2 -channel-type.ferroamp.ehub-pinv-l2.description = Inverter power, active l2 -channel-type.ferroamp.ehub-pinv-l3.label = EHUB, Inverter Power, Active L3 -channel-type.ferroamp.ehub-pinv-l3.description = Inverter power, active l3 -channel-type.ferroamp.ehub-pinvreactive-l1.label = EHUB, Inverter Power, Reactive L1 -channel-type.ferroamp.ehub-pinvreactive-l1.description = Inverter power, reactive l1 -channel-type.ferroamp.ehub-pinvreactive-l2.label = EHUB, Inverter Power, Reactive L2 -channel-type.ferroamp.ehub-pinvreactive-l2.description = Inverter power, reactive l2 -channel-type.ferroamp.ehub-pinvreactive-l3.label = EHUB, Inverter Power, Reactive L3 -channel-type.ferroamp.ehub-pinvreactive-l3.description = Inverter power, reactive l3 -channel-type.ferroamp.ehub-pload-l1.label = EHUB, PLoad L1 -channel-type.ferroamp.ehub-pload-l2.label = EHUB, PLoad L2 -channel-type.ferroamp.ehub-pload-l3.label = EHUB, PLoad L3 -channel-type.ferroamp.ehub-ploadreactive-l1.label = EHUB, PLoadReactive L1 -channel-type.ferroamp.ehub-ploadreactive-l2.label = EHUB, PLoadReactive L2 -channel-type.ferroamp.ehub-ploadreactive-l3.label = EHUB, PLoadReactive L3 -channel-type.ferroamp.ehub-ppv.label = EHUB, Power PV -channel-type.ferroamp.ehub-ppv.description = Only sent when system has pv -channel-type.ferroamp.ehub-ratedcap.label = EHUB, Total Rated Capacity Batteries -channel-type.ferroamp.ehub-ratedcap.description = Total rated capacity of all batteries in the system -channel-type.ferroamp.ehub-sext.label = EHUB, Apparent Power -channel-type.ferroamp.ehub-sext.description = Apparent power -channel-type.ferroamp.ehub-soc.label = EHUB, Soc -channel-type.ferroamp.ehub-soc.description = State of charge for the EHUB -channel-type.ferroamp.ehub-soh.label = EHUB, Soh -channel-type.ferroamp.ehub-soh.description = State of health for the EHUB -channel-type.ferroamp.ehub-state.label = EHUB, State Of The System -channel-type.ferroamp.ehub-state.description = State of the system -channel-type.ferroamp.ehub-ts.label = EHUB, Time Stamp -channel-type.ferroamp.ehub-ts.description = Time stamp when message was published -channel-type.ferroamp.ehub-udcneg.label = EHUB, Negativ DC Link Voltage -channel-type.ferroamp.ehub-udcneg.description = Negativ dc link voltage -channel-type.ferroamp.ehub-udcpos.label = EHUB, Positiv DC Link Voltage -channel-type.ferroamp.ehub-udcpos.description = Positiv dc link voltage -channel-type.ferroamp.ehub-ul-l1.label = EHUB, External Voltage L1 -channel-type.ferroamp.ehub-ul-l1.description = External voltage l1 -channel-type.ferroamp.ehub-ul-l2.label = EHUB, External Voltage L2 -channel-type.ferroamp.ehub-ul-l2.description = External voltage l2 -channel-type.ferroamp.ehub-ul-l3.label = EHUB, External Voltage L3 -channel-type.ferroamp.ehub-ul-l3.description = External voltage l3 -channel-type.ferroamp.ehub-wbatprod.label = EHUB, Produced Power Batteries -channel-type.ferroamp.ehub-wbatprod.description = Only sent when system has batteries -channel-type.ferroamp.ehub-wextconsq-l1.label = EHUB, WExtConsq L1 -channel-type.ferroamp.ehub-wextconsq-l2.label = EHUB, WExtConsq L2 -channel-type.ferroamp.ehub-wextconsq-l3.label = EHUB, WExtConsq L3 -channel-type.ferroamp.ehub-wextconsq_3p.label = EHUB, WExtConsq_3p -channel-type.ferroamp.ehub-wextprodq-l1.label = EHUB, WExtProdq L1 -channel-type.ferroamp.ehub-wextprodq-l2.label = EHUB, WExtProdq L2 -channel-type.ferroamp.ehub-wextprodq-l3.label = EHUB, WExtProdq L3 -channel-type.ferroamp.ehub-wextprodq_3p.label = EHUB, WExtProdq_3p -channel-type.ferroamp.ehub-winvconsq-l1.label = EHUB, WInvConsq L1 -channel-type.ferroamp.ehub-winvconsq-l2.label = EHUB, WInvConsq L2 -channel-type.ferroamp.ehub-winvconsq-l3.label = EHUB, WInvConsq L3 -channel-type.ferroamp.ehub-winvconsq_3p.label = EHUB, WInvConsq_3p -channel-type.ferroamp.ehub-winvprodq-l1.label = EHUB, WInvProdq L1 -channel-type.ferroamp.ehub-winvprodq-l2.label = EHUB, WInvProdq L2 -channel-type.ferroamp.ehub-winvprodq-l3.label = EHUB, WInvProdq L3 -channel-type.ferroamp.ehub-winvprodq_3p.label = EHUB, WInvProdq_3p -channel-type.ferroamp.ehub-wloadconsq-l1.label = EHUB, WLoadConsq L1 -channel-type.ferroamp.ehub-wloadconsq-l2.label = EHUB, WLoadConsq L2 -channel-type.ferroamp.ehub-wloadconsq-l3.label = EHUB, WLoadConsq L3 -channel-type.ferroamp.ehub-wloadconsq_3p.label = EHUB, WLoadConsq_3p -channel-type.ferroamp.ehub-wloadprodq-l1.label = EHUB, WLoadProdq L1 -channel-type.ferroamp.ehub-wloadprodq-l2.label = EHUB, WLoadProdq L2 -channel-type.ferroamp.ehub-wloadprodq-l3.label = EHUB, WLoadProdq L3 -channel-type.ferroamp.ehub-wloadprodq_3p.label = EHUB, WLoadProdq_3p -channel-type.ferroamp.ehub-wpbatcons.label = EHUB, Consumed Power Batteries -channel-type.ferroamp.ehub-wpbatcons.description = Only sent when system has batteries -channel-type.ferroamp.ehub-wpv.label = EHUB, PV Power -channel-type.ferroamp.ehub-wpv.description = Only sent when system has pv -channel-type.ferroamp.esm-id.label = ESM, Unique Identifier Of Battery. -channel-type.ferroamp.esm-id.description = Unique identifier of battery. If available, this will be the unique id that the battery reports. -channel-type.ferroamp.esm-rated-capacity.label = ESM, Rated Capacity Of Battery -channel-type.ferroamp.esm-rated-capacity.description = Rated capacity of battery -channel-type.ferroamp.esm-rated-power.label = ESM, Rated Power Of Battery -channel-type.ferroamp.esm-rated-power.description = Rated power of battery -channel-type.ferroamp.esm-soc.label = ESM, Soc -channel-type.ferroamp.esm-soc.description = State of charge for the ESM -channel-type.ferroamp.esm-soh.label = ESM, Soh -channel-type.ferroamp.esm-soh.description = State of health for the ESM -channel-type.ferroamp.esm-status.label = ESM, Battery Status -channel-type.ferroamp.esm-status.description = Dependent on battery manufacturer -channel-type.ferroamp.esm-ts.label = ESM, Time Stamp -channel-type.ferroamp.esm-ts.description = Time stamp when message was published -channel-type.ferroamp.eso-faultcode.label = ESO, Fault Code -channel-type.ferroamp.eso-faultcode.description = See section 4.1.3.1 below for further explanation of fault codes -channel-type.ferroamp.eso-ibat.label = ESO, Current On Battery Side -channel-type.ferroamp.eso-ibat.description = Measured on battery side -channel-type.ferroamp.eso-id.label = ESO, Unique Identifier -channel-type.ferroamp.eso-id.description = Unique identifier -channel-type.ferroamp.eso-relaystatus.label = ESO, Relay Status -channel-type.ferroamp.eso-relaystatus.description = 0 = relay closed, 1 = relay open -channel-type.ferroamp.eso-soc.label = ESO, Soc -channel-type.ferroamp.eso-soc.description = State of charge for ESO -channel-type.ferroamp.eso-temp.label = ESO, Temperature -channel-type.ferroamp.eso-temp.description = Temperature measured inside ESO -channel-type.ferroamp.eso-ts.label = ESO, Time stamp -channel-type.ferroamp.eso-ts.description = Time stamp when message was published -channel-type.ferroamp.eso-ubat.label = ESO, Voltage On Battery Side -channel-type.ferroamp.eso-ubat.description = Measured on battery side -channel-type.ferroamp.eso-udc.label = ESO, DC Link Voltage -channel-type.ferroamp.eso-udc.description = Dc link voltage as measured by ESO -channel-type.ferroamp.eso-wbatprod.label = ESO, Total Energy Produced -channel-type.ferroamp.eso-wbatprod.description = Total energy produced by ESO, i.e total energy discharged -channel-type.ferroamp.eso-wpbatcons.label = ESO, Total Energy Consumed -channel-type.ferroamp.eso-wpbatcons.description = Total energy consumed by ESO, i.e total energy charged -channel-type.ferroamp.request-auto.label = Configure Auto Power -channel-type.ferroamp.request-auto.description = Set auto power -channel-type.ferroamp.request-charge.label = Configure Charge Power -channel-type.ferroamp.request-charge.description = Charge power in watt -channel-type.ferroamp.request-discharge.label = Configure Discharge Power -channel-type.ferroamp.request-discharge.description = Discharge power in watt -channel-type.ferroamp.ssos0-faultcode.label = SSO, String-0, Fault Code -channel-type.ferroamp.ssos0-faultcode.description = 0x00 = OK, For all other values please contact Ferroamp support -channel-type.ferroamp.ssos0-id.label = SSO, String-0, Unique Identifier -channel-type.ferroamp.ssos0-id.description = Unique identifier of SSO -channel-type.ferroamp.ssos0-ipv.label = SSO, String-0, Current On PV String Side -channel-type.ferroamp.ssos0-ipv.description = Measured on pv string side -channel-type.ferroamp.ssos0-relaystatus.label = SSO, String-0, Relay Status -channel-type.ferroamp.ssos0-relaystatus.description = 0 = relay closed (i.e running power), 1 = relay open/disconnected, 2 = precharge -channel-type.ferroamp.ssos0-temp.label = SSO, String-0, Temperature -channel-type.ferroamp.ssos0-temp.description = Temperature measured on pcb of SSO -channel-type.ferroamp.ssos0-ts.label = SSO, String-0, Time Stamp -channel-type.ferroamp.ssos0-ts.description = Time stamp when message was published -channel-type.ferroamp.ssos0-udc.label = SSO, String-0, DC Link Voltage -channel-type.ferroamp.ssos0-udc.description = Dc link voltage as measured by SSO -channel-type.ferroamp.ssos0-upv.label = SSO, String-0, Voltage On PV String Side -channel-type.ferroamp.ssos0-upv.description = Measured on pv string side -channel-type.ferroamp.ssos0-wpv.label = SSO, String-0, Total Energy Produced -channel-type.ferroamp.ssos0-wpv.description = Total energy produced by SSO -channel-type.ferroamp.ssos1-faultcode.label = SSO, String-1, Fault Code -channel-type.ferroamp.ssos1-faultcode.description = 0x00 = OK, For all other values please contact Ferroamp support -channel-type.ferroamp.ssos1-id.label = SSO, String-1, Unique Identifier -channel-type.ferroamp.ssos1-id.description = Unique identifier of SSO -channel-type.ferroamp.ssos1-ipv.label = SSO, String-1, Current On PV String Side -channel-type.ferroamp.ssos1-ipv.description = Measured on pv string side -channel-type.ferroamp.ssos1-relaystatus.label = SSO, String-1, Relay Status -channel-type.ferroamp.ssos1-relaystatus.description = 0 = relay closed (i.e running power), 1 = relay open/disconnected, 2 = precharge -channel-type.ferroamp.ssos1-temp.label = SSO, String-1, Temperature -channel-type.ferroamp.ssos1-temp.description = Temperature measured on pcb of SSO -channel-type.ferroamp.ssos1-ts.label = SSO, String-1, Time Stamp -channel-type.ferroamp.ssos1-ts.description = Time stamp when message was published -channel-type.ferroamp.ssos1-udc.label = SSO, String-1, DC Link Voltage -channel-type.ferroamp.ssos1-udc.description = Dc link voltage as measured by SSO -channel-type.ferroamp.ssos1-upv.label = SSO, String-1, Voltage On PV String Side -channel-type.ferroamp.ssos1-upv.description = Measured on pv string side -channel-type.ferroamp.ssos1-wpv.label = SSO, String-1, Total Energy Produced -channel-type.ferroamp.ssos1-wpv.description = Total energy produced by SSO -channel-type.ferroamp.ssos2-faultcode.label = SSO, String-2, Fault Code -channel-type.ferroamp.ssos2-faultcode.description = 0x00 = OK, For all other values please contact Ferroamp support -channel-type.ferroamp.ssos2-id.label = SSO, String-2, Unique Identifier -channel-type.ferroamp.ssos2-id.description = Unique identifier of SSO -channel-type.ferroamp.ssos2-ipv.label = SSO, String-2, Current On PV String Side -channel-type.ferroamp.ssos2-ipv.description = Measured on pv string side -channel-type.ferroamp.ssos2-relaystatus.label = SSO, String-2, Relay Status -channel-type.ferroamp.ssos2-relaystatus.description = 0 = relay closed (i.e running power), 1 = relay open/disconnected, 2 = precharge -channel-type.ferroamp.ssos2-temp.label = SSO, String-2, Temperature -channel-type.ferroamp.ssos2-temp.description = Temperature measured on pcb of SSO -channel-type.ferroamp.ssos2-ts.label = SSO, String-2, Time Stamp -channel-type.ferroamp.ssos2-ts.description = Time stamp when message was published -channel-type.ferroamp.ssos2-udc.label = SSO, String-2, DC Link Voltage -channel-type.ferroamp.ssos2-udc.description = Dc link voltage as measured by SSO -channel-type.ferroamp.ssos2-upv.label = SSO, String-2, Voltage On PV String Side -channel-type.ferroamp.ssos2-upv.description = Measured on pv string side -channel-type.ferroamp.ssos2-wpv.label = SSO, String-2, Total Energy Produced -channel-type.ferroamp.ssos2-wpv.description = Total energy produced by SSO -channel-type.ferroamp.ssos3-faultcode.label = SSO, String-3, Fault Code -channel-type.ferroamp.ssos3-faultcode.description = 0x00 = OK, For all other values please contact Ferroamp support -channel-type.ferroamp.ssos3-id.label = SSO, String-3, Unique Identifier -channel-type.ferroamp.ssos3-id.description = Unique identifier of SSO -channel-type.ferroamp.ssos3-ipv.label = SSO, String-3, Current On PV String Side -channel-type.ferroamp.ssos3-ipv.description = Measured on pv string side -channel-type.ferroamp.ssos3-relaystatus.label = SSO, String-3, Relay Status -channel-type.ferroamp.ssos3-relaystatus.description = 0 = relay closed (i.e running power), 1 = relay open/disconnected, 2 = precharge -channel-type.ferroamp.ssos3-temp.label = SSO, String-3, Temperature -channel-type.ferroamp.ssos3-temp.description = Temperature measured on pcb of SSO -channel-type.ferroamp.ssos3-ts.label = SSO, String-3, Time Stamp -channel-type.ferroamp.ssos3-ts.description = Time stamp when message was published -channel-type.ferroamp.ssos3-udc.label = SSO, String-3, DC Link Voltage -channel-type.ferroamp.ssos3-udc.description = Dc link voltage as measured by SSO -channel-type.ferroamp.ssos3-upv.label = SSO, String-3, Voltage On PV String Side -channel-type.ferroamp.ssos3-upv.description = Measured on pv string side -channel-type.ferroamp.ssos3-wpv.label = SSO, String-3, Total Energy Produced -channel-type.ferroamp.ssos3-wpv.description = Total energy produced by SSO diff --git a/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/thing/thing-types.xml index 4b33d693ea5..9b72e538add 100644 --- a/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.ferroamp/src/main/resources/OH-INF/thing/thing-types.xml @@ -461,16 +461,6 @@ Has the system a battery connected? false - - - Has the system an Eso unit connected? - false - - - - Has the system an Esm unit connected? - false -