We have moved at community.getvera.com

Author Topic: Howto read temperature values with more decimal places  (Read 27231 times)

Offline hlstaermose

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
Howto read temperature values with more decimal places
« on: April 01, 2011, 11:05:16 am »
Does anyone know how to read values from sensors with more decimal places like 20.1; 20.2 ...?

I am using the vera2 as a platform for logging temperature values from different rooms in my house using Everspring ST814 and the ES 861 temperature sensors from LS Control.

Using the following luup call:
current_temp   = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",devnum)

I am only able to read absolute/integer values like 20; 21;....

As the ST814 is able to display tenths of degrees in the LCD display and I know by talking to the vendor of ES 861 that this will report temperatures with decimals, how can this be done on the vera2?

The capabilities of the two sensors are:

ST 814:
Capabilities: 82,156,0,4,33,1|32,49,96:2,112,114,128,132:2,133,134,
Nodeinfo: 20,31,60,70,72,80,84,85,86,

ES 861:
Capabilities 81,140,0,4,33,1|49,112,114,128,132:1,133,134,
Nodeinfo: 31,70,72,80,84,85,86,

FW version: 1.1.1047

Offline Ap15e

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1998
  • Karma: +12/-0
Re: Howto read temperature values with more decimal places
« Reply #1 on: April 01, 2011, 03:39:05 pm »
Even if Vera would support reading values with more decimal places, it wouldn't be possible to create events 'Temperature goes above/below' that take into account the decimal places:

http://bugs.micasaverde.com/view.php?id=1444


Offline hlstaermose

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #2 on: April 03, 2011, 08:46:10 am »
I am fully aware of the mentioned bug-report.

However, I do not need to use events, I only want to be able to read and log the temperature levels with more decimal places on a local server, to track smal temperature changes.

Therefore I am interested in finding out whether someone knows whether it can be done without going low-level.

Thanks.

Offline Ap15e

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1998
  • Karma: +12/-0
Re: Howto read temperature values with more decimal places
« Reply #3 on: April 03, 2011, 09:43:00 am »
CurrentTemperature is declared as i4, so you would have to go low level (e.g., parsing the Z-Wave communication).

You could try changing i4 to float or string in S_TemperatureSensor1.xml, but I doubt that would work.

Offline huogas

  • Sr. Member
  • ****
  • Posts: 301
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #4 on: April 03, 2011, 09:52:47 am »
Vera2 UI4(1.1.1245/3.2), Kwikset x1, HM-DW001 x1, ZRP100 x1, HA-04WD x1, ZDP100 x6, HSM100 x2, VRI06-1LX x8, ZW5301 x1, HM-FS001 x2, ZRW103W x1, GE 45606 x2, HA05C x1, TED5000 x1

Offline kernixski

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #5 on: November 11, 2011, 01:08:49 pm »
Something new about this "problem" ?  There is a way to get the a decimal temperature with LUUP ?

Offline Chris

  • Hero Member
  • *****
  • Posts: 821
  • Karma: +3/-0
Re: Howto read temperature values with more decimal places
« Reply #6 on: November 12, 2011, 09:09:04 am »
I raised this with MCV a month or two back when I first got my Vera. 1 deg resolution is pretty poor when the device supports more. I've also raised a bug/enhancement specifically on this point as the one Ap15e points out is slightly different.

