You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@plc4x.apache.org by Darren Everley <da...@xeropoint.co.uk> on 2022/02/03 00:08:38 UTC

A couple of questions from a PLC4X newbie. KNX related.

Hi all,

First thanks to all the contributors for the ongoing efforts with this
marvelous set of libraries.

I've only just started using it (the Java version specifically), for
experimentation and research initially, but hopefully something more
tangible in the future.

My test case is a selection of reasonably modern ABB KNX equipment. In
particular a weather station and some air quality sensors.

My first stumbling block was that I have been provided an ETS file from
ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly
parse the ETS6 XML files. I'll post a merge request for this over the next
few days or so.

It goes without saying, I'm more than happy to be a contributor here as
well as a user.

My second stumbling block is that, from what I can tell, the air
quality sensor I have and the associated group address for the temperature
does not have an associated KnxDatapointType value, and therefore only the
raw value is returned by the PLC4J library.  I was therefore wondering if
anyone has any insight they can share with me so that I can either
reconfigure my ETS file, or even make changes to the PLC4x code base?  I
should say that I am very happy to provide a sample ETS file, albeit for
version 6 if this would help?

Here's a small sample of the relevant KNX data sub type definition in XML
if it's of use....

   <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float
value" SizeInBit="16" PDT="PDT-5" Default="true">
        <DatapointSubtypes>
          <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
Text="temperature (°C)">
            <Format>
              <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
MaxValue="670760" />
            </Format>



Many thanks in advance

Darren

RE: A couple of questions from a PLC4X newbie. KNX related.

Posted by Christofer Dutz <ch...@c-ware.de>.
Nah … both are ok … let’s keep it at Thursday


From: Darren Everley <da...@xeropoint.co.uk>
Sent: Dienstag, 8. Februar 2022 16:46
To: Christofer Dutz <ch...@c-ware.de>
Cc: dev@plc4x.apache.org
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Oh sorry, I misread. I'm happy with Friday at the same time if that's easier for you?

On Tue, Feb 8, 2022 at 3:35 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Ok … I’ll make that work … let’s use this meeting:

https://us06web.zoom.us/j/87866264471?pwd=MEQ4bnNBSzVvZEZ5VUgxaG9Ma1BWZz09

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Dienstag, 8. Februar 2022 16:31
To: Christofer Dutz <ch...@c-ware.de>>
Cc: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Great, shall we go for 10:00 CET on Thursday then?


On Tue, Feb 8, 2022 at 3:29 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Daren,

I intentionally didn’t reply to the list, cause I wanted to make sure you were ok with it … now I’m brining it back to the list.

Thursday or Friday looks good for me … how about Friday morning or early afternoon? Some time between 10:00 and 15:00 (CET/GMT+1)?

Chris

From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Dienstag, 8. Februar 2022 16:21
To: Christofer Dutz <ch...@c-ware.de>>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I'm more than happy to have a call, I'm free almost all of this Thursday and Friday if that works for you at all?

As for sending the email to just you, i simply just pressed reply.  Looks like you might have done the same in your previous reply to me.  I'm of course happy for you to forward these emails to the mailing list.

I look forward to our discussions.

Darren


On Fri, Feb 4, 2022 at 11:39 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

first of all thanks for taking the time to dig into this stuff … you can imagine that many people like to use our stuff, but not really to help work on it. So you’re a great example of being cool :-)

Could you possibly send me a knxproj file built with ets6? I think I have some ideas on how we could address this, but I’m still waiting for my KNX Foundation contact to get back to me.

As it’s pretty late here and I’m just about to call it a day … I’d be happy to do a one-on-one video session with you. I am sure we can figure things out this way. Jusging from your email url, I would assume that you’re in a similar timezone.

I don’t know if you’re working on this in your free time or at work … As weather is going to be shitty this weekend, I’ll probably be hanging out at the computer anyway. So if you want to .. perhaps we could even do something this weekend. Otherwise over the week, even if this week is going to be a bit stuffed with appointments. But we could try and fit something in.

By the way … did you intentionally send it to me and not to the list? Cause if not, I’d love to forward things to the list … just to keep everyone informed (That’s how things work at Apache) :)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Freitag, 4. Februar 2022 23:40
To: Christofer Dutz <ch...@c-ware.de>>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I've a small update for Friday evening. And first, sorry for the length of what you are about to read....

To start with, the assumption regarding the XML namespace different for ETS5/6 was correct. Sadly it is of no use. The path to the XML files within the ETS5 and ETS6 files are different, so this is the dirty discriminator that we have to use.

Second. I'm getting close to solving the issue I have with value decoding. It seems I'm digging into the code generators a bit and it's not the easiest thing to grasp without a few pointers.  Anyway, let me give you some insight into my findings so far:

- All my issues thus far are all related to Data Types within the 9.xxx range. Primarily, the 9.001 - DPT_Value_Temp and 9.006 - DPT_Value_Pres.
- I'm referencing the spec for Data Types found here: https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
- The page of interest is Page 39, section 3.10.
- The Primary Data Type for these "2-Octet Float Value" types is PDT_KNX_FLOAT, which is as you can see different from PDT_FLOAT, as can be found on page 44, section 3.15.
- The PDT_FLOAT/3.15 values follow the IEEE encoding for floats that is already implemented
- The PDT_KNX_FLOAT/3.10 values are actually integer values offset by 100, i.e. value * 0.001.
- The method KnxNetIpProtocolLogic.processCemiData() is doing something (I've not investigated yet) with firstByte and restBytes, which is seemingly not necessary (concatenating the first the remaining bytes into a single array) and further corrupts the decoding. i.e. This operation is not required, as the remaining two bytes contain the value to be decoded.


So with this information it's easy to see that the generated decoding functions within the KnxDatapoint.java file (e.g. line 1230) do not decode to the correct file.

Furthermore, the xsl templates used to translate the knx_master.xml spreadsheet are keyed off of the sub element 'Format/Float' within the 'DatapointSubtype' elements. This is the same identifier used to capture both previously identified types of floating point values, so some are wrong.

Sadly xsl is not something i've ever learned, so am guessing really here, and that doesn't make me comfortable.

If you've the time to digest all of the above, and it makes sense, then I'd be grateful for some pointers so I can get stuck in and make this work the way it needs to.

Many thanks

Darren


On Thu, Feb 3, 2022 at 1:14 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

I would assume that the xml files have namespaces set on the root nodes … these will very likely contain the ets version they were created for. This is what I’m using for some other KNX related stuff we’re doing at mapped. This would have the benefit of not requiring the user to manually select, but it could be auto-detected.

Regarding your findings on the datatypes … this would be really helpful if we tracked down any problems here. As far as I know not many people have used the KNX drivers except me and only in my own house ;-)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 12:04
To: Christofer Dutz <ch...@c-ware.de>>
Cc: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I have joined the mailing list as requested, so hopefully you shouldn't have to moderate my messages any longer.

