Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRAFT - Implementation DEYE SUN-12K-SG04LP3-EU #2614

Draft
wants to merge 27 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c2e240a
Start implement DEYE battery inverter
moritzvogt31 Feb 14, 2024
10610e8
Start implement DEYE battery inverter
moritzvogt31 Feb 15, 2024
1f8915b
Start implement DEYE battery inverter
moritzvogt31 Feb 14, 2024
a682d24
Start implement DEYE battery inverter
moritzvogt31 Feb 15, 2024
f7c4086
Deye implementation
moritzvogt31 Apr 4, 2024
08f75af
Update implementation for PV Inverter - DEYE
moritzvogt31 Apr 4, 2024
9407312
Update implementation for PV Inverter - DEYE Calculate energy the rig…
moritzvogt31 Apr 4, 2024
087902b
Update implementation of DEYE Grid meter
moritzvogt31 Apr 5, 2024
54e65b6
Implementing DEYE inverter
Rayleigh3105 Apr 8, 2024
87aa687
Implement ESS for DEYE Inverter
Rayleigh3105 Apr 10, 2024
9a029e2
Ignore negavtive values on generator Port
Rayleigh3105 Apr 10, 2024
1e5adc5
Use right variable
Rayleigh3105 Apr 10, 2024
852a163
Re Implement Generator Port
Rayleigh3105 Apr 16, 2024
69a6e9f
Formatting and Refactoring - 00eb6e11db46fdfbc79b206409bcbf43aa38b816
Rayleigh3105 Apr 16, 2024
e9452d4
Remove unused imports - f728fa91442eb8050b77a9a437309235a9e77763
Rayleigh3105 Apr 16, 2024
16e1dd6
Delete io.openems.edge.evcs.spelsberg/generated/buildfiles
Rayleigh3105 Apr 16, 2024
0ab5a1b
Delete io.openems.edge.io.gpio/generated/buildfiles - b10da123dec2189…
Rayleigh3105 Apr 16, 2024
232bbb4
Removed wrong Component Names - a041a91664d65f063d95a3c938cb03609f724075
Rayleigh3105 Apr 16, 2024
a72c692
Implement a Grid_Meter Test - 73092e33f80fd0c1fea9aa135edc1a07e7650f8e
Rayleigh3105 Apr 16, 2024
654fdca
Removed not needed Channels - commit 09fdc3ed8f20ce8577683fa21a1ba6c3…
Rayleigh3105 Apr 16, 2024
94cd89b
Remove not necessary code
Rayleigh3105 Apr 16, 2024
240240f
Remove not necessary code
Rayleigh3105 Apr 16, 2024
1556956
Rename package for ess
Rayleigh3105 Apr 16, 2024
15c3bae
Merge branch 'OpenEMS:develop' into production_meter
Rayleigh3105 Apr 24, 2024
ac6b6f1
Merge remote-tracking branch 'origin/develop' into production_meter
sfeilmeier Mar 4, 2025
7e6a83e
prepare-commit
sfeilmeier Mar 4, 2025
5424d3b
Organize imports + formatting
sfeilmeier Mar 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions io.openems.edge.application/EdgeApp.bndrun
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@
bnd.identity;id='io.openems.edge.fenecon.mini',\
bnd.identity;id='io.openems.edge.fenecon.pro',\
bnd.identity;id='io.openems.edge.goodwe',\
bnd.identity;id='io.openems.edge.batteryinverter.deye',\
bnd.identity;id='io.openems.edge.io.filipowski',\
bnd.identity;id='io.openems.edge.io.gpio',\
bnd.identity;id='io.openems.edge.io.kmtronic',\
Expand Down Expand Up @@ -328,6 +329,7 @@
io.openems.edge.fenecon.mini;version=snapshot,\
io.openems.edge.fenecon.pro;version=snapshot,\
io.openems.edge.goodwe;version=snapshot,\
io.openems.edge.batteryinverter.deye;version=snapshot,\
io.openems.edge.io.api;version=snapshot,\
io.openems.edge.io.filipowski;version=snapshot,\
io.openems.edge.io.gpio;version=snapshot,\
Expand Down
12 changes: 12 additions & 0 deletions io.openems.edge.batteryinverter.deye/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="aQute.bnd.classpath.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21"/>
<classpathentry kind="src" output="bin" path="src"/>
<classpathentry kind="src" output="bin_test" path="test">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
2 changes: 2 additions & 0 deletions io.openems.edge.batteryinverter.deye/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/generated/
/bin_test/
23 changes: 23 additions & 0 deletions io.openems.edge.batteryinverter.deye/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>io.openems.edge.batteryinverter.deye</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>bndtools.core.bndbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>bndtools.core.bndnature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
19 changes: 19 additions & 0 deletions io.openems.edge.batteryinverter.deye/bnd.bnd
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Bundle-Name: OpenEMS Edge ESS Deye
Bundle-Vendor: MaMoTec
Bundle-License: https://opensource.org/licenses/EPL-2.0
Bundle-Version: 1.0.0.${tstamp}