My intention had been to use a number of the ST814 Z-Wave temp/humidity sensors, but I've currently given up on this and have started using one wire sensors. A company called EDS makes a temp/humidity sensor and an ethernet bridge, and I've written a plugin for this (see http://forum.micasaverde.com/index.php/topic,8381.0.html). The one wire sensors support fine resolution, and in the plugin I reduce the data to a resolution of 0.1deg - it works great and you can have up to 24 devices with the OWServer.

It's not ideal, but as I suspect MCV aren't going to change the low level code to support 0.1 deg any time soon (I hope I'm proven wrong - hint-hint!) by going down this route I've managed to get the functionality I want by other means (which I have a lot more control over).  You're still limited to 1 degree events though as pointed out by Ap15e.

Offline kernixski

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #7 on: November 13, 2011, 07:59:37 am »
Thank you for your reply Chris.  I just configured my Vera to use fahrenheit instead of celcius.  I have now an half degree celcius precision.  Not perfect, but almost usable. :)
« Last Edit: November 20, 2011, 06:20:33 am by kernixski »

Offline lv

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #8 on: November 26, 2012, 03:13:42 pm »
Just bought a ST814 myself, should have read the forum first...

Although the device works well indeed only whole (rounded) degrees are reported!

Shouldn't such an old and important issue be fixed by now? It seems there has not been any firmware upgrades for a long time - what is happening at Vera development?

If you cannot handle floating point event values, why not remove the ' divide by 10 ' in the zwave device code and report temperatures in 10th of degree integers?

The device reports the temperature as a 2 byte integer value in 10th of degrees, e.g. 195 is 19.5 degrees, vera's / mios code divides this by 10 and rounds it to an integer value to make it centigrades, losing all precision in the process!

At least give me access to the original or 10x temperature value with the full precision so I can log or poll the temperature and control my room temperature more accurately for example!

(and it must be quite easy to show the decimal point in the right place on the gui display... , if not I still rather see '195' than '20')

 [reading the ST814 device's manual: the device reports the temperature in 2 sensor values , and to calculate the temperature Temperature(C) = (Sensor Value 1 * 256 + Sensor Value 2 ) /10. ]

I'm shocked, disappointed, upset,...,.. by the lack of response from Vera to such incredibly crucial, basic, fundamental issues as those. Since early 2011 there are reports in the forum and tickets raised and ABSOLUTELY nothing is fixed ever!  >:(

I even completely stopped opening tickets with vera support as they are generally not helpful, give absolutely no real solutions and report your case 'resolved' / 'closed' after 2 or 3 weeks without contacting you back!

Is there ANY WAY to customise the code on the vera box ourselves somehow to get access to the full precision temperature? I still don't fully understand the components of the mios/vera box but I suspect that there's a binary (/usr/bin/LuaUPnP) that has hardcoded knowledge of a bunch of pre-cooked zwave classes and forwards the received information to the rest of mios code handling events and GUI display... so it's probably not possible to get to the temperature sensor value before it's converted to integer? Why are the original values not accessible in luup code for example? That would still enable a lot of workaround solutions.

Any suggestions would be helpful, best would be to have the source code to analyse - I'm about ready to disassemble the code and debug the zwave serial traffic to find a solution...

An official answer from 'vera' would be appreciated as well as I'm severly loosing faith in this company, its products and its support!!!
. . .

Offline Nock

  • Newbie
  • *
  • Posts: 1
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #9 on: December 11, 2012, 04:26:55 am »
I agree with lv. My idea and the reason I bought the Vera got totally useless by the fact its not supporting decimals.

I have been checking updates for more than a year without any updates on this issue. Is there any forecast when decimals can be expected to be supported (or there is a possible work-around available)?




Offline dali

  • Sr. Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #10 on: July 12, 2013, 11:56:43 pm »
I sent an email to support@micasaverde.com regarding this issue (and referencing bug 1817). The response I got was alot worse then I had expected:
Quote
Our development team has analyzed this feature request and have decided not to implement it because there's a very high chance to break other working z-wave devices. At the moment there are over 700 certified z-wave devices and we try to support as many as possible and sometimes this means we have to do small compromises.
Sorry for this inconvenience.

I got very upset and sent them this reply:
Quote
This is NOT an acceptable response, and it's making me very upset!

First of all, this is not a feature request. This is regarding a bug, which was caused by MCV implementing temperature sensors the wrong way.
UPNP standard clearly states that temperature sensor values should be stored in .01 degrees centigrade, not in whole degrees.
Temperature values in whole degrees are completely useless when using it to do logical comparisons. One example is if I want to use temperature values to control my outdoor pool. The difference between 20 deg C and 21 deg C is to big!

Secondly, fixing this bug (and yes, it IS a bug) will not "break other working z-wave devices" if you fix the code. Sure, people would have to rewrite their lua code in scenes, but I'm convinced that they would gladly do that if it meant that they would get temperature values that are useful.

Thirdly, saying that this is a small compromise is quite ignorant. I have paid for a working z-wave controller, and I expect MCV to fix the bugs.

Lastly, why isn't anyone from MCV responding to questions directed to you in the forums? You need to have a dialogue with the users, otherwise people get tired of the lack of response and gives up.


I'm close to giving up... MCV doesn't seem willing to fix their bugs.

Offline Z-Waver

  • Master Member
  • *******
  • Posts: 4437
  • Karma: +249/-120
Re: Howto read temperature values with more decimal places
« Reply #11 on: July 13, 2013, 08:33:31 am »
@dali - I would say to "give up" rather than frustrating yourself further. IMHO, there are numerous longstanding issues that affect more people, devices, and functionality than decimal precision in temperature readings.

If you find a better product, please come back and let us know about it. We'd all be interested in that.


Offline parkerc

  • Beta Testers
  • Sr. Hero Member
  • *****
  • Posts: 2479
  • Karma: +35/-48
  • Life Moves Pretty Fast....
Re: Howto read temperature values with more decimal places
« Reply #12 on: July 13, 2013, 09:38:52 am »
Hi @dali

I feel your pain,  but z-waver is right there is a long list of items that need addressing and this sadly will keep slipping down the list.

If you did want to see the decimal point on Vera, you would need to looks at something like the RFXrtx433 plugin and invest in some Oregon Scientific sensors.

For me this set up actually works much better than the Zwave devices i have and can work out cheaper too.

Offline dali

  • Sr. Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #13 on: July 17, 2013, 10:55:34 am »
@Z-Waver; I'm not going to give up. We need to make MCV understand that it's not an acceptable behavior. I know that many have tried before. But some day , when they go belly-up because they can no longer sell a product that they don't support, they will probably get the message.

And it doesn't matter if there are issues that affect more people, this issue makes the Vera unusable for me and other people.

Offline dali

  • Sr. Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
Re: Howto read temperature values with more decimal places
« Reply #14 on: July 17, 2013, 11:02:49 am »
@parkerc; An RFXtrx would probably do the thing. But I don't want to use one-way-communication devices. I want to use the Fibaro universal sensor, and I would have been able to if MCV had done things right.

By the way. The fact that the RFXtrx plugin can set up temperature sensors as standard temperature sensors in vera only proves that MCV should be able to fix this without the risk of "breaking other working z-wave devices" as they said to me in their email response.
But who am I kidding? It's not like they care, right? Or even bother to read in the forums... :-(