With regard to the Ets upgrade from 5 to 6, the only differences I can see so far are the embedded XML files have different file names than they did in v5. My approach has therefore been to remove 5 from the class names and have an additional config parameter to specify the version. I will dig a little further to see if this can be automated before submitting a merge request.

With regard to the data type problem. I have debugged the problem and found two lines in the Ets5ModelParser class which, only work for the first 26 I think data types, the hard coded ones from what I can tell, but then fail for all the types as defined within the XML. With some local changes I have made I can then make this work for my case, but it will then not work for the original 26.  I suggest once I'm happy with this locally I will push to my forked repo and you can take a look there and perhaps offer an opinion? If you'd prefer to work in a different way then I'm more than happy to discuss.

Many thanks

Darren

On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>> wrote:
HI Darren,

first of all: Welcome :-)

Regarding ETS6 support: I just learned from your email that ETS6 is available ... guess now I'll have to update ;-)
So, any input on how things have changed is indeed highly welcome. However, we need to ensure to stay compatible with ETS5 as I am sure not everyone is going to update to 6 instantly.

Regarding the datatypes: I have learned in my own KNX setup, that if you simply create a group-address and use that, some times there is no datatype assigned to that. In the past I had similar problems with this. I simply ended up ensuring that I have the datatypes configured correctly in my ETS5. Could you please double check if in ETS all group addresses are shown the same way?

Chris

PS: Could you please subscribe to this list by sending an email to dev-subscribe@plc4x.apache.org<ma...@plc4x.apache.org>? I had to moderate your email which was sort of delivered to my spam folder. Was lucky to have seen it.

-----Original Message-----
From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 01:09
To: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: A couple of questions from a PLC4X newbie. KNX related.

Hi all,

First thanks to all the contributors for the ongoing efforts with this marvelous set of libraries.

I've only just started using it (the Java version specifically), for experimentation and research initially, but hopefully something more tangible in the future.

My test case is a selection of reasonably modern ABB KNX equipment. In particular a weather station and some air quality sensors.

My first stumbling block was that I have been provided an ETS file from ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly parse the ETS6 XML files. I'll post a merge request for this over the next few days or so.

It goes without saying, I'm more than happy to be a contributor here as well as a user.

My second stumbling block is that, from what I can tell, the air quality sensor I have and the associated group address for the temperature does not have an associated KnxDatapointType value, and therefore only the raw value is returned by the PLC4J library.  I was therefore wondering if anyone has any insight they can share with me so that I can either reconfigure my ETS file, or even make changes to the PLC4x code base?  I should say that I am very happy to provide a sample ETS file, albeit for version 6 if this would help?

Here's a small sample of the relevant KNX data sub type definition in XML if it's of use....

   <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float value" SizeInBit="16" PDT="PDT-5" Default="true">
        <DatapointSubtypes>
          <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
Text="temperature (°C)">
            <Format>
              <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
MaxValue="670760" />
            </Format>



Many thanks in advance

Darren


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN

Re: A couple of questions from a PLC4X newbie. KNX related.

Posted by Darren Everley <da...@xeropoint.co.uk>.
Oh sorry, I misread. I'm happy with Friday at the same time if that's
easier for you?

On Tue, Feb 8, 2022 at 3:35 PM Christofer Dutz <ch...@c-ware.de>
wrote:

