Jump to content

Displaying individual variables "as devices" (sort of like virtual devices)


madcodger

Recommended Posts

Here's my bottom line question if you don't want the back story and just have an idea to contribute:

Is there a way to either display a variable as if it were a device (i.e., as if it were a virtual device) or to move the individual variable out to a device folder, so that it appears along with devices in apps such as Mobilinc, and doesn't require a person to look for the variable in a long variables list? No need to read further if you just know the answer or don't care about the context.

 

Or, for those who want the back story, here's my problem... Looking for ideas from the collective brain trust, please.

First, I use only z-wave these days, after a couple of Insteon homes. No particular reason other than getting a bit tired of Smarthome and wanting some choice in suppliers, but that's where I'm at.

I like to monitor the temperature of several points around a property we're not at all the time, by looking at those temps on my phone or iPad from time to time. Those locations are monitored via programs (for those of you who insist visual monitoring is silly), but it's a curiosity thing (OK, maybe obsession). Anyway, I like to know the temperature in, say, a pump room so I've put temperature sensors in these locations. I've found the HomeSeer brand FS-100 is a great temperature sensor, primarily because it can run on micro usb power, so no worry about dead batteries. But it has an odd behavior with the ISY-994: It reports only in Celsius. All other temp sensors report in Fahrenheit, and when I connect these to a HomeSeer system they report in Fahrenheit, but on the ISY, they insist on reporting in Celsius and parameter adjustments have not corrected it. So, I created some variables and wrote programs to convert those values to Fahrenheit, and when I look at the variables, the values are correct. I don't "need" to do this conversion, of course, but it helps my brain to process things more easily as I scan down a list of temperatures without mentally converting to Celsius for some of them.

So, I have the conversions done as variables, BUT... I don't know of a way to move a variable out to, say, a folder where I would see it on my phone as a device. In other words, click on my folder "Temp Sensors", and scan down the list to make sure all is right on the property, from a temperature point of view. I can, of course, click on Programs>Variables>Integer and do this, but then I have to find each of these devices among a long list of other types of variables, and I'm trying to avoid this. So, bottom line: Is there a way to either display a variable as if it were a device (i.e., as a virtual device) or to move the individual variable out to a device folder, in programs such as Mobilinc? Thanks in advance for any ideas or help.

Link to comment
3 hours ago, simplextech said:

Have you brought this z-wave issue up with UDI support?  This is something to address not find a work around for.

IRC this same issue was addressed about a year ago with the same outcome and a workaround was the only solution.

Link to comment

I'm going to file a support ticket to see if Michel and the good folks at UDI might be able to think of a long-term solution that won't require much in the way of UDI resources. I have a couple of ideas, but think it most helpful for them to be able to ponder the situation at their own pace.

Link to comment
On 4/1/2020 at 8:31 AM, markv58 said:

@madcodger I'm doing that same thing with temps on my iPhone app but in a different way. I may be able to get that done but can't get to it for a couple of days.

Thanks - No hurry on my end but if you get something figured out I'd be happy to help test. Will have more time over the weekend as work has been busier than expected this past week.

Link to comment
  • 3 months later...

@markv58

First, if no one has said how fantastic you're today - You Are! ?

On to the trouble shooting portion in hopes of some insight and next steps. The node server installed without issues but none of the new nodes display any current values?!? I have appended a few image captures to show you the State Variables are present and are updating. The *Key Value* matches in all of the systems and the log shows nothing after it has started??

Next, would it be possible for you to include the following enhancements for display purposes.

- Celsius vs Fahrenheit: Can you give us Canadians the big *C* ?

- Decimal Value: My Autelis Bridge sends the numeric values as a whole value. Would it be possible for your Node Server to do some heavy lifting for me and convert the number to allow at least two decimal places. The ISY has a precision field which doesn't work and has no impact in changing where the decimal place is inserted. So if the value is 243 I would love to see it represented in the Device Tree as 24.3'C. Others have used the ISY to do the math conversion which works but is clumsy and require more resources than my little box can handle anymore.

This Virtual Node Server has made 2020 truly epic . . .

Thank You -Sir! 

Device Tree - Temp Status.PNG

State Temp.PNG

Link to comment
6 hours ago, markv58 said:

Virtual, a NodeServer to create virtual devices has been submitted for approval.

VirtualNode.png

This looks awesome so had to give it a try! I got a node created but cannot seem to get a value into it, so I must be doing something wrong.  What is the correct format for creating a temperature virtual node, for example?  Should the temperature populate automagically from the value in the variable once the node server is restarted?  

Thank you!

Link to comment

@Teken I figured someone would want the C and with that the prec.  I will work on it.

@Teken @JBanaszak The Temperature device needs input from a program. This is how I am doing it:

Temp Home VT 92 - [ID 0186][Parent 0185][Run At Startup]

If
        'Devices / Climate / Ecobee - Home' Temperature is not '$VT_92_Home_Temp Fahrenheit'
 
Then
        $VT_92_Home_Temp  = 'Devices / Climate / Ecobee - Home' Temperature °F
        Wait  2 seconds
        Set 'Devices / Virtual / Home Temperature' Set Temperature '$VT_92_Home_Temp Fahrenheit'
 
