[ferroamp] Binding for ferroamp 20241024

Changes done, Please see Reply...regarded to each conversion

Signed-off-by: Örjan Backsell <orjan.backsell@gmail.com>
This commit is contained in:
Örjan Backsell 2024-10-24 19:00:54 +02:00
parent ae90e1d66e
commit f31221c2cb
8 changed files with 760 additions and 737 deletions

View File

@ -213,6 +213,16 @@ The following channels are available for `Ferroamp` EnergyHub configuration. Ple
Thing ferroamp:energyhub:myenergyhub [ hostName="energyhub-ip", userName="myUserName", password="myPassword", hasBattery=false ]
```
```java
Thing ferroamp:energyhub:myenergyhub [ hostName="energyhub-ip", userName="myUserName", password="myPassword", hasBattery=false, ssoS0=true ]
```
```java
Thing ferroamp:energyhub:myenergyhub [ hostName="energyhub-ip", userName="myUserName", password="myPassword", hasBattery=true, ssoS0=true, eso=true ]
```
## `demo.items` Example
```java

View File

@ -83,6 +83,7 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs
}
}
@SuppressWarnings("null")
@Override
public void initialize() {
// Set channel configuration parameters
@ -114,17 +115,26 @@ public class FerroampHandler extends BaseThingHandler implements MqttMessageSubs
}
} else {
updateStatus(ThingStatus.OFFLINE);
thingReachable = false;
}
});
// Start channel-update as configured
scheduler.scheduleWithFixedDelay(() -> {
try {
channelUpdate();
} catch (RuntimeException scheduleWithFixedDelayException) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
scheduleWithFixedDelayException.getClass().getName() + ":"
+ scheduleWithFixedDelayException.getMessage());
System.out.println("ffff = " + getFerroampConnection().connectionState());
if (getFerroampConnection().connectionState().toString().equals("DISCONNECTED")) {
System.out.println("aaaaa = " + getFerroampConnection().connectionState());
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR);
logger.debug("Problem connection to MqttBroker");
} else {
try {
channelUpdate();
updateStatus(ThingStatus.ONLINE);
} catch (RuntimeException scheduleWithFixedDelayException) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
scheduleWithFixedDelayException.getClass().getName() + ":"
+ scheduleWithFixedDelayException.getMessage());
}
}
}, 60, refreshInterval, TimeUnit.SECONDS);

View File