> Ok … I’ll make that work … let’s use this meeting:
>
> https://us06web.zoom.us/j/87866264471?pwd=MEQ4bnNBSzVvZEZ5VUgxaG9Ma1BWZz09
>
>
> Chris
>
>
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Dienstag, 8. Februar 2022 16:31
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Cc:* dev@plc4x.apache.org
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Great, shall we go for 10:00 CET on Thursday then?
>
>
>
>
>
> On Tue, Feb 8, 2022 at 3:29 PM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> Hi Daren,
>
>
>
> I intentionally didn’t reply to the list, cause I wanted to make sure you
> were ok with it … now I’m brining it back to the list.
>
>
>
> Thursday or Friday looks good for me … how about Friday morning or early
> afternoon? Some time between 10:00 and 15:00 (CET/GMT+1)?
>
>
>
> Chris
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Dienstag, 8. Februar 2022 16:21
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I'm more than happy to have a call, I'm free almost all of this
> Thursday and Friday if that works for you at all?
>
>
>
> As for sending the email to just you, i simply just pressed reply.  Looks
> like you might have done the same in your previous reply to me.  I'm of
> course happy for you to forward these emails to the mailing list.
>
>
>
> I look forward to our discussions.
>
>
>
> Darren
>
>
>
>
>
> On Fri, Feb 4, 2022 at 11:39 PM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> Hi Darren,
>
>
>
> first of all thanks for taking the time to dig into this stuff … you can
> imagine that many people like to use our stuff, but not really to help work
> on it. So you’re a great example of being cool :-)
>
>
>
> Could you possibly send me a knxproj file built with ets6? I think I have
> some ideas on how we could address this, but I’m still waiting for my KNX
> Foundation contact to get back to me.
>
>
>
> As it’s pretty late here and I’m just about to call it a day … I’d be
> happy to do a one-on-one video session with you. I am sure we can figure
> things out this way. Jusging from your email url, I would assume that
> you’re in a similar timezone.
>
>
>
> I don’t know if you’re working on this in your free time or at work … As
> weather is going to be shitty this weekend, I’ll probably be hanging out at
> the computer anyway. So if you want to .. perhaps we could even do
> something this weekend. Otherwise over the week, even if this week is going
> to be a bit stuffed with appointments. But we could try and fit something
> in.
>
>
>
> By the way … did you intentionally send it to me and not to the list?
> Cause if not, I’d love to forward things to the list … just to keep
> everyone informed (That’s how things work at Apache) :)
>
>
>
> Chris
>
>
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Freitag, 4. Februar 2022 23:40
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I've a small update for Friday evening. And first, sorry for the length of
> what you are about to read....
>
>
>
> To start with, the assumption regarding the XML namespace different for
> ETS5/6 was correct. Sadly it is of no use. The path to the XML files within
> the ETS5 and ETS6 files are different, so this is the dirty discriminator
> that we have to use.
>
>
>
> Second. I'm getting close to solving the issue I have with value decoding.
> It seems I'm digging into the code generators a bit and it's not the
> easiest thing to grasp without a few pointers.  Anyway, let me give you
> some insight into my findings so far:
>
>
>
> - All my issues thus far are all related to Data Types within the 9.xxx
> range. Primarily, the 9.001 - DPT_Value_Temp and 9.006 - DPT_Value_Pres.
>
> - I'm referencing the spec for Data Types found here:
> https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
>
> - The page of interest is Page 39, section 3.10.
>
> - The Primary Data Type for these "2-Octet Float Value" types is
> PDT_KNX_FLOAT, which is as you can see different from PDT_FLOAT, as can be
> found on page 44, section 3.15.
>
> - The PDT_FLOAT/3.15 values follow the IEEE encoding for floats that is
> already implemented
>
> - The PDT_KNX_FLOAT/3.10 values are actually integer values offset by 100,
> i.e. value * 0.001.
>
> - The method KnxNetIpProtocolLogic.processCemiData() is doing something
> (I've not investigated yet) with firstByte and restBytes, which is
> seemingly not necessary (concatenating the first the remaining bytes into a
> single array) and further corrupts the decoding. i.e. This operation is not
> required, as the remaining two bytes contain the value to be decoded.
>
>
>
>
>
> So with this information it's easy to see that the generated decoding
> functions within the KnxDatapoint.java file (e.g. line 1230) do not decode
> to the correct file.
>
>
>
> Furthermore, the xsl templates used to translate the knx_master.xml
> spreadsheet are keyed off of the sub element 'Format/Float' within the
> 'DatapointSubtype' elements. This is the same identifier used to capture
> both previously identified types of floating point values, so some are
> wrong.
>
>
>
> Sadly xsl is not something i've ever learned, so am guessing really here,
> and that doesn't make me comfortable.
>
>
>
> If you've the time to digest all of the above, and it makes sense, then
> I'd be grateful for some pointers so I can get stuck in and make this work
> the way it needs to.
>
>
>
> Many thanks
>
>
>
> Darren
>
>
>
>
>
> On Thu, Feb 3, 2022 at 1:14 PM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> Hi Darren,
>
>
>
> I would assume that the xml files have namespaces set on the root nodes …
> these will very likely contain the ets version they were created for. This
> is what I’m using for some other KNX related stuff we’re doing at mapped.
> This would have the benefit of not requiring the user to manually select,
> but it could be auto-detected.
>
>
>
> Regarding your findings on the datatypes … this would be really helpful if
> we tracked down any problems here. As far as I know not many people have
> used the KNX drivers except me and only in my own house ;-)
>
>
>
> Chris
>
>
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Donnerstag, 3. Februar 2022 12:04
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Cc:* dev@plc4x.apache.org
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I have joined the mailing list as requested, so hopefully you shouldn't
> have to moderate my messages any longer.
>
>
>
> With regard to the Ets upgrade from 5 to 6, the only differences I can see
> so far are the embedded XML files have different file names than they did
> in v5. My approach has therefore been to remove 5 from the class names and
> have an additional config parameter to specify the version. I will dig a
> little further to see if this can be automated before submitting a merge
> request.
>
>
>
> With regard to the data type problem. I have debugged the problem and
> found two lines in the Ets5ModelParser class which, only work for the first
> 26 I think data types, the hard coded ones from what I can tell, but then
> fail for all the types as defined within the XML. With some local changes I
> have made I can then make this work for my case, but it will then not work
> for the original 26.  I suggest once I'm happy with this locally I will
> push to my forked repo and you can take a look there and perhaps offer an
> opinion? If you'd prefer to work in a different way then I'm more than
> happy to discuss.
>
>
>
> Many thanks
>
>
>
> Darren
>
>
>
> On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> HI Darren,
>
> first of all: Welcome :-)
>
> Regarding ETS6 support: I just learned from your email that ETS6 is
> available ... guess now I'll have to update ;-)
> So, any input on how things have changed is indeed highly welcome.
> However, we need to ensure to stay compatible with ETS5 as I am sure not
> everyone is going to update to 6 instantly.
>
> Regarding the datatypes: I have learned in my own KNX setup, that if you
> simply create a group-address and use that, some times there is no datatype
> assigned to that. In the past I had similar problems with this. I simply
> ended up ensuring that I have the datatypes configured correctly in my
> ETS5. Could you please double check if in ETS all group addresses are shown
> the same way?
>
> Chris
>
> PS: Could you please subscribe to this list by sending an email to
> dev-subscribe@plc4x.apache.org? I had to moderate your email which was
> sort of delivered to my spam folder. Was lucky to have seen it.
>
> -----Original Message-----
> From: Darren Everley <da...@xeropoint.co.uk>
> Sent: Donnerstag, 3. Februar 2022 01:09
> To: dev@plc4x.apache.org
> Subject: A couple of questions from a PLC4X newbie. KNX related.
>
> Hi all,
>
> First thanks to all the contributors for the ongoing efforts with this
> marvelous set of libraries.
>
> I've only just started using it (the Java version specifically), for
> experimentation and research initially, but hopefully something more
> tangible in the future.
>
> My test case is a selection of reasonably modern ABB KNX equipment. In
> particular a weather station and some air quality sensors.
>
> My first stumbling block was that I have been provided an ETS file from
> ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly
> parse the ETS6 XML files. I'll post a merge request for this over the next
> few days or so.
>
> It goes without saying, I'm more than happy to be a contributor here as
> well as a user.
>
> My second stumbling block is that, from what I can tell, the air quality
> sensor I have and the associated group address for the temperature does not
> have an associated KnxDatapointType value, and therefore only the raw value
> is returned by the PLC4J library.  I was therefore wondering if anyone has
> any insight they can share with me so that I can either reconfigure my ETS
> file, or even make changes to the PLC4x code base?  I should say that I am
> very happy to provide a sample ETS file, albeit for version 6 if this would
> help?
>
> Here's a small sample of the relevant KNX data sub type definition in XML
> if it's of use....
>
>    <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float
> value" SizeInBit="16" PDT="PDT-5" Default="true">
>         <DatapointSubtypes>
>           <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
> Text="temperature (°C)">
>             <Format>
>               <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
> MaxValue="670760" />
>             </Format>
>
>
>
> Many thanks in advance
>
> Darren
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>


-- 
*Darren Everley - Director*

*Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *| Website:*
 www.xeropoint.co.uk
*Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
*Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN

RE: A couple of questions from a PLC4X newbie. KNX related.

Posted by Christofer Dutz <ch...@c-ware.de>.
Ok … I’ll make that work … let’s use this meeting:

