diff --git a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/SmartMeterBindingConstants.java b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/SmartMeterBindingConstants.java index 8738b7471..de2b535b4 100644 --- a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/SmartMeterBindingConstants.java +++ b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/SmartMeterBindingConstants.java @@ -36,14 +36,18 @@ public class SmartMeterBindingConstants { public static final String CONFIGURATION_CONVERSION = "conversionRatio"; public static final String CONFIGURATION_CHANNEL_NEGATE = "negate"; public static final String CHANNEL_PROPERTY_OBIS = "obis"; - public static final String OBIS_PATTERN_CHANNELID = getObisChannelId(ObisCode.OBIS_PATTERN); + public static final String OBIS_PATTERN_CHANNELID = getObisChannelIdPattern(ObisCode.OBIS_PATTERN); /** Obis format */ public static final String OBIS_FORMAT_MINIMAL = "%d-%d:%d.%d.%d"; /** Obis format */ public static final String OBIS_FORMAT = OBIS_FORMAT_MINIMAL + "*%d"; public static final String CHANNEL_TYPE_METERREADER_OBIS = "channel-type:" + BINDING_ID + ":obis"; - public static String getObisChannelId(String obis) { + public static String getObisChannelIdPattern(String obis) { return obis.replaceAll("\\.", "-").replaceAll(":|\\*", "_"); } + + public static String getObisChannelId(String obis) { + return getObisChannelIdPattern(obis).replaceAll("[^\\w-]", ""); + } } diff --git a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/iec62056/Iec62056_21SerialConnector.java b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/iec62056/Iec62056_21SerialConnector.java index 81f8ba404..f1a06905c 100644 --- a/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/iec62056/Iec62056_21SerialConnector.java +++ b/bundles/org.openhab.binding.smartmeter/src/main/java/org/openhab/binding/smartmeter/internal/iec62056/Iec62056_21SerialConnector.java @@ -100,6 +100,7 @@ public class Iec62056_21SerialConnector extends ConnectorBase { @Override public void newDataMessage(@Nullable DataMessage dataMessage) { logger.debug("Datamessage read: {}", dataMessage); + emitter.onError(new IllegalArgumentException("Error while emitting dataMessage")); emitter.onNext(dataMessage); }