Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions io.openems.edge.fronius/bnd.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,17 @@ Bundle-Version: 1.0.0.${tstamp}

-buildpath: \
${buildpath},\
,\
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.meter.api,\
io.openems.edge.pvinverter.api,\
io.openems.edge.timedata.api,\
io.openems.j2mod,\

-testpath: \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum BatteryState implements OptionsEnum {
UNDEFINED(-1, "Undefiniert"),
OFF(1, "Aus"),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Names are generally in English language

EMPTY(2, "Leer"),
DISCHARGING(3, "Entladen"),
CHARGING(4, "Laden"),
FULL(5, "Voll"),
STANDBY(6, "Standby / Holding"),
TESTING(7, "Testmodus");

private final int value;
private final String name;

private BatteryState(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() { return this.value; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please apply Coding guidelines for standard formatting etc. https://openems.github.io/openems.io/openems/latest/development/coding-guidelines.html


@Override
public String getName() { return this.name; }

@Override
public OptionsEnum getUndefined() { return UNDEFINED; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum OperatingModeForActivePowerLimitation implements OptionsEnum {
UNDEFINED(-1, "Undefiniert"),
NO_CONTROL(0, "Keine Steuerung (Automatik)"),
SELF_CONSUMPTION(1, "Eigenverbrauch"),
MANUAL(4, "Manuelle Steuerung (OpenEMS)");

private final int value;
private final String name;

private OperatingModeForActivePowerLimitation(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() { return this.value; }

@Override
public String getName() { return this.name; }

@Override
public OptionsEnum getUndefined() { return UNDEFINED; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum OperationHealth implements OptionsEnum {
UNDEFINED(-1, "Undefiniert"),
OFF(1, "Aus"),
SLEEPING(2, "Standby / Nacht"),
STARTING(3, "Startvorgang"),
OK(4, "Alles okay (Normalbetrieb)"),
THROTTLED(5, "Gedrosselt (Warnung)"),
SHUTTING_DOWN(6, "Herunterfahren"),
ERROR(7, "Fehler (Fault)"),
STANDBY(8, "Standby");

private final int value;
private final String name;

private OperationHealth(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() {
return this.value;
}

@Override
public String getName() {
return this.name;
}

@Override
public OptionsEnum getUndefined() {
return UNDEFINED;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum PowerSupplyStatus implements OptionsEnum {
UNDEFINED(-1, "Undefiniert"),
GRID_CONNECTED(0, "Netzbetrieb"),
EMERGENCY_POWER(1, "Notstrombetrieb / Backup");

private final int value;
private final String name;

private PowerSupplyStatus(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() { return this.value; }

@Override
public String getName() { return this.name; }

@Override
public OptionsEnum getUndefined() { return UNDEFINED; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum PvString implements OptionsEnum {
ONE(1, "String 1"), //
TWO(2, "String 2");

private final int value;
private final String name;

PvString(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() {
return this.value;
}

@Override
public String getName() {
return this.name;
}

@Override
public OptionsEnum getUndefined() {
return ONE;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum SetControlMode implements OptionsEnum {
UNDEFINED(-1, "Undefined"), //
DISABLED(0, "Disabled"), //
CHARGE_LIMIT(1, "Charge limit"), //
DISCHARGE_LIMIT(2, "Discharge limit"), //
CHARGE_AND_DISCHARGE_LIMIT(3, "Charge and discharge limit");

private final int value;
private final String name;

private SetControlMode(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() {
return this.value;
}

@Override
public String getName() {
return this.name;
}

@Override
public OptionsEnum getUndefined() {
return UNDEFINED;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package io.openems.edge.fronius.enums;

import io.openems.common.types.OptionsEnum;

public enum SystemState implements OptionsEnum {
UNDEFINED(-1, "Undefiniert"),
OFF(1, "Aus"),
SLEEPING(2, "Standby/Nacht"),
STARTING(3, "Startvorgang"),
OK(4, "Normalbetrieb"),
THROTTLED(5, "Leistungsbegrenzung"),
SHUTTING_DOWN(6, "Herunterfahren"),
FAULT(7, "Fehler"),
STANDBY(8, "Standby");

private final int value;
private final String name;

private SystemState(int value, String name) {
this.value = value;
this.name = name;
}

@Override
public int getValue() { return this.value; }

@Override
public String getName() { return this.name; }

@Override
public OptionsEnum getUndefined() { return UNDEFINED; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package io.openems.edge.fronius.gen24.battery;

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

@ObjectClassDefinition(//
name = "ESS Fronius Gen24 Battery with int+SF ", //

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Name and webconsole_configurationFactory_nameHint have to correlate - see other implementations

description = "Collects Some more Sunspec unrelated data.")
@interface Config {

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

@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 = "Modbus-ID", description = "ID of Modbus bridge.")
String modbus_id() default "modbus0";

@AttributeDefinition(name = "Modbus-Unit-ID", description = "Modbus Unit-ID.")
int modbusUnitId() default 3;

@AttributeDefinition(name = "Charge Max Voltage", description = "Maximum voltage for charging in V"
+ "from Datasheet of Battery")
int chargeMaxVoltage() default 480;

@AttributeDefinition(name = "Discharge Min Voltage", description = "Minimum voltage for discharging in V"
+ "from Datasheet of Battery")
int dischargeMinVoltage() default 320;

@AttributeDefinition(name = "Number of Batterymodules", description = "Number of Batterymodules")
int numberOfModules() default 4;

String webconsole_configurationFactory_nameHint() default "ESS Fronius Gen24 Battery [{id}]";

}
Loading