https://us06web.zoom.us/j/87866264471?pwd=MEQ4bnNBSzVvZEZ5VUgxaG9Ma1BWZz09

Chris


From: Darren Everley <da...@xeropoint.co.uk>
Sent: Dienstag, 8. Februar 2022 16:31
To: Christofer Dutz <ch...@c-ware.de>
Cc: dev@plc4x.apache.org
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Great, shall we go for 10:00 CET on Thursday then?


On Tue, Feb 8, 2022 at 3:29 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Daren,

I intentionally didn’t reply to the list, cause I wanted to make sure you were ok with it … now I’m brining it back to the list.

Thursday or Friday looks good for me … how about Friday morning or early afternoon? Some time between 10:00 and 15:00 (CET/GMT+1)?

Chris

From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Dienstag, 8. Februar 2022 16:21
To: Christofer Dutz <ch...@c-ware.de>>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I'm more than happy to have a call, I'm free almost all of this Thursday and Friday if that works for you at all?

As for sending the email to just you, i simply just pressed reply.  Looks like you might have done the same in your previous reply to me.  I'm of course happy for you to forward these emails to the mailing list.

I look forward to our discussions.

Darren


On Fri, Feb 4, 2022 at 11:39 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

first of all thanks for taking the time to dig into this stuff … you can imagine that many people like to use our stuff, but not really to help work on it. So you’re a great example of being cool :-)

Could you possibly send me a knxproj file built with ets6? I think I have some ideas on how we could address this, but I’m still waiting for my KNX Foundation contact to get back to me.

As it’s pretty late here and I’m just about to call it a day … I’d be happy to do a one-on-one video session with you. I am sure we can figure things out this way. Jusging from your email url, I would assume that you’re in a similar timezone.

I don’t know if you’re working on this in your free time or at work … As weather is going to be shitty this weekend, I’ll probably be hanging out at the computer anyway. So if you want to .. perhaps we could even do something this weekend. Otherwise over the week, even if this week is going to be a bit stuffed with appointments. But we could try and fit something in.

By the way … did you intentionally send it to me and not to the list? Cause if not, I’d love to forward things to the list … just to keep everyone informed (That’s how things work at Apache) :)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Freitag, 4. Februar 2022 23:40
To: Christofer Dutz <ch...@c-ware.de>>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I've a small update for Friday evening. And first, sorry for the length of what you are about to read....

To start with, the assumption regarding the XML namespace different for ETS5/6 was correct. Sadly it is of no use. The path to the XML files within the ETS5 and ETS6 files are different, so this is the dirty discriminator that we have to use.

Second. I'm getting close to solving the issue I have with value decoding. It seems I'm digging into the code generators a bit and it's not the easiest thing to grasp without a few pointers.  Anyway, let me give you some insight into my findings so far:

- All my issues thus far are all related to Data Types within the 9.xxx range. Primarily, the 9.001 - DPT_Value_Temp and 9.006 - DPT_Value_Pres.
- I'm referencing the spec for Data Types found here: https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
- The page of interest is Page 39, section 3.10.
- The Primary Data Type for these "2-Octet Float Value" types is PDT_KNX_FLOAT, which is as you can see different from PDT_FLOAT, as can be found on page 44, section 3.15.
- The PDT_FLOAT/3.15 values follow the IEEE encoding for floats that is already implemented
- The PDT_KNX_FLOAT/3.10 values are actually integer values offset by 100, i.e. value * 0.001.
- The method KnxNetIpProtocolLogic.processCemiData() is doing something (I've not investigated yet) with firstByte and restBytes, which is seemingly not necessary (concatenating the first the remaining bytes into a single array) and further corrupts the decoding. i.e. This operation is not required, as the remaining two bytes contain the value to be decoded.


So with this information it's easy to see that the generated decoding functions within the KnxDatapoint.java file (e.g. line 1230) do not decode to the correct file.

Furthermore, the xsl templates used to translate the knx_master.xml spreadsheet are keyed off of the sub element 'Format/Float' within the 'DatapointSubtype' elements. This is the same identifier used to capture both previously identified types of floating point values, so some are wrong.

Sadly xsl is not something i've ever learned, so am guessing really here, and that doesn't make me comfortable.

If you've the time to digest all of the above, and it makes sense, then I'd be grateful for some pointers so I can get stuck in and make this work the way it needs to.

Many thanks

Darren


On Thu, Feb 3, 2022 at 1:14 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

I would assume that the xml files have namespaces set on the root nodes … these will very likely contain the ets version they were created for. This is what I’m using for some other KNX related stuff we’re doing at mapped. This would have the benefit of not requiring the user to manually select, but it could be auto-detected.

Regarding your findings on the datatypes … this would be really helpful if we tracked down any problems here. As far as I know not many people have used the KNX drivers except me and only in my own house ;-)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 12:04
To: Christofer Dutz <ch...@c-ware.de>>
Cc: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I have joined the mailing list as requested, so hopefully you shouldn't have to moderate my messages any longer.

With regard to the Ets upgrade from 5 to 6, the only differences I can see so far are the embedded XML files have different file names than they did in v5. My approach has therefore been to remove 5 from the class names and have an additional config parameter to specify the version. I will dig a little further to see if this can be automated before submitting a merge request.

With regard to the data type problem. I have debugged the problem and found two lines in the Ets5ModelParser class which, only work for the first 26 I think data types, the hard coded ones from what I can tell, but then fail for all the types as defined within the XML. With some local changes I have made I can then make this work for my case, but it will then not work for the original 26.  I suggest once I'm happy with this locally I will push to my forked repo and you can take a look there and perhaps offer an opinion? If you'd prefer to work in a different way then I'm more than happy to discuss.

Many thanks

Darren

On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>> wrote:
HI Darren,

first of all: Welcome :-)

Regarding ETS6 support: I just learned from your email that ETS6 is available ... guess now I'll have to update ;-)
So, any input on how things have changed is indeed highly welcome. However, we need to ensure to stay compatible with ETS5 as I am sure not everyone is going to update to 6 instantly.

Regarding the datatypes: I have learned in my own KNX setup, that if you simply create a group-address and use that, some times there is no datatype assigned to that. In the past I had similar problems with this. I simply ended up ensuring that I have the datatypes configured correctly in my ETS5. Could you please double check if in ETS all group addresses are shown the same way?

Chris

PS: Could you please subscribe to this list by sending an email to dev-subscribe@plc4x.apache.org<ma...@plc4x.apache.org>? I had to moderate your email which was sort of delivered to my spam folder. Was lucky to have seen it.

-----Original Message-----
From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 01:09
To: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: A couple of questions from a PLC4X newbie. KNX related.

