]> git.basschouten.com Git - openhab-addons.git/commit
[dsmr] Add support for Austrian meters, Fix for channel id detection (#11458)
authorHilbrand Bouwkamp <hilbrand@h72.nl>
Sat, 30 Oct 2021 16:04:42 +0000 (18:04 +0200)
committerGitHub <noreply@github.com>
Sat, 30 Oct 2021 16:04:42 +0000 (18:04 +0200)
commit90525c5150b7994d28beabce2992c382534de0d6
tree05b94d23ab856d9f26c895db6018aa73ab5c6a4e
parent73b4dbe14f2f4d652d4703b2db1c0e7369c923d2
[dsmr] Add support for Austrian meters, Fix for channel id detection (#11458)

* Fix fix for channel id detection, Added missing channels to emucs electra

- M-bus channels are dynamic and present in the obis id.
The binding had most channel types fixed because most of the time these channels are the same.
However the device identifier is the same for multiple devices.
But the binding only registered only one and while the channel id was derived from this obis data.
For detected meters this resulted in the channel id to be the same if there are multiple devices.
This change looks at the channel id to assign it to the found device.
This is a bit tricky because the general device has no channel and has channels that have different id's.
So the binding needs to cover that case.

This change also adds some optional channels to the emucs electra meter.

Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
* [dsmr] Add support for Austrian meters

Improved the work done in pr #11193

Also-by: Thomas <thomas@knaller.info>
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
* [dsmr] Added Null handling annotations.
30 files changed:
bundles/org.openhab.binding.dsmr/README.md
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/connector/DSMRConnectorErrorEvent.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/cosem/CosemObject.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/cosem/CosemObjectFactory.java
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/device/cosem/CosemQuantity.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/cosem/OBISIdentifier.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/p1telegram/P1TelegramParser.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/discovery/DSMRMeterDetector.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/discovery/DSMRMeterDiscoveryService.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/handler/DSMRBridgeHandler.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/handler/DSMRMeterHandler.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/meter/DSMRMeter.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/meter/DSMRMeterDescriptor.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/meter/DSMRMeterKind.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/binding/binding.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/config/configuration_parameters.xml
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_dsmr_v4.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/meter_electricity_dsmr_v4_0_4.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/meter_electricity_emucs_v1_0.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/meter_electricity_smarty_v1.xml
bundles/org.openhab.binding.dsmr/src/main/resources/OH-INF/thing/meter_electricity_smarty_v1_austria.xml [new file with mode: 0644]
bundles/org.openhab.binding.dsmr/src/test/java/org/openhab/binding/dsmr/internal/TelegramReaderUtil.java
bundles/org.openhab.binding.dsmr/src/test/java/org/openhab/binding/dsmr/internal/device/p1telegram/P1TelegramParserTest.java
bundles/org.openhab.binding.dsmr/src/test/java/org/openhab/binding/dsmr/internal/discovery/DSMRMeterDetectorTest.java
bundles/org.openhab.binding.dsmr/src/test/java/org/openhab/binding/dsmr/internal/meter/DSMRMeterTest.java
bundles/org.openhab.binding.dsmr/src/test/resources/org/openhab/binding/dsmr/internal/dsmr_50_austria.telegram [new file with mode: 0644]
bundles/org.openhab.binding.dsmr/src/test/resources/org/openhab/binding/dsmr/internal/flu5_extra.telegram [new file with mode: 0644]