This page last changed on Feb 15, 2012 by mb.
I created a KNX command with DPT 9.001 and command "status".
Then used a custom sensor with the value eg. "21.1" as string.
It works fine if temperature is over 0° but when the temp goes down
it write me a wrong value.
From the ETS3, reading the BUS, the value is correct -2.0
we live in Italian riviera... rarely the temp goes down under 0°
So just wait for a few days, and the nature will solve your issue
Posted by yannph at Feb 15, 2012 10:05
already solved today is 11° C
Posted by mb at Feb 15, 2012 11:37
When the real value in ETS was "-2.0" what did OR say?
Posted by mredeker at Feb 16, 2012 08:51
I have the same problem (Sweden is also cold this time of the year )
Here are some values that I got out of OR.
Posted by kenta at Feb 17, 2012 15:40
Please try the latest dev snapshot: http://sourceforge.net/projects/openremote/files/For%20Developers/OpenRemote-Controller-2.0.0_SNAPSHOT_20120103.zip/download
Posted by mredeker at Feb 17, 2012 21:48
Thank you Marcus.
I've already tried that version. Unfortunately, no difference except that I get rounding to single digit decimals, (which is good).
Posted by kenta at Feb 17, 2012 23:17
Thanks, that's helpful.
Looks like it might be a two's complement issue on negative values in mantissa (the values are basically running in reverse).
Posted by juha at Feb 18, 2012 07:46
Hi again Marcus,
I'm not any programmer, but to me it looks like you have missed to perform "two's complement notation" (invert the M-bits and add 1).
I also have a question / wish, the Data Point Type 13.xxx is that anything you will introduce in the near future? My energy meters and actuators with current measurement are using the DPT. 13.xxx and it would be really nice to be able to monitor the house energy and power consumption through OR.
The PDF "03_07_02 Datapoint Types v1.5.00 AS.PDF" says.
-> 3.10 Datapoint Types "2-Octet Float Value"
-> Format: 2 octets: F16
-> octet nr 2 MSB 1 LSB
-> MEEEEMMM MMMMMMMMM
->Encoding: FloatValue = (0,01*M)*2(E)
->E = 0 ... 15
->M = \-2 048 ... 2 047, two's complement notation
->For all Datapoint Types 9.xxx, the encoded value 7FFFh shall always be used to denote invalid data.
->Range: \-671 088,64 ... 670 760,96
I hope you understand my English
Posted by kenta at Feb 18, 2012 07:47
I was too slow
Posted by kenta at Feb 18, 2012 07:49
Sorry, my question / wish was not regarding DPT 13.xxx, I meant DPT 14.xxx
Posted by kenta at Feb 18, 2012 22:32
slightly off topic, how can i get the temp value displayed in decimals? (I am using dtp 9.001)
Posted by bassie01 at Feb 19, 2012 22:47
Create a KNX command "status" with dpt 9.001 and the group address of your temp device.
That command you bind to a custom sensor and you can use a label which will display the value of that sensor.
Posted by mredeker at Feb 19, 2012 23:23
Can you please try the attached patch to see how it impacts the output?
It's a drop in replacement to OpenRemote-Controller/webapps/controller/WEB-INF/org/openremote/controller/protocol/knx/datatype/TwoOctetFloat.class
Thanks for reporting this bug,
Posted by juha at Mar 06, 2012 20:09
I've tried (almost) all values between -273 and 670 760 and all work perfectly.
Thank you very much Juha!
Posted by kenta at Mar 07, 2012 07:27
I'll add DPT 14.xxx on the to-do list next time I touch controller/KNX code.
Posted by juha at Mar 16, 2012 17:52
I really appreciate it.
Posted by kenta at Mar 19, 2012 08:53