Hi all,

First thanks to all the contributors for the ongoing efforts with this marvelous set of libraries.

I've only just started using it (the Java version specifically), for experimentation and research initially, but hopefully something more tangible in the future.

My test case is a selection of reasonably modern ABB KNX equipment. In particular a weather station and some air quality sensors.

My first stumbling block was that I have been provided an ETS file from ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly parse the ETS6 XML files. I'll post a merge request for this over the next few days or so.

It goes without saying, I'm more than happy to be a contributor here as well as a user.

My second stumbling block is that, from what I can tell, the air quality sensor I have and the associated group address for the temperature does not have an associated KnxDatapointType value, and therefore only the raw value is returned by the PLC4J library.  I was therefore wondering if anyone has any insight they can share with me so that I can either reconfigure my ETS file, or even make changes to the PLC4x code base?  I should say that I am very happy to provide a sample ETS file, albeit for version 6 if this would help?

Here's a small sample of the relevant KNX data sub type definition in XML if it's of use....

   <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float value" SizeInBit="16" PDT="PDT-5" Default="true">
        <DatapointSubtypes>
          <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
Text="temperature (°C)">
            <Format>
              <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
MaxValue="670760" />
            </Format>



Many thanks in advance

Darren


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN

Re: A couple of questions from a PLC4X newbie. KNX related.

Posted by Darren Everley <da...@xeropoint.co.uk>.
Great, shall we go for 10:00 CET on Thursday then?


On Tue, Feb 8, 2022 at 3:29 PM Christofer Dutz <ch...@c-ware.de>
wrote:

> Hi Daren,
>
>
>
> I intentionally didn’t reply to the list, cause I wanted to make sure you
> were ok with it … now I’m brining it back to the list.
>
>
>
> Thursday or Friday looks good for me … how about Friday morning or early
> afternoon? Some time between 10:00 and 15:00 (CET/GMT+1)?
>
>
>
> Chris
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Dienstag, 8. Februar 2022 16:21
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I'm more than happy to have a call, I'm free almost all of this
> Thursday and Friday if that works for you at all?
>
>
>
> As for sending the email to just you, i simply just pressed reply.  Looks
> like you might have done the same in your previous reply to me.  I'm of
> course happy for you to forward these emails to the mailing list.
>
>
>
> I look forward to our discussions.
>
>
>
> Darren
>
>
>
>
>
> On Fri, Feb 4, 2022 at 11:39 PM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> Hi Darren,
>
>
>
> first of all thanks for taking the time to dig into this stuff … you can
> imagine that many people like to use our stuff, but not really to help work
> on it. So you’re a great example of being cool :-)
>
>
>
> Could you possibly send me a knxproj file built with ets6? I think I have
> some ideas on how we could address this, but I’m still waiting for my KNX
> Foundation contact to get back to me.
>
>
>
> As it’s pretty late here and I’m just about to call it a day … I’d be
> happy to do a one-on-one video session with you. I am sure we can figure
> things out this way. Jusging from your email url, I would assume that
> you’re in a similar timezone.
>
>
>
> I don’t know if you’re working on this in your free time or at work … As
> weather is going to be shitty this weekend, I’ll probably be hanging out at
> the computer anyway. So if you want to .. perhaps we could even do
> something this weekend. Otherwise over the week, even if this week is going
> to be a bit stuffed with appointments. But we could try and fit something
> in.
>
>
>
> By the way … did you intentionally send it to me and not to the list?
> Cause if not, I’d love to forward things to the list … just to keep
> everyone informed (That’s how things work at Apache) :)
>
>
>
> Chris
>
>
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Freitag, 4. Februar 2022 23:40
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I've a small update for Friday evening. And first, sorry for the length of
> what you are about to read....
>
>
>
> To start with, the assumption regarding the XML namespace different for
> ETS5/6 was correct. Sadly it is of no use. The path to the XML files within
> the ETS5 and ETS6 files are different, so this is the dirty discriminator
> that we have to use.
>
>
>
> Second. I'm getting close to solving the issue I have with value decoding.
> It seems I'm digging into the code generators a bit and it's not the
> easiest thing to grasp without a few pointers.  Anyway, let me give you
> some insight into my findings so far:
>
>
>
> - All my issues thus far are all related to Data Types within the 9.xxx
> range. Primarily, the 9.001 - DPT_Value_Temp and 9.006 - DPT_Value_Pres.
>
> - I'm referencing the spec for Data Types found here:
> https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
>
> - The page of interest is Page 39, section 3.10.
>
> - The Primary Data Type for these "2-Octet Float Value" types is
> PDT_KNX_FLOAT, which is as you can see different from PDT_FLOAT, as can be
> found on page 44, section 3.15.
>
> - The PDT_FLOAT/3.15 values follow the IEEE encoding for floats that is
> already implemented
>
> - The PDT_KNX_FLOAT/3.10 values are actually integer values offset by 100,
> i.e. value * 0.001.
>
> - The method KnxNetIpProtocolLogic.processCemiData() is doing something
> (I've not investigated yet) with firstByte and restBytes, which is
> seemingly not necessary (concatenating the first the remaining bytes into a
> single array) and further corrupts the decoding. i.e. This operation is not
> required, as the remaining two bytes contain the value to be decoded.
>
>
>
>
>
> So with this information it's easy to see that the generated decoding
> functions within the KnxDatapoint.java file (e.g. line 1230) do not decode
> to the correct file.
>
>
>
> Furthermore, the xsl templates used to translate the knx_master.xml
> spreadsheet are keyed off of the sub element 'Format/Float' within the
> 'DatapointSubtype' elements. This is the same identifier used to capture
> both previously identified types of floating point values, so some are
> wrong.
>
>
>
> Sadly xsl is not something i've ever learned, so am guessing really here,
> and that doesn't make me comfortable.
>
>
>
> If you've the time to digest all of the above, and it makes sense, then
> I'd be grateful for some pointers so I can get stuck in and make this work
> the way it needs to.
>
>
>
> Many thanks
>
>
>
> Darren
>
>
>
>
>
> On Thu, Feb 3, 2022 at 1:14 PM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> Hi Darren,
>
>
>
> I would assume that the xml files have namespaces set on the root nodes …
> these will very likely contain the ets version they were created for. This
> is what I’m using for some other KNX related stuff we’re doing at mapped.
> This would have the benefit of not requiring the user to manually select,
> but it could be auto-detected.
>
>
>
> Regarding your findings on the datatypes … this would be really helpful if
> we tracked down any problems here. As far as I know not many people have
> used the KNX drivers except me and only in my own house ;-)
>
>
>
> Chris
>
>
>
>
>
> *From:* Darren Everley <da...@xeropoint.co.uk>
> *Sent:* Donnerstag, 3. Februar 2022 12:04
> *To:* Christofer Dutz <ch...@c-ware.de>
> *Cc:* dev@plc4x.apache.org
> *Subject:* Re: A couple of questions from a PLC4X newbie. KNX related.
>
>
>
> Hi Chris,
>
>
>
> I have joined the mailing list as requested, so hopefully you shouldn't
> have to moderate my messages any longer.
>
>
>
> With regard to the Ets upgrade from 5 to 6, the only differences I can see
> so far are the embedded XML files have different file names than they did
> in v5. My approach has therefore been to remove 5 from the class names and
> have an additional config parameter to specify the version. I will dig a
> little further to see if this can be automated before submitting a merge
> request.
>
>
>
> With regard to the data type problem. I have debugged the problem and
> found two lines in the Ets5ModelParser class which, only work for the first
> 26 I think data types, the hard coded ones from what I can tell, but then
> fail for all the types as defined within the XML. With some local changes I
> have made I can then make this work for my case, but it will then not work
> for the original 26.  I suggest once I'm happy with this locally I will
> push to my forked repo and you can take a look there and perhaps offer an
> opinion? If you'd prefer to work in a different way then I'm more than
> happy to discuss.
>
>
>
> Many thanks
>
>
>
> Darren
>
>
>
> On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> HI Darren,
>
> first of all: Welcome :-)
>
> Regarding ETS6 support: I just learned from your email that ETS6 is
> available ... guess now I'll have to update ;-)
> So, any input on how things have changed is indeed highly welcome.
> However, we need to ensure to stay compatible with ETS5 as I am sure not
> everyone is going to update to 6 instantly.
>
> Regarding the datatypes: I have learned in my own KNX setup, that if you
> simply create a group-address and use that, some times there is no datatype
> assigned to that. In the past I had similar problems with this. I simply
> ended up ensuring that I have the datatypes configured correctly in my
> ETS5. Could you please double check if in ETS all group addresses are shown
> the same way?
>
> Chris
>
> PS: Could you please subscribe to this list by sending an email to
> dev-subscribe@plc4x.apache.org? I had to moderate your email which was
> sort of delivered to my spam folder. Was lucky to have seen it.
>
> -----Original Message-----
> From: Darren Everley <da...@xeropoint.co.uk>
> Sent: Donnerstag, 3. Februar 2022 01:09
> To: dev@plc4x.apache.org
> Subject: A couple of questions from a PLC4X newbie. KNX related.
>
> Hi all,
>
> First thanks to all the contributors for the ongoing efforts with this
> marvelous set of libraries.
>
> I've only just started using it (the Java version specifically), for
> experimentation and research initially, but hopefully something more
> tangible in the future.
>
> My test case is a selection of reasonably modern ABB KNX equipment. In
> particular a weather station and some air quality sensors.
>
> My first stumbling block was that I have been provided an ETS file from
> ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly
> parse the ETS6 XML files. I'll post a merge request for this over the next
> few days or so.
>
> It goes without saying, I'm more than happy to be a contributor here as
> well as a user.
>
> My second stumbling block is that, from what I can tell, the air quality
> sensor I have and the associated group address for the temperature does not
> have an associated KnxDatapointType value, and therefore only the raw value
> is returned by the PLC4J library.  I was therefore wondering if anyone has
> any insight they can share with me so that I can either reconfigure my ETS
> file, or even make changes to the PLC4x code base?  I should say that I am
> very happy to provide a sample ETS file, albeit for version 6 if this would
> help?
>
> Here's a small sample of the relevant KNX data sub type definition in XML
> if it's of use....
>
>    <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float
> value" SizeInBit="16" PDT="PDT-5" Default="true">
>         <DatapointSubtypes>
>           <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
> Text="temperature (°C)">
>             <Format>
>               <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
> MaxValue="670760" />
>             </Format>
>
>
>
> Many thanks in advance
>
> Darren
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>
>
>
>
> --
>
> *Darren Everley - Director*
>
> *Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *|
> Website:* www.xeropoint.co.uk
>
> *Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
>
> *Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN
>