-buildpath: \
${buildpath},\
com.ghgande.j2mod,\
io.openems.common,\
io.openems.edge.battery.api,\
io.openems.edge.batteryinverter.api,\
io.openems.edge.bridge.modbus,\
io.openems.edge.common,\
io.openems.edge.ess.api,\
io.openems.edge.meter.api,\
io.openems.edge.timedata.api,\
io.openems.edge.pvinverter.api
-testpath: \
${testpath}
1 change: 1 addition & 0 deletions io.openems.edge.batteryinverter.deye/readme.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
= Deye Battery Inverter
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package io.openems.edge.deye.ess;

import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;

@ObjectClassDefinition(//
name = "Deye.BatteryInverter", //
description = "Implements the Deye Battery Inverter")
@interface Config {

@AttributeDefinition(name = "Component-ID", description = "Unique ID of this Component")
String id() default "ess0";

@AttributeDefinition(name = "Alias", description = "Human-readable name of this Component; defaults to Component-ID")
String alias() default "";

@AttributeDefinition(name = "Is enabled?", description = "Is this Component enabled?")
boolean enabled() default true;

@AttributeDefinition(name = "Read-Only mode", description = "Enables Read-Only mode")
boolean readOnlyMode() default false;

@AttributeDefinition(name = "Modbus-ID", description = "ID of Modbus bridge.")
String modbus_id() default "modbus0";

@AttributeDefinition(name = "Modbus-Unit-ID", description = "Unit ID of Modbus bridge.")
int unit_id() default 1;

@AttributeDefinition(name = "Power limit on PowerDecreaseCausedByOvertemperature error; '0' to disable power limit logic", description = "")
int powerLimitOnPowerDecreaseCausedByOvertemperatureChannel() default 20_000;

@AttributeDefinition(name = "Modbus target filter", description = "This is auto-generated by 'Modbus-ID'.")
String Modbus_target() default "(enabled=true)";

@AttributeDefinition(name = "Surplus Feed-In: State-of-Charge limit", description = "Start Surplus-feed-in if State-of-Charge is bigger than this limit")
int surplusFeedInSocLimit() default 90;

@AttributeDefinition(name = "Surplus Feed-In: Allowed-Charge-Power limit", description = "Start Surplus-feed-in if Charge-Power is smaller than this limit. (Needs to set negative)")
int surplusFeedInAllowedChargePowerLimit() default -8_000;

@AttributeDefinition(name = "Surplus Feed-In: Increase Power by percentage", description = "1.1 for 10 %")
double surplusFeedInIncreasePowerFactor() default 1.1;

@AttributeDefinition(name = "Surplus Feed-In: Max increase Power", description = "")
int surplusFeedInMaxIncreasePowerFactor() default 2_000;

@AttributeDefinition(name = "Surplus Feed-In: Off Time", description = "The time to stop grid feed in.")
String surplusFeedInOffTime() default "17:00:00";

@AttributeDefinition(name = "Surplus Feed-In: PV-Limit on PowerDecreaseCausedByOvertemperature", description = "")
int surplusFeedInPvLimitOnPowerDecreaseCausedByOvertemperature() default 5_000;

String webconsole_configurationFactory_nameHint() default "Deye Battery Inverter [{id}]";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
package io.openems.edge.deye.ess;

import org.osgi.service.event.EventHandler;

import io.openems.common.channel.AccessMode;
import io.openems.common.channel.Level;
import io.openems.common.channel.PersistencePriority;
import io.openems.common.channel.Unit;
import io.openems.common.types.OpenemsType;
import io.openems.edge.common.channel.Doc;
import io.openems.edge.common.channel.IntegerDoc;
import io.openems.edge.common.channel.IntegerReadChannel;
import io.openems.edge.common.channel.StateChannel;
import io.openems.edge.common.component.OpenemsComponent;
import io.openems.edge.common.modbusslave.ModbusSlave;
import io.openems.edge.ess.api.ManagedSymmetricEss;
import io.openems.edge.ess.api.SymmetricEss;
import io.openems.edge.timedata.api.TimedataProvider;

public interface DeyeSunHybrid
extends ManagedSymmetricEss, SymmetricEss, OpenemsComponent, EventHandler, ModbusSlave, TimedataProvider {

/**
* Gets the Modbus Unit-ID.
*
* @return the Unit-ID
*/
public Integer getUnitId();

/**
* Gets the Modbus-Bridge Component-ID, i.e. "modbus0".
*
* @return the Component-ID
*/
public String getModbusBridgeId();

public enum ChannelId implements io.openems.edge.common.channel.ChannelId {

Check warning on line 37 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L37

Added line #L37 was not covered by tests
// EnumReadChannels
SERIAL_NUMBER(Doc.of(OpenemsType.STRING) //
.persistencePriority(PersistencePriority.HIGH) //
.accessMode(AccessMode.READ_ONLY)),
SURPLUS_FEED_IN_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.WATT)), //

Check warning on line 43 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L39-L43

Added lines #L39 - L43 were not covered by tests

// Gen Port Use Channels
// AC 1/28/2024
SET_GRID_LOAD_OFF_POWER(Doc.of(OpenemsType.INTEGER).unit(Unit.PERCENT) //
.accessMode(AccessMode.WRITE_ONLY)), // ), //

Check warning on line 48 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L47-L48

Added lines #L47 - L48 were not covered by tests



// EnumWriteChannels
SET_WORK_STATE(Doc.of(SetWorkState.values()) //
.accessMode(AccessMode.WRITE_ONLY)), //

Check warning on line 54 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L53-L54

Added lines #L53 - L54 were not covered by tests

// IntegerWriteChannel
SET_ACTIVE_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.WATT) //
.accessMode(AccessMode.WRITE_ONLY)), //
SET_REACTIVE_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.VOLT_AMPERE_REACTIVE) //
.accessMode(AccessMode.WRITE_ONLY)), //

