madcodger Posted March 26, 2020 Posted March 26, 2020 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.
larryllix Posted March 26, 2020 Posted March 26, 2020 Best I can think of is to name your variables in a more meaningful way, so they sort for easy finding according to the app they are displayed in.
simplextech Posted March 26, 2020 Posted March 26, 2020 Have you brought this z-wave issue up with UDI support? This is something to address not find a work around for.
Michel Kohanim Posted March 26, 2020 Posted March 26, 2020 @simplextech, It's only one of the few of the same brand/model with this issue. And, they do not have a parameter for configuration. I suspect it's firmware on that specific sensor. With kind regards, Michel
larryllix Posted March 26, 2020 Posted March 26, 2020 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.
madcodger Posted April 1, 2020 Author Posted April 1, 2020 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.
markv58 Posted April 1, 2020 Posted April 1, 2020 @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. 1
madcodger Posted April 3, 2020 Author Posted April 3, 2020 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.
markv58 Posted July 6, 2020 Posted July 6, 2020 Virtual, a NodeServer to create virtual devices has been submitted for approval. 5 2
mmb Posted July 6, 2020 Posted July 6, 2020 While it's a bit of work, I used Homebridge homebridge-isy-maker to make virtual devices.
carealtor Posted July 6, 2020 Posted July 6, 2020 2 hours ago, markv58 said: Virtual, a NodeServer to create virtual devices has been submitted for approval. This is exciting!
Michel Kohanim Posted July 6, 2020 Posted July 6, 2020 @markv58, APPROVED!!! This is awesome, THANK YOU. With kind regards, Michel 2
Teken Posted July 6, 2020 Posted July 6, 2020 (edited) @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! Edited July 6, 2020 by Teken
JBanaszak Posted July 6, 2020 Posted July 6, 2020 6 hours ago, markv58 said: Virtual, a NodeServer to create virtual devices has been submitted for approval. 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!
markv58 Posted July 6, 2020 Posted July 6, 2020 @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.
Teken Posted July 6, 2020 Posted July 6, 2020 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.
JBanaszak Posted July 6, 2020 Posted July 6, 2020 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')
Teken Posted July 6, 2020 Posted July 6, 2020 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? 1
markv58 Posted July 6, 2020 Posted July 6, 2020 @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.
JBanaszak Posted July 6, 2020 Posted July 6, 2020 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!
markv58 Posted July 6, 2020 Posted July 6, 2020 What do the custom config parameters look like for the Wine Room virtual device? and what is the ID of the state variable $vWine_room_temp?
Teken Posted July 6, 2020 Posted July 6, 2020 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. ?
asbril Posted July 6, 2020 Posted July 6, 2020 7 minutes ago, Teken said: Let's try to make this a little easier for others to follow Yes please
markv58 Posted July 6, 2020 Posted July 6, 2020 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?
Recommended Posts