-- 
*Darren Everley - Director*

*Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *| Website:*
 www.xeropoint.co.uk
*Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
*Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN

RE: A couple of questions from a PLC4X newbie. KNX related.

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Daren,

I intentionally didn't reply to the list, cause I wanted to make sure you were ok with it ... now I'm brining it back to the list.

Thursday or Friday looks good for me ... how about Friday morning or early afternoon? Some time between 10:00 and 15:00 (CET/GMT+1)?

Chris

From: Darren Everley <da...@xeropoint.co.uk>
Sent: Dienstag, 8. Februar 2022 16:21
To: Christofer Dutz <ch...@c-ware.de>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I'm more than happy to have a call, I'm free almost all of this Thursday and Friday if that works for you at all?

As for sending the email to just you, i simply just pressed reply.  Looks like you might have done the same in your previous reply to me.  I'm of course happy for you to forward these emails to the mailing list.

I look forward to our discussions.

Darren


On Fri, Feb 4, 2022 at 11:39 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

first of all thanks for taking the time to dig into this stuff ... you can imagine that many people like to use our stuff, but not really to help work on it. So you're a great example of being cool :-)

Could you possibly send me a knxproj file built with ets6? I think I have some ideas on how we could address this, but I'm still waiting for my KNX Foundation contact to get back to me.

As it's pretty late here and I'm just about to call it a day ... I'd be happy to do a one-on-one video session with you. I am sure we can figure things out this way. Jusging from your email url, I would assume that you're in a similar timezone.

I don't know if you're working on this in your free time or at work ... As weather is going to be shitty this weekend, I'll probably be hanging out at the computer anyway. So if you want to .. perhaps we could even do something this weekend. Otherwise over the week, even if this week is going to be a bit stuffed with appointments. But we could try and fit something in.

By the way ... did you intentionally send it to me and not to the list? Cause if not, I'd love to forward things to the list ... just to keep everyone informed (That's how things work at Apache) :)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Freitag, 4. Februar 2022 23:40
To: Christofer Dutz <ch...@c-ware.de>>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I've a small update for Friday evening. And first, sorry for the length of what you are about to read....

To start with, the assumption regarding the XML namespace different for ETS5/6 was correct. Sadly it is of no use. The path to the XML files within the ETS5 and ETS6 files are different, so this is the dirty discriminator that we have to use.

