Jump to content

Copying temperature from a Multisensor 6 to an ISY variable?


Broyd

Recommended Posts

Posted

Is there any way to copy the temperature value from a Z-Wave Multisensor 6 into an user accessible ISY variable (integer)? (raw doesn't matter).

 

You can see this raw data in the event viewer on  level 3 when the MS6 transmitts the temperature to the ISY. The temperature value is displayed on the Multisensor panel when displayed in the admin console or on the WEB udajax screen from a browser.

 

The MS6 sensor variable reference is: ${sys.node.ZW006_1.CLITEMP.raw}

 

I am at ISY version 4.5.4. I have the network module.

 

Any insights into this will be appreciated :)

 

 

Posted (edited)

Is there any way to copy the temperature value from a Z-Wave Multisensor 6 into an user accessible ISY variable (integer)? (raw doesn't matter).

 

You can see this raw data in the event viewer on  level 3 when the MS6 transmitts the temperature to the ISY. The temperature value is displayed on the Multisensor panel when displayed in the admin console or on the WEB udajax screen from a browser.

 

The MS6 sensor variable reference is: ${sys.node.ZW006_1.CLITEMP.raw}

 

I am at ISY version 4.5.4. I have the network module.

 

Any insights into this will be appreciated :)

If this device acts as any supported Insteon or Zwave device, it has a status page, and programs can be written and triggered by almost any parameter on that device page.

Then it is only a case of dedicating a memory location, and writing a program to trigger on any change of value pf this parameter.

 

If

....Multi.sensor >= 0 /reasonable low limit

AND

....Multi.sensor <=99

 

Then

....$Variable = Multi.sensor /reasonable upper limit

 

Else

...send notification to YOU  Multi.sensor is ridiculous

 

Hint: If you want to trigger further programs on the end result you will require the usage of a Status Variable

.Now you will need an Integer variable also for the intermediate value, so that you don't rigger programs twice and on the false value.

 

Then

....$iVariable = Multi.sensor

....$iVariable *= 1.8

....$iVariable += 32.0

...$sVariable  = $iVariable

Edited by larryllix
Posted

Thanks larryllix,

 

I was hoping to be able to grab the actual temperature sensor value and store that in a variable.

For example, if the temperature reading is 71.20°F, the raw value seen in the event viewer is 7120; I'd like to get 7120 into a variable, along the lines of ... or ... this is what I'd effectively like to do.

 

$iVariable = ${sys.node.ZW006_1.CLITEMP.raw}

 

If some sort of testing loop is required, maybe I'll give up on the idea :).

Posted (edited)

Thanks larryllix,

I was hoping to be able to grab the actual temperature sensor value and store that in a variable.

For example, if the temperature reading is 71.20°F, the raw value seen in the event viewer is 7120; I'd like to get 7120 into a variable, along the lines of ... or ... this is what I'd effectively like to do.

$iVariable = ${sys.node.ZW006_1.CLITEMP.raw}

If some sort of testing loop is required, maybe I'll give up on the idea :).

Wrong syntax and technique for programs. See my post again. It will do exactly what you want. Edited by larryllix
Posted (edited)

Larry, you are quite frustrating!   There are good reasons to want to have the temperature in a variable, for example if you want a program that only runs if one room is more than 10 degrees warmer than the others.
 

I was hoping to be able to grab the actual temperature sensor value and store that in a variable.
For example, if the temperature reading is 71.20°F, the raw value seen in the event viewer is 7120; I'd like to get 7120 into a variable, along the lines of ... or ... this is what I'd effectively like to do.
$iVariable = ${sys.node.ZW006_1.CLITEMP.raw}

 

Broyd, what you are asking may be doable  the Network Module if your device reports the raw temperature as an integer variable.  For example, my Aeotec shows RAW as "66.40" so it doesn't work to store in a variable, but my Honeywell thermostat reports "67", no non-integer characters.

 

The trick is to use this integer to update a variable by making a REST call from the ISY back to itself (don't use 127.0.0.1, use your intranet IP).  You create a network resource that looks kind of like this (you'll need to supply the hostname, node, and your ISY's username and password):
post-2758-0-55308700-1496240585.pngpost-2758-0-55308700-1496240585_thumb.png
You'll need a program which sporadically calls this network resource so the value gets updated on a regular basis.
 
This does not require V5, the screenshot above is from V4.5.4 and works fine for any device where the .RAW is a pure integer value.

Edited by KeviNH
Posted (edited)

Larry, you are quite frustrating! There are good reasons to want to have the temperature in a variable, for example if you want a program that only runs if one room is more than 10 degrees warmer than the others.

<snipped>

This does not require V5, the screenshot above is from V4.5.4 and works fine for any device where the .RAW is a pure integer value.

Ad hominem comment?

 

I don't know what you are going on about.

If you would search the forums, you would find I have posted about a dozen different programs, attempting to teach others techniques, for getting and using temperatures into variables, including averaging three different sensors with outliers being disallowed from the formula, You don't need to preach to me about the value of getting temperatures into variables and your comment in bold seemed very out of context here.

 

Regardless, I had forgoetten that people using less than v5.x, such as this user, do not have this capability, and need to use network resources to dump values into variables.

 

Carry on. I have never had to use that workaround :)

Edited by larryllix
Posted

Hey!

 

I have read enough posts on this forum to know that you both have contributed immensely here. (And hopefully will continue to do so).

 