Check warning on line 62 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L57-L62

Added lines #L57 - L62 were not covered by tests

SET_GEN_PEAK_SHAVING_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.WATT) //
.accessMode(AccessMode.WRITE_ONLY)), //
SET_GRID_PEAK_SHAVING_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.WATT) //
.accessMode(AccessMode.WRITE_ONLY)), //
CT_RATIO(Doc.of(OpenemsType.INTEGER)), //
INVERTER_RUN_STATE(Doc.of(OpenemsType.INTEGER)), //

Check warning on line 71 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L64-L71

Added lines #L64 - L71 were not covered by tests

// LongReadChannel
ORIGINAL_ACTIVE_CHARGE_ENERGY(Doc.of(OpenemsType.LONG)), //
ORIGINAL_ACTIVE_DISCHARGE_ENERGY(Doc.of(OpenemsType.LONG)), //

Check warning on line 75 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L74-L75

Added lines #L74 - L75 were not covered by tests

// IntegerReadChannels
ORIGINAL_ALLOWED_CHARGE_POWER(new IntegerDoc() //
.onChannelUpdate((self, newValue) -> {

Check warning on line 79 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L78-L79

Added lines #L78 - L79 were not covered by tests
// on each Update to the channel -> set the ALLOWED_CHARGE_POWER value with a
// delta of max 500
IntegerReadChannel currentValueChannel = self
.channel(ManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER);
var originalValue = newValue.asOptional();
var currentValue = currentValueChannel.value().asOptional();

Check warning on line 85 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L82-L85

Added lines #L82 - L85 were not covered by tests
final int value;
if (!originalValue.isPresent() && !currentValue.isPresent()) {
value = 0;

Check warning on line 88 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L88

Added line #L88 was not covered by tests
} else if (originalValue.isPresent() && !currentValue.isPresent()) {
value = originalValue.get();

Check warning on line 90 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L90

Added line #L90 was not covered by tests
} else if (!originalValue.isPresent() && currentValue.isPresent()) {
value = currentValue.get();

Check warning on line 92 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L92

Added line #L92 was not covered by tests
} else {
value = Math.max(originalValue.get(), currentValue.get() - 500);

Check warning on line 94 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L94

Added line #L94 was not covered by tests
}
currentValueChannel.setNextValue(value);
})), //