Second. I'm getting close to solving the issue I have with value decoding. It seems I'm digging into the code generators a bit and it's not the easiest thing to grasp without a few pointers.  Anyway, let me give you some insight into my findings so far:

- All my issues thus far are all related to Data Types within the 9.xxx range. Primarily, the 9.001 - DPT_Value_Temp and 9.006 - DPT_Value_Pres.
- I'm referencing the spec for Data Types found here: https://www.knx.org/wAssets/docs/downloads/Certification/Interworking-Datapoint-types/03_07_02-Datapoint-Types-v02.02.01-AS.pdf
- The page of interest is Page 39, section 3.10.
- The Primary Data Type for these "2-Octet Float Value" types is PDT_KNX_FLOAT, which is as you can see different from PDT_FLOAT, as can be found on page 44, section 3.15.
- The PDT_FLOAT/3.15 values follow the IEEE encoding for floats that is already implemented
- The PDT_KNX_FLOAT/3.10 values are actually integer values offset by 100, i.e. value * 0.001.
- The method KnxNetIpProtocolLogic.processCemiData() is doing something (I've not investigated yet) with firstByte and restBytes, which is seemingly not necessary (concatenating the first the remaining bytes into a single array) and further corrupts the decoding. i.e. This operation is not required, as the remaining two bytes contain the value to be decoded.


So with this information it's easy to see that the generated decoding functions within the KnxDatapoint.java file (e.g. line 1230) do not decode to the correct file.

Furthermore, the xsl templates used to translate the knx_master.xml spreadsheet are keyed off of the sub element 'Format/Float' within the 'DatapointSubtype' elements. This is the same identifier used to capture both previously identified types of floating point values, so some are wrong.

Sadly xsl is not something i've ever learned, so am guessing really here, and that doesn't make me comfortable.

If you've the time to digest all of the above, and it makes sense, then I'd be grateful for some pointers so I can get stuck in and make this work the way it needs to.

Many thanks

Darren


On Thu, Feb 3, 2022 at 1:14 PM Christofer Dutz <ch...@c-ware.de>> wrote:
Hi Darren,

I would assume that the xml files have namespaces set on the root nodes ... these will very likely contain the ets version they were created for. This is what I'm using for some other KNX related stuff we're doing at mapped. This would have the benefit of not requiring the user to manually select, but it could be auto-detected.

Regarding your findings on the datatypes ... this would be really helpful if we tracked down any problems here. As far as I know not many people have used the KNX drivers except me and only in my own house ;-)

Chris


From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 12:04
To: Christofer Dutz <ch...@c-ware.de>>
Cc: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: Re: A couple of questions from a PLC4X newbie. KNX related.

Hi Chris,

I have joined the mailing list as requested, so hopefully you shouldn't have to moderate my messages any longer.

With regard to the Ets upgrade from 5 to 6, the only differences I can see so far are the embedded XML files have different file names than they did in v5. My approach has therefore been to remove 5 from the class names and have an additional config parameter to specify the version. I will dig a little further to see if this can be automated before submitting a merge request.

With regard to the data type problem. I have debugged the problem and found two lines in the Ets5ModelParser class which, only work for the first 26 I think data types, the hard coded ones from what I can tell, but then fail for all the types as defined within the XML. With some local changes I have made I can then make this work for my case, but it will then not work for the original 26.  I suggest once I'm happy with this locally I will push to my forked repo and you can take a look there and perhaps offer an opinion? If you'd prefer to work in a different way then I'm more than happy to discuss.

Many thanks

Darren

On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>> wrote:
HI Darren,

first of all: Welcome :-)

Regarding ETS6 support: I just learned from your email that ETS6 is available ... guess now I'll have to update ;-)
So, any input on how things have changed is indeed highly welcome. However, we need to ensure to stay compatible with ETS5 as I am sure not everyone is going to update to 6 instantly.

Regarding the datatypes: I have learned in my own KNX setup, that if you simply create a group-address and use that, some times there is no datatype assigned to that. In the past I had similar problems with this. I simply ended up ensuring that I have the datatypes configured correctly in my ETS5. Could you please double check if in ETS all group addresses are shown the same way?

Chris

PS: Could you please subscribe to this list by sending an email to dev-subscribe@plc4x.apache.org<ma...@plc4x.apache.org>? I had to moderate your email which was sort of delivered to my spam folder. Was lucky to have seen it.

-----Original Message-----
From: Darren Everley <da...@xeropoint.co.uk>>
Sent: Donnerstag, 3. Februar 2022 01:09
To: dev@plc4x.apache.org<ma...@plc4x.apache.org>
Subject: A couple of questions from a PLC4X newbie. KNX related.

Hi all,

First thanks to all the contributors for the ongoing efforts with this marvelous set of libraries.

I've only just started using it (the Java version specifically), for experimentation and research initially, but hopefully something more tangible in the future.

My test case is a selection of reasonably modern ABB KNX equipment. In particular a weather station and some air quality sensors.

My first stumbling block was that I have been provided an ETS file from ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly parse the ETS6 XML files. I'll post a merge request for this over the next few days or so.

It goes without saying, I'm more than happy to be a contributor here as well as a user.

My second stumbling block is that, from what I can tell, the air quality sensor I have and the associated group address for the temperature does not have an associated KnxDatapointType value, and therefore only the raw value is returned by the PLC4J library.  I was therefore wondering if anyone has any insight they can share with me so that I can either reconfigure my ETS file, or even make changes to the PLC4x code base?  I should say that I am very happy to provide a sample ETS file, albeit for version 6 if this would help?

Here's a small sample of the relevant KNX data sub type definition in XML if it's of use....

   <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float value" SizeInBit="16" PDT="PDT-5" Default="true">
        <DatapointSubtypes>
          <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
Text="temperature (°C)">
            <Format>
              <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
MaxValue="670760" />
            </Format>



Many thanks in advance

Darren


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN


