mirror of
https://github.com/danieldemus/openhab-addons
synced 2026-07-29 12:34:21 +02:00
[e3dc] Add performance ratio channels (#19763)
* add performance ratio Signed-off-by: Bernd Weymann <bernd.weymann@gmail.com>
This commit is contained in:
@@ -84,6 +84,7 @@ The E3DC device offers quite an amount of channels. For clustering 4 Channel Gro
|
||||
| Channel Label | Channel Group ID | Channel ID | Type | Description |
|
||||
|-------------------------------|-------------------|------------------------------|------------------------|----------------------------------------------------------------------------------------|
|
||||
| PV Output | power | pv-power-supply | Number:Power | Photovoltaic Power Production |
|
||||
| PV Performance Ratio | power | pv-perf-ratio | Number:Dimensionless | Performance ratio of actual energy produced and installed kWp |
|
||||
| Battery Discharge | power | battery-power-supply | Number:Power | Battery discharges and provides Power |
|
||||
| Battery Charge | power | battery-power-consumption | Number:Power | Battery charges and consumes Power |
|
||||
| Household Consumption | power | household-power-consumption | Number:Power | Household consuming Power |
|
||||
@@ -98,17 +99,15 @@ The E3DC device offers quite an amount of channels. For clustering 4 Channel Gro
|
||||
|
||||
### Channel Group _String Details Block_
|
||||
|
||||
| Channel Label | Channel Group ID | Channel ID | Type | Description |
|
||||
|-----------------------|------------------|--------------------|---------------------------|----------------------------|
|
||||
| String 1 Potential | strings | string1-dc-voltage | Number:ElectricPotential | Voltage on String 1 |
|
||||
| String 2 Potential | strings | string2-dc-voltage | Number:ElectricPotential | Voltage on String 2 |
|
||||
| String 3 Potential | strings | string3-dc-voltage | Number:ElectricPotential | Voltage on String 3 |
|
||||
| String 1 Current | strings | string1-dc-current | Number:ElectricCurrent | Current on String 1 |
|
||||
| String 2 Current | strings | string2-dc-current | Number:ElectricCurrent | Current on String 2 |
|
||||
| String 3 Current | strings | string3-dc-current | Number:ElectricCurrent | Current on String 3 |
|
||||
| String 1 Power | strings | string1-dc-output | Number:Power | Power produced by String 1 |
|
||||
| String 2 Power | strings | string2-dc-output | Number:Power | Power produced by String 2 |
|
||||
| String 3 Power | strings | string3-dc-output | Number:Power | Power produced by String 3 |
|
||||
E3DC power plant supports up to 3 photovoltaic strings.
|
||||
Each string X = 1,2 or 3 provides following channels:
|
||||
|
||||
| Channel Label | Channel Group ID | Channel ID | Type | Description |
|
||||
|-----------------------|------------------|--------------------|---------------------------|---------------------------------------------------------------|
|
||||
| String X Potential | strings | stringX-dc-voltage | Number:ElectricPotential | Voltage on String X |
|
||||
| String X Current | strings | stringX-dc-current | Number:ElectricCurrent | Current on String X |
|
||||
| String X Power | strings | stringX-dc-output | Number:Power | Power produced by String X |
|
||||
| String X Ratio | strings | stringX-perf-ratio | Number:Dimensionless | Performance ratio of actual energy produced and installed kWp |
|
||||
|
||||
### Channel _EMS Block_
|
||||
|
||||
@@ -178,6 +177,7 @@ Number:Power E3DC_GridSupply "E3DC Power from Grid" (e3dc
|
||||
Number:Power E3DC_ExternalSupply "E3DC External Supply" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:power#external-power-supply" }
|
||||
Number:Power E3DC_WallboxConsumption "E3DC Wallbox Consumption" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:power#wallbox-power-consumption" }
|
||||
Number:Power E3DC_WallboxPVConsumption "E3DC Wallbox PV Consumption" (e3dc) { channel="modbus:e3dc:device:powerplant:power#wallbox-pv-power-consumption" }
|
||||
Number:Dimensionless E3DC_PV_Performance "E3DC PV Performance" (e3dc) { channel="modbus:e3dc:device:powerplant:power#pv-perf-ratio" }
|
||||
Number:Dimensionless E3DC_AutarkyLevel "E3DC Autarky Level" (e3dc) { channel="modbus:e3dc:device:powerplant:power#autarky" }
|
||||
Number:Dimensionless E3DC_SelfConsumptionLevel "E3DC Self Consumption Level" (e3dc) { channel="modbus:e3dc:device:powerplant:power#self-consumption" }
|
||||
Number:Dimensionless E3DC_BatterySOC "E3DC Battery SOC" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:power#battery-soc" }
|
||||
@@ -205,6 +205,9 @@ Number:ElectricCurrent E3DC_String3A "E3DC String 3 Ampere"
|
||||
Number:Power E3DC_String1W "E3DC String 1 Watt" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:strings#string1-dc-output" }
|
||||
Number:Power E3DC_String2W "E3DC String 2 Watt" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:strings#string2-dc-output" }
|
||||
Number:Power E3DC_String3W "E3DC String 3 Watt" (e3dc,persist) { channel="modbus:e3dc:device:powerplant:strings#string3-dc-output" }
|
||||
Number:Dimensionless E3DC_String1_Performance "E3DC String 1 Performance" (e3dc) { channel="modbus:e3dc:device:powerplant:strings#string1-perf-ratio" }
|
||||
Number:Dimensionless E3DC_String2_Performance "E3DC String 2 Performance" (e3dc) { channel="modbus:e3dc:device:powerplant:strings#string2-perf-ratio" }
|
||||
Number:Dimensionless E3DC_String3_Performance "E3DC String 3 Performance" (e3dc) { channel="modbus:e3dc:device:powerplant:strings#string3-perf-ratio" }
|
||||
|
||||
String E3DC_EMS_Status "E3DC EMS Status" (e3dc) { channel="modbus:e3dc:device:powerplant:emergency#emergency-power-status" }
|
||||
Switch E3DC_EMS_BatteryChargingLock "E3DC EMS Battery Charging Locked" (e3dc) { channel="modbus:e3dc:device:powerplant:emergency#battery-charging-lock" }
|
||||
|
||||
+4
@@ -42,6 +42,7 @@ public class E3DCBindingConstants {
|
||||
|
||||
// Channels for Power Block
|
||||
public static final String PV_POWER_SUPPLY_CHANNEL = "pv-power-supply";
|
||||
public static final String PV_POWER_PERFORMANCE_RATIO_CHANNEL = "pv-perf-ratio";
|
||||
public static final String BATTERY_POWER_SUPPLY_CHANNEL = "battery-power-supply";
|
||||
public static final String BATTERY_POWER_CONSUMPTION = "battery-power-consumption";
|
||||
public static final String HOUSEHOLD_POWER_CONSUMPTION_CHANNEL = "household-power-consumption";
|
||||
@@ -81,6 +82,9 @@ public class E3DCBindingConstants {
|
||||
public static final String STRING3_DC_VOLTAGE_CHANNEL = "string3-dc-voltage";
|
||||
public static final String STRING3_DC_CURRENT_CHANNEL = "string3-dc-current";
|
||||
public static final String STRING3_DC_OUTPUT_CHANNEL = "string3-dc-output";
|
||||
public static final String STRING1_PERFORMANCE_RATIO_CHANNEL = "string1-perf-ratio";
|
||||
public static final String STRING2_PERFORMANCE_RATIO_CHANNEL = "string2-perf-ratio";
|
||||
public static final String STRING3_PERFORMANCE_RATIO_CHANNEL = "string3-perf-ratio";
|
||||
|
||||
// Channels for Emergency Status
|
||||
public static final String EMERGENCY_POWER_STATUS = "emergency-power-status";
|
||||
|
||||
+4
-1
@@ -10,7 +10,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*/
|
||||
package org.openhab.binding.modbus.e3dc.internal;
|
||||
package org.openhab.binding.modbus.e3dc.internal.config;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
|
||||
@@ -24,4 +24,7 @@ public class E3DCConfiguration {
|
||||
|
||||
public int refresh = 2000;
|
||||
public double batteryCapacity = -1;
|
||||
public double string1Kwp = 0;
|
||||
public double string2Kwp = 0;
|
||||
public double string3Kwp = 0;
|
||||
}
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*/
|
||||
package org.openhab.binding.modbus.e3dc.internal;
|
||||
package org.openhab.binding.modbus.e3dc.internal.config;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
|
||||
+42
-23
@@ -19,10 +19,11 @@ import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.measure.quantity.Energy;
|
||||
import javax.measure.quantity.Power;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.binding.modbus.e3dc.internal.E3DCConfiguration;
|
||||
import org.openhab.binding.modbus.e3dc.internal.config.E3DCConfiguration;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.EmergencyBlock;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.InfoBlock;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.PowerBlock;
|
||||
@@ -39,6 +40,7 @@ import org.openhab.core.io.transport.modbus.ModbusReadFunctionCode;
|
||||
import org.openhab.core.io.transport.modbus.ModbusReadRequestBlueprint;
|
||||
import org.openhab.core.io.transport.modbus.PollTask;
|
||||
import org.openhab.core.library.types.QuantityType;
|
||||
import org.openhab.core.library.unit.MetricPrefix;
|
||||
import org.openhab.core.library.unit.Units;
|
||||
import org.openhab.core.thing.Bridge;
|
||||
import org.openhab.core.thing.ChannelUID;
|
||||
@@ -91,6 +93,7 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
private ChannelUID dischargeLockTimeChannel;
|
||||
|
||||
private ChannelUID pvPowerSupplyChannel;
|
||||
private ChannelUID pvPowerRatioChannel;
|
||||
private ChannelUID batteryPowerSupplyChannel;
|
||||
private ChannelUID batteryPowerConsumptionChannel;
|
||||
private ChannelUID householdPowerConsumptionChannel;
|
||||
@@ -114,6 +117,9 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
private ChannelUID string3AmpereChannel;
|
||||
private ChannelUID string3VoltChannel;
|
||||
private ChannelUID string3WattChannel;
|
||||
private ChannelUID string1RatioChannel;
|
||||
private ChannelUID string2RatioChannel;
|
||||
private ChannelUID string3RatioChannel;
|
||||
|
||||
private final ArrayList<E3DCWallboxThingHandler> listeners = new ArrayList<>();
|
||||
private final Logger logger = LoggerFactory.getLogger(E3DCThingHandler.class);
|
||||
@@ -121,9 +127,10 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
private ReadStatus dataRead = ReadStatus.NOT_RECEIVED;
|
||||
private final Parser infoParser = new Parser(DataType.INFO);
|
||||
private ReadStatus infoRead = ReadStatus.NOT_RECEIVED;
|
||||
private E3DCConfiguration config = new E3DCConfiguration();
|
||||
private double totalKwp = 0;
|
||||
private @Nullable PollTask infoPoller;
|
||||
private @Nullable PollTask dataPoller;
|
||||
private @Nullable E3DCConfiguration config;
|
||||
|
||||
/**
|
||||
* Communication interface to the slave endpoint we're connecting to
|
||||
@@ -152,6 +159,7 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
dischargeLockTimeChannel = channelUID(thing, EMERGENCY_GROUP, DISCHARGE_LOCK_TIME);
|
||||
|
||||
pvPowerSupplyChannel = channelUID(thing, POWER_GROUP, PV_POWER_SUPPLY_CHANNEL);
|
||||
pvPowerRatioChannel = channelUID(thing, POWER_GROUP, PV_POWER_PERFORMANCE_RATIO_CHANNEL);
|
||||
batteryPowerSupplyChannel = channelUID(thing, POWER_GROUP, BATTERY_POWER_SUPPLY_CHANNEL);
|
||||
batteryPowerConsumptionChannel = channelUID(thing, POWER_GROUP, BATTERY_POWER_CONSUMPTION);
|
||||
householdPowerConsumptionChannel = channelUID(thing, POWER_GROUP, HOUSEHOLD_POWER_CONSUMPTION_CHANNEL);
|
||||
@@ -175,6 +183,10 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
string3AmpereChannel = channelUID(thing, STRINGS_GROUP, STRING3_DC_CURRENT_CHANNEL);
|
||||
string3VoltChannel = channelUID(thing, STRINGS_GROUP, STRING3_DC_VOLTAGE_CHANNEL);
|
||||
string3WattChannel = channelUID(thing, STRINGS_GROUP, STRING3_DC_OUTPUT_CHANNEL);
|
||||
|
||||
string1RatioChannel = channelUID(thing, STRINGS_GROUP, STRING1_PERFORMANCE_RATIO_CHANNEL);
|
||||
string2RatioChannel = channelUID(thing, STRINGS_GROUP, STRING2_PERFORMANCE_RATIO_CHANNEL);
|
||||
string3RatioChannel = channelUID(thing, STRINGS_GROUP, STRING3_PERFORMANCE_RATIO_CHANNEL);
|
||||
}
|
||||
|
||||
public @Nullable ModbusCommunicationInterface getComms() {
|
||||
@@ -194,8 +206,8 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
public void initialize() {
|
||||
updateStatus(ThingStatus.UNKNOWN);
|
||||
scheduler.execute(() -> {
|
||||
E3DCConfiguration localConfig = getConfigAs(E3DCConfiguration.class);
|
||||
config = localConfig;
|
||||
config = getConfigAs(E3DCConfiguration.class);
|
||||
totalKwp = config.string1Kwp + config.string2Kwp + config.string3Kwp;
|
||||
ModbusCommunicationInterface localComms = connectEndpoint();
|
||||
if (localComms != null) {
|
||||
// register low speed info poller
|
||||
@@ -207,13 +219,8 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
ModbusReadRequestBlueprint dataRequest = new ModbusReadRequestBlueprint(slaveId,
|
||||
ModbusReadFunctionCode.READ_MULTIPLE_REGISTERS, POWER_REG_START,
|
||||
REGISTER_LENGTH - INFO_REG_SIZE, 3);
|
||||
if (config != null) {
|
||||
dataPoller = localComms.registerRegularPoll(dataRequest, localConfig.refresh, 0,
|
||||
this::handleDataResult, this::handleDataFailure);
|
||||
} else {
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
|
||||
"E3DC Configuration missing");
|
||||
}
|
||||
dataPoller = localComms.registerRegularPoll(dataRequest, config.refresh, 0, this::handleDataResult,
|
||||
this::handleDataFailure);
|
||||
} // else state handling performed in connectEndPoint function
|
||||
});
|
||||
}
|
||||
@@ -228,7 +235,6 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
|
||||
ModbusEndpointThingHandler slaveEndpointThingHandler = getEndpointThingHandler();
|
||||
if (slaveEndpointThingHandler == null) {
|
||||
@SuppressWarnings("null")
|
||||
String label = Optional.ofNullable(getBridge()).map(b -> b.getLabel()).orElse("<null>");
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE,
|
||||
String.format("Bridge '%s' is offline", label));
|
||||
@@ -243,7 +249,6 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
return null;
|
||||
}
|
||||
if (comms == null) {
|
||||
@SuppressWarnings("null")
|
||||
String label = Optional.ofNullable(getBridge()).map(b -> b.getLabel()).orElse("<null>");
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE,
|
||||
String.format("Bridge '%s' not completely initialized", label));
|
||||
@@ -367,17 +372,16 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
updateState(autarkyChannel, block.autarky);
|
||||
updateState(selfConsumptionChannel, block.selfConsumption);
|
||||
updateState(batterySOCChannel, block.batterySOC);
|
||||
if (config != null) {
|
||||
if (config.batteryCapacity > 0) {
|
||||
double soc = block.batterySOC.doubleValue();
|
||||
QuantityType<Energy> charged = QuantityType.valueOf(soc * config.batteryCapacity / 100,
|
||||
Units.KILOWATT_HOUR);
|
||||
updateState(batteryChargedChannel, charged);
|
||||
QuantityType<Energy> uncharged = QuantityType
|
||||
.valueOf((100 - soc) * config.batteryCapacity / 100, Units.KILOWATT_HOUR);
|
||||
updateState(batteryUnchargedChannel, uncharged);
|
||||
}
|
||||
if (config.batteryCapacity > 0) {
|
||||
double soc = block.batterySOC.doubleValue();
|
||||
QuantityType<Energy> charged = QuantityType.valueOf(soc * config.batteryCapacity / 100,
|
||||
Units.KILOWATT_HOUR);
|
||||
updateState(batteryChargedChannel, charged);
|
||||
QuantityType<Energy> uncharged = QuantityType.valueOf((100 - soc) * config.batteryCapacity / 100,
|
||||
Units.KILOWATT_HOUR);
|
||||
updateState(batteryUnchargedChannel, uncharged);
|
||||
}
|
||||
calculatePerformanceRatio(block.pvPowerSupply, totalKwp, pvPowerRatioChannel);
|
||||
} else {
|
||||
logger.debug("Unable to get {} from provider {}", DataType.POWER, dataParser.toString());
|
||||
}
|
||||
@@ -397,6 +401,9 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
updateState(string3AmpereChannel, block.string3Ampere);
|
||||
updateState(string3VoltChannel, block.string3Volt);
|
||||
updateState(string3WattChannel, block.string3Watt);
|
||||
calculatePerformanceRatio(block.string1Watt, config.string1Kwp, string1RatioChannel);
|
||||
calculatePerformanceRatio(block.string2Watt, config.string2Kwp, string2RatioChannel);
|
||||
calculatePerformanceRatio(block.string3Watt, config.string3Kwp, string3RatioChannel);
|
||||
} else {
|
||||
logger.debug("Unable to get {} from provider {}", DataType.STRINGS, dataParser.toString());
|
||||
}
|
||||
@@ -407,6 +414,18 @@ public class E3DCThingHandler extends BaseBridgeHandler {
|
||||
});
|
||||
}
|
||||
|
||||
private void calculatePerformanceRatio(QuantityType<Power> power, double stringKwp, ChannelUID channel) {
|
||||
if (stringKwp > 0) {
|
||||
QuantityType<?> kiloWattPower = power.toUnit(MetricPrefix.KILO(Units.WATT));
|
||||
if (kiloWattPower == null) {
|
||||
logger.warn("Cannot convert {} to kW", power);
|
||||
return;
|
||||
}
|
||||
double ratio = kiloWattPower.doubleValue() / stringKwp * 100;
|
||||
updateState(channel, QuantityType.valueOf(ratio, Units.PERCENT));
|
||||
}
|
||||
}
|
||||
|
||||
void handleDataFailure(AsyncModbusFailure<ModbusReadRequestBlueprint> result) {
|
||||
if (dataRead != ReadStatus.READ_FAILED) {
|
||||
// update status only if bit switches
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import java.util.OptionalInt;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.binding.modbus.e3dc.internal.E3DCWallboxConfiguration;
|
||||
import org.openhab.binding.modbus.e3dc.internal.config.E3DCWallboxConfiguration;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.DataConverter;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.WallboxArray;
|
||||
import org.openhab.binding.modbus.e3dc.internal.dto.WallboxBlock;
|
||||
|
||||
+19
-2
@@ -9,8 +9,16 @@ thing-type.modbus.e3dc.description = Provide Power values, String Details, Emerg
|
||||
|
||||
thing-type.config.modbus.e3dc-wallbox.wallboxId.label = Wallbox ID
|
||||
thing-type.config.modbus.e3dc-wallbox.wallboxId.description = E3DC supports up to 8 Wallboxes - select a value from 0 to 7
|
||||
thing-type.config.modbus.e3dc.batteryCapacity.label = Battery Capacity
|
||||
thing-type.config.modbus.e3dc.batteryCapacity.description = Capacity of the built in battery in kWh
|
||||
thing-type.config.modbus.e3dc.refresh.label = Refresh Interval
|
||||
thing-type.config.modbus.e3dc.refresh.description = Refresh Rate of E3DC values in Milliseconds
|
||||
thing-type.config.modbus.e3dc.string1Kwp.label = String 1 kWp
|
||||
thing-type.config.modbus.e3dc.string1Kwp.description = String 1 kilowatt peak installed
|
||||
thing-type.config.modbus.e3dc.string2Kwp.label = String 2 kWp
|
||||
thing-type.config.modbus.e3dc.string2Kwp.description = String 2 kilowatt peak installed
|
||||
thing-type.config.modbus.e3dc.string3Kwp.label = String 3 kWp
|
||||
thing-type.config.modbus.e3dc.string3Kwp.description = String 3 kilowatt peak installed
|
||||
|
||||
# channel group types
|
||||
|
||||
@@ -20,13 +28,23 @@ channel-group-type.modbus.info-values.label = Information
|
||||
channel-group-type.modbus.info-values.description = Basic Information of your E3DC Device like Model Name, Serial Number and Software Versions
|
||||
channel-group-type.modbus.power-values.label = Power Values
|
||||
channel-group-type.modbus.power-values.description = Provides values of your attached electrical Producers (Photovoltaic, Battery, ... and Consumers (Household, Wallbox, ...)
|
||||
channel-group-type.modbus.power-values.channel.pv-perf-ratio.label = PV Performance Ratio
|
||||
channel-group-type.modbus.power-values.channel.pv-perf-ratio.description = Performance ratio of actual energy produced and installed kWp
|
||||
channel-group-type.modbus.string-values.label = String Details
|
||||
channel-group-type.modbus.string-values.description = Provide detailed values of your attached Photovoltaic Strings. Evaluate how much Power each String provides
|
||||
channel-group-type.modbus.string-values.channel.string1-perf-ratio.label = String 1 Ratio
|
||||
channel-group-type.modbus.string-values.channel.string1-perf-ratio.description = Performance ratio of actual energy produced and installed kWp
|
||||
channel-group-type.modbus.string-values.channel.string2-perf-ratio.label = String 2 Ratio
|
||||
channel-group-type.modbus.string-values.channel.string2-perf-ratio.description = Performance ratio of actual energy produced and installed kWp
|
||||
channel-group-type.modbus.string-values.channel.string3-perf-ratio.label = String 3 Ratio
|
||||
channel-group-type.modbus.string-values.channel.string3-perf-ratio.description = Performance ratio of actual energy produced and installed kWp
|
||||
|
||||
# channel types
|
||||
|
||||
channel-type.modbus.autarky-channel.label = Autarky
|
||||
channel-type.modbus.autarky-channel.description = Your current Autarky Level in Percent
|
||||
channel-type.modbus.battery-charged-channel.label = Battery Charge
|
||||
channel-type.modbus.battery-charged-channel.description = Charged energy of battery
|
||||
channel-type.modbus.battery-charging-lock-channel.label = Battery Charge Locked
|
||||
channel-type.modbus.battery-charging-lock-channel.description = Battery charging is locked
|
||||
channel-type.modbus.battery-discharging-lock-channel.label = Battery Discharge Locked
|
||||
@@ -37,8 +55,6 @@ channel-type.modbus.battery-power-supply-channel.label = Battery Discharge
|
||||
channel-type.modbus.battery-power-supply-channel.description = Battery discharges and provides Power
|
||||
channel-type.modbus.battery-soc-channel.label = Battery State Of Charge
|
||||
channel-type.modbus.battery-soc-channel.description = Charge Level of your attached Battery in Percent
|
||||
channel-type.modbus.battery-charged-channel.label = Battery Charge
|
||||
channel-type.modbus.battery-charged-channel.description = Charged energy of battery
|
||||
channel-type.modbus.battery-uncharged-channel.label = Battery Open Capacity
|
||||
channel-type.modbus.battery-uncharged-channel.description = Open energy capacity of battery
|
||||
channel-type.modbus.charge-lock-time-channel.label = Charge Lock Time Active
|
||||
@@ -67,6 +83,7 @@ channel-type.modbus.modbus-id-channel.label = Modbus-ID
|
||||
channel-type.modbus.modbus-id-channel.description = Modbus ID / Magic Byte of E3DC
|
||||
channel-type.modbus.model-name-channel.label = Model Name
|
||||
channel-type.modbus.model-name-channel.description = Name of the E3DC Model
|
||||
channel-type.modbus.perf-ratio-channel.label = Performance Ratio
|
||||
channel-type.modbus.pv-power-supply-channel.label = PV Output
|
||||
channel-type.modbus.pv-power-supply-channel.description = Photovoltaic Power Production
|
||||
channel-type.modbus.regulation-status-channel.label = Grid Power Supply Regulation
|
||||
|
||||
+18
-1
@@ -16,16 +16,33 @@
|
||||
<channel-group id="strings" typeId="string-values"/>
|
||||
<channel-group id="emergency" typeId="emergency-values"/>
|
||||
</channel-groups>
|
||||
|
||||
<properties>
|
||||
<property name="thingTypeVersion">1</property>
|
||||
</properties>
|
||||
|
||||
<config-description>
|
||||
<parameter name="refresh" type="integer" min="1000" unit="ms">
|
||||
<label>Refresh Interval</label>
|
||||
<description>Refresh Rate of E3DC values in Milliseconds</description>
|
||||
<default>2000</default>
|
||||
</parameter>
|
||||
<parameter name="batteryCapacity" type="decimal">
|
||||
<parameter name="batteryCapacity" type="decimal" step="0.001">
|
||||
<label>Battery Capacity</label>
|
||||
<description>Capacity of the built in battery in kWh</description>
|
||||
</parameter>
|
||||
<parameter name="string1Kwp" type="decimal" step="0.001">
|
||||
<label>String 1 kWp</label>
|
||||
<description>String 1 kilowatt peak installed</description>
|
||||
</parameter>
|
||||
<parameter name="string2Kwp" type="decimal" step="0.001">
|
||||
<label>String 2 kWp</label>
|
||||
<description>String 2 kilowatt peak installed</description>
|
||||
</parameter>
|
||||
<parameter name="string3Kwp" type="decimal" step="0.001">
|
||||
<label>String 3 kWp</label>
|
||||
<description>String 3 kilowatt peak installed</description>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</bridge-type>
|
||||
</thing:thing-descriptions>
|
||||
|
||||
+4
@@ -9,6 +9,10 @@
|
||||
(Household, Wallbox, ...)</description>
|
||||
<channels>
|
||||
<channel id="pv-power-supply" typeId="pv-power-supply-channel"/>
|
||||
<channel id="pv-perf-ratio" typeId="perf-ratio-channel">
|
||||
<label>PV Performance Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</channel>
|
||||
<channel id="battery-power-supply" typeId="battery-power-supply-channel"/>
|
||||
<channel id="battery-power-consumption" typeId="battery-power-consumption-channel"/>
|
||||
<channel id="household-power-consumption" typeId="household-power-consumption-channel"/>
|
||||
|
||||
+20
-12
@@ -11,7 +11,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="battery-power-supply-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -21,7 +21,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="battery-power-consumption-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -31,7 +31,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="household-power-consumption-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -41,7 +41,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="grid-power-consumption-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -51,7 +51,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="grid-power-supply-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -61,7 +61,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="external-power-supply-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -71,7 +71,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="wallbox-power-consumption-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -81,7 +81,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="wallbox-pv-power-consumption-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -91,19 +91,19 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="autarky-channel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Autarky</label>
|
||||
<description>Your current Autarky Level in Percent</description>
|
||||
<state pattern="%d %%" readOnly="true"/>
|
||||
<state pattern="%.0f %%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="self-consumption-channel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Self Consumtion</label>
|
||||
<description>Your current Photovoltaic Self Consumption Level in Percent</description>
|
||||
<state pattern="%d %%" readOnly="true"/>
|
||||
<state pattern="%.0f %%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="battery-soc-channel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
@@ -113,7 +113,7 @@
|
||||
<tag>Status</tag>
|
||||
<tag>Energy</tag>
|
||||
</tags>
|
||||
<state pattern="%d %%" readOnly="true"/>
|
||||
<state pattern="%.0f %%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="battery-charged-channel">
|
||||
<item-type>Number:Energy</item-type>
|
||||
@@ -135,4 +135,12 @@
|
||||
</tags>
|
||||
<state pattern="%.3f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="perf-ratio-channel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Performance Ratio</label>
|
||||
<tags>
|
||||
<tag>Measurement</tag>
|
||||
</tags>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
||||
|
||||
+12
@@ -17,6 +17,18 @@
|
||||
<channel id="string1-dc-output" typeId="string1-dc-output-channel"/>
|
||||
<channel id="string2-dc-output" typeId="string2-dc-output-channel"/>
|
||||
<channel id="string3-dc-output" typeId="string3-dc-output-channel"/>
|
||||
<channel id="string1-perf-ratio" typeId="perf-ratio-channel">
|
||||
<label>String 1 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</channel>
|
||||
<channel id="string2-perf-ratio" typeId="perf-ratio-channel">
|
||||
<label>String 2 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</channel>
|
||||
<channel id="string3-perf-ratio" typeId="perf-ratio-channel">
|
||||
<label>String 3 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</channel>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
||||
|
||||
+6
-6
@@ -11,7 +11,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Voltage</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="string2-dc-voltage-channel">
|
||||
<item-type>Number:ElectricPotential</item-type>
|
||||
@@ -21,7 +21,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Voltage</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="string3-dc-voltage-channel">
|
||||
<item-type>Number:ElectricPotential</item-type>
|
||||
@@ -31,7 +31,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Voltage</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="string1-dc-current-channel">
|
||||
<item-type>Number:ElectricCurrent</item-type>
|
||||
@@ -71,7 +71,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="string2-dc-output-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -81,7 +81,7 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="string3-dc-output-channel">
|
||||
<item-type>Number:Power</item-type>
|
||||
@@ -91,6 +91,6 @@
|
||||
<tag>Measurement</tag>
|
||||
<tag>Power</tag>
|
||||
</tags>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<update:update-descriptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:update="https://openhab.org/schemas/update-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/update-description/v1.0.0 https://openhab.org/schemas/update-description-1.0.0.xsd">
|
||||
|
||||
<thing-type uid="modbus:e3dc">
|
||||
<instruction-set targetVersion="1">
|
||||
<add-channel id="pv-perf-ratio" groupIds="power">
|
||||
<type>modbus:perf-ratio-channel</type>
|
||||
<label>PV Performance Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</add-channel>
|
||||
<add-channel id="string1-perf-ratio" groupIds="strings">
|
||||
<type>modbus:perf-ratio-channel</type>
|
||||
<label>String 1 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</add-channel>
|
||||
<add-channel id="string2-perf-ratio" groupIds="strings">
|
||||
<type>modbus:perf-ratio-channel</type>
|
||||
<label>String 2 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</add-channel>
|
||||
<add-channel id="string3-perf-ratio" groupIds="strings">
|
||||
<type>modbus:perf-ratio-channel</type>
|
||||
<label>String 3 Ratio</label>
|
||||
<description>Performance ratio of actual energy produced and installed kWp</description>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
</thing-type>
|
||||
|
||||
</update:update-descriptions>
|
||||
Reference in New Issue
Block a user