@ -113,6 +113,12 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber {
if ("extapi/data/sso".equals(topic)) {
processIncomingJsonMessageSso(topic, new String(payload, StandardCharsets.UTF_8));
}
if ("extapi/data/eso".equals(topic)) {
processIncomingJsonMessageEso(topic, new String(payload, StandardCharsets.UTF_8));
}
if ("extapi/data/esm".equals(topic)) {
processIncomingJsonMessageEsm(topic, new String(payload, StandardCharsets.UTF_8));
}
}
@SuppressWarnings("null")
@ -634,111 +640,116 @@ public class FerroampMqttCommunication implements MqttMessageSubscriber {
ssoS3ChannelsUpdateValues = ssoS3ChannelPostsValue;
}
}
if ("extapi/data/eso".equals(topic)) {
String[] esoChannelPostsValue = new String[10]; // Array for ESO, Energy Storage Optimizer ) Posts
JsonObject jsonElementsObject = new Gson().fromJson(new Gson().fromJson(messageJsonSso, JsonObject.class),
JsonObject.class);
@SuppressWarnings("null")
// 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
JsonObject jsonElementsObject = new Gson().fromJson(new Gson().fromJson(messageJsonEso, JsonObject.class),
JsonObject.class);
String jsonElementsStringTemp = "";
Gson gson = new Gson();
String jsonElementsStringTemp = "";
// faultcode
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(0)).toString();
GetGeneralValues faultcode = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[0] = faultcode.getVal();
// faultcode
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(0)).toString();
GetGeneralValues faultcode = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[0] = faultcode.getVal();
// id
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(1)).toString();
GetGeneralValues id = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[1] = id.getVal();
// id
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(1)).toString();
GetGeneralValues id = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[1] = id.getVal();
// ibat
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(2)).toString();
GetGeneralValues ibat = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[2] = ibat.getVal();
// ibat
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(2)).toString();
GetGeneralValues ibat = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[2] = ibat.getVal();
// ubat
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(3)).toString();
GetGeneralValues ubat = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[3] = ubat.getVal();
// ubat
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(3)).toString();
GetGeneralValues ubat = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[3] = ubat.getVal();
// relaystatus
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(4)).toString();
GetGeneralValues relaystatus = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[4] = relaystatus.getVal();
// relaystatus
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(4)).toString();
GetGeneralValues relaystatus = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[4] = relaystatus.getVal();
// soc
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(5)).toString();
GetGeneralValues soc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[5] = soc.getVal();
// soc
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(5)).toString();
GetGeneralValues soc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[5] = soc.getVal();
// temp
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(6)).toString();
GetGeneralValues temp = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[6] = temp.getVal();
// temp
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(6)).toString();
GetGeneralValues temp = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[6] = temp.getVal();
// wbatprod
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(7)).toString();
GetGeneralValues wbatprod = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[7] = mJTokWh(jsonStripOneLiners(wbatprod.getVal()));
// wbatprod
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(7)).toString();
GetGeneralValues wbatprod = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[7] = mJTokWh(jsonStripOneLiners(wbatprod.getVal()));
// udc
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(8)).toString();
GetGeneralValues udc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[8] = udc.getVal();
// udc
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(8)).toString();
GetGeneralValues udc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[8] = udc.getVal();
// ts
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(9)).toString();
GetGeneralValues ts = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[9] = ts.getVal();
// ts
jsonElementsStringTemp = jsonElementsObject.get(EsoJsonElements.getJsonElementsEso().get(9)).toString();
GetGeneralValues ts = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esoChannelPostsValue[9] = ts.getVal();
esoChannelsUpdateValues = esoChannelPostsValue;
}
esoChannelsUpdateValues = esoChannelPostsValue;
}
@SuppressWarnings("null")
// Prepare actual Json-topic Esm-message and update values for channels
void processIncomingJsonMessageEsm(String topic, String messageJsonEsm) {
String[] esmChannelPostsValue = new String[7]; // Array for ESM, Energy Storage Module ) Posts
JsonObject jsonElementsObject = new Gson().fromJson(new Gson().fromJson(messageJsonEsm, JsonObject.class),
JsonObject.class);
String jsonElementsStringTemp = "";
Gson gson = new Gson();
if ("extapi/data/esm".equals(topic)) {
String[] esmChannelPostsValue = new String[7]; // Array for ESM, Energy Storage Module ) Posts
JsonObject jsonElementsObject = new Gson().fromJson(new Gson().fromJson(messageJsonSso, JsonObject.class),
JsonObject.class);
// soc
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(0)).toString();
GetGeneralValues soc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[0] = soc.getVal();
String jsonElementsStringTemp = "";
// soh
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(1)).toString();
GetGeneralValues soh = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[1] = soh.getVal();
// soc
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(0)).toString();
GetGeneralValues soc = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[0] = soc.getVal();
// ratedcapacity
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(2)).toString();
GetGeneralValues ratedcapacity = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[2] = ratedcapacity.getVal();
// soh
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(1)).toString();
GetGeneralValues soh = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[1] = soh.getVal();
// id
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(3)).toString();
GetGeneralValues id = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[3] = id.getVal();
// ratedcapacity
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(2)).toString();
GetGeneralValues ratedcapacity = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[2] = ratedcapacity.getVal();
// ratedpower
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(4)).toString();
GetGeneralValues ratedpower = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[4] = ratedpower.getVal();
// id
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(3)).toString();
GetGeneralValues id = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[3] = id.getVal();
// status
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(5)).toString();
GetGeneralValues status = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[5] = status.getVal();
// ratedpower
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(4)).toString();
GetGeneralValues ratedpower = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[4] = ratedpower.getVal();
// ts
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(6)).toString();
GetGeneralValues ts = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[6] = ts.getVal();
// status
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(5)).toString();
GetGeneralValues status = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[5] = status.getVal();
esmChannelsUpdateValues = esmChannelPostsValue;
// ts
jsonElementsStringTemp = jsonElementsObject.get(EsmJsonElements.getJsonElementsEsm().get(6)).toString();
GetGeneralValues ts = gson.fromJson(jsonElementsStringTemp, GetGeneralValues.class);
esmChannelPostsValue[6] = ts.getVal();
esmChannelsUpdateValues = esmChannelPostsValue;
}
}
public @Nullable static String[] getEhubChannelUpdateValues() {

View File

@ -5,8 +5,8 @@ addon.ferroamp.description = This is the binding for Ferroamp EnergyHub.
# thing types
thing-type.ferroamp.energyhub.label = Ferroamp EnergyHub
thing-type.ferroamp.energyhub.description = Represents the Ferroamp EnergyHub
thing-type.ferroamp.energyhub.label = Ferroamp Binding Thing
thing-type.ferroamp.energyhub.description = Provides information from Ferroamp EnergyHub
thing-type.ferroamp.energyhub.channel.ace-current-l1.label = ACE Current L1
thing-type.ferroamp.energyhub.channel.ace-current-l2.label = ACE Current L2
thing-type.ferroamp.energyhub.channel.ace-current-l3.label = ACE Current L3
@ -19,30 +19,24 @@ thing-type.ferroamp.energyhub.channel.consumption-power-l3.label = Consumption P
thing-type.ferroamp.energyhub.channel.consumption-power-reactive-l1.label = Consumption Power Reactive L1
thing-type.ferroamp.energyhub.channel.consumption-power-reactive-l2.label = Consumption Power Reactive L2
thing-type.ferroamp.energyhub.channel.consumption-power-reactive-l3.label = Consumption Power Reactive L3
thing-type.ferroamp.energyhub.channel.esm-rated-power-battery.label = Esm Rated Power of Battery
thing-type.ferroamp.energyhub.channel.esm-id.label = Esm Unique Identifier
thing-type.ferroamp.energyhub.channel.esm-power-battery.label = Esm Rated Power of Battery
thing-type.ferroamp.energyhub.channel.esm-soc.label = Esm System State of Charge
thing-type.ferroamp.energyhub.channel.esm-soh.label = Esm System State of Health
thing-type.ferroamp.energyhub.channel.esm-status.label = Esm Status
thing-type.ferroamp.energyhub.channel.esm-timestamp.label = Esm Time Stamp When Message was Published
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.esm-total-capacity.label = Esm Rated Capacity
thing-type.ferroamp.energyhub.channel.eso-battery-energy-consumed.label = Eso Battery Energy Consumed
thing-type.ferroamp.energyhub.channel.eso-battery-energy-produced.label = Eso Battery Energy Produced
thing-type.ferroamp.energyhub.channel.eso-current-battery.label = Eso Current Measured on Battery Side
thing-type.ferroamp.energyhub.channel.eso-dc-link-voltage.label = Eso DC Link Voltage
thing-type.ferroamp.energyhub.channel.eso-fault-code.label = Eso FaultCode
thing-type.ferroamp.energyhub.channel.eso-id.label = Eso Unique Identifier
thing-type.ferroamp.energyhub.channel.eso-relay-status.label = Eso RelayStatus
thing-type.ferroamp.energyhub.channel.eso-soc.label = Eso State of Charge
thing-type.ferroamp.energyhub.channel.eso-temperature.label = ESO Temperature Measured on PCB
thing-type.ferroamp.energyhub.channel.eso-timestamp.label = Eso Time Stamp When Message was Published
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.eso-voltage-battery.label = Eso Voltage Measured on Battery Side
thing-type.ferroamp.energyhub.channel.external-voltage-l1.label = External Voltage L1
thing-type.ferroamp.energyhub.channel.external-voltage-l2.label = External Voltage L2
thing-type.ferroamp.energyhub.channel.external-voltage-l3.label = External Voltage L3
@ -55,6 +49,14 @@ thing-type.ferroamp.energyhub.channel.grid-current-l3.label = Grid Current 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.grid-energy-consumed-l1.label = Grid Energy Consumed L1
thing-type.ferroamp.energyhub.channel.grid-energy-consumed-l2.label = Grid Energy Consumed L2
thing-type.ferroamp.energyhub.channel.grid-energy-consumed-l3.label = Grid Energy Consumed L3
thing-type.ferroamp.energyhub.channel.grid-energy-consumed-total.label = Total Consumed Grid Energy
thing-type.ferroamp.energyhub.channel.grid-energy-produced-l1.label = Grid Energy Produced L1
thing-type.ferroamp.energyhub.channel.grid-energy-produced-l2.label = Grid Energy Produced L2
thing-type.ferroamp.energyhub.channel.grid-energy-produced-l3.label = Grid Energy Produced L3
thing-type.ferroamp.energyhub.channel.grid-energy-produced-total.label = Total Produced Grid Energy
thing-type.ferroamp.energyhub.channel.grid-frequency.label = Estimated Grid Frequency
thing-type.ferroamp.energyhub.channel.grid-power-active-l1.label = Grid Power Active L1
thing-type.ferroamp.energyhub.channel.grid-power-active-l2.label = Grid Power Active L2
@ -68,14 +70,14 @@ thing-type.ferroamp.energyhub.channel.inverter-current-active-l3.label = Inverte
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-energy-consumed-3p.label = Inverter Energy Consumed 3p
thing-type.ferroamp.energyhub.channel.inverter-energy-consumed-l1.label = Inverter Energy Consumed L1
thing-type.ferroamp.energyhub.channel.inverter-energy-consumed-l2.label = Inverter Energy Consumed L2
thing-type.ferroamp.energyhub.channel.inverter-energy-consumed-l3.label = Inverter Energy Consumed L3
thing-type.ferroamp.energyhub.channel.inverter-energy-produced-3p.label = Inverter Energy Produced 3p
thing-type.ferroamp.energyhub.channel.inverter-energy-consumed-total.label = Total Consumed Inverter Energy
thing-type.ferroamp.energyhub.channel.inverter-energy-produced-l1.label = Inverter Energy Produced L1
thing-type.ferroamp.energyhub.channel.inverter-energy-produced-l2.label = Inverter Energy Produced L2
thing-type.ferroamp.energyhub.channel.inverter-energy-produced-l3.label = Inverter Energy Produced L3
thing-type.ferroamp.energyhub.channel.inverter-energy-produced-total.label = Total Produced Inverter Energy
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
@ -91,16 +93,14 @@ thing-type.ferroamp.energyhub.channel.inverter-reactive-current-l3.label = Inver
thing-type.ferroamp.energyhub.channel.inverter-rms-current-l1.label = Inverter RMS Current L1
thing-type.ferroamp.energyhub.channel.inverter-rms-current-l2.label = Inverter RMS Current L2
thing-type.ferroamp.energyhub.channel.inverter-rms-current-l3.label = Inverter RMS Current L3
thing-type.ferroamp.energyhub.channel.load-energy-consumed-3p.label = Load Energy Consumed 3p
thing-type.ferroamp.energyhub.channel.load-energy-consumed-l1.label = Load Energy Consumed L1
thing-type.ferroamp.energyhub.channel.load-energy-consumed-l2.label = Load Energy Consumed L2
thing-type.ferroamp.energyhub.channel.load-energy-consumed-l3.label = Load Energy Consumed L3
thing-type.ferroamp.energyhub.channel.load-energy-produced-3p.label = Load Energy Produced 3p
thing-type.ferroamp.energyhub.channel.load-energy-consumed-total.label = Total Consumed Load Energy
thing-type.ferroamp.energyhub.channel.load-energy-produced-l1.label = Load Energy Produced L1
thing-type.ferroamp.energyhub.channel.load-energy-produced-l2.label = Load Energy Produced L2
thing-type.ferroamp.energyhub.channel.load-energy-produced-l3.label = Load Energy Produced L3
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.load-energy-produced-total.label = Total Produced Load Energy
thing-type.ferroamp.energyhub.channel.negative-dc-link-voltage.label = Negative DC Link Voltage
thing-type.ferroamp.energyhub.channel.positive-dc-link-voltage.label = Positive DC Link Voltage
thing-type.ferroamp.energyhub.channel.power-battery.label = Battery Power
@ -111,8 +111,8 @@ thing-type.ferroamp.energyhub.channel.request-extapi-version.label = RequestExta
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-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.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
@ -120,8 +120,8 @@ thing-type.ferroamp.energyhub.channel.s0-total-solar-energy.label = S0 Total Sol
thing-type.ferroamp.energyhub.channel.s1-dc-link-voltage.label = S1 DC Link Voltage
thing-type.ferroamp.energyhub.channel.s1-fault-code.label = S1 FaultCode
thing-type.ferroamp.energyhub.channel.s1-id.label = S1 ID
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.s1-pv-current.label = S1 Measured Current on PV String Side
thing-type.ferroamp.energyhub.channel.s1-pv-voltage.label = S1 Measured Voltage on PV String Side
thing-type.ferroamp.energyhub.channel.s1-relay-status.label = S1 RelayStatus
thing-type.ferroamp.energyhub.channel.s1-temperature.label = S1 Temperature Measured on PCB
thing-type.ferroamp.energyhub.channel.s1-timestamp.label = S1 Time Stamp When Message was Published
@ -129,8 +129,8 @@ thing-type.ferroamp.energyhub.channel.s1-total-solar-energy.label = S1 Total Sol
thing-type.ferroamp.energyhub.channel.s2-dc-link-voltage.label = S2 DC Link Voltage
thing-type.ferroamp.energyhub.channel.s2-fault-code.label = S2 FaultCode
thing-type.ferroamp.energyhub.channel.s2-id.label = S2 ID
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.s2-pv-current.label = S2 Measured Current on PV String Side
thing-type.ferroamp.energyhub.channel.s2-pv-voltage.label = S2 Measured Voltage on PV String Side
thing-type.ferroamp.energyhub.channel.s2-relay-status.label = S2 RelayStatus
thing-type.ferroamp.energyhub.channel.s2-temperature.label = S2 Temperature Measured on PCB
thing-type.ferroamp.energyhub.channel.s2-timestamp.label = S2 Time Stamp When Message was Published
@ -138,8 +138,8 @@ thing-type.ferroamp.energyhub.channel.s2-total-solar-energy.label = S2 Total Sol
thing-type.ferroamp.energyhub.channel.s3-dc-link-voltage.label = S3 DC Link Voltage
thing-type.ferroamp.energyhub.channel.s3-fault-code.label = S3 FaultCode
thing-type.ferroamp.energyhub.channel.s3-id.label = S3 ID
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.s3-pv-current.label = S3 Measured Current on PV String Side
thing-type.ferroamp.energyhub.channel.s3-pv-voltage.label = S3 Measured Voltage on PV String Side
thing-type.ferroamp.energyhub.channel.s3-relay-status.label = S3 RelayStatus
thing-type.ferroamp.energyhub.channel.s3-temperature.label = S3 Temperature Measured on PCB
thing-type.ferroamp.energyhub.channel.s3-timestamp.label = S3 Time Stamp When Message was Published
@ -149,10 +149,8 @@ thing-type.ferroamp.energyhub.channel.soh.label = System State of Health
thing-type.ferroamp.energyhub.channel.solar-pv.label = Solar Power
thing-type.ferroamp.energyhub.channel.state.label = State of the System
thing-type.ferroamp.energyhub.channel.timestamp.label = Time Stamp When Message was Published
thing-type.ferroamp.energyhub.channel.total-rated-capacity-all-batteries.label = Total Rated Capacity of All Batteries
thing-type.ferroamp.energyhub.channel.total-capacity-batteries.label = Total Rated Capacity of All Batteries
thing-type.ferroamp.energyhub.channel.total-solar-energy.label = Total Solar Energy
thing-type.ferroamp.energyhub.label = Ferroamp Binding Thing
thing-type.ferroamp.energyhub.description = Thing for Ferroamp Binding
# thing types config
@ -177,18 +175,6 @@ thing-type.config.ferroamp.energyhub.ssoS3.description = Fourth SSO Unit Availab
thing-type.config.ferroamp.energyhub.userName.label = Username
thing-type.config.ferroamp.energyhub.userName.description = Username to access the device
# 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.date-time.label = Date Time
@ -205,6 +191,48 @@ 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.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

View File

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="ferroamp"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<channel-type id="energy">
<item-type>Number:Energy</item-type>
<label>Energy</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="energy">
<label>Energy</label>
</channel-group-type>
<channel-type id="electric-current">
<item-type>Number:ElectricCurrent</item-type>
<label>Electric Current</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="electric-current">
<label>Electric Current</label>
</channel-group-type>
<channel-type id="power">
<item-type>Number:Power</item-type>
<label>Power</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="power">
<label>Power</label>
</channel-group-type>
<channel-type id="date-time">
<item-type>DateTime</item-type>
<label>Date Time</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="date-time">
<label>Date Time</label>
</channel-group-type>
<channel-type id="electric-potential">
<item-type>Number:ElectricPotential</item-type>
<label>Electrical Potential</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="electric-potential">
<label>Electrical Potential</label>
</channel-group-type>
<channel-type id="frequency">
<item-type>Number:Frequency</item-type>
<label>Frequency</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="frequency">
<label>Frequency</label>
</channel-group-type>
<channel-type id="dimensionless">
<item-type>Number:Dimensionless</item-type>
<label>Dimensionless</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="dimensionless">
<label>Dimensionless</label>
</channel-group-type>
<channel-type id="temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-group-type id="temperature">
<label>Temperature</label>
</channel-group-type>
<channel-type id="string">
<item-type>String</item-type>
<label>String</label>
<category>Energy</category>
<state readOnly="true"/>
</channel-type>
<channel-group-type id="string">
<label>String</label>
</channel-group-type>
<channel-type id="request">
<item-type>String</item-type>
<label>String</label>
<description>Used for control of system</description>
<category>Energy</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="request-extapiversion">
<item-type>String</item-type>
<label>Request-ExtapiVersion</label>
<description>Returns Extapi Version</description>
<category>Energy</category>
<state readOnly="true"/>
</channel-type>
</thing:thing-descriptions>

View File

@ -1,449 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="ferroamp"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="energyhub">
<label>Ferroamp EnergyHub</label>
<description>Represents the Ferroamp EnergyHub</description>
<category>Energy</category>
<channels>
<channel id="grid-frequency" typeId="frequency">
<label>Estimated Grid Frequency</label>
</channel>
<channel id="ace-current-l1" typeId="electric-current">
<label>ACE Current L1</label>
</channel>
<channel id="ace-current-l2" typeId="electric-current">
<label>ACE Current L2</label>
</channel>
<channel id="ace-current-l3" typeId="electric-current">
<label>ACE Current L3</label>
</channel>
<channel id="external-voltage-l1" typeId="electric-potential">
<label>External Voltage L1</label>
</channel>
<channel id="external-voltage-l2" typeId="electric-potential">
<label>External Voltage L2</label>
</channel>
<channel id="external-voltage-l3" typeId="electric-potential">
<label>External Voltage L3</label>
</channel>
<channel id="inverter-rms-current-l1" typeId="electric-current">
<label>Inverter RMS Current L1</label>
</channel>
<channel id="inverter-rms-current-l2" typeId="electric-current">
<label>Inverter RMS Current L2</label>
</channel>
<channel id="inverter-rms-current-l3" typeId="electric-current">
<label>Inverter RMS Current L3</label>
</channel>
<channel id="inverter-current-reactive-l1" typeId="electric-current">
<label>Inverter Reactive Current L1</label>
</channel>
<channel id="inverter-current-reactive-l2" typeId="electric-current">
<label>Inverter Reactive Current L2</label>
</channel>
<channel id="inverter-current-reactive-l3" typeId="electric-current">
<label>Inverter Reactive Current L3</label>
</channel>
<channel id="inverter-current-active-l1" typeId="electric-current">
<label>Inverter Active Current L1</label>
</channel>
<channel id="inverter-current-active-l2" typeId="electric-current">
<label>Inverter Active Current L2</label>
</channel>
<channel id="inverter-current-active-l3" typeId="electric-current">
<label>Inverter Active Current L3</label>
</channel>
<channel id="grid-current-l1" typeId="electric-current">
<label>Grid Current L1</label>
</channel>
<channel id="grid-current-l2" typeId="electric-current">
<label>Grid Current L2</label>
</channel>
<channel id="grid-current-l3" typeId="electric-current">
<label>Grid Current L3</label>
</channel>
<channel id="grid-current-reactive-l1" typeId="electric-current">
<label>Grid Reactive Current L1</label>
</channel>
<channel id="grid-current-reactive-l2" typeId="electric-current">
<label>Grid Reactive Current L2</label>
</channel>
<channel id="grid-current-reactive-l3" typeId="electric-current">
<label>Grid Reactive Current L3</label>
</channel>
<channel id="grid-current-active-l1" typeId="electric-current">
<label>Grid Current Active L1</label>
</channel>
<channel id="grid-current-active-l2" typeId="electric-current">
<label>Grid Current Active L2</label>
</channel>
<channel id="grid-current-active-l3" typeId="electric-current">
<label>Grid Current Active L3</label>
</channel>
<channel id="inverter-reactive-current-l1" typeId="electric-current">
<label>Inverter Reactive Current L1</label>
</channel>
<channel id="inverter-reactive-current-l2" typeId="electric-current">
<label>Inverter Reactive Current L2</label>
</channel>
<channel id="inverter-reactive-current-l3" typeId="electric-current">
<label>Inverter Reactive Current L3</label>
</channel>
<channel id="inverter-load-l1" typeId="electric-current">
<label>Inverter Load L1</label>
</channel>
<channel id="inverter-load-l2" typeId="electric-current">
<label>Inverter Load L2</label>
</channel>
<channel id="inverter-load-l3" typeId="electric-current">
<label>Inverter Load L3</label>
</channel>
<channel id="apparent-power" typeId="energy">
<label>Apparent Power</label>
</channel>
<channel id="grid-power-active-l1" typeId="power">
<label>Grid Power Active L1</label>
</channel>
<channel id="grid-power-active-l2" typeId="power">
<label>Grid Power Active L2</label>
</channel>
<channel id="grid-power-active-l3" typeId="power">
<label>Grid Power Active L3</label>
</channel>
<channel id="grid-power-reactive-l1" typeId="power">
<label>Grid Power Reactive L1</label>
</channel>
<channel id="grid-power-reactive-l2" typeId="power">
<label>Grid Power Reactive L2</label>
</channel>
<channel id="grid-power-reactive-l3" typeId="power">
<label>Grid Power Reactive L3</label>
</channel>
<channel id="inverter-power-active-l1" typeId="power">
<label>Inverter Power Active L1</label>
</channel>
<channel id="inverter-power-active-l2" typeId="power">
<label>Inverter Power Active L2</label>
</channel>
<channel id="inverter-power-active-l3" typeId="power">
<label>Inverter Power Active L3</label>
</channel>
<channel id="inverter-power-reactive-l1" typeId="power">
<label>Inverter Power Reactive L1</label>
</channel>
<channel id="inverter-power-reactive-l2" typeId="power">
<label>Inverter Power Reactive L2</label>
</channel>
<channel id="inverter-power-reactive-l3" typeId="power">
<label>Inverter Power Reactive L3</label>
</channel>
<channel id="consumption-power-l1" typeId="power">
<label>Consumption Power L1</label>
</channel>
<channel id="consumption-power-l2" typeId="power">
<label>Consumption Power L2</label>
</channel>
<channel id="consumption-power-l3" typeId="power">
<label>Consumption Power L3</label>
</channel>
<channel id="consumption-power-reactive-l1" typeId="power">
<label>Consumption Power Reactive L1</label>
</channel>
<channel id="consumption-power-reactive-l2" typeId="power">
<label>Consumption Power Reactive L2</label>
</channel>
<channel id="consumption-power-reactive-l3" typeId="power">
<label>Consumption Power Reactive L3</label>
</channel>
<channel id="solar-pv" typeId="power">
<label>Solar Power</label>
</channel>
<channel id="positive-dc-link-voltage" typeId="electric-potential">
<label>Positive DC Link Voltage</label>
</channel>
<channel id="negative-dc-link-voltage" typeId="electric-potential">
<label>Negative DC Link Voltage</label>
</channel>
<channel id="grid-energy-produced-l1" typeId="energy">
<label>Grid Energy Produced L1</label>
</channel>
<channel id="grid-energy-produced-l2" typeId="energy">
<label>Grid Energy Produced L2</label>
</channel>
<channel id="grid-energy-produced-l3" typeId="energy">
<label>Grid Energy Produced L3</label>
</channel>
<channel id="grid-energy-consumed-l1" typeId="energy">
<label>Grid Energy Consumed L1</label>
</channel>
<channel id="grid-energy-consumed-l2" typeId="energy">
<label>Grid Energy Consumed L2</label>
</channel>
<channel id="grid-energy-consumed-l3" typeId="energy">
<label>Grid Energy Consumed L3</label>
</channel>
<channel id="inverter-energy-produced-l1" typeId="energy">
<label>Inverter Energy Produced L1</label>
</channel>
<channel id="inverter-energy-produced-l2" typeId="energy">
<label>Inverter Energy Produced L2</label>
</channel>
<channel id="inverter-energy-produced-l3" typeId="energy">
<label>Inverter Energy Produced L3</label>
</channel>
<channel id="inverter-energy-consumed-l1" typeId="energy">
<label>Inverter Energy Consumed L1</label>
</channel>
<channel id="inverter-energy-consumed-l2" typeId="energy">
<label>Inverter Energy Consumed L2</label>
</channel>
<channel id="inverter-energy-consumed-l3" typeId="energy">
<label>Inverter Energy Consumed L3</label>
</channel>
<channel id="load-energy-produced-l1" typeId="energy">
<label>Load Energy Produced L1</label>
</channel>
<channel id="load-energy-produced-l2" typeId="energy">
<label>Load Energy Produced L2</label>
</channel>
<channel id="load-energy-produced-l3" typeId="energy">
<label>Load Energy Produced L3</label>
</channel>
<channel id="load-energy-consumed-l1" typeId="energy">
<label>Load Energy Consumed L1</label>
</channel>
<channel id="load-energy-consumed-l2" typeId="energy">
<label>Load Energy Consumed L2</label>
</channel>
<channel id="load-energy-consumed-l3" typeId="energy">
<label>Load Energy Consumed L3</label>
</channel>
<channel id="grid-energy-produced-total" typeId="energy">
<label>Total Produced Grid Energy</label>
</channel>
<channel id="grid-energy-consumed-total" typeId="energy">
<label>Total Consumed Grid Energy</label>
</channel>
<channel id="inverter-energy-produced-total" typeId="energy">
<label>Total Produced Inverter Energy</label>
</channel>
<channel id="inverter-energy-consumed-total" typeId="energy">
<label>Total Consumed Inverter Energy</label>
</channel>
<channel id="load-energy-produced-total" typeId="energy">
<label>Total Produced Load Energy</label>
</channel>
<channel id="load-energy-consumed-total" typeId="energy">
<label>Total Consumed Load Energy</label>
</channel>
<channel id="total-solar-energy" typeId="power">
<label>Total Solar Energy</label>
</channel>
<channel id="state" typeId="string">
<label>State of the System</label>
</channel>
<channel id="timestamp" typeId="date-time">
<label>Time Stamp When Message was Published</label>
</channel>
<channel id="battery-energy-produced" typeId="energy">
<label>Battery Energy Produced</label>
</channel>
<channel id="battery-energy-consumed" typeId="energy">
<label>Battery Energy Consumed</label>
</channel>
<channel id="soc" typeId="dimensionless">
<label>System State of Charge</label>
</channel>
<channel id="soh" typeId="dimensionless">
<label>System State of Health</label>
</channel>
<channel id="power-battery" typeId="power">
<label>Battery Power</label>
</channel>
<channel id="total-capacity-batteries" typeId="energy">
<label>Total Rated Capacity of All Batteries</label>
</channel>
<channel id="s0-id" typeId="string">
<label>S0 ID</label>
</channel>
<channel id="s0-pv-voltage" typeId="electric-potential">
<label>S0 Measured Voltage on PV String Side</label>
</channel>
<channel id="s0-pv-current" typeId="electric-current">
<label>S0 Measured Current on PV String Side</label>
</channel>
<channel id="s0-total-solar-energy" typeId="energy">
<label>S0 Total Solar Energy</label>
</channel>
<channel id="s0-relay-status" typeId="string">
<label>S0 RelayStatus</label>
</channel>
<channel id="s0-temperature" typeId="temperature">
<label>S0 Temperature Measured on PCB</label>
</channel>
<channel id="s0-fault-code" typeId="string">
<label>S0 FaultCode</label>
</channel>
<channel id="s0-dc-link-voltage" typeId="electric-potential">
<label>S0 DC Link Voltage</label>
</channel>
<channel id="s0-timestamp" typeId="date-time">
<label>S0 Time Stamp When Message was Published</label>
</channel>
<channel id="s1-id" typeId="string">
<label>S1 ID</label>
</channel>
<channel id="s1-pv-voltage" typeId="electric-potential">
<label>S1 Measured Voltage on PV String Side</label>
</channel>
<channel id="s1-pv-current" typeId="electric-current">
<label>S1 Measured Current on PV String Side</label>
</channel>
<channel id="s1-total-solar-energy" typeId="energy">
<label>S1 Total Solar Energy</label>
</channel>
<channel id="s1-relay-status" typeId="string">
<label>S1 RelayStatus</label>
</channel>
<channel id="s1-temperature" typeId="temperature">
<label>S1 Temperature Measured on PCB</label>
</channel>
<channel id="s1-fault-code" typeId="string">
<label>S1 FaultCode</label>
</channel>
<channel id="s1-dc-link-voltage" typeId="electric-potential">
<label>S1 DC Link Voltage</label>
</channel>
<channel id="s1-timestamp" typeId="date-time">
<label>S1 Time Stamp When Message was Published</label>
</channel>
<channel id="s2-id" typeId="string">
<label>S2 ID</label>
</channel>
<channel id="s2-pv-voltage" typeId="electric-potential">
<label>S2 Measured Voltage on PV String Side</label>
</channel>
<channel id="s2-pv-current" typeId="electric-current">
<label>S2 Measured Current on PV String Side</label>
</channel>
<channel id="s2-total-solar-energy" typeId="energy">
<label>S2 Total Solar Energy</label>
</channel>
<channel id="s2-relay-status" typeId="string">
<label>S2 RelayStatus</label>
</channel>
<channel id="s2-temperature" typeId="temperature">
<label>S2 Temperature Measured on PCB</label>
</channel>
<channel id="s2-fault-code" typeId="string">
<label>S2 FaultCode</label>
</channel>
<channel id="s2-dc-link-voltage" typeId="electric-potential">
<label>S2 DC Link Voltage</label>
</channel>
<channel id="s2-timestamp" typeId="date-time">
<label>S2 Time Stamp When Message was Published</label>
</channel>
<channel id="s3-id" typeId="string">
<label>S3 ID</label>
</channel>
<channel id="s3-pv-voltage" typeId="electric-potential">
<label>S3 Measured Voltage on PV String Side</label>
</channel>
<channel id="s3-pv-current" typeId="electric-current">
<label>S3 Measured Current on PV String Side</label>
</channel>
<channel id="s3-total-solar-energy" typeId="energy">
<label>S3 Total Solar Energy</label>
</channel>
<channel id="s3-relay-status" typeId="string">
<label>S3 RelayStatus</label>
</channel>
<channel id="s3-temperature" typeId="temperature">
<label>S3 Temperature Measured on PCB</label>
</channel>
<channel id="s3-fault-code" typeId="string">
<label>S3 FaultCode</label>
</channel>
<channel id="s3-dc-link-voltage" typeId="electric-potential">
<label>S3 DC Link Voltage</label>
</channel>
<channel id="s3-timestamp" typeId="date-time">
<label>S3 Time Stamp When Message was Published</label>
</channel>
<channel id="eso-id" typeId="string">
<label>Eso Unique Identifier</label>
</channel>
<channel id="eso-voltage-battery" typeId="electric-potential">
<label>Eso Voltage Measured on Battery Side</label>
</channel>
<channel id="eso-current-battery" typeId="electric-current">
<label>Eso Current Measured on Battery Side</label>
</channel>
<channel id="eso-battery-energy-produced" typeId="energy">
<label>Eso Battery Energy Produced</label>
</channel>
<channel id="eso-battery-energy-consumed" typeId="energy">
<label>Eso Battery Energy Consumed</label>
</channel>
<channel id="eso-soc" typeId="dimensionless">
<label>Eso State of Charge</label>
</channel>
<channel id="eso-relay-status" typeId="string">
<label>Eso RelayStatus</label>
</channel>
<channel id="eso-temperature" typeId="temperature">
<label>ESO Temperature Measured on PCB</label>
</channel>
<channel id="eso-fault-code" typeId="string">
<label>Eso FaultCode</label>
</channel>
<channel id="eso-dc-link-voltage" typeId="electric-potential">
<label>Eso DC Link Voltage</label>
</channel>
<channel id="eso-timestamp" typeId="date-time">
<label>Eso Time Stamp When Message was Published</label>
</channel>
<channel id="esm-id" typeId="string">
<label>Esm Unique Identifier</label>
</channel>
<channel id="esm-soh" typeId="dimensionless">
<label>Esm System State of Health</label>
</channel>
<channel id="esm-soc" typeId="dimensionless">
<label>Esm System State of Charge</label>
</channel>
<channel id="esm-total-capacity" typeId="energy">
<label>Esm Rated Capacity</label>
</channel>
<channel id="esm-power-battery" typeId="power">
<label>Esm Rated Power of Battery</label>
</channel>
<channel id="esm-status" typeId="string">
<label>Esm Status</label>
</channel>
<channel id="esm-timestamp" typeId="date-time">
<label>Esm Time Stamp When Message was Published</label>
</channel>
<channel id="request-charge" typeId="request">
<label>RequestCharge</label>
</channel>
<channel id="request-discharge" typeId="request">
<label>RequestDischarge</label>
</channel>
<channel id="request-auto" typeId="request">
<label>RequestAuto</label>
</channel>
<channel id="request-extapi-version" typeId="request-extapiversion">
<label>RequestExtapiVersion</label>
</channel>
</channels>
<properties>
<property name="vendor">Ferroamp</property>
</properties>
<config-description-ref uri="thing-type:ferroamp:energyhub"/>
</thing-type>
</thing:thing-descriptions>

View File

@ -1,57 +1,573 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="ferroamp"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="energyhub">
<label>Ferroamp Binding Thing</label>
<description>Thing for Ferroamp Binding</description>
<config-description>
<parameter name="hostName" type="text" required="true">
<context>network-address</context>
<label>Hostname</label>
<description>Hostname or IP address of the device</description>
</parameter>
<parameter name="userName" type="text" required="true">
<context>username</context>
<label>Username</label>
<description>Username to access the device</description>
</parameter>
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Password</label>
<description>Password to access the device</description>
</parameter>
<parameter name="hasBattery" type="boolean" required="false">
<label>Battery Capable</label>
<description>Ehub type, with/without battery</description>
<default>false</default>
</parameter>
<parameter name="ssoS0" type="boolean" required="false">
<label>SSO String S0 Available</label>
<description>First SSO Unit Available </description>
</parameter>
<parameter name="ssoS1" type="boolean" required="false">
<label>SSO String S1 Available</label>
<description>Second SSO Unit Available</description>
</parameter>
<parameter name="ssoS2" type="boolean" required="false">
<label>SSO String S2 Available</label>
<description>Third SSO Unit Available</description>
</parameter>
<parameter name="ssoS3" type="boolean" required="false">
<label>SSO String S3 Available</label>
<description>Fourth SSO Unit Available</description>
</parameter>
<parameter name="eso" type="boolean" required="false">
<label>ESO Module Available</label>
<description>ESO Module Available</description>
</parameter>
<parameter name="esm" type="boolean" required="false">
<label>ESM Module Available</label>
<description>ESM Module Available</description>
</parameter>
</config-description>
</thing-type>
<thing-type id="energyhub">
<label>Ferroamp Binding Thing</label>
<description>Provides information from Ferroamp EnergyHub</description>
<channels>
<channel id="grid-frequency" typeId="frequency">
<label>Estimated Grid Frequency</label>
</channel>
<channel id="ace-current-l1" typeId="electric-current">
<label>ACE Current L1</label>
</channel>
<channel id="ace-current-l2" typeId="electric-current">
<label>ACE Current L2</label>
</channel>
<channel id="ace-current-l3" typeId="electric-current">
<label>ACE Current L3</label>
</channel>
<channel id="external-voltage-l1" typeId="electric-potential">
<label>External Voltage L1</label>
</channel>
<channel id="external-voltage-l2" typeId="electric-potential">
<label>External Voltage L2</label>
</channel>
<channel id="external-voltage-l3" typeId="electric-potential">
<label>External Voltage L3</label>
</channel>
<channel id="inverter-rms-current-l1" typeId="electric-current">
<label>Inverter RMS Current L1</label>
</channel>
<channel id="inverter-rms-current-l2" typeId="electric-current">
<label>Inverter RMS Current L2</label>
</channel>
<channel id="inverter-rms-current-l3" typeId="electric-current">
<label>Inverter RMS Current L3</label>
</channel>
<channel id="inverter-current-reactive-l1" typeId="electric-current">
<label>Inverter Reactive Current L1</label>
</channel>
<channel id="inverter-current-reactive-l2" typeId="electric-current">
<label>Inverter Reactive Current L2</label>
</channel>
<channel id="inverter-current-reactive-l3" typeId="electric-current">
<label>Inverter Reactive Current L3</label>
</channel>
<channel id="inverter-current-active-l1" typeId="electric-current">
<label>Inverter Active Current L1</label>
</channel>
<channel id="inverter-current-active-l2" typeId="electric-current">
<label>Inverter Active Current L2</label>
</channel>
<channel id="inverter-current-active-l3" typeId="electric-current">
<label>Inverter Active Current L3</label>
</channel>
<channel id="grid-current-l1" typeId="electric-current">
<label>Grid Current L1</label>
</channel>
<channel id="grid-current-l2" typeId="electric-current">
<label>Grid Current L2</label>
</channel>
<channel id="grid-current-l3" typeId="electric-current">
<label>Grid Current L3</label>
</channel>
<channel id="grid-current-reactive-l1" typeId="electric-current">
<label>Grid Reactive Current L1</label>
</channel>
<channel id="grid-current-reactive-l2" typeId="electric-current">
<label>Grid Reactive Current L2</label>
</channel>
<channel id="grid-current-reactive-l3" typeId="electric-current">
<label>Grid Reactive Current L3</label>
</channel>
<channel id="grid-current-active-l1" typeId="electric-current">
<label>Grid Current Active L1</label>
</channel>
<channel id="grid-current-active-l2" typeId="electric-current">
<label>Grid Current Active L2</label>
</channel>
<channel id="grid-current-active-l3" typeId="electric-current">
<label>Grid Current Active L3</label>
</channel>
<channel id="inverter-reactive-current-l1" typeId="electric-current">
<label>Inverter Reactive Current L1</label>
</channel>
<channel id="inverter-reactive-current-l2" typeId="electric-current">
<label>Inverter Reactive Current L2</label>
</channel>
<channel id="inverter-reactive-current-l3" typeId="electric-current">
<label>Inverter Reactive Current L3</label>
</channel>
<channel id="inverter-load-l1" typeId="electric-current">
<label>Inverter Load L1</label>
</channel>
<channel id="inverter-load-l2" typeId="electric-current">
<label>Inverter Load L2</label>
</channel>
<channel id="inverter-load-l3" typeId="electric-current">
<label>Inverter Load L3</label>
</channel>
<channel id="apparent-power" typeId="energy">
<label>Apparent Power</label>
</channel>
<channel id="grid-power-active-l1" typeId="power">
<label>Grid Power Active L1</label>
</channel>
<channel id="grid-power-active-l2" typeId="power">
<label>Grid Power Active L2</label>
</channel>
<channel id="grid-power-active-l3" typeId="power">
<label>Grid Power Active L3</label>
</channel>
<channel id="grid-power-reactive-l1" typeId="power">
<label>Grid Power Reactive L1</label>
</channel>
<channel id="grid-power-reactive-l2" typeId="power">
<label>Grid Power Reactive L2</label>
</channel>
<channel id="grid-power-reactive-l3" typeId="power">
<label>Grid Power Reactive L3</label>
</channel>
<channel id="inverter-power-active-l1" typeId="power">
<label>Inverter Power Active L1</label>
</channel>
<channel id="inverter-power-active-l2" typeId="power">
<label>Inverter Power Active L2</label>
</channel>
<channel id="inverter-power-active-l3" typeId="power">
<label>Inverter Power Active L3</label>
</channel>
<channel id="inverter-power-reactive-l1" typeId="power">
<label>Inverter Power Reactive L1</label>
</channel>
<channel id="inverter-power-reactive-l2" typeId="power">
<label>Inverter Power Reactive L2</label>
</channel>
<channel id="inverter-power-reactive-l3" typeId="power">
<label>Inverter Power Reactive L3</label>
</channel>
<channel id="consumption-power-l1" typeId="power">
<label>Consumption Power L1</label>
</channel>
<channel id="consumption-power-l2" typeId="power">
<label>Consumption Power L2</label>
</channel>
<channel id="consumption-power-l3" typeId="power">
<label>Consumption Power L3</label>
</channel>
<channel id="consumption-power-reactive-l1" typeId="power">
<label>Consumption Power Reactive L1</label>
</channel>
<channel id="consumption-power-reactive-l2" typeId="power">
<label>Consumption Power Reactive L2</label>
</channel>
<channel id="consumption-power-reactive-l3" typeId="power">
<label>Consumption Power Reactive L3</label>
</channel>
<channel id="solar-pv" typeId="power">
<label>Solar Power</label>
</channel>
<channel id="positive-dc-link-voltage" typeId="electric-potential">
<label>Positive DC Link Voltage</label>
</channel>
<channel id="negative-dc-link-voltage" typeId="electric-potential">
<label>Negative DC Link Voltage</label>
</channel>
<channel id="grid-energy-produced-l1" typeId="energy">
<label>Grid Energy Produced L1</label>
</channel>
<channel id="grid-energy-produced-l2" typeId="energy">
<label>Grid Energy Produced L2</label>
</channel>
<channel id="grid-energy-produced-l3" typeId="energy">
<label>Grid Energy Produced L3</label>
</channel>
<channel id="grid-energy-consumed-l1" typeId="energy">
<label>Grid Energy Consumed L1</label>
</channel>
<channel id="grid-energy-consumed-l2" typeId="energy">
<label>Grid Energy Consumed L2</label>
</channel>
<channel id="grid-energy-consumed-l3" typeId="energy">
<label>Grid Energy Consumed L3</label>
</channel>
<channel id="inverter-energy-produced-l1" typeId="energy">
<label>Inverter Energy Produced L1</label>
</channel>
<channel id="inverter-energy-produced-l2" typeId="energy">
<label>Inverter Energy Produced L2</label>
</channel>
<channel id="inverter-energy-produced-l3" typeId="energy">
<label>Inverter Energy Produced L3</label>
</channel>
<channel id="inverter-energy-consumed-l1" typeId="energy">
<label>Inverter Energy Consumed L1</label>
</channel>
<channel id="inverter-energy-consumed-l2" typeId="energy">
<label>Inverter Energy Consumed L2</label>
</channel>
<channel id="inverter-energy-consumed-l3" typeId="energy">
<label>Inverter Energy Consumed L3</label>
</channel>
<channel id="load-energy-produced-l1" typeId="energy">
<label>Load Energy Produced L1</label>
</channel>
<channel id="load-energy-produced-l2" typeId="energy">
<label>Load Energy Produced L2</label>
</channel>
<channel id="load-energy-produced-l3" typeId="energy">
<label>Load Energy Produced L3</label>
</channel>
<channel id="load-energy-consumed-l1" typeId="energy">
<label>Load Energy Consumed L1</label>
</channel>
<channel id="load-energy-consumed-l2" typeId="energy">
<label>Load Energy Consumed L2</label>
</channel>
<channel id="load-energy-consumed-l3" typeId="energy">
<label>Load Energy Consumed L3</label>
</channel>
<channel id="grid-energy-produced-total" typeId="energy">
<label>Total Produced Grid Energy</label>
</channel>
<channel id="grid-energy-consumed-total" typeId="energy">
<label>Total Consumed Grid Energy</label>
</channel>
<channel id="inverter-energy-produced-total" typeId="energy">
<label>Total Produced Inverter Energy</label>
</channel>
<channel id="inverter-energy-consumed-total" typeId="energy">
<label>Total Consumed Inverter Energy</label>
</channel>
<channel id="load-energy-produced-total" typeId="energy">
<label>Total Produced Load Energy</label>
</channel>
<channel id="load-energy-consumed-total" typeId="energy">
<label>Total Consumed Load Energy</label>
</channel>
<channel id="total-solar-energy" typeId="power">
<label>Total Solar Energy</label>
</channel>
<channel id="state" typeId="string">
<label>State of the System</label>
</channel>
<channel id="timestamp" typeId="date-time">
<label>Time Stamp When Message was Published</label>
</channel>
<channel id="battery-energy-produced" typeId="energy">
<label>Battery Energy Produced</label>
</channel>
<channel id="battery-energy-consumed" typeId="energy">
<label>Battery Energy Consumed</label>
</channel>
<channel id="soc" typeId="dimensionless">
<label>System State of Charge</label>
</channel>
<channel id="soh" typeId="dimensionless">
<label>System State of Health</label>
</channel>
<channel id="power-battery" typeId="power">
<label>Battery Power</label>
</channel>
<channel id="total-capacity-batteries" typeId="energy">
<label>Total Rated Capacity of All Batteries</label>
</channel>
<channel id="s0-id" typeId="string">
<label>S0 ID</label>
</channel>
<channel id="s0-pv-voltage" typeId="electric-potential">
<label>S0 Measured Voltage on PV String Side</label>
</channel>
<channel id="s0-pv-current" typeId="electric-current">
<label>S0 Measured Current on PV String Side</label>
</channel>
<channel id="s0-total-solar-energy" typeId="energy">
<label>S0 Total Solar Energy</label>
</channel>
<channel id="s0-relay-status" typeId="string">
<label>S0 RelayStatus</label>
</channel>
<channel id="s0-temperature" typeId="temperature">
<label>S0 Temperature Measured on PCB</label>
</channel>
<channel id="s0-fault-code" typeId="string">
<label>S0 FaultCode</label>
</channel>
<channel id="s0-dc-link-voltage" typeId="electric-potential">
<label>S0 DC Link Voltage</label>
</channel>
<channel id="s0-timestamp" typeId="date-time">
<label>S0 Time Stamp When Message was Published</label>
</channel>
<channel id="s1-id" typeId="string">
<label>S1 ID</label>
</channel>
<channel id="s1-pv-voltage" typeId="electric-potential">
<label>S1 Measured Voltage on PV String Side</label>
</channel>
<channel id="s1-pv-current" typeId="electric-current">
<label>S1 Measured Current on PV String Side</label>
</channel>
<channel id="s1-total-solar-energy" typeId="energy">
<label>S1 Total Solar Energy</label>
</channel>
<channel id="s1-relay-status" typeId="string">
<label>S1 RelayStatus</label>
</channel>
<channel id="s1-temperature" typeId="temperature">
<label>S1 Temperature Measured on PCB</label>
</channel>
<channel id="s1-fault-code" typeId="string">
<label>S1 FaultCode</label>
</channel>
<channel id="s1-dc-link-voltage" typeId="electric-potential">
<label>S1 DC Link Voltage</label>
</channel>
<channel id="s1-timestamp" typeId="date-time">
<label>S1 Time Stamp When Message was Published</label>
</channel>
<channel id="s2-id" typeId="string">
<label>S2 ID</label>
</channel>
<channel id="s2-pv-voltage" typeId="electric-potential">
<label>S2 Measured Voltage on PV String Side</label>
</channel>
<channel id="s2-pv-current" typeId="electric-current">
<label>S2 Measured Current on PV String Side</label>
</channel>
<channel id="s2-total-solar-energy" typeId="energy">
<label>S2 Total Solar Energy</label>
</channel>
<channel id="s2-relay-status" typeId="string">
<label>S2 RelayStatus</label>
</channel>
<channel id="s2-temperature" typeId="temperature">
<label>S2 Temperature Measured on PCB</label>
</channel>
<channel id="s2-fault-code" typeId="string">
<label>S2 FaultCode</label>
</channel>
<channel id="s2-dc-link-voltage" typeId="electric-potential">
<label>S2 DC Link Voltage</label>
</channel>
<channel id="s2-timestamp" typeId="date-time">
<label>S2 Time Stamp When Message was Published</label>
</channel>
<channel id="s3-id" typeId="string">
<label>S3 ID</label>
</channel>
<channel id="s3-pv-voltage" typeId="electric-potential">
<label>S3 Measured Voltage on PV String Side</label>
</channel>
<channel id="s3-pv-current" typeId="electric-current">
<label>S3 Measured Current on PV String Side</label>
</channel>
<channel id="s3-total-solar-energy" typeId="energy">
<label>S3 Total Solar Energy</label>
</channel>
<channel id="s3-relay-status" typeId="string">
<label>S3 RelayStatus</label>
</channel>
<channel id="s3-temperature" typeId="temperature">
<label>S3 Temperature Measured on PCB</label>
</channel>
<channel id="s3-fault-code" typeId="string">
<label>S3 FaultCode</label>
</channel>
<channel id="s3-dc-link-voltage" typeId="electric-potential">
<label>S3 DC Link Voltage</label>
</channel>
<channel id="s3-timestamp" typeId="date-time">
<label>S3 Time Stamp When Message was Published</label>
</channel>
<channel id="eso-id" typeId="string">
<label>Eso Unique Identifier</label>
</channel>
<channel id="eso-voltage-battery" typeId="electric-potential">
<label>Eso Voltage Measured on Battery Side</label>
</channel>
<channel id="eso-current-battery" typeId="electric-current">
<label>Eso Current Measured on Battery Side</label>
</channel>
<channel id="eso-battery-energy-produced" typeId="energy">
<label>Eso Battery Energy Produced</label>
</channel>
<channel id="eso-battery-energy-consumed" typeId="energy">
<label>Eso Battery Energy Consumed</label>
</channel>
<channel id="eso-soc" typeId="dimensionless">
<label>Eso State of Charge</label>
</channel>
<channel id="eso-relay-status" typeId="string">
<label>Eso RelayStatus</label>
</channel>
<channel id="eso-temperature" typeId="temperature">
<label>ESO Temperature Measured on PCB</label>
</channel>
<channel id="eso-fault-code" typeId="string">
<label>Eso FaultCode</label>
</channel>
<channel id="eso-dc-link-voltage" typeId="electric-potential">
<label>Eso DC Link Voltage</label>
</channel>
<channel id="eso-timestamp" typeId="date-time">
<label>Eso Time Stamp When Message was Published</label>
</channel>
<channel id="esm-id" typeId="string">
<label>Esm Unique Identifier</label>
</channel>
<channel id="esm-soh" typeId="dimensionless">
<label>Esm System State of Health</label>
</channel>
<channel id="esm-soc" typeId="dimensionless">
<label>Esm System State of Charge</label>
</channel>
<channel id="esm-total-capacity" typeId="energy">
<label>Esm Rated Capacity</label>
</channel>
<channel id="esm-power-battery" typeId="power">
<label>Esm Rated Power of Battery</label>
</channel>
<channel id="esm-status" typeId="string">
<label>Esm Status</label>
</channel>
<channel id="esm-timestamp" typeId="date-time">
<label>Esm Time Stamp When Message was Published</label>
</channel>
<channel id="request-charge" typeId="request">
<label>RequestCharge</label>
</channel>
<channel id="request-discharge" typeId="request">
<label>RequestDischarge</label>
</channel>
<channel id="request-auto" typeId="request">
<label>RequestAuto</label>
</channel>
<channel id="request-extapi-version" typeId="request-extapiversion">
<label>RequestExtapiVersion</label>
</channel>
</channels>
<config-description>
<parameter name="hostName" type="text" required="true">
<context>network-address</context>
<label>Hostname</label>
<description>Hostname or IP address of the device</description>
</parameter>
<parameter name="userName" type="text" required="true">
<context>username</context>
<label>Username</label>
<description>Username to access the device</description>
</parameter>
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Password</label>
<description>Password to access the device</description>
</parameter>
<parameter name="hasBattery" type="boolean" required="false">
<label>Battery Capable</label>
<description>Ehub type, with/without battery</description>
<default>false</default>
</parameter>
<parameter name="ssoS0" type="boolean" required="false">
<label>SSO String S0 Available</label>
<description>First SSO Unit Available </description>
</parameter>
<parameter name="ssoS1" type="boolean" required="false">
<label>SSO String S1 Available</label>
<description>Second SSO Unit Available</description>
</parameter>
<parameter name="ssoS2" type="boolean" required="false">
<label>SSO String S2 Available</label>
<description>Third SSO Unit Available</description>
</parameter>
<parameter name="ssoS3" type="boolean" required="false">
<label>SSO String S3 Available</label>
<description>Fourth SSO Unit Available</description>
</parameter>
<parameter name="eso" type="boolean" required="false">
<label>ESO Module Available</label>
<description>ESO Module Available</description>
</parameter>
<parameter name="esm" type="boolean" required="false">
<label>ESM Module Available</label>
<description>ESM Module Available</description>
</parameter>
</config-description>
</thing-type>
<channel-type id="energy">
<item-type>Number:Energy</item-type>
<label>Energy</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="electric-current">
<item-type>Number:ElectricCurrent</item-type>
<label>Electric Current</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="power">
<item-type>Number:Power</item-type>
<label>Power</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="date-time">
<item-type>DateTime</item-type>
<label>Date Time</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="electric-potential">
<item-type>Number:ElectricPotential</item-type>
<label>Electrical Potential</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="frequency">
<item-type>Number:Frequency</item-type>
<label>Frequency</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="dimensionless">
<item-type>Number:Dimensionless</item-type>
<label>Dimensionless</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<category>Energy</category>
<state readOnly="true" pattern="%.2f %unit%"/>
</channel-type>
<channel-type id="string">
<item-type>String</item-type>
<label>String</label>
<category>Energy</category>
<state readOnly="true"/>
</channel-type>
<channel-type id="request">
<item-type>String</item-type>
<label>String</label>
<description>Used for control of system</description>
<category>Energy</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="request-extapiversion">
<item-type>String</item-type>
<label>Request-ExtapiVersion</label>
<description>Returns Extapi Version</description>
<category>Energy</category>
<state readOnly="true"/>
</channel-type>
</thing:thing-descriptions>

View File

@ -477,8 +477,6 @@
<module>org.openhab.voice.rustpotterks</module>
<module>org.openhab.voice.voicerss</module>
<module>org.openhab.voice.voskstt</module>
<module>org.openhab.voice.watsonstt</module>
<module>org.openhab.voice.whisperstt</module>
</modules>
<properties>
<m2e.jdt.annotationpath>target/dependency</m2e.jdt.annotationpath>