diff --git a/README.md b/README.md index 056ec58..de9b513 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,39 @@ -# SGr-JavaSamples - +# SmartGridready Java Samples ## Index + [Summary](#summary)
[Installation](#installation)
[Architecture](#architecture)
[Code description](#code-description-for-the-samplecommunicator)
- ## Summary -SGr-JavaSamples provides sample projects that demonstrate the use of the SGr Communication Handler Library. The goal is to set up a test environment that allows to connect SGr components and different 'products' (heat pump, charging station, inverter, battery, electricity meter etc.) through the SGr communication interface. +SGr-JavaSamples provides sample projects that demonstrate the use of the SGr Communication Handler Library. The goal is to set up a test environment that allows to connect SGr components and different 'products' (heat pump, charging station, inverter, battery, electricity meter etc.) through the SGr communication interface. ## Installation ### Requirements / Prerequisites + - Java JDK version >= Java 11 ### Clone + - Create a new folder for the project (eg. 'SGrJavaSamples'). - Clone the following project to a new folder: https://github.com/SmartgridReady/SGrJavaSamples.git Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resources contains the device description XML-files used by the SGrJavaSamples. ### Build + - Open the [your-local-project-folder]/SampleCommunicator with your IDE. - Run the Gradle 'build' target in your IDE - You can also run Gradle from the command line. Change to the directory [your-local-project-folder]/SampleCommunicator and run: `gradlew clean build` - ## Architecture ![SGr Architecture Overview](doc/img/SGr-Architecture-Overview.png "SGr Architecture Overview") - ### Component: Communicator @@ -52,7 +52,7 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource
  • The Communicator loads a device driver for the communication interface of the product (e.g. Modbus RTU/TCP, REST...).
  • The communicator reads or sets (analyses and/or controls) the data points.
  • - + @@ -72,13 +72,13 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource - - + + -
    SGrProject:

    SGrJavaSamples/SampleCommunicator

    Responsibilities:

    The Generic Interface is used by the Communicator to communicate with the products in the SGr network.​

    The Generic Interface is used by the Communicator to communicate with the products in the SGr network.

    SGrProject:

    SmartgridReady/SGrSpecifications/SchemaDatabase/SGr/Generic

    + ### Component: Communication Handler @@ -94,7 +94,7 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource Responsibilities: -

    ​Responsibilities are:

    +

    Responsibilities are:

    - + SGrProject:

    SmartgridReady/SGrSpecifications/XMLInstances/ExtInterfaces

    - + ### Component: Transport Layer (Transport Service) @@ -152,10 +152,10 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource Responsibilities: -

    ​The SGr Transport Service supports the following communication technologies to provide the following transport services:

    +

    The SGr Transport Service supports the following communication technologies to provide the following transport services:

    @@ -174,7 +174,7 @@ Rem: The folder [your-local-project-folder]/SampleCommunicator/src/main/resource

    für MQTT: SmartgridReady/SGrJavaDrivers/HiveMq

    - + ### Component: External Interface (EI) @@ -263,7 +263,6 @@ If you are happy owner of a WAGO Smart-Meter you can read the read values from t You find the sample code on [github](SampleCommunicator/src/main/java/com/smartgridready/communicator/example/WagoSmartMeterCommunicator.java) - ## Further information / contact information Webssite: [https://smartgridready.ch/](https://smartgridready.ch/) diff --git a/SampleCommunicator/build.gradle b/SampleCommunicator/build.gradle index 9933e5d..231ff4c 100644 --- a/SampleCommunicator/build.gradle +++ b/SampleCommunicator/build.gradle @@ -15,13 +15,13 @@ repositories { mavenCentral() maven { - url "https://nexus.library.smartgridready.ch/repository/maven-releases/" + url = "https://nexus.library.smartgridready.ch/repository/maven-releases/" mavenContent { releasesOnly() } } maven { - url "https://nexus.library.smartgridready.ch/repository/maven-snapshots/" + url = "https://nexus.library.smartgridready.ch/repository/maven-snapshots/" mavenContent { snapshotsOnly() } @@ -43,27 +43,65 @@ java { dependencies { // SGr dependencies - implementation group: 'com.smartgridready', name: 'sgr-commhandler', version: '2.4.1' + implementation group: 'com.smartgridready', name: 'sgr-commhandler', version: '2.4.2' runtimeOnly group: 'com.smartgridready', name: 'sgr-driver-j2mod', version: '1.0.0' runtimeOnly group: 'com.smartgridready', name: 'sgr-driver-apachehttp', version: '2.1.1' runtimeOnly group: 'com.smartgridready', name: 'sgr-driver-hivemq', version: '2.0.1' // Logging - implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.10' + implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.17' implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.19.0' implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j2-impl', version: '2.19.0' // Use JUnit test framework - implementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.2' - runtimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.2' + implementation 'org.junit.jupiter:junit-jupiter:5.13.4' + runtimeOnly 'org.junit.platform:junit-platform-launcher' - implementation group: 'org.mockito', name: 'mockito-core', version: '5.12.0' - implementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: '5.12.0' + implementation group: 'org.mockito', name: 'mockito-core', version: '5.18.0' + implementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: '5.18.0' implementation group: 'org.mockito', name: 'mockito-inline', version: '5.2.0' - implementation group: 'org.awaitility', name: 'awaitility', version: '4.2.0' + implementation group: 'org.awaitility', name: 'awaitility', version: '4.2.2' } test { useJUnitPlatform() // needed to run JUnit 5 test with gradle } + +// can run the examples from project root + +tasks.register("runBasicSampleCommunicator", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.BasicSampleCommunicator' +} + +tasks.register("runBasicSampleCommunicatorClassic", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.BasicSampleCommunicatorClassic' +} + +tasks.register("runEnumAndBitmapSampleCommunicator", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.EnumAndBitmapSampleCommunicator' +} + +tasks.register("runMqttSampleCommunicator", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.MqttSampleCommunicator' +} + +tasks.register("runRestSampleCommunicator", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.RestSampleCommunicator' +} + +tasks.register("runWagoSmartMeterCommunicator", JavaExec) { + group = ApplicationPlugin.APPLICATION_GROUP + classpath = sourceSets.main.runtimeClasspath + mainClass = 'com.smartgridready.communicator.example.WagoSmartMeterCommunicator' +} diff --git a/SampleCommunicator/gradle/wrapper/gradle-wrapper.jar b/SampleCommunicator/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/SampleCommunicator/gradle/wrapper/gradle-wrapper.jar and b/SampleCommunicator/gradle/wrapper/gradle-wrapper.jar differ diff --git a/SampleCommunicator/gradle/wrapper/gradle-wrapper.properties b/SampleCommunicator/gradle/wrapper/gradle-wrapper.properties index e2847c8..d4081da 100644 --- a/SampleCommunicator/gradle/wrapper/gradle-wrapper.properties +++ b/SampleCommunicator/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/SampleCommunicator/gradlew b/SampleCommunicator/gradlew index f5feea6..23d15a9 100644 --- a/SampleCommunicator/gradlew +++ b/SampleCommunicator/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/SampleCommunicator/gradlew.bat b/SampleCommunicator/gradlew.bat index 9d21a21..db3a6ac 100644 --- a/SampleCommunicator/gradlew.bat +++ b/SampleCommunicator/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/AsynchronousSampleCommunicatorTest.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/AsynchronousSampleCommunicatorTest.java index 38c3cac..a9950ba 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/AsynchronousSampleCommunicatorTest.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/AsynchronousSampleCommunicatorTest.java @@ -116,9 +116,9 @@ private void doBuildAndRunDatastructureTest() { // // Just define the return type of getVal() (Value), the functional-profile name, the data point name and the getter method of the // commhandler API to be called. When ReadExec is executed it will call the callable and save the result within an AsyncResult member. - ReadExec wagoVoltageACL1 = new ReadExec<>("VoltageAC", "VoltageL1", wagoModbusDevice::getVal); - ReadExec wagoVoltageACL2 = new ReadExec<>("VoltageAC", "VoltageL2", wagoModbusDevice::getVal); - ReadExec wagoVoltageACL3 = new ReadExec<>("VoltageAC", "VoltageL3", wagoModbusDevice::getVal); + ReadExec wagoVoltageACL1 = new ReadExec<>("VoltageAC", "VoltageACL1_N", wagoModbusDevice::getVal); + ReadExec wagoVoltageACL2 = new ReadExec<>("VoltageAC", "VoltageACL2_N", wagoModbusDevice::getVal); + ReadExec wagoVoltageACL3 = new ReadExec<>("VoltageAC", "VoltageACL3_N", wagoModbusDevice::getVal); ReadExec clemapActPowerACtot1 = new ReadExec<>("ActivePowerAC", "ActivePowerACtot", clemapRestApiDevice1::getVal); ReadExec clemapActPowerACtot2 = new ReadExec<>("ActivePowerAC", "ActivePowerACtot", clemapRestApiDevice2::getVal); @@ -128,7 +128,7 @@ private void doBuildAndRunDatastructureTest() { WriteExec garoWallboxBHemsCurrLim = new WriteExec<>("Curtailment", "HemsCurrentLimit", garoModbusDeviceB::setVal); // 3. Wire the tasks to define which tasks can be executed in parallel and which ones must be executed in sequence - // (example: The executables access the same device via modbus and therefore cannot be executed in parallel). + // (example: The executables access the same device via Modbus and therefore cannot be executed in parallel). // Do create a new Parallel() or a new Sequence() and add ReadExec and WriteExec instances to them. // To achieve this, you can create either a new 'Parallel()' or 'Sequence()' processing chain and add 'ReadExec' // and 'WriteExec' instances to them as needed. Additionally, you have the flexibility to nest 'Parallel()' and 'Sequence()' diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicator.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicator.java index 2cbc51a..f80bb13 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicator.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicator.java @@ -67,8 +67,9 @@ public class BasicSampleCommunicator private static final Logger LOG = LoggerFactory.getLogger(BasicSampleCommunicator.class); private static final String PROFILE_VOLTAGE_AC = "VoltageAC"; - private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml"; + private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml"; private static final String SERIAL_PORT_NAME = "COM3"; + private static final String SERIAL_PARITY = "NONE"; public static void main(String[] argv) { @@ -84,6 +85,7 @@ public static void main(String[] argv) // final var configProperties = new Properties(); configProperties.setProperty("serial_port", SERIAL_PORT_NAME); + configProperties.setProperty("serial_parity", SERIAL_PARITY); GenDeviceApi sgcpDevice; @@ -93,10 +95,12 @@ public static void main(String[] argv) // mandatory: inject device description (EID) .eid(EidLoader.getDeviceDescriptionInputStream(DEVICE_DESCRIPTION_FILE_NAME)) // optional: inject the ModbusFactory mock - .useModbusClientFactory(new MockModbusClientFactory(false)) - // optional: inject the configuration - .properties(configProperties) - .build(); + .useModbusClientFactory(new MockModbusClientFactory(false)) + // optional: use shared Modbus RTU gateway registry to allow multiple devices on same RS-485 bus + .useSharedModbusRtu(true) + // optional: inject the configuration + .properties(configProperties) + .build(); } catch ( GenDriverException | RestApiAuthenticationException | IOException e ) { @@ -116,20 +120,20 @@ public static void main(String[] argv) // Read specific values from the device. // - "PROFILE_VOLTAGE_AC" is the name of the functional profile. - // - "VoltageL1", "VoltageL2" and "VoltageL3" are the names of the Datapoints that + // - "VoltageACL1_N", "VoltageACL2_N" and "VoltageACL3_N" are the names of the data points that // report the values corresponding to their names. // - // Hint: You can only read values for functional profiles and datapoints that exist + // Hint: You can only read values for functional profiles and data points that exist // in the device description (EID). // - final var val1 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL1").getFloat32(); - final var val2 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL2").getFloat32(); - final var val3 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL3").getFloat32(); - final var log = String.format("Wago-Meter, %s: L1=%.2fV, L2=%.2fV, L3=%.2fV", PROFILE_VOLTAGE_AC, val1, val2, val3); + final var val1 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL1_N").getFloat32(); + final var val2 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL2_N").getFloat32(); + final var val3 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL3_N").getFloat32(); + final var log = String.format("WAGO-Meter, %s: L1=%.2fV, L2=%.2fV, L3=%.2fV", PROFILE_VOLTAGE_AC, val1, val2, val3); LOG.info(log); final var val4 = sgcpDevice.getVal("CurrentDirection", "CurrentDirL1"); - final var log2 = String.format("Wago-Meter, %s: L1=%s", "CurrentDirection", val4.getString()); + final var log2 = String.format("WAGO-Meter, %s: L1=%s", "CurrentDirection", val4.getString()); LOG.info(log2); // REMARK: An example for setVal() you find in EnumAndBitmapSampleCommunicator @@ -144,23 +148,23 @@ public static void main(String[] argv) // Or simply just the device configuration info. final var configurationInfo = sgcpDevice.getDeviceConfigurationInfo(); - LOG.info("DeviceConfigurationInfo:" + ciToString(configurationInfo, 1)); + LOG.info("Device configuration info:" + ciToString(configurationInfo, 1)); // Or just the functional profiles. final var functionalProfiles = sgcpDevice.getFunctionalProfiles(); - LOG.info("FunctionalProfiles:" + fpsToString(functionalProfiles, 1, true)); + LOG.info("Functional profiles:" + fpsToString(functionalProfiles, 1, true)); // Get a specific functional profile. final var functionalProfile = sgcpDevice.getFunctionalProfile(functionalProfiles.get(0).getName()); - LOG.info("FunctionalProfile:" + fpToString(functionalProfile, 1, false)); + LOG.info("Functional profile:" + fpToString(functionalProfile, 1, false)); // Get data points of a specific functional profile. final var dataPoints = sgcpDevice.getDataPoints(functionalProfile.getName()); - LOG.info("DataPoints:" + dpsToString(dataPoints, 1, true)); + LOG.info("Data points:" + dpsToString(dataPoints, 1, true)); // Get a specific data point of a specific functional profile. final var dataPoint = sgcpDevice.getDataPoint(functionalProfile.getName(), dataPoints.get(0).getName()); - LOG.info("DataPoint:" + dpToString(dataPoint, 1, false)); + LOG.info("Data point:" + dpToString(dataPoint, 1, false)); } catch (Exception e) { @@ -268,10 +272,10 @@ private static String fpToString(FunctionalProfile fp, int numOfTabs, boolean sh if (!shortLog) { - sb.append("\n" + tabs + "profileType: " + fp.getProfileType()); - sb.append("\n" + tabs + "category: " + fp.getCategory()); - sb.append("\n" + tabs + "genericAttributes: " + gaToString(fp.getGenericAttributes(), numOfTabs + 1)); - sb.append("\n" + tabs + "dataPoints: " + dpsToString(fp.getDataPoints(), numOfTabs + 1, true)); + sb.append("\n" + tabs + "profile type: " + fp.getProfileType()); + sb.append("\n" + tabs + "category: " + fp.getCategory()); + sb.append("\n" + tabs + "generic attributes: " + gaToString(fp.getGenericAttributes(), numOfTabs + 1)); + sb.append("\n" + tabs + "data points: " + dpsToString(fp.getDataPoints(), numOfTabs + 1, true)); sb.append("\n" + tabs + "---"); } return sb.toString(); diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicatorClassic.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicatorClassic.java index 724fabd..a82508f 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicatorClassic.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/BasicSampleCommunicatorClassic.java @@ -62,8 +62,9 @@ public class BasicSampleCommunicatorClassic { private static final Logger LOG = LoggerFactory.getLogger(BasicSampleCommunicator.class); private static final String PROFILE_VOLTAGE_AC = "VoltageAC"; - private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml"; + private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml"; private static final String SERIAL_PORT_NAME = "COM3"; + private static final String SERIAL_PARITY = "NONE"; public static void main(String[] argv) { @@ -74,13 +75,14 @@ public static void main(String[] argv) { // Properties configProperties = new Properties(); configProperties.setProperty("port_name", SERIAL_PORT_NAME); + configProperties.setProperty("serial_parity", SERIAL_PARITY); String deviceDescFilePath = getDeviceDescriptionFilePath(); DeviceDescriptionLoader loader = new DeviceDescriptionLoader(); DeviceFrame sgcpMeter = loader.load( "", deviceDescFilePath); // Step 2: // Load the suitable device driver to communicate with the device. The example below uses - // mocked driver for modbus RTU. + // mocked driver for Modbus RTU. // // Change the driver to the real driver, suitable for your device. For example: // - GenDriverAPI4Modbus mbTCP = new GenDriverAPI4ModbusTCP("127.0.0.1", 502) @@ -89,28 +91,28 @@ public static void main(String[] argv) { GenDriverAPI4Modbus mbRTUMock = new GenDriverAPI4ModbusMock(false); // Step 2 (Modbus RTU only): - // Initialise the serial COM port used by the modbus transport service. + // Initialise the serial COM port used by the Modbus transport service. // mbRTUMock.connect(); // Step 3: - // Instantiate a modbus device. Provide the device description and the device driver + // Instantiate a Modbus device. Provide the device description and the device driver // instance to be used for the device. SGrModbusDevice sgcpDevice = new SGrModbusDevice(sgcpMeter, mbRTUMock ); // Step 4: // Read the values from the device. // - "PROFILE_VOLTAGE_AC" is the name of the functional profile. - // - "VoltageL1", "VoltageL2" and "VoltageL3" are the names of the Datapoints that + // - "VoltageACL1_N", "VoltageACL2_N" and "VoltageACL3_N" are the names of the data points that // report the values corresponding to their names. // - // Hint: You can only read values for functional profiles and datapoints that exist + // Hint: You can only read values for functional profiles and data points that exist // in the device description XML. // - float val1 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL1").getFloat32(); - float val2 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL2").getFloat32(); - float val3 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageL3").getFloat32(); - String log = String.format("Wago-Meter CurrentAC: %.2fV, %.2fV, %.2fV", val1, val2, val3); + float val1 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL1_N").getFloat32(); + float val2 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL2_N").getFloat32(); + float val3 = sgcpDevice.getVal(PROFILE_VOLTAGE_AC, "VoltageACL3_N").getFloat32(); + String log = String.format("WAGO-Meter CurrentAC: %.2fV, %.2fV, %.2fV", val1, val2, val3); LOG.info(log); // Step 5: @@ -119,7 +121,7 @@ public static void main(String[] argv) { mbRTUMock.disconnect(); } catch (Exception e) { LOG.error("Error loading device description. ", e); - } + } } private static String getDeviceDescriptionFilePath() throws FileNotFoundException { diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/EnumAndBitmapSampleCommunicator.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/EnumAndBitmapSampleCommunicator.java index 2ca1f00..dc9bec8 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/EnumAndBitmapSampleCommunicator.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/EnumAndBitmapSampleCommunicator.java @@ -36,7 +36,7 @@ * This class provides examples on how to handle enumerations and bitmaps, * using the current SmartGridready commhandler library. *
    - * The program uses a mocked modbus driver and can be run without an attached device/product. + * The program uses a mocked Modbus driver and can be run without an attached device/product. * All configuration parameters of the EID are hard-coded, therefore no configuration properties need to be set. */ public class EnumAndBitmapSampleCommunicator diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/MqttSampleCommunicator.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/MqttSampleCommunicator.java index 4ffebbe..5acf67d 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/MqttSampleCommunicator.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/MqttSampleCommunicator.java @@ -71,7 +71,7 @@ public class MqttSampleCommunicator private static final Logger LOG = LoggerFactory.getLogger(MqttSampleCommunicator.class); /** This example is tied to this EID-XML. */ - private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_02_mmmmm_dddd_WagoTestsystem_MQTT.xml"; + private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_04_0014_0000_WAGO_Testsystem_MQTT_V1.0.xml"; public static void main(String[] args) @@ -160,7 +160,7 @@ public static void main(String[] args) } /** - * Mock of a MQTT client factory for the EID-XML "SGr_02_mmmmm_dddd_WagoTestsystem_MQTT.xml". + * Mock of a MQTT client factory for the EID-XML "SGr_04_0014_0000_WAGO_Testsystem_MQTT_V1.0.xml". */ class MockMessagingClientFactory implements GenMessagingClientFactory { diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/RestSampleCommunicator.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/RestSampleCommunicator.java index 34439a0..95da955 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/RestSampleCommunicator.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/RestSampleCommunicator.java @@ -71,7 +71,7 @@ public class RestSampleCommunicator private static final Logger LOG = LoggerFactory.getLogger(RestSampleCommunicator.class); /** This example is tied to this EID-XML. */ - private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_01_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml"; + private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_04_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml"; /** This URI is not important, can have any value. */ private static final String BASE_URI = "https://example.com/"; @@ -158,7 +158,7 @@ public static void main(String[] args) /** - * Mock of a REST client for the EID-XML "SGr_01_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml". + * Mock of a REST client for the EID-XML "SGr_04_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml". */ class RestClientFactory implements GenHttpClientFactory { diff --git a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/WagoSmartMeterCommunicator.java b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/WagoSmartMeterCommunicator.java index ac9c324..fe3fc4f 100644 --- a/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/WagoSmartMeterCommunicator.java +++ b/SampleCommunicator/src/main/java/com/smartgridready/communicator/example/WagoSmartMeterCommunicator.java @@ -30,6 +30,7 @@ /** * This class provides an example on how to communicate with a WAGO smart meter over Modbus RTU (RS-485), * using the current SmartGridready commhandler library. + * Supports products of the WAGO 879-3xxx line. *

    * The device is instantiated the new fashioned way, using the device builder. A shared Modbus driver * registry is used in order to support multiple SGr devices on the same serial connection. @@ -39,9 +40,10 @@ public class WagoSmartMeterCommunicator { private static final Logger LOG = LoggerFactory.getLogger(WagoSmartMeterCommunicator.class); - private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml"; + private static final String DEVICE_DESCRIPTION_FILE_NAME = "SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml"; private static final String SERIAL_PORT_NAME = "COM3"; - + private static final String SERIAL_PARITY = "NONE"; + public static void main(String[] argv) { try @@ -49,6 +51,7 @@ public static void main(String[] argv) // configuration placeholders to be replaced in EID final var configProperties = new Properties(); configProperties.setProperty("serial_port", SERIAL_PORT_NAME); + configProperties.setProperty("serial_parity", SERIAL_PARITY); final var device = new SGrDeviceBuilder() .useSharedModbusRtu(true) @@ -62,7 +65,7 @@ public static void main(String[] argv) LOG.info("Device-interface {}", device.getDeviceInfo().getInterfaceType()); // Read the values from all data points and log them - final var deviceData = device.getDeviceInfo().getValues(); + final var deviceData = device.getValues(); deviceData.forEach(dataPointValue -> LOG.info(dataPointValue.toString())); // close transport diff --git a/SampleCommunicator/src/main/resources/SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml b/SampleCommunicator/src/main/resources/SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml new file mode 100644 index 0000000..74415c8 --- /dev/null +++ b/SampleCommunicator/src/main/resources/SGr_00_0014_0000_WAGO_SmartMeter_V0.3.xml @@ -0,0 +1,2955 @@ + + + + WAGO 879-3xxx + WAGO + 0 + + Draft + + + + WAGO Beta Test File + 879-3xxx + SubMeter + + + + + + en + https://www.wago.com/us/energy-consumption-meter/p/879-3000 + + + + + + de + https://www.wago.com/de/stromwandler-spannungsabgriffe/energieverbrauchszaehler/p/879-3000 + + + + + + it + https://www.wago.com/it/trasformatori-di-corrente-e-derivatori-di-tensione/misuratore-del-consumo-di-energia/p/879-3000 + + SubMeterElectricity + true + 1.0.0 + 1.0.0 + 879-3xxx + mains1Phase + 4 Watt + WAGO/ls + m + + 0 + 3 + 0 + + + + + slave_id + + + + 1 + + Modbus slave ID. + en + + + + + serial_port + + + + + The serial port name when accessed via serial port. + en + + + + + serial_baudrate + + + + 1200 + + + 2400 + + + 4800 + + + 9600 + + + 19200 + + + 38400 + + + 57600 + + + 115200 + + + + 9600 + + The baudrate when accessed via serial port. + en + + + + + serial_databits + + + + 8 + + + + 8 + + The number of data bits when accessed via serial port. + en + + + + + serial_stopbits + + + + 1 + + + + 1 + + The number of stop bits when accessed via serial port. + en + + + + + serial_parity + + + + EVEN + + + ODD + + + NONE + + + + EVEN + + The parity when accessed via serial port. + en + + + + + + + SpecialQualityRequirement + + + + METAS + NONE + + + Precision + + + + 2.0 + PERCENT + + + + + + RTU + + {{slave_id}} + {{serial_port}} + {{serial_baudrate}} + {{serial_databits}} + {{serial_parity}} + {{serial_stopbits}} + + 1200 + 2400 + 4800 + 9600 + 19200 + 38400 + 57600 + 115200 + 8 + EVEN + NONE + ODD + 1 + + + false + BigEndian + + + 1600 + + + + + VoltageAC + + 0 + Metering + VoltageAC + m + + 1 + 0 + 0 + + + + + + Messung der Spannung
    + Monitoring Funktionsprofil für Stromerzeuger und Stromverbraucher zur Kontrolle der Systemlast und/oder für regeltechnische + Zwecke. + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Spannung auf einer Phase wie auch auf drei Phasen. + Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles umgesetzt werden: +

      +
    • Einphasige Geräte geben die Spannung über die erste Phase an (VoltageACL1_N)
    • +
    • 3-phasige Geräte in Sternschaltung geben die Spannung pro Phase gegen den Nullleiter an (VoltageACL1_N, VoltageACL2_N, VoltageACL2_N).
    • +
    • 3-phasige Geräte in Dreiecksschaltung geben die Spannung zwischen den Phasen an (VoltageACL1_L2, VoltageACL1_L3, VoltageACL2_L3).
    • +
    +

    + ]]> + + de + + + + + Voltage measurement
    + Monitoring functional profile for power generators and consumers for reflecting the voltage. + +

    This functional profile allows measurement of the voltage on a single phase of three phases. + One of the following approaches must be applied when implementing the functional profile: +

      +
    • Single-phase devices use the total voltage with the first data point (VoltageACL1_N)
    • +
    • Three-phase devices in star configuration provide the voltage per phase vs. neutral using three data points (VoltageACL1_N, VoltageACL2_N, VoltageACL3_N).
    • +
    • Three-phase devices in delta configuration provide the voltage between phases using three data points (VoltageACL1_L2, VoltageACL1_L3, VoltageACL2_L3).
    • +
    +

    + ]]> +
    + en +
    + + + + + VoltageACL1_N + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 1 und Nullleiter + de + + + Measurement of the voltage between phase 1 and neutral + en + + + + + + +
    20482
    + HoldRegister + 2 +
    +
    + + + VoltageACL2_N + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 2 und Nullleiter + de + + + Measurement of the voltage between phase 2 and neutral + en + + + + + + +
    20484
    + HoldRegister + 2 +
    +
    + + + VoltageACL3_N + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 3 und Nullleiter + de + + + Measurement of the voltage between phase 3 and neutral + en + + + + + + +
    20486
    + HoldRegister + 2 +
    +
    + + + VoltageACL1_L2 + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 1-2 + de + + + Measurement of the voltage between phase 1-2 + en + + + + + + +
    20530
    + HoldRegister + 2 +
    +
    + + + VoltageACL1_L3 + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 1-3 + de + + + Measurement of the voltage between phase 1-3 + en + + + + + + +
    20532
    + HoldRegister + 2 +
    +
    + + + VoltageACL2_L3 + R + + + + VOLTS + + Erfassung der Spannung zwischen Phase 2-3 + de + + + Measurement of the voltage between phase 2-3 + en + + + + + + +
    20534
    + HoldRegister + 2 +
    +
    +
    + + + + Frequency + + 0 + Metering + Frequency + m + + 1 + 0 + 0 + + + + + + Messung der Frequenz
    + Monitoring-Funktionsprofil zur Kontrolle der Netzbelastung. + +

    Abweichungen zur Sollfrequenz sind ein + Indikator für die Netzbelastung und können für steuernde und regeltechnische Zwecke verwendet werden.

    + ]]> +
    + de +
    + + + + Frequency measurement
    + Monitoring functional profile for reflecting the network load. + +

    Differences to the nominal frequency indicate the network load and can be used for system control.

    + ]]> +
    + en +
    +
    + + + + Frequency + R + + + + HERTZ + + Erfassung des Frequenz + de + + + Frequency measurement + en + + + + + + +
    20488
    + HoldRegister + 2 +
    +
    +
    +
    + + + CurrentAC + + 0 + Metering + CurrentAC + m + + 1 + 0 + 0 + + + + + + Messung der Stromstärke
    + Monitoring Funktionsprofil für Stromerzeuger und Stromverbraucher zur Kontrolle der Systemlast und/oder für regeltechnische + Zwecke. + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Stromstärke auf einer Phase wie auch auf drei Phasen. + Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles umgesetzt werden: +

      +
    • Einphasige Geräte geben die Stromstärke über die erste Phase an (CurrentAC1)
    • +
    • 3-phasige Geräte geben die Stromstärke pro Phase an (CurrentAC1, CurrentAC2, CurrentAC3)
    • +
    +

    + +

    Die Implementierung der Messung der Stromstärke auf dem Nulleiter (CurrentACN) ist optional möglich.

    + ]]> +
    + de +
    + + + + Current measurement
    + Monitoring functional profile for power generators and consumers for reflecting the current. + +

    This functional profile allows measurement of the current on a single phase of three phases. + One of the following approaches must be applied when implementing the functional profile: +

      +
    • Single-phase devices use the total current with the first data point (CurrentAC1)
    • +
    • Three-phase devices give the current per phase using three data points (ActivePowerACL1, ActivePowerACL2, ActivePowerACL3)
    • +
    +

    + +

    The implementation of a data point measuring the current on the neutral conductor is optional (via data point CurrentACN).

    + ]]> +
    + en +
    +
    + + + + CurrentACL1 + R + + + + AMPERES + + Erfassung des Stromes in Phase 1 + de + + + Current measurement of phase 1 + en + + + + + + +
    20492
    + HoldRegister + 2 +
    +
    + + + CurrentACL2 + R + + + + AMPERES + + Erfassung des Stromes in Phase 2 + de + + + Current measurement of phase 2 + en + + + + + + +
    20494
    + HoldRegister + 2 +
    +
    + + + CurrentACL3 + R + + + + AMPERES + + Erfassung des Stromes in Phase 3 + de + + + Current measurement of phase 3 + en + + + + + + +
    20496
    + HoldRegister + 2 +
    +
    +
    +
    + + + ActivePowerAC_Net + + 0 + Metering + ActivePowerAC + m + + 1 + 1 + 0 + + + + + + Messung der Wirkleistung
    + Monitoring-Funktionsprofil für Stromerzeuger und Stromverbraucher zur Messung der Wirkleistung. + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Totalleistung wie auch die Leistung der drei + einzelnen Phasen. Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles + umgesetzt werden: +

      +
    • Einphasige Geräte geben die Totalleistung an (ActivePowerACtot)
    • +
    • 3-phasige Geräte ohne Totalleistungsmessung geben die Leistung pro Phase an (ActivePowerACL1, ActivePowerACL2, ActivePowerACL3)
    • +
    • 3-phasige Geräte mit Einzelphasen- und Totalleistungsmessung geben alle Datenpunkte an
    • +
    +

    + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Active Power Measurement
    + Monitoring functional profile for power generators and consumers for measuring the active power. + +

    With this functional profile you can measure the total active power as well as the active power of + the three individual phases. One of the following options must be implemented for fulfilling the functional profile: +

      +
    • Single-phase devices use the total active power data point (ActivePowerACtot)
    • +
    • Three-phase devices without measurement of the total active power use the data points per phase (ActivePowerACL1, ActivePowerACL2, ActivePowerACL3)
    • +
    • Three-phase devices with measurement of the total active power use all data points
    • +
    +

    + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Net + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ActivePowerACtot + R + + + + KILOWATTS + + Erfassung der gesamten Wirkleistung + de + + + Total active power measurement + en + + + + + + +
    20498
    + HoldRegister + 2 +
    +
    + + + ActivePowerACL1 + R + + + + KILOWATTS + + Erfassung der Wirkleistung Phase 1 + de + + + Active power measurement of phase 1 + en + + + + + + +
    20500
    + HoldRegister + 2 +
    +
    + + + ActivePowerACL2 + R + + + + KILOWATTS + + Erfassung der Wirkleistung Phase 2 + de + + + Active power measurement of phase 2 + en + + + + + + +
    20502
    + HoldRegister + 2 +
    +
    + + + ActivePowerACL3 + R + + + + KILOWATTS + + Erfassung der Wirkleistung Phase 3 + de + + + Active power measurement of phase 3 + en + + + + + + +
    20504
    + HoldRegister + 2 +
    +
    +
    +
    + + + ReactivePowerAC_Net + + 0 + Metering + ReactivePowerAC + m + + 1 + 1 + 0 + + + + + + Messung der Blindleistung
    + Monitoring-Funktionsprofil für Stromerzeuger und Stromverbraucher zur Messung der Blindleistung im Wechselstromnetz, für + regeltechnische Zwecke und/oder zur Überwachung von regulatorischen Vorgaben bei Leistungstarifen. + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Gesamtblindleistung wie auch die Blindleistung der drei + einzelnen Phasen. Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles + umgesetzt werden: +

      +
    • Einphasige Geräte geben die Gesamtblindleistung an (ReactivePowerACtot)
    • +
    • 3-phasige Geräte ohne Gesamtblindleistungsmessung geben die Blindleistung pro Phase an (ReactivePowerACL1, ReactivePowerACL2, ReactivePowerACL3)
    • +
    • 3-phasige Geräte mit Einzelphasen- und Gesamtblindleistungsmessung geben alle Datenpunkte an
    • +
    +

    + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Reactive Power Measurement
    + Monitoring functional profile for power generators and consumers for reflecting the reactive power. + +

    With this functional profile you can measure the total active power as well as the active power of the three individual phases. + One of the following options must be implemented for fulfilling the functional profile: +

      +
    • Single-phase devices use the total reactive power data point (ReactivePowerACtot)
    • +
    • Three-phase devices without measurement of the total reactive power use the data points per phase (ReactivePowerACL1, ReactivePowerACL2, ReactivePowerACL3)
    • +
    • Three-phase devices with measurement of the total reactive power use all data points
    • +
    +

    + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Net + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ReactivePowerACtot + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der gesamten Blindleistung + de + + + Total reactive power measurement + en + + + + + + +
    20506
    + HoldRegister + 2 +
    +
    + + + ReactivePowerACL1 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Blindleistung Phase 1 + de + + + Reactive power measurement of phase 1 + en + + + + + + +
    20508
    + HoldRegister + 2 +
    +
    + + + ReactivePowerACL2 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Blindleistung Phase 2 + de + + + Reactive power measurement of phase 2 + en + + + + + + +
    20510
    + HoldRegister + 2 +
    +
    + + + ReactivePowerACL3 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Blindleistung Phase 3 + de + + + Reactive power measurement of phase 3 + en + + + + + + +
    20512
    + HoldRegister + 2 +
    +
    +
    +
    + + + ApparentPowerAC_Net + + 0 + Metering + ApparentPowerAC + m + + 1 + 1 + 0 + + + + + + Die Messung der Scheinleistung erfolgt zur Messung Scheinleistung im Wechselstromnetz, für regeltechnische Zwecke. + + Je nach Optimierungsanwendung muss diese Erfassung zuverlässig im Takt von 10 Mal/Sekunde bis zum Minutentakt erfolgen. + Bei der Einführung von Leistungstarifen müssen für diese Messung auch regulatorische Vorgaben + beachtet werden. Typische Nachbarprofile sind Controller oder Datenlogger. + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Measurement of the apparent power is performed to measure the apparent power in the AC grid, for regulation purposes. + + Depending on the optimization application, a measurement interval of 10 times/second up to once a minute is required. + After introduction of demand tariffs regulatory standards have to be followed. + Typical neighboring profiles are communicator or data logger. + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Net + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ApparentPowerACtot + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der gesamten Scheinleistung + de + + + Measurement of the total apparent power + en + + + + + + +
    20514
    + HoldRegister + 2 +
    +
    + + + ApparentPowerACL1 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Scheinleistung in Phase 1 + de + + + Measurement of the apparent power in phase 1 + en + + + + + + +
    20516
    + HoldRegister + 2 +
    +
    + + + ApparentPowerACL2 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Scheinleistung in Phase 2 + de + + + Measurement of the apparent power in phase 2 + en + + + + + + +
    20518
    + HoldRegister + 2 +
    +
    + + + ApparentPowerACL3 + R + + + + KILOVOLT_AMPERES_REACTIVE + + Erfassung der Scheinleistung Phase 3 + de + + + Measurement of the apparent power in phase 3 + en + + + + + + +
    20520
    + HoldRegister + 2 +
    +
    +
    +
    + + + PowerFactor + + 0 + Metering + PowerFactor + m + + 1 + 0 + 0 + + + + + + Der PowerFactor entspricht der Division der Wirkleistung durch die Scheinleistung. + Er ist nicht zu verwechseln mit dem Klirrfaktor, welcher den Oberwellenanteil misst. In einem overwellenfreien System entspricht der Power Faktor + genau arccos(phi) und wird mit zunehmenden Oberwellen schlechter. + ]]> + + de + + + + + The power factor is the active power divided by the apparent power. + It is not to be confused with the distortion factor, which measures the harmonics ratio. In a system with no harmonics the power factor + is equal to arccos(phi) and gets worse with increasing harmonics. + ]]> + + en + + + + + + PowerFactorACtot + R + + + + PERCENT + 100 + + Erfassung des gesamten Power Factors + de + + + Measurement of the total power factor + en + + + + + + +
    20522
    + HoldRegister + 2 +
    +
    + + + PowerFactorACL1 + R + + + + PERCENT + 100 + + Erfassung des Power Factors in Phase 1 + de + + + Measurement of the power factor in phase 1 + en + + + + + + +
    20524
    + HoldRegister + 2 +
    +
    + + + PowerFactorACL2 + R + + + + PERCENT + 100 + + Erfassung des Power Factors in Phase 2 + de + + + Measurement of the power factor in phase 2 + en + + + + + + +
    20526
    + HoldRegister + 2 +
    +
    + + + PowerFactorACL3 + R + + + + PERCENT + 100 + + Erfassung des Power Factors in Phase 3 + de + + + Measurement of the power factor in phase 3 + en + + + + + + +
    20528
    + HoldRegister + 2 +
    +
    +
    +
    + + + ActiveEnergyAC_Net + + 0 + Metering + ActiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Energy measurement
    + Monitoring functional profile for power generators and consumers for measuring the active energy. + +

    Data is typically recorded by an energy manager (or a billing software).

    + +

    With this functional profile you can measure the total energy as well as the energy of the three + individual phases. One of the following options must be implemented for fulfilling the functional profile: +

      +
    • Single-phase devices use the total energy data point (ActiveEnergyACtot)
    • +
    • Three-phase devices without measurement of the total energy use the data points per (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • Three-phase devices with measurement of the total energy all data points
    • +
    +

    + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    + + + + Messung der Wirkenergie
    + Monitoring-Funktionsprofil für Stromerzeuger und Stromverbraucher zur Messung der Wirkenergie. + +

    Die Datenaufnahme erfolgt typischerweise durch einen Energiemanager (oder eine Abrechnungssoftware).

    + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Gesamtenergie wie auch die Messung der Energie + der drei einzelnen Phasen. Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles + umgesetzt werden: +

      +
    • 1-phasige Geräte geben die Gesamtenergie an (ActiveEnergyACtot)
    • +
    • 3-phasige Geräte ohne Gesamtenergiemessung geben die Energiemenge pro Phase an (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • 3-phasige Geräte mit Einzelphasen- und Gesamtenergiemessung geben alle Datenpunkte an
    • +
    +

    + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Net + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ActiveEnergyACtot + R + + + + KILOWATT_HOURS + + Total energy measurement + en + + + Erfassung der gesamten Wirkenergie + de + + + + + + +
    24576
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL1 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 1 + en + + + Erfassung der Wirkenergie Phase 1 + de + + + + + + +
    24582
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL2 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 2 + en + + + Erfassung der Wirkenergie Phase 2 + de + + + + + + +
    24584
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL3 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 3 + en + + + Erfassung der Wirkenergie Phase 3 + de + + + + + + +
    24586
    + HoldRegister + 2 +
    +
    +
    +
    + + + ReactiveEnergyAC_Net + + 0 + Metering + ReactiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Messung der Blindenergie: Die Datenaufnahme erfolgt typischerweise periodisch durch das EMS (oder eine Abrechnungssoftware), welche Messwerte aufnimmt und mit dem Zeitwert ergänzt.
    + Auch auf Seite der Netzbetreiber oder Aggregatoren braucht ein Energiewert zu Bilanzierungszwecken immer den Zeitstempel. Typische Nachbarprofile sind Communicator. + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Measurement of reactive energy: Data acquisition is performed periodically by the EMS (or a billing software), which collects measurements and adds a time stamp.
    + An energy measurement needs a time stamp for balance purposes, even on the grid provider or aggregator side. Typical neighboring profiles are communicator. + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Net + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ReactiveEnergyACtot + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der gesamten Blindenergie + de + + + Measurement of the total reactive energy + en + + + + + + +
    24612
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL1 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 1 + de + + + Measurement of the reactive energy in phase 1 + en + + + + + + +
    24618
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL2 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 2 + de + + + Measurement of the reactive energy in phase 2 + en + + + + + + +
    24620
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL3 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 3 + de + + + Measurement of the reactive energy in phase 3 + en + + + + + + +
    24622
    + HoldRegister + 2 +
    +
    +
    +
    + + + ActiveEnergyAC_Import + + 0 + Metering + ActiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Energy measurement
    + Monitoring functional profile for power generators and consumers for measuring the active energy. + +

    Data is typically recorded by an energy manager (or a billing software).

    + +

    With this functional profile you can measure the total energy as well as the energy of the three + individual phases. One of the following options must be implemented for fulfilling the functional profile: +

      +
    • Single-phase devices use the total energy data point (ActiveEnergyACtot)
    • +
    • Three-phase devices without measurement of the total energy use the data points per (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • Three-phase devices with measurement of the total energy all data points
    • +
    +

    + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    + + + + Messung der Wirkenergie
    + Monitoring-Funktionsprofil für Stromerzeuger und Stromverbraucher zur Messung der Wirkenergie. + +

    Die Datenaufnahme erfolgt typischerweise durch einen Energiemanager (oder eine Abrechnungssoftware).

    + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Gesamtenergie wie auch die Messung der Energie + der drei einzelnen Phasen. Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles + umgesetzt werden: +

      +
    • 1-phasige Geräte geben die Gesamtenergie an (ActiveEnergyACtot)
    • +
    • 3-phasige Geräte ohne Gesamtenergiemessung geben die Energiemenge pro Phase an (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • 3-phasige Geräte mit Einzelphasen- und Gesamtenergiemessung geben alle Datenpunkte an
    • +
    +

    + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Import + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ActiveEnergyACtot + R + + + + KILOWATT_HOURS + + Total energy measurement + en + + + Erfassung der gesamten Wirkenergie + de + + + + + + +
    24588
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL1 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 1 + en + + + Erfassung der Wirkenergie Phase 1 + de + + + + + + +
    24594
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL2 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 2 + en + + + Erfassung der Wirkenergie Phase 2 + de + + + + + + +
    24596
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL3 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 3 + en + + + Erfassung der Wirkenergie Phase 3 + de + + + + + + +
    24598
    + HoldRegister + 2 +
    +
    +
    +
    + + + ReactiveEnergyAC_Import + + 0 + Metering + ReactiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Messung der Blindenergie: Die Datenaufnahme erfolgt typischerweise periodisch durch das EMS (oder eine Abrechnungssoftware), welche Messwerte aufnimmt und mit dem Zeitwert ergänzt.
    + Auch auf Seite der Netzbetreiber oder Aggregatoren braucht ein Energiewert zu Bilanzierungszwecken immer den Zeitstempel. Typische Nachbarprofile sind Communicator. + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Measurement of reactive energy: Data acquisition is performed periodically by the EMS (or a billing software), which collects measurements and adds a time stamp.
    + An energy measurement needs a time stamp for balance purposes, even on the grid provider or aggregator side. Typical neighboring profiles are communicator. + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Import + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ReactiveEnergyACtot + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der gesamten Blindenergie + de + + + Measurement of the total reactive energy + en + + + + + + +
    24624
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL1 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 1 + de + + + Measurement of the reactive energy in phase 1 + en + + + + + + +
    24630
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL2 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 2 + de + + + Measurement of the reactive energy in phase 2 + en + + + + + + +
    24632
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL3 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 3 + de + + + Measurement of the reactive energy in phase 3 + en + + + + + + +
    24634
    + HoldRegister + 2 +
    +
    +
    +
    + + + ActiveEnergyAC_Export + + 0 + Metering + ActiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Energy measurement
    + Monitoring functional profile for power generators and consumers for measuring the active energy. + +

    Data is typically recorded by an energy manager (or a billing software).

    + +

    With this functional profile you can measure the total energy as well as the energy of the three + individual phases. One of the following options must be implemented for fulfilling the functional profile: +

      +
    • Single-phase devices use the total energy data point (ActiveEnergyACtot)
    • +
    • Three-phase devices without measurement of the total energy use the data points per (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • Three-phase devices with measurement of the total energy all data points
    • +
    +

    + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    + + + + Messung der Wirkenergie
    + Monitoring-Funktionsprofil für Stromerzeuger und Stromverbraucher zur Messung der Wirkenergie. + +

    Die Datenaufnahme erfolgt typischerweise durch einen Energiemanager (oder eine Abrechnungssoftware).

    + +

    Dieses Funktionsprofil erlaubt sowohl die Messung der Gesamtenergie wie auch die Messung der Energie + der drei einzelnen Phasen. Eine der folgenden Varianten muss bei der Implementierung des Funktionsprofiles + umgesetzt werden: +

      +
    • 1-phasige Geräte geben die Gesamtenergie an (ActiveEnergyACtot)
    • +
    • 3-phasige Geräte ohne Gesamtenergiemessung geben die Energiemenge pro Phase an (ActiveEnergyACL1, ActiveEnergyACL2, ActiveEnergyACL3)
    • +
    • 3-phasige Geräte mit Einzelphasen- und Gesamtenergiemessung geben alle Datenpunkte an
    • +
    +

    + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Export + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ActiveEnergyACtot + R + + + + KILOWATT_HOURS + + Total energy measurement + en + + + Erfassung der gesamten Wirkenergie + de + + + + + + +
    24600
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL1 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 1 + en + + + Erfassung der Wirkenergie Phase 1 + de + + + + + + +
    24606
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL2 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 2 + en + + + Erfassung der Wirkenergie Phase 2 + de + + + + + + +
    24608
    + HoldRegister + 2 +
    +
    + + + ActiveEnergyACL3 + R + + + + KILOWATT_HOURS + + Energy measurement of phase 3 + en + + + Erfassung der Wirkenergie Phase 3 + de + + + + + + +
    24610
    + HoldRegister + 2 +
    +
    +
    +
    + + + ReactiveEnergyAC_Export + + 0 + Metering + ReactiveEnergyAC + m + + 1 + 1 + 0 + + + + + + Messung der Blindenergie: Die Datenaufnahme erfolgt typischerweise periodisch durch das EMS (oder eine Abrechnungssoftware), welche Messwerte aufnimmt und mit dem Zeitwert ergänzt.
    + Auch auf Seite der Netzbetreiber oder Aggregatoren braucht ein Energiewert zu Bilanzierungszwecken immer den Zeitstempel. Typische Nachbarprofile sind Communicator. + +

    Das generische Attribut MeteringDirection gibt die Messrichtung an: +

      +
    • Net ist ein bilanzierter Wert (Standard), positiv (Bezug) oder negativ (Einspeisung)
    • +
    • Import ist der Bezug vom Verteilnetz, positiv
    • +
    • Export ist die Einspeisung ins Verteilnetz, positiv
    • +
    +

    + +

    Das generische Attribut MeteringTariffNr gibt die Nummer des Tarifregisters an. + Der Wert 0 bedeutet tariflos bzw. gesamt, ein positiver Wert ist ein spezifisches Tarifregister. +

    + ]]> +
    + de +
    + + + + Measurement of reactive energy: Data acquisition is performed periodically by the EMS (or a billing software), which collects measurements and adds a time stamp.
    + An energy measurement needs a time stamp for balance purposes, even on the grid provider or aggregator side. Typical neighboring profiles are communicator. + +

    The generic attribute MeteringDirection defines the direction of measurement: +

      +
    • Net is a net value (default), positive (import) or negative (export)
    • +
    • Import is the import from grid, a positive value
    • +
    • Export is the export to grid, a positive value
    • +
    +

    + +

    The generic attribute MeteringTariffNr defines the tariff register number. + A value of 0 means tariff-less or total, a positive number a specific tariff register. +

    + ]]> +
    + en +
    +
    + + + MeteringDirection + + + + Net + Net or balance value + + + Import + Import from grid + + + Export + Export to grid + + + + Export + NONE + + + MeteringTariffNr + + + + 0 + NONE + + + + + + ReactiveEnergyACtot + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der gesamten Blindenergie + de + + + Measurement of the total reactive energy + en + + + + + + +
    24636
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL1 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 1 + de + + + Measurement of the reactive energy in phase 1 + en + + + + + + +
    24642
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL2 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 2 + de + + + Measurement of the reactive energy in phase 2 + en + + + + + + +
    24644
    + HoldRegister + 2 +
    +
    + + + ReactiveEnergyACL3 + R + + + + KILOVOLT_AMPERES_REACTIVE_HOURS + + Erfassung der Blindenergie in Phase 3 + de + + + Measurement of the reactive energy in phase 3 + en + + + + + + +
    24646
    + HoldRegister + 2 +
    +
    +
    +
    + + + PowerQuadrant + + 0 + Metering + PowerQuadrant + m + + 1 + 0 + 0 + + + + + +

    Der Power-Quadrant gibt die Lastverteilung zwischen Wirk- und Blindleistung und zwischen Bezug und Einspeisung geometrisch an: +

      +
    • 1 = Wirkleistung Bezug, Blindleistung Bezug
    • +
    • 2 = Wirkleistung Einspeisung, Blindleistung Bezug
    • +
    • 3 = Wirkleistung Einspeisung, Blindleistung Einspeisung
    • +
    • 4 = Wirkleistung Bezug, Blindleistung Einspeisung
    • +
    +

    + ]]> +
    + de +
    + + + +

    The power quadrant geometrically reflects the load distribution between active and reactive power and between import and export: +

      +
    • 1 = active import, reactive import
    • +
    • 2 = active export, reactive import
    • +
    • 3 = active export, reactive export
    • +
    • 4 = active import, reactive export
    • +
    +

    + ]]> +
    + en +
    +
    + + + + PowerQuadrantACtot + R + + + + NONE + + Erfassung des gesamten Power-Quadrant + de + + + Measurement of the total power quadrant + en + + + + + + +
    16407
    + HoldRegister + 1 +
    +
    + + + PowerQuadrantACL1 + R + + + + NONE + + Erfassung des Power-Quadrant in Phase 1 + de + + + Measurement of the power quadrant in phase 1 + en + + + + + + +
    16408
    + HoldRegister + 1 +
    +
    + + + PowerQuadrantACL2 + R + + + + NONE + + Erfassung des Power-Quadrant in Phase 2 + de + + + Measurement of the power quadrant in phase 2 + en + + + + + + +
    16409
    + HoldRegister + 1 +
    +
    + + + PowerQuadrantACL3 + R + + + + NONE + + Erfassung des Power-Quadrant in Phase 3 + de + + + Measurement of the power quadrant in phase 3 + en + + + + + + +
    16410
    + HoldRegister + 1 +
    +
    +
    +
    + + + + CurrentDirection + + 0 + SubMeterElectricity + CurrentDirection + m + + 0 + 1 + 0 + + + + + + + en + + + + + + de + + + + + + CurrentDirL1 + R + + + + NONE + + + + + +
    16402
    + HoldRegister + 1 +
    +
    + + + CurrentDirL2 + R + + + + NONE + + + + + +
    16403
    + HoldRegister + 1 +
    +
    + + + CurrentDirL3 + R + + + + NONE + + + + + +
    16404
    + HoldRegister + 1 +
    +
    +
    +
    + + + + diff --git a/SampleCommunicator/src/main/resources/SGr_01_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml b/SampleCommunicator/src/main/resources/SGr_01_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml deleted file mode 100644 index 32eda84..0000000 --- a/SampleCommunicator/src/main/resources/SGr_01_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - Shelly TRV Local - Shelly - 0 - - Draft - - 0.1.0 - 2024-10-16 - Matthias Krebs, FHNW - Draft for Testlab - - - - - - - - de - https://www.shelly.com/de-ch/products/product-overview/shelly-trv-1 - - HeatingObject - true - 1.0.0 - 1.0.0 - Shelly - 4m - - 0 - 1 - 0 - - - - - base_uri - - - - http://192.168.33.1 - - Base address for accessing the resource. - en - - - - Basis-Adresse für Zugriffe auf die Ressource. - de - - - - - - - - URI - {{base_uri}} - NoSecurityScheme - - - - - Thermostat - - 0 - HeatingCircuit - Thermostat - 4m - - 0 - 1 - 0 - - - - - Ermöglicht die Steuerung der Zieltemperatur. - - de - - - - Allows controlling the target temperature. - - en - - - - - - Temperature - R - - - - DEGREES_CELSIUS - -40 - 60 - - Messung der Temperatur - de - - - Temperature measurement - en - - - - JSON_number - - -
    - Accept - application/json -
    -
    - GET - /thermostats/0 - - JMESPathExpression - tmp.value - -
    -
    -
    - - - TargetTemperature - RW - - - - DEGREES_CELSIUS - 4 - 31 - - Einstellung der Zieltemperatur - de - - - Setting of the target temperature - en - - - - JSON_number - - -
    - Accept - application/json -
    -
    - GET - /thermostats/0 - - JMESPathExpression - target_t.value - -
    - - -
    - Accept - application/json -
    -
    - GET - /thermostats/0 - - - target_t - [[value]] - - - - JMESPathExpression - target_t.value - -
    -
    -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml b/SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml deleted file mode 100644 index 014c9d4..0000000 --- a/SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_SmartMeterV0.2.1.xml +++ /dev/null @@ -1,1389 +0,0 @@ - - - - WAGOMeterV0.2.1 - WAGO - 0 - - Draft - - - - WAGO Beta Test File - 879-3xxx - SubMeter - - - Comprehensive energy measurement is necessary for optimizing energy consumption. - WAGO now has new energy meters in its portfolio that simplify this task while providing - several key advantages. They use the push-in connection technology with a lever, making them - connect quickly and easily. The devices have a width of just 72 mm for direct measurement. - These widths save a tremendous amount of control cabinet space. In addition to the values - for active and reactive energy, the energy meters also record the mains frequency as well as - current, voltage and power for all phases. And the user can conveniently see all of these - energy characteristics at a glance on a large, illuminated display. - en - https://www.wago.com/us/energy-consumption-meter/p/879-3000 - - - Um den Energieverbrauch zu optimieren, ist eine umfassende Energiemessung - notwendig. WAGO hat hierf�zt neue Energiez㧬er im Portfolio, die zahlreiche Vorteile bieten. - Sie verwenden die Push-in-Anschlusstechnik mit Hebel und lassen sich dadurch sehr einfach - und zeitsparend anschlieޥn. Die Ger㳥 haben eine Breite von lediglich 72 mm bei - Direktmessung. Damit spart der Anwender jede Menge Platz im Schaltschrank ein. Neben den - Werten f�k- und Blindenergie erfassen die Energiez㧬er auch Netzfrequenz sowie Strom, - Spannung und Leistung f�e Phasen. Auf dem groޥn beleuchteten Display sieht der Nutzer alle - Energiequalit㳳merkmale auf einen Blick. - de - - https://www.wago.com/de/stromwandler-spannungsabgriffe/energieverbrauchszaehler/p/879-3000 - - - Comprehensive energy measurement is necessary for optimizing energy consumption. - WAGO now has new energy meters in its portfolio that simplify this task while providing - several key advantages. They use the push-in connection technology with a lever, making them - connect quickly and easily. The devices have a width of just 72 mm for direct measurement. - These widths save a tremendous amount of control cabinet space. In addition to the values - for active and reactive energy, the energy meters also record the mains frequency as well as - current, voltage and power for all phases. And the user can conveniently see all of these - energy characteristics at a glance on a large, illuminated display. - it - - https://www.wago.com/it/trasformatori-di-corrente-e-derivatori-di-tensione/misuratore-del-consumo-di-energia/p/879-3000 - - SubMeterElectricity - true - 1.0.0 - 1.0.0 - 879-3xxx - mains1Phase - 4 Watt - WAGO/ls - 4 - - 0 - 2 - 1 - - - - - serial_port - - - - - The serial port name when accessed via serial port. - en - - - - - - - SpecialQualityRequirement - - - - METAS - NONE - - - PrecisionPercent - - - - 2.0 - PERCENT - - - - - - RTU - - 1 - {{serial_port}} - 19200 - 8 - EVEN - 1 - - 1200 - 2400 - 4800 - 9600 - 19200 - 38400 - 57600 - 115200 - 8 - EVEN - NONE - ODD - 1 - - - false - BigEndian - - - 1600 - - - - - VoltageAC - - 0 - SubMeterElectricity - VoltageAC - 4 - - 0 - 2 - 3 - - - - Voltage - de - - - - - - VoltageL1 - R - - - - VOLTS - - L1 Spannung - - - - - - -
    20482
    - HoldRegister - 2 -
    -
    - - - VoltageL2 - R - - - - VOLTS - - L2 Spannung - - - - - - -
    20484
    - HoldRegister - 2 -
    -
    - - - VoltageL3 - R - - - - VOLTS - - L3 Spannung - - - - - - -
    20486
    - HoldRegister - 2 -
    -
    - - - VoltageACL1-L2 - R - - - - VOLTS - - L1-L2 Spannung - - - - - - -
    20530
    - HoldRegister - 2 -
    -
    - - - VoltageACL1-L3 - R - - - - VOLTS - - L1-L3 Spannung - - - - - - -
    20532
    - HoldRegister - 2 -
    -
    - - - VoltageACL2-L3 - R - - - - VOLTS - - L2-L3 Spannung - - - - - - -
    20534
    - HoldRegister - 2 -
    -
    -
    -
    - - - Frequency - - 0 - Metering - Frequency - m - - 1 - 0 - 0 - - - - - - - Frequency - R - - - - HERTZ - - Frequenz - - - textElement - de - - - - - - -
    20488
    - HoldRegister - 2 -
    -
    -
    -
    - - - CurrentAC - - 0 - Metering - CurrentAC - m - - 1 - 0 - 0 - - - - TotalActiveEnergy - - - Current - de - - - - - - CurrentACL1 - R - - - - AMPERES - - Active import - - - textElement - de - - - - - - -
    20492
    - HoldRegister - 2 -
    -
    - - - CurrentACL2 - R - - - - AMPERES - - textElement - de - - - - - - -
    20494
    - HoldRegister - 2 -
    -
    - - - CurrentACL3 - R - - - - AMPERES - - textElement - de - - - - - - -
    20496
    - HoldRegister - 2 -
    -
    -
    -
    - - - ActivePowerAC - - 0 - Metering - ActivePowerAC - m - - 1 - 0 - 0 - - - - ActivePowerAC - - - Power - de - - - - - - ActivePowerACtot - R - - - - KILOWATTS - - textElement - de - - - - - - -
    20498
    - HoldRegister - 2 -
    -
    - - - ActivePowerACL1 - R - - - - KILOWATTS - - textElement - de - - - - - - -
    20500
    - HoldRegister - 2 -
    -
    - - - ActivePowerACL2 - R - - - - KILOWATTS - - textElement - de - - - - - - -
    20502
    - HoldRegister - 2 -
    -
    - - - ActivePowerACL3 - R - - - - KILOWATTS - - textElement - de - - - - - - -
    20504
    - HoldRegister - 2 -
    -
    -
    -
    - - - ReactivePowerAC - - 0 - Metering - ReactivePowerAC - m - - 1 - 0 - 0 - - - - ReactivePowerAC - - - Power - de - - - - - - ReactivePowerACtot - R - - - - KILOVOLT_AMPERES_REACTIVE - - textElement - de - - - - - - -
    20506
    - HoldRegister - 2 -
    -
    - - - ReactivePowerACL1 - R - - - - KILOVOLT_AMPERES_REACTIVE - - textElement - de - - - - - - -
    20508
    - HoldRegister - 2 -
    -
    - - - ReactivePowerACL2 - R - - - - KILOVOLT_AMPERES_REACTIVE - - textElement - de - - - - - - -
    20510
    - HoldRegister - 2 -
    -
    - - - ReactivePowerACL3 - R - - - - KILOVOLT_AMPERES_REACTIVE - - textElement - de - - - - - - -
    20512
    - HoldRegister - 2 -
    -
    -
    -
    - - - ApparentPowerAC - - 0 - SubMeterElectricity - ApparentPowerAC - 4 - - 0 - 2 - 1 - - - - ApparentPowerAC - - - Power - de - - - - - - ApparentPowerACtot - R - - - - KILOVOLT_AMPERES - - textElement - de - - - - - - -
    20514
    - HoldRegister - 2 -
    -
    - - - ApparentPowerACL1 - R - - - - KILOVOLT_AMPERES - - textElement - de - - - - - - -
    20516
    - HoldRegister - 2 -
    -
    - - - ApparentPowerACL2 - R - - - - KILOVOLT_AMPERES - - textElement - de - - - - - - -
    20518
    - HoldRegister - 2 -
    -
    - - - ApparentPowerACL3 - R - - - - KILOVOLT_AMPERES - - textElement - de - - - - - - -
    20520
    - HoldRegister - 2 -
    -
    -
    -
    - - - PowerFactor - - 0 - SubMeterElectricity - PowerFactor - 4 - - 0 - 2 - 1 - - - - Power - de - - - - - - PowerFactor - R - - - - NONE - - textElement - de - - - - - - -
    20522
    - HoldRegister - 2 -
    -
    - - - PowerFactorL1 - R - - - - NONE - - textElement - de - - - - - - -
    20524
    - HoldRegister - 2 -
    -
    - - - PowerFactorL2 - R - - - - NONE - - textElement - de - - - - - - -
    20526
    - HoldRegister - 2 -
    -
    - - - PowerFactorL3 - R - - - - NONE - - textElement - de - - - - - - -
    20528
    - HoldRegister - 2 -
    -
    -
    -
    - - - ActiveEnergyAC - - 0 - Metering - ActiveEnergyAC - m - - 1 - 0 - 0 - - - - Power - de - - - - - - ActiveEnergyACtot - R - - - - KILOWATT_HOURS - - textElement - de - - - - - - -
    24576
    - HoldRegister - 2 -
    -
    - - - ActiveEnergyACL1 - R - - - - KILOWATT_HOURS - - textElement - de - - - - - - -
    24582
    - HoldRegister - 2 -
    -
    - - - ActiveEnergyACL2 - R - - - - KILOWATT_HOURS - - textElement - de - - - - - - -
    24584
    - HoldRegister - 2 -
    -
    - - - ActiveEnergyACL3 - R - - - - KILOWATT_HOURS - - textElement - de - - - - - - -
    24586
    - HoldRegister - 2 -
    -
    -
    -
    - - - ReactiveEnergyAC - - 0 - SubMeterElectricity - ReactiveEnergyAC - 4 - - 0 - 1 - 2 - - - - - - - ReactiveEnergyACtot - R - - - - KILOWATT_HOURS - - - - - -
    24612
    - HoldRegister - 2 -
    -
    - - - ReactiveEnergyACL1 - R - - - - KILOWATT_HOURS - - - - - -
    24618
    - HoldRegister - 2 -
    -
    - - - ReactiveEnergyACL2 - R - - - - KILOWATT_HOURS - - - - - -
    24620
    - HoldRegister - 2 -
    -
    - - - ReactiveEnergyACL3 - R - - - - KILOWATT_HOURS - - - - - -
    24622
    - HoldRegister - 2 -
    -
    -
    -
    - - - ActiveEnerBalanceAC - - 0 - SubMeterElectricity - ActiveEnergyBalanceAC - 4 - - 0 - 1 - 2 - - - - - - - ActiveImportAC - R - - - - KILOWATT_HOURS - - - - - -
    24588
    - HoldRegister - 2 -
    -
    - - - ActiveExportAC - R - - - - KILOWATT_HOURS - - - - - -
    24600
    - HoldRegister - 2 -
    -
    - - - ActiveNetAC - R - - - - KILOWATT_HOURS - - - - - -
    24576
    - HoldRegister - 2 -
    -
    -
    -
    - - - ReactiveEnerBalanceAC - - 0 - SubMeterElectricity - ReactiveEnergyBalanceAC - - 4 - - 0 - 1 - 2 - - - - - - - ReactiveImportAC - R - - - - KILOWATT_HOURS - - - - - -
    24624
    - HoldRegister - 2 -
    -
    - - - ReactiveExportAC - R - - - - KILOWATT_HOURS - - - - - -
    24636
    - HoldRegister - 2 -
    -
    - - - ReactiveNetAC - R - - - - KILOWATT_HOURS - - - - - -
    24612
    - HoldRegister - 2 -
    -
    -
    -
    - - - PowerQuadrant - - 0 - SubMeterElectricity - PowerQuadrant - - 4 - - 0 - 2 - 1 - - - - - - - PwrQuadACtot - R - - - - NONE - - - - - -
    16407
    - HoldRegister - 1 -
    -
    - - - PwrQuadACL1 - R - - - - NONE - - - - - -
    16408
    - HoldRegister - 1 -
    -
    - - - PwrQuadACL2 - R - - - - NONE - - - - - -
    16409
    - HoldRegister - 1 -
    -
    - - - PwrQuadACL3 - R - - - - NONE - - - - - -
    16410
    - HoldRegister - 1 -
    -
    -
    -
    - - - - - CurrentDirection - - 0 - SubMeterElectricity - CurrentDirection - m - - 0 - 0 - 0 - - - - - - - CurrentDirL1 - R - - - - NONE - - - - - -
    16402
    - HoldRegister - 1 -
    -
    - - - CurrentDirL2 - R - - - - NONE - - - - - -
    16403
    - HoldRegister - 1 -
    -
    - - - CurrentDirL3 - R - - - - NONE - - - - - -
    16404
    - HoldRegister - 1 -
    -
    -
    -
    -
    -
    -
    -
    diff --git a/SampleCommunicator/src/main/resources/SGr_02_mmmmm_dddd_WagoTestsystem_MQTT.xml b/SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_Testsystem_MQTT_V1.0.xml similarity index 95% rename from SampleCommunicator/src/main/resources/SGr_02_mmmmm_dddd_WagoTestsystem_MQTT.xml rename to SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_Testsystem_MQTT_V1.0.xml index e6e7abd..b3ce805 100644 --- a/SampleCommunicator/src/main/resources/SGr_02_mmmmm_dddd_WagoTestsystem_MQTT.xml +++ b/SampleCommunicator/src/main/resources/SGr_04_0014_0000_WAGO_Testsystem_MQTT_V1.0.xml @@ -1,9 +1,9 @@ - WAGOMeter Testsystem V1.0 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.smartgridready.com/ns/V0/ ../../SchemaDatabase/SGr/Product/Product.xsd"> + WAGOMeter Testsystem MQTT WAGO 0 @@ -16,7 +16,7 @@ The WAGO testsystem provides analog and digital outputs and inputs that allows automated and manual - testing of SmartGridready communication-handler implementations for modbus. + testing of SmartGridready communication-handler implementations for Modbus. en https://www.wago.com/ @@ -29,7 +29,7 @@ The WAGO testsystem provides analog and digital outputs and inputs that allows automated and manual - testing of SmartGridready communication-handler implementations for modbus. + testing of SmartGridready communication-handler implementations for Modbus. it https://www.wago.com/ @@ -41,6 +41,12 @@ mains1Phase 4 Watt 4 + + 1 + 0 + 0 + + None @@ -188,11 +194,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -206,7 +212,7 @@ VoltageDC R - + VOLTS 0 @@ -221,25 +227,11 @@ - actuator/analgue/voltage_dc_in1 - + sensors/analogue/voltage_dc_in1 + - - actuator/anaolgue/voltage_dc_out1 - - - actuator/analogue/voltage_dc_out1 - - - sensorId - 1 - - - - JMESPathExpression - [0].value - + sensors/voltage/voltage_dc_in1 @@ -252,11 +244,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -270,7 +262,7 @@ VoltageDC R - + VOLTS 0 @@ -302,11 +294,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -320,7 +312,7 @@ VoltageDC R - + VOLTS 0 @@ -352,11 +344,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -370,7 +362,7 @@ VoltageDC R - + VOLTS 0 @@ -402,11 +394,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -420,7 +412,7 @@ VoltageDC R - + VOLTS 0 @@ -452,11 +444,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -470,7 +462,7 @@ VoltageDC R - + VOLTS 0 @@ -502,11 +494,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -520,7 +512,7 @@ VoltageDC R - + VOLTS 0 @@ -552,11 +544,11 @@ 0 Metering VoltageDC - 4 + m 0 2 - 3 + 2 @@ -570,7 +562,7 @@ VoltageDC R - + VOLTS 0 @@ -616,7 +608,7 @@ VoltageDC RW - + VOLTS 0 @@ -663,7 +655,7 @@ VoltageDC RW - + VOLTS 0.00073244422742 @@ -708,7 +700,7 @@ VoltageDC RW - + VOLTS 0 @@ -755,7 +747,7 @@ VoltageDC RW - + VOLTS 0 @@ -802,7 +794,7 @@ VoltageDC RW - + VOLTS 0 @@ -849,7 +841,7 @@ VoltageDC RW - + VOLTS 0 @@ -896,7 +888,7 @@ VoltageDC RW - + VOLTS 0.00073244422742 @@ -941,7 +933,7 @@ VoltageDC RW - + VOLTS 0 diff --git a/SampleCommunicator/src/main/resources/SGr_04_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml b/SampleCommunicator/src/main/resources/SGr_04_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml new file mode 100644 index 0000000..95c0322 --- /dev/null +++ b/SampleCommunicator/src/main/resources/SGr_04_mmmm_dddd_Shelly_TRV_RestAPILocal_V0.1.xml @@ -0,0 +1,226 @@ + + + + Shelly TRV Local + Shelly + 0 + + Draft + + 0.1.0 + 2024-10-16 + Matthias Krebs, FHNW + Draft for Testlab + + + + + + Der Shelly TRV ist ein steuerbarer Heizkörper-Thermostat.
    + Die vorliegende EID ist auf die Ansteuerung via lokalem REST API (Gen1) ausgelegt.

    + ]]> +
    + de + https://kb.shelly.cloud/knowledge-base/shelly-trv +
    + HeatingObject + true + 1.0.0 + 1.0.0 + Shelly + 4m + + 0 + 1 + 0 + + None +
    + + + base_uri + + + + http://192.168.33.1 + + Base address for accessing the resource. + en + + + + Basis-Adresse für Zugriffe auf die Ressource. + de + + + + + + + + URI + {{base_uri}} + NoSecurityScheme + + + + + Temperature + + 0 + TemperatureSensor + Temperature + m + + 0 + 1 + 0 + + + + + Ermöglicht das Auslesen der Temperaturen. + + de + + + + Allows reading temperatures. + + en + + + + + + Temperature + R + + + + DEGREES_CELSIUS + -40 + 60 + + Messung der Temperatur + de + + + Temperature measurement + en + + + + JSON_number + + +
    + Accept + application/json +
    +
    + GET + /thermostats/0 + + JMESPathExpression + tmp.value + +
    +
    +
    +
    +
    + + + Thermostat + + 0 + HeatingCircuit + Thermostat + 4m + + 0 + 1 + 0 + + + + + Ermöglicht das Auslesen und Steuern der Zieltemperatur. + + de + + + + Allows reading and controlling the target temperature. + + en + + + + + + TargetTemperature + RW + + + + DEGREES_CELSIUS + 4 + 31 + + Einstellung der Zieltemperatur + de + + + Setting of the target temperature + en + + + + JSON_number + + +
    + Accept + application/json +
    +
    + GET + /thermostats/0 + + JMESPathExpression + target_t.value + +
    + + +
    + Accept + application/json +
    +
    + GET + /thermostats/0 + + + target_t + [[value]] + + + + JMESPathExpression + target_t.value + +
    +
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/SampleCommunicator/src/main/resources/SampleExternalInterfaceFile.xml b/SampleCommunicator/src/main/resources/SampleExternalInterfaceFile.xml index 75c706b..7322cee 100644 --- a/SampleCommunicator/src/main/resources/SampleExternalInterfaceFile.xml +++ b/SampleCommunicator/src/main/resources/SampleExternalInterfaceFile.xml @@ -1,25 +1,23 @@ - WAGOMeterV0.2.1 - WAGO + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.smartgridready.com/ns/V0/ ../../SchemaDatabase/SGr/Product/Product.xsd"> + Sample Device + Example 0 Draft - WAGO Beta Test File - 879-3xxx - SubMeter + Sample Beta Test File - This is a sample external interface description file used for demonstration purposese only + This is a sample external interface description file used for demonstration purposes only. en - SubMeterElectricity + HeatPumpAppliance true 1.0.0 1.0.0 @@ -27,7 +25,7 @@ mains1Phase 4 Watt Sample EI-XML/ls - 4 + 4m @@ -68,13 +66,13 @@ VoltageAC 0 - SubMeterElectricity + Metering VoltageAC - 4 + m - 0 - 2 - 3 + 1 + 0 + 0 @@ -85,7 +83,7 @@ - VoltageL1 + VoltageACL1_N R @@ -106,7 +104,7 @@ - VoltageL2 + VoltageACL2_N R @@ -127,7 +125,7 @@ - VoltageL3 + VoltageACL3_N R @@ -155,7 +153,7 @@ 0 HeatPumpControl HeatPumpBase - 2m + 4m 0 9 diff --git a/SampleCommunicator/src/main/resources/log4j2.properties b/SampleCommunicator/src/main/resources/log4j2.properties index 9ce95ed..d053554 100644 --- a/SampleCommunicator/src/main/resources/log4j2.properties +++ b/SampleCommunicator/src/main/resources/log4j2.properties @@ -4,3 +4,6 @@ appender.console.layout.type = PatternLayout appender.console.layout.pattern = %msg%n rootLogger = INFO, STDOUT + +loggers.com.smartgridready.communicator = DEBUG, STDOUT +loggers.com.smartgridready.driver = DEBUG, STDOUT