Read value from KNX heating actuator

Unfortunately the KNX binding maps 5.001 to PercentType which is only accepted by Dimmer items. The only solution within openHAB is to use 5.005 and adjust your rule to accept 0-255 instead of 0-100. You will not get a percentage value because Units Of Measurement is not supported.

Thanks for the hint. So I put

channels:
  - id: EZ_Status_Stellwert
    channelTypeUID: knx:number
    label: EZ Status Stellwert
    description: ""
    configuration:
      ga: 5.005:<4/0/3

When I got you right, I would assume that now for a number I would get 0-255 instead of 0-100, which I could live with. But unfortunately I still get a null value. Or do I have to set a rule, as you mention? Where do I have to put that?

Can you try just using 5?

Sorry, I don’t get it. Where should I put 5?

As DPT instead of 5.005. I‘m not 100% sure what the implementation does with DPTs that are not explicitly covered by code.

Thanks, no I got it. I put

ga: 5:<4/0/3

But this also didn’t work.

I also tried to set it up as a dimmer

  - id: EZ_Status_Stellwert
    channelTypeUID: knx:dimmer
    label: EZ Status Stellwert
    description: ""
    configuration:
      position: 5.001:<4/0/3

but also this doesn’t work. I thought then the slider would show the value, although sliding it woul not have any effect.

Did you follow this advice from the documentation: „ Note: After changing the DPT of already existing Channels, openHAB needs to be restarted for the changes to become effective.“?

Thanks for this hint but this also didn’t change anything. Is there a way to debug the values that OH3 gets from the KNX bridge?

I use the MDT heating actors as well and read the control value exactly like you do:

channels:
  - id: A6
    channelTypeUID: knx:number
    label: Heizung Schlafzimmer Stellwert
    description: null
    configuration:
      ga: 5.001:<6/2/6

In order to get this work correctly with the percentage values, I added a Java Script transformation on the channel link association.

Working code for the transformation is:

(function(rawValue) {
    return rawValue + " %";
})(input)

And furthermore I added a state description to add the correct unit of measurement in the GUI:

IMHO your problems points to some kind of communication or configuration problem on the KNX side or the bridge configuration.

You should check with the ETS group monitor first, if you can read that value and if you can see read requests coming from the KNX bridge on the bus.

And you can also set the log level of the KNX binding as well as the underlying KNX calimero library to debug or trace and and see what happens.

2 Likes

Thank you Frank for this detailed answer.
I checked the Groupmonitor but I can only see GroupValueWrites coming from 1.1.1., which is the address of my IP Interface.
So it might be that I misconfigured something in my KNX/IP Gateway Setup, here is a screen shot:


Is there anything I did wrong here?

In my experience with my own KNX installation as well as discussions with other members installations I’ve came to the conclusion, that there is no bridge configuration that will work a 100% in all situations. My feeling tells me that different vendors KNX IP interfaces simply have different implementations and therefore show different behavior.

That said, I can only say that my MDT based IP interface in a quite old software version (MDT KNX IP Router, SCN-IP100.01, software version 1.0) works best in the router mode. I never got it to work with tunnel mode.

I guess you simply have to try and error your configuration until you found something working. Good advice is always to restart OpenHAB and do some test, before assuming that a given configuration is better than others you have tried.

You can refer to one of my previous posts, like this one: https://community.openhab.org/t/openhab-3-0-knx-dont-have-channels/111409/24 to get my configuration.

If I do a disable/enable cycle the KNX thing (the heating actor), I can the the relevant bus messages in the group monitor like this:

So OpenHAB issues a group read telegram coming from the device 0.0.0 (the router) and is answered by the heating actor and send back to OpenHAB.

I always recommend ROUTER mode. It‘s far more robust than TUNNEL.

1 Like

Hmm, I tried to switch to router mode but this doesn’t work. I use a MDT SCN IP000.03 Interface with Secure.
In Router mode that Thing only gets online when I provide no IP. But then all my other things from KNX turn to offline, while in tunnel mode everything besides the values from the heating actuator works.
But I just got aware that the interface has a lot of settings in ETS - at least the documentation is long and seems really complicated - so maybe I also have to play with those settings…
But thanks so far for your comments.

The first part is to be expected, because the router mode uses an IP multicast address with a default of 224.0.23.12 and the default port of 3671. So if you didn’t change that values in the MDT IP Interface, there is no need to configure that for the bridge in router mode.

There is still an open pull request in the KNX binding, that request the implementation of the secure mode. Can you try to turn off the secure communication part in your MDT IP interface? My interface is to old and does not support secure mode. So I never tried it, nor can I test it.

Hi
I read the value for the valves like this:

Type rollershutter : Stellwert_WoZi "Shade"         [position="<x/x/x"]

Now I changed my IP Interface to non secure. But the situation got even worse: I can’t establish a connection to the IP Gateway from OH anymore at all. The code I use is

UID: knx:ip:33e731323c
label: KNX/IP Gateway
thingTypeUID: knx:ip
configuration:
  useNAT: false
  readRetriesLimit: 3
  ipAddress: 192.x.x.x
  autoReconnectPeriod: 60
  type: ROUTER
  localSourceAddr: 1.1.1
  readingPause: 50
  portNumber: 3671
  responseTimeout: 10

For the localSourceAddr, do you use the one from inside your ETS project (grafik
) or one of the tunneling addresses?: grafik

Neither. Use another free one. Look at openHAB as a KNX device, so it needs a unique physical address. If you want, you can add a „Dummy Device“ in the ETS

Unless you have not solved your issue…you have to enable sending the status in the MDT actuator application:
grafik

And if that was not the issue, I display my values as fixed comma values:
Thing:
// ### Heizung Stellwerte
Type number : Hs_DG_Schlafen_val [ ga=“5.001:<1/1/10” ]
Item:
Number Hs_DG_Schlafen “Stellwert DG Schlafen [%.2f]” (gDGs) { channel=“knx:device:bridge:gw:Hs_DG_Schlafen_val”}
grafik

Thanks, finally I found the time to test it again and now suddenly everything works.
Here are my settings:

UID: knx:ip:196deb21b0
label: KNX/IP Gateway
thingTypeUID: knx:ip
configuration:
  useNAT: false
  readRetriesLimit: 3
  ipAddress: 192.168.1.10
  localIp: 192.168.1.57
  autoReconnectPeriod: 60
  type: TUNNEL
  localSourceAddr: 0.0.0
  readingPause: 50
  portNumber: 3671
  responseTimeout: 10
UID: knx:device:196deb21b0:FBHeizung
label: FB Heizung
thingTypeUID: knx:device
configuration:
  pingInterval: 600
  address: 1.1.14
  readInterval: 0
  fetch: false
bridgeUID: knx:ip:196deb21b0
channels:
  - id: EZStellwert
    channelTypeUID: knx:number
    label: EZ FB Heizung Stellwert
    description: null
    configuration:
      ga: 5.001:<4/0/3
  - id: KuecheStellwert
    channelTypeUID: knx:number
    label: Kueche FB Heizung Stellwert
    description: null
    configuration:
      ga: 5.001:<4/0/23
  - id: UGAnbauStellwert
    channelTypeUID: knx:number
    label: UG Anbau FB Heizung Stellwert
    description: null
    configuration:
      ga: 5.001:<4/0/43

Metadata: %.2f