@larryllix, I have been going over your Raspberry Pi Python code for an HTTP server and am definitely going to be making use of it for the control of a Hunter ceiling fan having 3 speed windings, reverse, light on/off, and dimming capabilities. The 3 windings avoid the very annoying magnetostrictive hum associated with dimmer controls, and I need a sub-second response for the on/off function of the light to avoid activating the dimming function. It will be ISY-994i > HTTP > Raspberry Pi > GPIO > homebrew isolated interface > 'off the shelf' slightly modified Hunter remote fan control. Your code contribution here has been invaluable.

 

@KeviNH, Thanks for taking the time to read my original post; this is something that I need to be careful to do as well. In so many forums, people jump in without accounting for all of the relevant information before making a post. Having read Chris Jahn's post about setting Z-Wave parameters using REST, I was starting to think that might be a method that would work. I was hoping for a less circumlocutious method but I guess being still at 4.5.4 I am stuck with that. I will be trying your post above.   

 

It's good to know that with versions 5+ that some of these capabilities are available. And some point, (likely a beta 5+) I'll make the leap :)  Thank you both again :)

Posted

So I have been able to test the network resources REST function. As you suggested KeviNH, the value returned DOES contain a decimal point, even the RAW data. (wouldn't it be nice if raw meant RAW?)

 

I would suggest an additional keyword ... unformatted

 

I was able to show that the REST function works by using the CLIHUM variable which is an integer followed by a % sign. The value returned by specifying raw is just the integer - and that was successfully stored in the variable.

 

I guess (if I get desperate) I could use larryllix's Raspberry Pi Python code and have the ISY send the data to the Pi and have the Pi reformat it and send a REST back to the ISY to store it ...

 

This would be OK; I'd learn a lot :)

Posted

Hey!

 

I have read enough posts on this forum to know that you both have contributed immensely here. (And hopefully will continue to do so).

 

@larryllix, I have been going over your Raspberry Pi Python code for an HTTP server and am definitely going to be making use of it for the control of a Hunter ceiling fan having 3 speed windings, reverse, light on/off, and dimming capabilities. The 3 windings avoid the very annoying magnetostrictive hum associated with dimmer controls, and I need a sub-second response for the on/off function of the light to avoid activating the dimming function. It will be ISY-994i > HTTP > Raspberry Pi > GPIO > homebrew isolated interface > 'off the shelf' slightly modified Hunter remote fan control. Your code contribution here has been invaluable.

 

@KeviNH, Thanks for taking the time to read my original post; this is something that I need to be careful to do as well. In so many forums, people jump in without accounting for all of the relevant information before making a post. Having read Chris Jahn's post about setting Z-Wave parameters using REST, I was starting to think that might be a method that would work. I was hoping for a less circumlocutious method but I guess being still at 4.5.4 I am stuck with that. I will be trying your post above.   

 

It's good to know that with versions 5+ that some of these capabilities are available. And some point, (likely a beta 5+) I'll make the leap :)  Thank you both again :)

If you advanced enough to write http handling code I really recommend you go to v5.0.10. You should have no trouble with it. Any bugs are monor gui layout things and it would be so simple for you to create a solution to this problem, rather than use workarounds. Then you wouldn't be rewriting you techniques later.

OTOH: If you are like me you will enjoy the challenge to resolve it both ways.

Posted (edited)

Changing 73.45 to 7345 is not simply changing the formatting. It's an entirely different value!

 

.RAW simply removes all units and formatting that is otherwise added by ISY, and reports the raw value as received from the device.

 

Some devices will allow you to configure them to report without the fractional parts by setting a parameter. Otherwise, when 5.x is released we will have formal support for non-integers in variables...

Edited by MWareman
Posted (edited)

Changing 73.45 to 7345 is not simply changing the formatting. It's an entirely different value!

 

.RAW simply removes all units and formatting that is otherwise added by ISY, and reports the raw value as received from the device.

 

Some devices will allow you to configure them to report without the fractional parts by setting a parameter. Otherwise, when 5.x is released we will have formal support for non-integers in variables...

Hi MWareman, I know that we are dealing with two values that are different ... however ...

 

When I use a browser and issue: http://192.168.1.25:37190/rest/nodes/ZW006_1/CLITEMP

I get the following response:

 

<properties><property id="CLITEMP" value="7310" formatted="73.10° F" uom="17" prec="2"/></properties>

 

And in the event log level 3 I get:

 

Tue 05/30/2017 09:45:46 AM : [ZWAVE-PROCESS ] Process value Sensor type=1 uomId=1 prec=2

Tue 05/30/2017 09:45:46 AM : [D2D EVENT ] Event [ZW006_1] [CLITEMP] [7310] uom=17 prec=2

Tue 05/30/2017 09:45:46 AM : [ ZW006_1] CLITEMP 7310 (uom=17 prec=2)

 

This suggested to me that the value retrieved by the ISY was an unformatted integer and that the ISY was supplying the ". ° F". Given the properties and event log above, is that not a reasonable assumption?

 

The property for the humidity, which is an integer is:

 

http://192.168.1.25:37190/rest/nodes/ZW006_1/CLIHUM

 

<property id="CLIHUM" value="37" formatted="37%" uom="22"/>

 

To me, prec = precision = 2 for the temperature and is missing for humidity.

My guess for "UOM" is "unit of measurement".

Edited by Broyd
  • 1 month later...
Posted

Hi Broyd,

 

Did you ever make any progress on this?  I would like to pull and store the same two values from an Everspring temp/humidity sensor. An additional complication is that the sensor only wakes up once per hour for a very short period to report status.  But one step at a time!

 

Thanks

Guest
This topic is now closed to further replies.

  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      37k
    • Total Posts
      371.4k
×
×
  • Create New...