Check warning on line 97 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L96-L97

Added lines #L96 - L97 were not covered by tests

ORIGINAL_ALLOWED_DISCHARGE_POWER(new IntegerDoc() //
.onChannelUpdate((self, newValue) -> {

Check warning on line 100 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L99-L100

Added lines #L99 - L100 were not covered by tests
// on each Update to the channel -> set the ALLOWED_DISCHARGE_POWER value with a
// delta of max 500
IntegerReadChannel currentValueChannel = self
.channel(ManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER);
var originalValue = newValue.asOptional();
var currentValue = currentValueChannel.value().asOptional();

Check warning on line 106 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L103-L106

Added lines #L103 - L106 were not covered by tests
final int value;
if (!originalValue.isPresent() && !currentValue.isPresent()) {
value = 0;

Check warning on line 109 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L109

Added line #L109 was not covered by tests
} else if (originalValue.isPresent() && !currentValue.isPresent()) {
value = originalValue.get();

Check warning on line 111 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L111

Added line #L111 was not covered by tests
} else if (!originalValue.isPresent() && currentValue.isPresent()) {
value = currentValue.get();

Check warning on line 113 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L113

Added line #L113 was not covered by tests
} else {
value = Math.min(originalValue.get(), currentValue.get() + 500);

Check warning on line 115 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L115

Added line #L115 was not covered by tests
}
currentValueChannel.setNextValue(value);
})), //

Check warning on line 118 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L117-L118

Added lines #L117 - L118 were not covered by tests


APPARENT_POWER(Doc.of(OpenemsType.INTEGER) //
.unit(Unit.VOLT_AMPERE)), //

Check warning on line 122 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L121-L122

Added lines #L121 - L122 were not covered by tests