--
Darren Everley - Director
[https://drive.google.com/a/xeropoint.co.uk/uc?id=1Jk5fuTk5Kyzf3eJkM8P-lnQeory9ZUHy&export=download]
Email: darren.everley@xeropoint.co.uk<ma...@xeropoint.co.uk> | Mobile: 07891405262 | Website: www.xeropoint.co.uk<https://www.xeropoint.co.uk/>
Company: Xeropoint Ltd. Registered in England and Wales. 11101907
Address: Henleaze House, Harbury Road, Bristol, BS9 4PN

Re: A couple of questions from a PLC4X newbie. KNX related.

Posted by Darren Everley <da...@xeropoint.co.uk>.
Hi Chris,

I have joined the mailing list as requested, so hopefully you shouldn't
have to moderate my messages any longer.

With regard to the Ets upgrade from 5 to 6, the only differences I can see
so far are the embedded XML files have different file names than they did
in v5. My approach has therefore been to remove 5 from the class names and
have an additional config parameter to specify the version. I will dig a
little further to see if this can be automated before submitting a merge
request.

With regard to the data type problem. I have debugged the problem and found
two lines in the Ets5ModelParser class which, only work for the first 26 I
think data types, the hard coded ones from what I can tell, but then fail
for all the types as defined within the XML. With some local changes I have
made I can then make this work for my case, but it will then not work for
the original 26.  I suggest once I'm happy with this locally I will push to
my forked repo and you can take a look there and perhaps offer an opinion?
If you'd prefer to work in a different way then I'm more than happy to
discuss.

Many thanks

Darren

On Thu, Feb 3, 2022 at 8:31 AM Christofer Dutz <ch...@c-ware.de>
wrote:

> HI Darren,
>
> first of all: Welcome :-)
>
> Regarding ETS6 support: I just learned from your email that ETS6 is
> available ... guess now I'll have to update ;-)
> So, any input on how things have changed is indeed highly welcome.
> However, we need to ensure to stay compatible with ETS5 as I am sure not
> everyone is going to update to 6 instantly.
>
> Regarding the datatypes: I have learned in my own KNX setup, that if you
> simply create a group-address and use that, some times there is no datatype
> assigned to that. In the past I had similar problems with this. I simply
> ended up ensuring that I have the datatypes configured correctly in my
> ETS5. Could you please double check if in ETS all group addresses are shown
> the same way?
>
> Chris
>
> PS: Could you please subscribe to this list by sending an email to
> dev-subscribe@plc4x.apache.org? I had to moderate your email which was
> sort of delivered to my spam folder. Was lucky to have seen it.
>
> -----Original Message-----
> From: Darren Everley <da...@xeropoint.co.uk>
> Sent: Donnerstag, 3. Februar 2022 01:09
> To: dev@plc4x.apache.org
> Subject: A couple of questions from a PLC4X newbie. KNX related.
>
> Hi all,
>
> First thanks to all the contributors for the ongoing efforts with this
> marvelous set of libraries.
>
> I've only just started using it (the Java version specifically), for
> experimentation and research initially, but hopefully something more
> tangible in the future.
>
> My test case is a selection of reasonably modern ABB KNX equipment. In
> particular a weather station and some air quality sensors.
>
> My first stumbling block was that I have been provided an ETS file from
> ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly
> parse the ETS6 XML files. I'll post a merge request for this over the next
> few days or so.
>
> It goes without saying, I'm more than happy to be a contributor here as
> well as a user.
>
> My second stumbling block is that, from what I can tell, the air quality
> sensor I have and the associated group address for the temperature does not
> have an associated KnxDatapointType value, and therefore only the raw value
> is returned by the PLC4J library.  I was therefore wondering if anyone has
> any insight they can share with me so that I can either reconfigure my ETS
> file, or even make changes to the PLC4x code base?  I should say that I am
> very happy to provide a sample ETS file, albeit for version 6 if this would
> help?
>
> Here's a small sample of the relevant KNX data sub type definition in XML
> if it's of use....
>
>    <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float
> value" SizeInBit="16" PDT="PDT-5" Default="true">
>         <DatapointSubtypes>
>           <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
> Text="temperature (°C)">
>             <Format>
>               <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
> MaxValue="670760" />
>             </Format>
>
>
>
> Many thanks in advance
>
> Darren
>


-- 
*Darren Everley - Director*

*Email: *darren.everley@xeropoint.co.uk *| Mobile:* 07891405262 *| Website:*
 www.xeropoint.co.uk
*Company: *Xeropoint Ltd. Registered in England and Wales. 11101907
*Address:* Henleaze House, Harbury Road, Bristol, BS9 4PN

RE: A couple of questions from a PLC4X newbie. KNX related.

Posted by Christofer Dutz <ch...@c-ware.de>.
HI Darren,

first of all: Welcome :-)

Regarding ETS6 support: I just learned from your email that ETS6 is available ... guess now I'll have to update ;-)
So, any input on how things have changed is indeed highly welcome. However, we need to ensure to stay compatible with ETS5 as I am sure not everyone is going to update to 6 instantly. 

Regarding the datatypes: I have learned in my own KNX setup, that if you simply create a group-address and use that, some times there is no datatype assigned to that. In the past I had similar problems with this. I simply ended up ensuring that I have the datatypes configured correctly in my ETS5. Could you please double check if in ETS all group addresses are shown the same way?

Chris

PS: Could you please subscribe to this list by sending an email to dev-subscribe@plc4x.apache.org? I had to moderate your email which was sort of delivered to my spam folder. Was lucky to have seen it. 

-----Original Message-----
From: Darren Everley <da...@xeropoint.co.uk> 
Sent: Donnerstag, 3. Februar 2022 01:09
To: dev@plc4x.apache.org
Subject: A couple of questions from a PLC4X newbie. KNX related.

Hi all,

First thanks to all the contributors for the ongoing efforts with this marvelous set of libraries.

I've only just started using it (the Java version specifically), for experimentation and research initially, but hopefully something more tangible in the future.

My test case is a selection of reasonably modern ABB KNX equipment. In particular a weather station and some air quality sensors.

My first stumbling block was that I have been provided an ETS file from ETS6, not ETS5. So I've modified my local copy of PLC4J to now correctly parse the ETS6 XML files. I'll post a merge request for this over the next few days or so.

It goes without saying, I'm more than happy to be a contributor here as well as a user.

My second stumbling block is that, from what I can tell, the air quality sensor I have and the associated group address for the temperature does not have an associated KnxDatapointType value, and therefore only the raw value is returned by the PLC4J library.  I was therefore wondering if anyone has any insight they can share with me so that I can either reconfigure my ETS file, or even make changes to the PLC4x code base?  I should say that I am very happy to provide a sample ETS file, albeit for version 6 if this would help?

Here's a small sample of the relevant KNX data sub type definition in XML if it's of use....

   <DatapointType Id="DPT-9" Number="9" Name="9.xxx" Text="2-byte float value" SizeInBit="16" PDT="PDT-5" Default="true">
        <DatapointSubtypes>
          <DatapointSubtype Id="DPST-9-1" Number="1" Name="DPT_Value_Temp"
Text="temperature (°C)">
            <Format>
              <Float Id="DPST-9-1_F-1" Width="16" Unit="°C" MinValue="-273"
MaxValue="670760" />
            </Format>



Many thanks in advance

Darren