Author |
|
GadgetGuy Super User
Joined: June 01 2008 Location: United States
Online Status: Offline Posts: 942
|
Posted: January 08 2009 at 20:27 | IP Logged
|
|
|
OK
Another one of the great mysteries of the western world!
I'm trying to improve my Insteon Thermostat performance
and attempting to use Global Variables instead of pure
Raw Formula data capture.
But I cannot get the Global Vars to work.
One does, and two others that seem identical do not. Go
figure!
The easiest way to examine the issues is from the
following screen capture. . .
08_202606_STATS1.jpg">
The (non skipped in light blue) macros commands are on
the right. They are identical except for variable
names.
The message Box output in the middle shows that the
Globals are correct, and as I expect them to be. These
are reinforced and confirmed in the Global Variables Web
window on the right.
Yet despite all this, the Device Status window (and any
attempt to access the Global Variables via a web page)
only correctly displays the House Temp (TEMPNOW) data.
The other two data points are not viable.
Is there a data conversion issue here I'm missing, or
something else?
PS-Worse yet I can't get the image to upload although it
is only a 105KB JPG!!! (%$#@!&%$!!)
Sooooo! As an alternative to an image here are facts.
The three macros statements that I have are...
Code:
ph_setotheranalogout("VIRT",0,0,1,{TEMPMODE})
ph_setotheranalogout("VIRT",0,0,1,{TEMPSET})
ph_setotheranalogout("VIRT",0,0,1,{TEMPNOW})
|
|
|
Only the TEMPNOW statement works. The TEMPMODE gives an
"Unknown" result and the TEMPSET result is -1.
The values shown respectively (and correctly as
expected) for each of these in the msgbox window and the
Global Varables web window are... 1, 70, 68
Edited by GadgetGuy - January 08 2009 at 20:37
__________________ Ken B - Live every day like it's your last. Eventually, you'll get it right!
|
Back to Top |
|
|
nadler Super User
Joined: February 25 2006 Location: United States
Online Status: Offline Posts: 354
|
Posted: January 08 2009 at 20:56 | IP Logged
|
|
|
This probably won't help much (or at all) because I
think we set up our Insteon Stats differently in PH, but
to read the set point in my thermostats and write them
to a global variable I use:
ph_setglobal_a("THERMOSTAT_SP",
ph_insteonwithret("THERMOSTAT",106,32) / 2)
This retrieves the set point of the thermostat with the
clever name of "THERMOSTAT" and writes it to a global
variable for the set point with an equally clever name
of "THERMOSTAT_SP".
|
Back to Top |
|
|
GadgetGuy Super User
Joined: June 01 2008 Location: United States
Online Status: Offline Posts: 942
|
Posted: January 08 2009 at 21:20 | IP Logged
|
|
|
You are doing exactly the same thing I am. I don't have
any problem setting the GLOBAL. All my indications are
that all data is OK.
My issue is that I cannot seem to use the GLOBAL var
successfully.
In the CODE example I gave above, only the TEMPNOW
setting of the AnalogOut works! Although the other two
code lines seem identical and have valid GLOBAL data,
they result in errors when attempting to use them to set
the AnalogOut presentation that Dave worked with me to
set up for auto display in the Device Status window, as
well as available for use on my web page.
I can't figure out why only one of three seemingly
identical code lines should work!
__________________ Ken B - Live every day like it's your last. Eventually, you'll get it right!
|
Back to Top |
|
|
GadgetGuy Super User
Joined: June 01 2008 Location: United States
Online Status: Offline Posts: 942
|
Posted: January 10 2009 at 10:36 | IP Logged
|
|
|
Got them all working at last.
Was a combination of subtle typos and the use of an un-
initialized [TEMP] that got me in trouble.
Dave - if you're listening, it sure would be nice to
have a single step capability in the macros for
debugging purposes, especially when branching decisions
are reached. If you could single step and move the line
focus along by highlighting the macro line number cell,
it would be mighty awesome!
__________________ Ken B - Live every day like it's your last. Eventually, you'll get it right!
|
Back to Top |
|
|
nadler Super User
Joined: February 25 2006 Location: United States
Online Status: Offline Posts: 354
|
Posted: January 10 2009 at 11:51 | IP Logged
|
|
|
For debugging I usually use a pop up message box to show
me the variables as the macro moves from line to line.
I either delete those lines when I'm done or more likely
check the disable box for that line so they don't
execute when the macro is finished.
|
Back to Top |
|
|
GadgetGuy Super User
Joined: June 01 2008 Location: United States
Online Status: Offline Posts: 942
|
Posted: January 10 2009 at 15:02 | IP Logged
|
|
|
Yep. Agreed. The msgbox is the only tool I've discovered
and I just leave them in place too and check the SKIP
box in case I need them later.
But that said, it's a bit of a pain.
Even a breakpoint would be handy to stop execution at a
specific point. At least the TEMP and LOCAL variables
would be intact and one could use the Formula Validate
feature to see what happened next.
As I said "Dave, if you're listening....."
__________________ Ken B - Live every day like it's your last. Eventually, you'll get it right!
|
Back to Top |
|
|