// StateChannels
SYSTEM_ERROR(Doc.of(Level.FAULT) //
.onInit(new StateChannel.TriggerOnAny(SystemErrorChannelId.values()))
.text("System-Error. More information at: https://deyeinverter.com/")), //
INSUFFICIENT_GRID_PARAMTERS(Doc.of(Level.FAULT) //
.onInit(new StateChannel.TriggerOnAny(InsufficientGridParametersChannelId.values()))
.text("Insufficient Grid Parameters. More information at: https://deyeinverter.com/")), //
POWER_DECREASE_CAUSED_BY_OVERTEMPERATURE(Doc.of(Level.FAULT) //
.onInit(new StateChannel.TriggerOnAny(PowerDecreaseCausedByOvertemperatureChannelId.values()))
.text("Power Decrease caused by Overtemperature. More information at: https://deyeinverter.com/")), //
EMERGENCY_STOP_ACTIVATED(Doc.of(Level.WARNING) //
.text("Emergency Stop has been activated. More information at: https://deyeinverter.com/")), //
KEY_MANUAL_ACTIVATED(Doc.of(Level.WARNING) //
.text("Key Manual has been activated. More information at: https://deyeinverter.com/")), //
BECU_UNIT_DEFECTIVE(Doc.of(Level.FAULT) //
.text("BECU Unit is defective. More information at: https://deyeinverter.com/")), //

Check warning on line 140 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L126-L140

Added lines #L126 - L140 were not covered by tests
;

private final Doc doc;

private ChannelId(Doc doc) {
this.doc = doc;
}

Check warning on line 147 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L145-L147

Added lines #L145 - L147 were not covered by tests

@Override
public Doc doc() {
return this.doc;

Check warning on line 151 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L151

Added line #L151 was not covered by tests
}

}

/**
* Source-Channels for {@link ChannelId#SYSTEM_ERROR}.
*/
public static enum SystemErrorChannelId implements io.openems.edge.common.channel.ChannelId {
STATE_149(Doc.of(OpenemsType.BOOLEAN) //
.text("HighVoltageSideVoltageChangeUnconventionally")) //

Check warning on line 161 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L159-L161

Added lines #L159 - L161 were not covered by tests
;

private final Doc doc;

private SystemErrorChannelId(Doc doc) {
this.doc = doc;
}

Check warning on line 168 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L166-L168

Added lines #L166 - L168 were not covered by tests

@Override
public Doc doc() {
return this.doc;

Check warning on line 172 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L172

Added line #L172 was not covered by tests

}
}

/**
* Source-Channels for {@link ChannelId#INSUFFICIENT_GRID_PARAMTERS}.
*/
public static enum InsufficientGridParametersChannelId implements io.openems.edge.common.channel.ChannelId {
STATE_84(Doc.of(OpenemsType.BOOLEAN) //
.text("Phase3InverterVoltageGeneralOvervoltageProtection")), //

Check warning on line 182 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L180-L182

Added lines #L180 - L182 were not covered by tests
;

private final Doc doc;

private InsufficientGridParametersChannelId(Doc doc) {
this.doc = doc;
}

Check warning on line 189 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L187-L189

Added lines #L187 - L189 were not covered by tests

@Override
public Doc doc() {
return this.doc;

Check warning on line 193 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L193

Added line #L193 was not covered by tests

}
}

/**
* Source-Channels for
* {@link ChannelId#POWER_DECREASE_CAUSED_BY_OVERTEMPERATURE}.
*/
public static enum PowerDecreaseCausedByOvertemperatureChannelId

Check warning on line 202 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L202

Added line #L202 was not covered by tests
implements io.openems.edge.common.channel.ChannelId {
STATE_146(Doc.of(OpenemsType.BOOLEAN) //
.text("Fan4StartupFailed"));

Check warning on line 205 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L204-L205

Added lines #L204 - L205 were not covered by tests

private final Doc doc;

private PowerDecreaseCausedByOvertemperatureChannelId(Doc doc) {
this.doc = doc;
}

Check warning on line 211 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L209-L211

Added lines #L209 - L211 were not covered by tests

@Override
public Doc doc() {
return this.doc;

Check warning on line 215 in io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java

View check run for this annotation

Codecov / codecov/patch

io.openems.edge.batteryinverter.deye/src/io/openems/edge/deye/ess/DeyeSunHybrid.java#L215

Added line #L215 was not covered by tests

}
}

}
Loading
Loading