Else
   - No Actions - (To add one, press 'Action')
 

This sets the V Temp constantly when there is a change and it's set to run at startup in the unlikely event that ISY bounces. I tried long and hard to get Virtual to poll the ISY but just couldn't get it to work. Maybe a bigger brain will figure it out.

Link to comment
19 minutes ago, markv58 said:

@Teken I figured someone would want the C and with that the prec.  I will work on it.

@Teken @JBanaszak The Temperature device needs input from a program. This is how I am doing it:

Temp Home VT 92 - [ID 0186][Parent 0185][Run At Startup]

If
        'Devices / Climate / Ecobee - Home' Temperature is not '$VT_92_Home_Temp Fahrenheit'
 
Then
        $VT_92_Home_Temp  = 'Devices / Climate / Ecobee - Home' Temperature °F
        Wait  2 seconds
        Set 'Devices / Virtual / Home Temperature' Set Temperature '$VT_92_Home_Temp Fahrenheit'
 
Else
   - No Actions - (To add one, press 'Action')
 

This sets the V Temp constantly when there is a change and it's set to run at startup in the unlikely event that ISY bounces. I tried long and hard to get Virtual to poll the ISY but just couldn't get it to work. Maybe a bigger brain will figure it out.

Hi @markv58

I think I'll need just a little bit more of hand holding. ? So let me start by including a few image captures so everyone can play along. ? In the (IF) statement I selected the Virtual Node (Node 7) and used some random value that will always be true ( Well for now) as seen here -30'F.

In the THEN section I selected the State Variable (State Variable 7) do I need to enter a value? I stopped there because I'm not sure the second (THEN) statement options will operate as expected as there are only one drop down option.

IF Statement.PNG

THEN Statement.PNG

THEN Statement 2.PNG

Link to comment

I actually was trying a different route.  Should this work?:

Wine room - [ID 00C3][Parent 003A]

If
        'Basement closet / Basement closet sensor' Temperature is not 1000.0°F
 
Then
        $vWine_room_temp  = 'Basement closet / Basement closet sensor' Temperature °F
        Set 'Virtual Device Controller / Wine room' Set Temperature '$vWine_room_temp Fahrenheit'
 
Else
   - No Actions - (To add one, press 'Action')
 

Link to comment
2 minutes ago, JBanaszak said:

I actually was trying a different route.  Should this work?:

Wine room - [ID 00C3][Parent 003A]

If
        'Basement closet / Basement closet sensor' Temperature is not 1000.0°F
 
Then
        $vWine_room_temp  = 'Basement closet / Basement closet sensor' Temperature °F
        Set 'Virtual Device Controller / Wine room' Set Temperature '$vWine_room_temp Fahrenheit'
 
Else
   - No Actions - (To add one, press 'Action')
 

Can you offer some image captures of your AC? As I don't see the option to set a value to 1000.0'F?

Link to comment

@JBanaszak The If statement needs to evaluate a change that is why I compare the variable to the thermostat temp. Any time the thermostat temp changes it triggers the If statement.

If
        'Basement closet / Basement closet sensor' Temperature is not $vWine_room_temp

Then

       $vWine_room_temp = Basement closet sensor' Temperature

       Set 'Virtual Device Controller / Wine room' Set Temperature '$vWine_room_temp Fahrenheit'

 

That should do it.

Link to comment
5 minutes ago, markv58 said:

@JBanaszak The If statement needs to evaluate a change that is why I compare the variable to the thermostat temp. Any time the thermostat temp changes it triggers the If statement.

If
        'Basement closet / Basement closet sensor' Temperature is not $vWine_room_temp

Then

       $vWine_room_temp = Basement closet sensor' Temperature

       Set 'Virtual Device Controller / Wine room' Set Temperature '$vWine_room_temp Fahrenheit'

 

That should do it.

Teken and Mark, the variable was being updated correctly on a change in temperature but I used your suggestion because it looks more elegant....). However, there is no value in the virtual device mode either in the Admin council or on the Polisy.  It continues to show 0F.  Thanks for the help so far!

Screen Shot 2020-07-06 at 4.14.58 PM.png

Screen Shot 2020-07-06 at 4.15.31 PM.png

Link to comment

Let's try to make this a little easier for others to follow that may come along later.

What drop down operator is being used in the (IF) statement a Variable, Status, Other?!? All I am looking for is plain English so everyone can get this going without asking 99999999999999 times . . .

Everyone can understand and follow this:

IF: Insert your State Variable and set the value to X where X is some random value that will always be true.

THEN: Action - Select Variable, Select State Variable, Select =,  press the > for more options, select your Virtual Channel.

THEN: Action - Select Your Device, Virtual Channel, press the > for more options, select State Variable 

Is all of the above correct?!? Trying to decipher everyone's custom names as to what is being used (variable, device, status, other??) using my super decoder ring isn't working. ?  

Link to comment

Ok,

If

     The    (Temperature reported by something)    is not     (the Variable for the Virtual Temp) 

Then

    Set     (the Variable for the Virtual Temp)     =   (Temperature reported by something)

    Set     (the Virtual Temp Device)       =     (the Variable for the Virtual Temp)

 

Does that help?

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...