]> git.basschouten.com Git - openhab-addons.git/commitdiff
[dsmr] Add support for capacity tariff for Belgium (#15038)
authorcoop-git <65073745+coop-git@users.noreply.github.com>
Tue, 12 Mar 2024 04:33:39 +0000 (05:33 +0100)
committerGitHub <noreply@github.com>
Tue, 12 Mar 2024 04:33:39 +0000 (05:33 +0100)
* Added support for capacity tafiff for Belgium

Signed-off-by: Lennert Coopman <github@coopman.org>
bundles/org.openhab.binding.dsmr/README.md
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/cosem/CosemObjectType.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/meter/DSMRMeterType.java
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/i18n/dsmr.properties
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/channeltypes_electricity.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/meter_electricity_emucs_v1_0.xml

index 726de79dcc8749a8d28dbf48944b5dcbd4b8e500..68db56b7505c752b113e0513043c5d0961b43346 100644 (file)
@@ -204,6 +204,8 @@ The following channels are supported:
 | `emeter_active_import_power`                     | Number:Power             | Aggregate active import power (W)                                      | Y       | -         | -         | -         | -         | -           | -         | -       | -           | -           | -       |
 | `emeter_actual_delivery`                         | Number:Power             | Current power delivery (kW)                                            | -       | Y         | Y         | Y         | Y         | Y           | Y         | Y       | Y           | Y           | Y       |
 | `emeter_actual_production`                       | Number:Power             | Current power production (kW)                                          | -       | -         | -         | Y         | Y         | Y           | Y         | Y       | Y           | Y           | Y       |
+| `emeter_actual_demand`                           | Number:Power             | Current power delivery demand (kW)                                     | -       | -         | -         | Y         | Y         | Y           | Y         | Y       | Y           | Y           | Y       |
+| `emeter_maximum_demand_current_month`            | Number:Power             | Maximum power delivery demand current month (kW)                       | -       | -         | -         | Y         | Y         | Y           | Y         | Y       | Y           | Y           | Y       |
 | `emeter_actual_reactive_delivery`                | Number                   | Actual Reactive Power Delivery (kvar)                                  | -       | -         | -         | -         | -         | -           | -         | -       | Y           | -           | Y       |
 | `emeter_actual_reactive_production`              | Number                   | Actual Reactive Power Production (kvar)                                | -       | -         | -         | -         | -         | -           | -         | -       | Y           | -           | Y       |
 | `emeter_active_threshold_smax`                   | Number                   | Active threshold (SMAX) (kVA)                                          | -       | -         | -         | -         | -         | -           | -         | -       | Y           | -           | -       |
index 88d77ea8e96e3cc07f4d2e366944989149814735..bac64bd10ca5ed01474773410d5e4c718c61ae52 100644 (file)
@@ -35,6 +35,7 @@ import org.openhab.core.library.unit.Units;
  *
  * @author M. Volaart - Initial contribution
  * @author Hilbrand Bouwkamp - Cosem subclasses made into factory classes and introduced quantity type
+ * @author Lennert Coopman - Added capacity tariff channels for Belgium: actual and current month
  */
 @NonNullByDefault
 public enum CosemObjectType {
@@ -69,6 +70,8 @@ public enum CosemObjectType {
     EMETER_TARIFF_INDICATOR(new OBISIdentifier(0, 96, 14, 0), CosemString.INSTANCE),
     EMETER_ACTIVE_IMPORT_POWER(new OBISIdentifier(1, 15, 7, 0), CosemQuantity.WATT),
     EMETER_ACTUAL_DELIVERY(new OBISIdentifier(1, 1, 7, 0), CosemQuantity.KILO_WATT),
+    EMETER_ACTUAL_DEMAND(new OBISIdentifier(1, 1, 4, 0), CosemQuantity.KILO_WATT),
+    EMETER_MAXIMUM_DEMAND_CURRENT_MONTH(new OBISIdentifier(1, 1, 6, 0), CosemDate.INSTANCE, CosemQuantity.KILO_WATT),
     EMETER_ACTUAL_PRODUCTION(new OBISIdentifier(1, 2, 7, 0), CosemQuantity.KILO_WATT),
     EMETER_TRESHOLD_A_V2_1(new OBISIdentifier(1, 17, 0, 0), CosemQuantity.AMPERE),
     EMETER_TRESHOLD_A(new OBISIdentifier(0, 17, 0, 0, true), CosemQuantity.AMPERE),
index 4e0eda13385ba40e1cf6f2fdd643f20ccecfb47e..3244de6ffb11e5944af9d602b74316c4c58500d3 100644 (file)
@@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory;
  * Supported meters
  *
  * @author M. Volaart - Initial contribution
+ * @author Lennert Coopman - Added capacity tariff channels for Belgium: actual and current month
  */
 @NonNullByDefault
 public enum DSMRMeterType {
@@ -341,7 +342,8 @@ public enum DSMRMeterType {
                     CosemObjectType.EMETER_INSTANT_POWER_PRODUCTION_L2, CosemObjectType.EMETER_INSTANT_POWER_PRODUCTION_L3,
                     CosemObjectType.EMETER_INSTANT_CURRENT_L1, CosemObjectType.EMETER_INSTANT_CURRENT_L2,
                     CosemObjectType.EMETER_INSTANT_CURRENT_L3, CosemObjectType.EMETER_INSTANT_VOLTAGE_L1,
-                    CosemObjectType.EMETER_INSTANT_VOLTAGE_L2, CosemObjectType.EMETER_INSTANT_VOLTAGE_L3
+                    CosemObjectType.EMETER_INSTANT_VOLTAGE_L2, CosemObjectType.EMETER_INSTANT_VOLTAGE_L3,
+                    CosemObjectType.EMETER_ACTUAL_DEMAND, CosemObjectType.EMETER_MAXIMUM_DEMAND_CURRENT_MONTH
     }),
 
     /** Belgium Smart Gas Meter for the e-MUCS specification */
index e8f0da1f397e55e9e95b96e5a13be3f3b2d06ed6..54b9fa79d18aebc0de303e9ddf06971249b7cacf 100644 (file)
@@ -133,6 +133,8 @@ channel-type.dsmr.activeImportPowerType.label = Aggregate Active Import Power
 channel-type.dsmr.activeImportPowerType.description = The aggregate active import power.
 channel-type.dsmr.activeThresholdSmax.label = Active Threshold
 channel-type.dsmr.activeThresholdSmax.description = Active threshold (SMAX).
+channel-type.dsmr.actualDeliveryBelgiumType.label = Actual Power Delivery
+channel-type.dsmr.actualDeliveryBelgiumType.description = The current power delivery.
 channel-type.dsmr.actualDeliveryType.label = Actual Power Delivery
 channel-type.dsmr.actualDeliveryType.description = The current power delivery.
 channel-type.dsmr.actualFuseThresholdAType.label = Actual Fuse Threshold
@@ -321,7 +323,6 @@ addon.dsmr.error.configuration.invalidsmartykey = The given Smarty decyption key
 addon.dsmr.error.configuration.invalid.decryptionKey = The given Smarty decyption key is invalid. It contains an illegal character: {0}
 addon.dsmr.error.configuration.invalid.additionalKey = The given Smarty additional key is invalid. It contains an illegal character: {0}
 addon.dsmr.error.thing.nodata = Not receiving data from meter.
-
 addon.dsmr.error.status.invalid_decryption_key = Failed to decrypt P1 telegram due to invalid encryption key
 addon.dsmr.error.status.port_dont_exists = Serial port does not exist.
 addon.dsmr.error.status.port_in_use = Serial port is already in use.
@@ -332,4 +333,3 @@ addon.dsmr.error.status.serial_data_read_error = Reading data from the serial po
 addon.dsmr.error.status.telegram_crc_error = CRC checksum failed for received P1 telegram.
 addon.dsmr.error.status.telegram_data_corruption = Received P1 telegram is corrupted. Possible bad/wrong P1 data cable?
 addon.dsmr.error.status.telegram_no_data = Received telegram data, but after parsing no data is present. Possible all data corrupted.
-
index dd94465e5c7427b816de00ca9a822c4dd137e78b..2de77d41e6875853a6791116999b6b396ec2efc0 100644 (file)
                <description>The current power delivery.</description>
                <state pattern="%.3f %unit%" readOnly="true"/>
        </channel-type>
+       <channel-type id="actualDeliveryBelgiumType">
+               <item-type>Number:Power</item-type>
+               <label>Actual Power Delivery</label>
+               <description>The current power delivery.</description>
+               <state pattern="%.3f %unit%" readOnly="true"/>
+       </channel-type>
        <channel-type id="actualProductionType" advanced="true">
                <item-type>Number:Power</item-type>
                <label>Actual Power Production</label>
index 8402bb3dbf1957f318dc2d0d5d83ab7ce8db4152..74c1307ced973b418f5228d4027f6d6a03667e1b 100644 (file)
                        <channel id="emeter_tariff_indicator" typeId="tariffIndicatorType"/>
                        <channel id="emeter_actual_delivery" typeId="actualDeliveryType"/>
                        <channel id="emeter_actual_production" typeId="actualProductionType"/>
+                       <channel id="emeter_actual_demand" typeId="actualDeliveryBelgiumType"/>
+                       <channel id="emeter_maximum_demand_current_month" typeId="actualDeliveryBelgiumType">
+                               <label>Power Delivery Current Month</label>
+                       </channel>
                        <channel id="emeter_switch_position" typeId="switchPositionType"/>
                        <channel id="emeter_fuse_threshold_a" typeId="actualFuseThresholdAType"/>
                        <channel id="emeter_treshold_kw" typeId="actualTresholdkWType"/>