mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
351 lines
47 KiB
Markdown
351 lines
47 KiB
Markdown
|
# DSMR Binding
|
|||
|
|
|||
|
The DSMR-binding is targeted towards Dutch, Belgium and Luxembourger users having a smart meter (Dutch: 'Slimme meter').
|
|||
|
Data of Dutch/Belgium/Luxembourg smart meters can be obtained via the P1-port.
|
|||
|
When connecting this port from a serial port the data can be read out.
|
|||
|
|
|||
|
This binding reads the P1-port of:
|
|||
|
|
|||
|
* Dutch Smart Meters that comply to NTA8130, DSMR v2.1, DSMR v2.2, DSMR v3.0, DSMR v4.0, DSMR v4.04, and DSMR 5.0.
|
|||
|
* Belgium Smart Meters that comply to e-MUCS v1.0.
|
|||
|
* Luxembourg’s electricity meter "Smarty" that comply to V1.0.
|
|||
|
|
|||
|
Although DSMR v4.2 is not an official specification, the binding has support for this version.
|
|||
|
|
|||
|
If you are not living in the Netherlands/Belgium/Luxembourg but do want to read a meter please have look at the [SmartMeter Binding](/addons/bindings/smartmeter/).
|
|||
|
Because the Dutch Meter standard is based on the IEC-62056-21 standard it might be desirable to build support for other country metering systems based on that standard in this binding.
|
|||
|
|
|||
|
## Serial Port Configuration
|
|||
|
|
|||
|
The P1-port is a serial port. To configure the serial port within openHAB see the [general documentation about serial port configuration](/docs/administration/serial.html).
|
|||
|
|
|||
|
## Supported Things
|
|||
|
|
|||
|
### dsmrBridge (The Netherlands/Belgium)
|
|||
|
|
|||
|
`dsmrBridge`: This is the device that communicated between the binding (serial) and its internal meters.
|
|||
|
You always have to have a 'Dutch/Belgium Smart Meter'-bridge. The bridge contains the serial port configuration.
|
|||
|
Specific meters are bound via the bridge to the smart meter. A smart meter consists typically out of minimal 2 meters.
|
|||
|
A generic meter and the electricity meter. Each meter is bound to the DSMR protocol the physical meter supports.
|
|||
|
For each meter it is possible to set a refresh rate at which the status is updated.
|
|||
|
The physical meter might update with a high frequency per second, while it is desired to have only values per minute.
|
|||
|
|
|||
|
The Belgium e-MUCS protocol is an extension to the DSMR standard.
|
|||
|
Belgium meters have `emucs` in the thing name.
|
|||
|
Due to it similarities the bridge for Belgium meters is also a dsmrBridge.
|
|||
|
|
|||
|
### smartyBridge (Luxembourg)
|
|||
|
|
|||
|
`smartyBridge`: This is the device that communicated between the binding (serial) and its internal meters.
|
|||
|
You always have to have a 'Smarty Smart Meter'-bridge. The bridge contains the serial port configuration.
|
|||
|
|
|||
|
## Discovery
|
|||
|
|
|||
|
The `dsmrBridge` and meters can be discovered via the discovery process.
|
|||
|
The `smartyBridge` can be discovered.
|
|||
|
Because the `smartyBridge` requires a decryption key.
|
|||
|
You need to set the decryption key when the bridge is added.
|
|||
|
After the decryption key is set a new discovery can be started to discover the meter.
|
|||
|
|
|||
|
If a bridge is manually configured it is possible to auto detect available meters.
|
|||
|
|
|||
|
### Configuration
|
|||
|
|
|||
|
The configuration for the `dsmrBridge` consists of the following parameters:
|
|||
|
|
|||
|
| Parameter | Description |
|
|||
|
|---------------------|-------------------------------------------------------------------------------------------------------------|
|
|||
|
| serialPort | The serial port where the P1-port is connected to (e.g. Linux: `/dev/ttyUSB1`, Windows: `COM2`) (mandatory) |
|
|||
|
| receivedTimeout | The time out period in which messages are expected to arrive, default is 120 seconds |
|
|||
|
| baudrate | Baudrate when no auto detect. valid values: 4800, 9600, 19200, 38400, 57600, 115200 |
|
|||
|
| databits | Data bits when no auto detect. valid values: 5, 6, 7, 8 |
|
|||
|
| parity | Parity when no auto detect. valid values: E(ven), N(one), O(dd) |
|
|||
|
| stopbits | Stop bits when no auto detect. valid values: 1, 1.5, 2 |
|
|||
|
|
|||
|
The configuration for the `smartyBridge` consists of the following parameters:
|
|||
|
|
|||
|
| Parameter | Description |
|
|||
|
|---------------------|-------------------------------------------------------------------------------------------------------------|
|
|||
|
| serialPort | The serial port where the P1-port is connected to (e.g. Linux: `/dev/ttyUSB1`, Windows: `COM2`) (mandatory) |
|
|||
|
| decryptionKey | The meter specific decryption key (mandatory) |
|
|||
|
| receivedTimeout | The time out period in which messages are expected to arrive, default is 120 seconds |
|
|||
|
|
|||
|
|
|||
|
**Note:** *The manual configuration is only needed if the DSMR-device requires non DSMR-standard Serial Port parameters (i.e. something different then `115200 8N1` or `9600 7E1`)*
|
|||
|
|
|||
|
### Troubleshooting
|
|||
|
|
|||
|
If there are unexpected configuration issues.
|
|||
|
For example a meter could not be found or not all channels expected are available.
|
|||
|
Than run the discovery process and look into the log file.
|
|||
|
There are extra checks that can give more information about what might be wrong.
|
|||
|
|
|||
|
## Meters
|
|||
|
|
|||
|
The information in this paragraph in necessary if you choose to configure the meters manually in a `.things` file.
|
|||
|
|
|||
|
Supported meters:
|
|||
|
|
|||
|
| Meter Thing | Thing type ID | M-Bus channel | Refresh rate |
|
|||
|
|-------------------------------------------------|------------------------------|---------------|--------------|
|
|||
|
| DSMR V2 / V3 Device | `device_v2_v3` | -1 | 10 seconds |
|
|||
|
| DSMR V4 Device | `device_v4` | -1 | 10 seconds |
|
|||
|
| DSMR V5 Device | `device_v5` | -1 | 10 seconds |
|
|||
|
| e-MUCS V1.0 Device | `device_emucs_v1_0` | -1 | ? |
|
|||
|
| ACE4000 GTMM Mk3 Electricity meter | `electricity_ace4000` | 0 | 10 seconds |
|
|||
|
| DSMR V2.1 Electricity meter | `electricity_v2_1` | 0 | 10 seconds |
|
|||
|
| DSMR V2.2 Electricity meter | `electricity_v2_2` | 0 | 10 seconds |
|
|||
|
| DSMR V3 Electricity meter | `electricity_v3_0` | 0 | 10 seconds |
|
|||
|
| DSMR V4.0 Electricity meter | `electricity_v4_0` | 0 | 10 seconds |
|
|||
|
| DSMR V4.0.4 Electricity meter | `electricity_v4_0_4` | 0 | 10 seconds |
|
|||
|
| DSMR V4.2 Electricity meter | `electricity_v4_2` | 0 | 10 seconds |
|
|||
|
| DSMR V5 Electricity meter | `electricity_v5_0` | 0 | 10 seconds |
|
|||
|
| e-MUCS V1.0 Electricity meter | `electricity_emucs_v1_0` | 0 | ? |
|
|||
|
| Smarty V1.0 Electricity Meter | `electricity_smarty_v1_0` | 0 | 10 seconds |
|
|||
|
| ACE4000 GTMM Mk3 Gas meter | `gas_ace4000` | 3 | 1 hour |
|
|||
|
| DSMR V2.1 Gas meter | `gas_v2_1` | 0 | 24 hours |
|
|||
|
| DSMR V2.2 Gas meter | `gas_v2_2` | 0 | 24 hours |
|
|||
|
| DSMR V3.0 Gas meter | `gas_v3_0` | *note 1* | 1 hour |
|
|||
|
| e-MUCS V1.0 Gas meter | `gas_emucs_v1_0` | *note 1* | ? |
|
|||
|
| ACE4000 GTMM Mk3 Cooling meter | `cooling_ace4000` | 6 | 1 hour |
|
|||
|
| DSMR V2.2 Cooling meter | `cooling_v2_2` | 0 | 1 hour |
|
|||
|
| ACE4000 GTMM Mk3 Heating meter | `heating_ace4000` | 4 | 1 hour |
|
|||
|
| DSMR V2.2 Heating meter | `heating_v2_2` | 0 | 1 hour |
|
|||
|
| ACE4000 GTMM Mk3 Water meter | `water_ace4000` | 5 | 1 hour |
|
|||
|
| DSMR V2.2 Water meter | `water_v2_2` | 0 | 1 hour |
|
|||
|
| DSMR V3.0 Water meter | `water_v3_0` | *note 1* | 1 hour |
|
|||
|
| ACE4000 GTMM Mk3 1st Slave Electricity meter | `slave_electricity1_ace4000` | 1 | 1 hour |
|
|||
|
| ACE4000 GTMM Mk3 2nd Slave Electricity meter | `slave_electricity2_ace4000` | 2 | 1 hour |
|
|||
|
| DSMR V4.x Slave Electricity meter | `slave_electricity_v4` | *note 1* | 1 hour |
|
|||
|
| DSMR V5 Slave Electricity meter | `slave_electricity_v5` | *note 1* | 5 minutes |
|
|||
|
| DSMR V3.0 Generic meter | `generic_v3_0` | *note 1* | 1 hour |
|
|||
|
| DSMR V3.0 Giga Joule meter (heating or cooling) | `gj_v3_0` | *note 1* | 1 hour |
|
|||
|
| DSMR V4.x Giga Joule meter (heating or cooling) | `gj_v4` | *note 1* | 1 hour |
|
|||
|
| DSMR V5 Giga Joule meter (heating or cooling) | `gj_v5_0` | *note 1* | 5 minutes |
|
|||
|
| DSMR V4.x m3 meter (gas or water) | `m3_v4` | *note 1* | 1 hour |
|
|||
|
| DSMR V5 m3 meter (gas or water) | `m3_v5_0` | *note 1* | 5 minutes |
|
|||
|
|
|||
|
*note 1*. The channel of these meters is dependent on the physical installation and corresponds to the M-Bus channel.
|
|||
|
You can ask your supplier / installer for this information or you can retrieve it from the logfiles (see *Determine M-Bus channel*).
|
|||
|
|
|||
|
#### Configuration
|
|||
|
|
|||
|
The configuration for the meters consists of the following parameters:
|
|||
|
|
|||
|
| Parameter | Description |
|
|||
|
|---------------------|--------------------------------------------------------------------------------------|
|
|||
|
| refresh | Time in seconds with which the state of the device is updated. Default is 60 seconds |
|
|||
|
| channel | M-Bus channel. See the table above |
|
|||
|
|
|||
|
|
|||
|
**Examples**
|
|||
|
|
|||
|
```
|
|||
|
Bridge dsmr:dsmrBridge:myDSMRDevice [serialPort="/dev/ttyUSB0"] {
|
|||
|
Things:
|
|||
|
device_v5 dsmrDeviceV5 [channel=-1]
|
|||
|
electricity_v5_0 electricityV5 [channel=0]
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### Channels
|
|||
|
|
|||
|
#### Item configuration
|
|||
|
|
|||
|
Paper UI. Item configuration can be done in the regular way.
|
|||
|
|
|||
|
Manual configuration:
|
|||
|
The following channels are supported:
|
|||
|
|
|||
|
- Y channel is supported
|
|||
|
- \- channel is not supported
|
|||
|
- O channel is supported only if the device has this functionality
|
|||
|
|
|||
|
|
|||
|
| Channel Type ID | Item Type | Description | Ace4000 | DSMR V2.1 | DSMR V2.2 | DSMR V3.0 | DSMR V4.0 | DSMR V4.0.4 | DSMR V4.2 | DSMR V5 |SMARTY V1.0 | e-MUCS V1.0 |
|
|||
|
|--------------------------------------------------|--------------------------|------------------------------------------------------------------------|---------|-----------|-----------|-----------|-----------|-------------|-----------|---------|-------------|-------------|
|
|||
|
| | | **Channels for the generic device** | | | | | | | | | | |
|
|||
|
| `p1_text_code` | String | Text code from the device | - | Y | Y | Y | Y | Y | Y | - | - | - |
|
|||
|
| `p1_text_string` | String | Text string from the device | - | Y | Y | Y | Y | Y | Y | Y | Y | Y |
|
|||
|
| `p1_version_output` | String | Version information (most times this refers to the DSMR specification) | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `p1_emucs_version_output` | String | e-MUCS version information | - | - | - | - | - | - | - | - | Y | y |
|
|||
|
| `p1_timestamp` | DateTime | Timestamp of the last device reading | - | - | - | - | Y | Y | Y | Y | Y | Y |
|
|||
|
| | | **Channels for the cooling meter** | | | | | | | | | | |
|
|||
|
| `cmeter_value_v2` | Number:Energy | The total amount of cooling used in the past period (GJ) | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `cmeter_value_v2_timestamp` | DateTime | Timestamp of the last meter reading | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `cmeter_equipment_identifier_v2_2` | String | Equipment identifier | - | - | Y | - | - | - | - | - | - | - |
|
|||
|
| | | **Channels for the main electricity meter** | | | | | | | | | | |
|
|||
|
| `emeter_equipment_identifier_v2_x` | String | Electricity Equipment identifier | - | Y | Y | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_equipment_identifier` | String | Electricity Equipment identifier | - | - | - | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_delivery_tariff0` | Number:Energy | Total amount of electricity used for tariff 0 (kWh) | Y | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_delivery_tariff1` | Number:Energy | Total amount of electricity used for tariff 1 (kWh) | Y | Y | Y | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_delivery_tariff2` | Number:Energy | Total amount of electricity used for tariff 2 (kWh) | Y | Y | Y | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_production_tariff0` | Number:Energy | Total amount of electricity produced for tariff 0 (kWh) | Y | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_production_tariff1` | Number:Energy | Total amount of electricity produced for tariff 1 (kWh) | Y | Y | Y | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_production_tariff2` | Number:Energy | Total amount of electricity produced for tariff 2 (kWh) | Y | Y | Y | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_delivery_tariff0_antifraud` | Number:Energy | Total amount of electricity used for tariff 2 [antifraud] (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_delivery_tariff1_antifraud` | Number:Energy | Total amount of electricity used for tariff 1 [antifraud] (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_delivery_tariff2_antifraud` | Number:Energy | Total amount of electricity used for tariff 2 [antifraud] (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_total_imported_energy_register_q` | Number:Energy | Total Imported Energy (Q+) (kvarh) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_total_exported_energy_register_q` | Number:Energy | Total Exported Energy (Q-) (kvarh) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_tariff_indicator` | String | Current tariff indicator | Y | Y | Y | Y | Y | Y | Y | Y | - | Y |
|
|||
|
| `emeter_treshold_a_v2_1` | Number:ElectricCurrent | Actual threshold (A) | - | Y | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_treshold_a` | Number:ElectricCurrent | Actual threshold (A) | Y | - | Y | Y | - | - | - | - | - | - |
|
|||
|
| `emeter_fuse_threshold_a` | Number:ElectricCurrent | Active fuse threshold (A) | - | - | - | - | - | - | - | - | - | Y |
|
|||
|
| `emeter_treshold_kwh` | Number:Power | Actual threshold (kW) | - | - | - | - | Y | Y | - | - | - | Y |
|
|||
|
| `emeter_switch_position_v2_1` | Number | Switch position | - | Y | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_switch_position` | Number | Switch position | Y | - | Y | Y | Y | Y | - | - | Y | Y |
|
|||
|
| `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 |
|
|||
|
| `emeter_actual_production` | Number:Power | Current power production (kW) | - | - | - | Y | Y | Y | Y | Y | Y | Y |
|
|||
|
| `emeter_actual_reactive_delivery` | Number | Actual Reactive Power Delivery (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_actual_reactive_production` | Number | Actual Reactive Power Production (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_active_threshold_smax` | Number | Active threshold (SMAX) (kVA) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_power_failures` | Number | Number of power failures | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_long_power_failures` | Number | Number of long power failures | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `emeter_power_failure_log_entries` | Number | Number of entries in the power failure log | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_power_failure_log_timestamp[x]` *note 2* | DateTime | Timestamp for entry [x] in the power failure log | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_power_failure_log_duration[x]` *note 2* | Number:Time | Duration for entry [x] the power failure log | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_voltage_sags_l1` | Number | Number of voltage sags L1 | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_voltage_sags_l2` | Number | Number of voltage sags L2 | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_voltage_sags_l3` | Number | Number of voltage sags L3 | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_voltage_swells_l1` | Number | Number of voltage swells L1 | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `emeter_voltage_swells_l2` | Number | Number of voltage swells L2 | - | - | - | - | O | O | O | O | - | - |
|
|||
|
| `emeter_voltage_swells_l3` | Number | Number of voltage swells L3 | - | - | - | - | O | O | O | O | - | - |
|
|||
|
| `emeter_instant_current_l1` | Number:ElectricCurrent | Instant Current L1 (A) | - | - | - | - | Y | Y | Y | Y | Y | Y |
|
|||
|
| `emeter_instant_current_l2` | Number:ElectricCurrent | Instant Current L2 (A) | - | - | - | - | O | O | O | O | O | Y |
|
|||
|
| `emeter_instant_current_l3` | Number:ElectricCurrent | Instant Current L3 (A) | - | - | - | - | O | O | O | O | O | Y |
|
|||
|
| `emeter_instant_power_delivery_l1` | Number:Power | Instant Power Delivery L1 (kW) | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_instant_power_delivery_l2` | Number:Power | Instant Power Delivery L2 (kW) | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_instant_power_delivery_l3` | Number:Power | Instant Power Delivery L3 (kW) | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_instant_power_production_l1` | Number:Power | Instant Power Production L1 (kW) | - | - | - | - | Y | Y | Y | Y | Y | - |
|
|||
|
| `emeter_instant_power_production_l2` | Number:Power | Instant Power Production L2 (kW) | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_instant_power_production_l3` | Number:Power | Instant Power Production L3 (kW) | - | - | - | - | O | O | O | O | O | - |
|
|||
|
| `emeter_instant_reactive_power_delivery_l1` | Number:Power | Instant Reactive Power Delivery L1 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_reactive_power_delivery_l2` | Number:Power | Instant Reactive Power Delivery L2 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_reactive_power_delivery_l3` | Number:Power | Instant Reactive Power Delivery L3 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_reactive_power_production_l1` | Number:Power | Instant Reactive Power Prodcution L1 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_reactive_power_production_l2` | Number:Power | Instant Reactive Power Prodcution L2 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_reactive_power_production_l3` | Number:Power | Instant Reactive Power Prodcution L3 (kvar) | - | - | - | - | - | - | - | - | Y | - |
|
|||
|
| `emeter_instant_voltage_l1` | Number:ElectricPotential | Instant Voltage L1 (V) | - | - | - | - | - | - | - | Y | - | Y |
|
|||
|
| `emeter_instant_voltage_l2` | Number:ElectricPotential | Instant Voltage L2 (V) | - | - | - | - | - | - | - | O | - | Y |
|
|||
|
| `emeter_instant_voltage_l3` | Number:ElectricPotential | Instant Voltage L3 (V) | - | - | - | - | - | - | - | O | - | Y |
|
|||
|
| | | **Channels for the slave electricity meter** | | | | | | | | | | |
|
|||
|
| `meter_device_type` | String | Slave Electricity Meter Device Type | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `meter_equipment_identifier` | String | Slave Electricity Meter ID | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `emeter_delivery_tariff0` | Number:Energy | Total amount of slave electricity used for tariff 0 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_delivery_tariff1` | Number:Energy | Total amount of slave electricity used for tariff 1 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_delivery_tariff2` | Number:Energy | Total amount of slave electricity used for tariff 2 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_production_tariff0` | Number:Energy | Total amount of slave electricity produced for tariff 0 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_production_tariff1` | Number:Energy | Total amount of slave electricity produced for tariff 1 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_production_tariff2` | Number:Energy | Total amount of slave electricity produced for tariff 2 (kWh) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_tariff_indicator` | String | Current slave tariff indicator | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_treshold_a` | Number:ElectricCurrent | Actual slave threshold (A) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `meter_switch_position` | Number | Slave electricity switch position | Y | - | - | Y | Y | Y | - | - | - | - |
|
|||
|
| `emeter_active_import_power` | Number:Power | Slave aggregate active import power (W) | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `emeter_value` | Number:Energy | Slave electricity usage (kWh) in the past period | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `emeter_value_timestamp` | DateTime | Timestamp of the last reading | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| | | **Channels for the gas meter** | | | | | | | | | | |
|
|||
|
| `meter_device_type` | String | Gas Meter Device Type | - | - | - | Y | - | - | - | - | - | Y |
|
|||
|
| `meter_equipment_identifier` | String | Gas Meter ID | Y | - | - | Y | - | - | - | - | - | Y |
|
|||
|
| `gmeter_equipment_identifier_v2` | String | Gas Meter ID | - | Y | Y | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_24h_delivery_v2` | Number:Volume | Gas Delivery past 24 hours | Y | Y | Y | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_24h_delivery_v2_timestamp` | DateTime | Timestamp of the last reading | Y | Y | Y | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_24h_delivery_compensated_v2` | Number:Volume | Gas Delivery past 24 hours (compensated) | - | Y | Y | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_24h_delivery_compensated_v2_timestamp` | DateTime | Timestamp of the last reading | - | Y | Y | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_value_v3` | Number:Volume | Gas Delivery past period | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `gmeter_value_v3_timestamp` | DateTime | Timestamp of the last reading | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `gmeter_last_value` | Number:Volume | Gas Delivery last reading value | - | - | - | - | - | - | - | - | - | Y |
|
|||
|
| `gmeter_last_value_timestamp` | DateTime | Timesamp of last Gas Delivery reading | - | - | - | - | - | - | - | - | - | Y |
|
|||
|
| `gmeter_valve_position_v2_1` | Number | Gas Valve position | - | Y | - | - | - | - | - | - | - | - |
|
|||
|
| `gmeter_valve_position_v2_2` | Number | Gas Valve position | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `meter_valve_switch_position` | Number | Gas Valve position | - | - | - | Y | - | - | - | - | - | Y |
|
|||
|
| | | **Channels for the generic meter** | | | | | | | | | | |
|
|||
|
| `meter_device_type` | String | Generic Meter Device Type | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `gmeter_equipment_identifier` | String | Generic Meter ID | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `genmeter_value_v3` | Number | Delivery past period | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `meter_valve_switch_position` | Number | Generic Meter Valve/Switch position | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| | | **Channels for the GJ meter (Heating or Cooling)** | | | | | | | | | | - |
|
|||
|
| `meter_device_type` | String | GJ Meter Device Type | - | - | - | Y | Y | Y | Y | Y | - | |
|
|||
|
| `meter_equipment_identifier` | Number | GJ Meter ID | - | - | - | Y | Y | Y | Y | Y | - | - |
|
|||
|
| `gjmeter_value_v3` | Number:Energy | GJ Delivery past period | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `gjmeter_value_v3_timestamp` | DateTime | Timestamp of the last reading | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `gjmeter_value_v4` | Number:Energy | GJ Delivery past period | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `gjmeter_value_v4_timestamp` | DateTime | Timestamp of the last reading | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| | | **Channels for the heating meter** | | | | | | | | | | |
|
|||
|
| `meter_valve_switch_position` | Number | GJ Meter Valve position | - | - | - | Y | Y | Y | Y | - | - | - |
|
|||
|
| `meter_equipment_identifier` | String | Heating Meter ID | Y | - | - | - | - | - | - | - | - | - |
|
|||
|
| `hmeter_equipment_identifier_v2_2` | String | Heating Meter ID | - | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `hmeter_value_v2` | Number:Energy | Heating Delivery past period | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `hmeter_value_v2_timestamp` | DateTime | Timestamp of the last reading | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| | | m3 Meter Device Type | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `meter_equipment_identifier` | String | m3 Meter ID | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `m3meter_value` | Number:Volume | m3 Delivery past period | - | - | - | - | Y | Y | Y | Y | - | - |
|
|||
|
| `meter_valve_switch_position` | Number | m3 Meter Valve position | - | - | - | - | Y | Y | Y | - | - | - |
|
|||
|
| | | **Channels for the water meter** | | | | | | | | | | |
|
|||
|
| `meter_device_type` | String | Water Meter Device Type | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `meter_equipment_identifier` | String | Water Meter ID | Y | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `wmeter_equipment_identifier_v2_2` | String | Water Meter ID | - | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `wmeter_value_v2` | Number:Volume | Water Delivery past period | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `wmeter_value_v2_timestamp` | DateTime | Timestamp of the last reading | Y | - | Y | - | - | - | - | - | - | - |
|
|||
|
| `wmeter_value_v3` | Number:Volume | Water Delivery past period | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
| `meter_valve_switch_position` | Number | Water Meter Valve position | - | - | - | Y | - | - | - | - | - | - |
|
|||
|
|
|||
|
*note 2*. The power failure log has a dynamic number of entries starting at `0`.
|
|||
|
So `emeter_power_failure_log_timestamp0`, `emeter_power_failure_log_duration0` refers to the first entry,
|
|||
|
`emeter_power_failure_log_timestamp1`, `emeter_power_failure_log_duration1` refers to the second entry, etc.
|
|||
|
|
|||
|
Channel identifier: `dsmr:<ThingTypeID>:<bridge id>:<id>:<channel type id>`
|
|||
|
|
|||
|
- ThingTypeID. See table with supported meters
|
|||
|
- BridgeID. The configured id for the bridge
|
|||
|
- id. The configured id for the ThingType you want to address
|
|||
|
- channel type id. The channel type id
|
|||
|
|
|||
|
The following configuration must to be added to an item configuration file. E.g. `things/dsmr.items`
|
|||
|
|
|||
|
```
|
|||
|
ItemType <name> "<description>" (<Group>) {channel="<Channel identifier>"}
|
|||
|
```
|
|||
|
|
|||
|
**Examples**
|
|||
|
|
|||
|
```
|
|||
|
Number:Energy MeterDeliveryTariff0 "Total electricity delivered to the resident during low tariff period [%.3f kWh]" {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_delivery_tariff1}
|
|||
|
```
|
|||
|
|
|||
|
## Full configuration example
|
|||
|
|
|||
|
`things/dsmr.things`
|
|||
|
|
|||
|
```
|
|||
|
Bridge dsmr:dsmrBridge:mysmartmeter [serialPort="/dev/ttyUSB0"] {
|
|||
|
Things:
|
|||
|
device_v5 dsmrV5Device [channel=-1]
|
|||
|
electricity_v5_0 electricityV5 [channel=0]
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
`things/dsmr.items`
|
|||
|
|
|||
|
```
|
|||
|
String P1Version "P1 Version output" {channel="dsmr:device_v5:mysmartmeter:dsmrV5Device:p1_version_output"}
|
|||
|
Number:Energy MeterDeliveryTariff0 "Total electricity delivered to the resident during low tariff period [%.3f kWh]" {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_delivery_tariff1"}
|
|||
|
Number:Energy MeterDeliveryTariff1 "Total electricity delivered to the resident during high tariff period [%.3f kWh]" {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_delivery_tariff2"}
|
|||
|
```
|
|||
|
|
|||
|
## Determine M-Bus channel
|
|||
|
|
|||
|
By manually trigger the discovery process, e.g. via PaperUI, you can use the logging to find out a M-Bus channel. Look for the following logfile line:
|
|||
|
`<Timestamp> [INFO ] [<class>] - New compatible meter: [Meter type: M3_V5_0, channel: 1, Meter type: ELECTRICITY_V5, channel: 0]`
|
|||
|
|
|||
|
Here you find the ThingTypeID (it is stated only in capitals) and the M-Bus channel. The above example would lead to the following Thing definition
|
|||
|
|
|||
|
```
|
|||
|
Bridge definition {
|
|||
|
Things:
|
|||
|
m3_v5_0 mygasmeter [channel=1]
|
|||
|
electricity_v5 [channel=0]
|
|||
|
}
|
|||
|
```
|