Dear community,
My OpenHAB2 setup includes the binding-knx - 2.5.6.SNAPSHOT. As long as I add things with common datapoint types like 1.001 and 9.001, everything works fine. However, when I add the HVAC mode with datapoint type 20.102, I receive the following error message in openhab.log:
2020-06-23 19:19:16.499 [INFO ] [g.knx.internal.dpt.KNXCoreTypeMapper] - Translator couldn’t parse data for datapoint type ‘20.102’ (KNXIllegalArgumentException).
2020-06-23 19:19:16.516 [WARN ] [.internal.handler.DeviceThingHandler] - Ignoring KNX bus data: couldn’t transform to any Type (destination=‘9/4/5’, datapoint=‘command DP 9/4/5 ‘knx:device:bridge:HA’, DPT id 20.102, low priority’, data=‘0x21’)
2020-06-23 19:19:16.498 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
tuwien.auto.calimero.KNXIllegalArgumentException: 20.102 HvacMode has no element 33 specified
at tuwien.auto.calimero.dptxlator.DPTXlator8BitEnum$EnumDpt.textOf(DPTXlator8BitEnum.java:890) ~[?:?]
at tuwien.auto.calimero.dptxlator.DPTXlator8BitEnum$EnumDpt.access$100(DPTXlator8BitEnum.java:845) ~[?:?]
at tuwien.auto.calimero.dptxlator.DPTXlator8BitEnum.makeString(DPTXlator8BitEnum.java:1124) ~[?:?]
at tuwien.auto.calimero.dptxlator.DPTXlator8BitEnum.getValue(DPTXlator8BitEnum.java:1051) ~[?:?]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.read(ProcessCommunicatorImpl.java:346) ~[?:?]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.readNextQueuedDatapoint(AbstractKNXClient.java:287) ~[?:?]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.lambda$1(AbstractKNXClient.java:199) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_252]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Does anybody have a hint why this datapoint type is not supported? According to my understanding, the current KNXCoreTypeMapper should be capable of supporting 20.102.
I use MDT Heating Actuators. They implement a “HVAC mode status” (status read) with a different bit addressing scheme then the “HVAC mode” (for write). Up to now, I have put both the HVAC mode and the HVAC mode status onto the same channel with write and read.
DPT 20.102 HVAC mode:
Value 1: Comfort
Value 2: Standby
Value 3: Night
Value 4: Frost / Heat Protection
HVAC mode status:
Bit 0: Comfort (1)
Bit 1: Standby (1)
Bit 2: Night (1)
Bit 3: Frost or Heat Protection (1)
Bit 4: -
Bit 5: Heating (1) / Cooling (0)
Bit 6: -
Bit 7: Frost Alert (1)
Two questions arise:
-
Do I need to distinguish two different lines in my thing setup of the heating actuator where a first line addresses the HVAC mode for write and the secondline addresses the HVAC mode status for read due to different layout of the values?
-
How to add a “new” datapoint type to handle the HVAC mode status?
Thank you very much for your support.
Best regards,
Peter