Author |
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: March 05 2008 at 01:05 | IP Logged
|
|
|
Ok,
you need 3 entires:
(1)
ID=TSTATMODE
i/o=Input
Controller=VIRT
Unit=0
Point=2
Raw nto calculated= case([DATA] when 0 then "Off" when 1 then "Heat" when 2 then "Cool" when 3 then "Auto" when 4 then "Fan" when 5 then "Program" when 6 then "Program Heat" when 7 then "Program Cool" else "Unknown")
(2)
TSTATPOINT
i/o=Input
Controller=VIRT
Unit=0
Point=3
Message=Degrees
(4)
TSTATTEMP
i/o=Input
Controller=VIRT
Unit=0
Point=1
Message=Degrees
|
Back to Top |
|
|
cmhardwick Senior Member
Joined: July 08 2006 Location: United States
Online Status: Offline Posts: 290
|
Posted: March 05 2008 at 08:26 | IP Logged
|
|
|
I'll try this tonight. I don't have an option for VIRT though for some reason, just the Insteon DM . I'll look at it in more detail tonight though. It was late (or early am) when I looked at it last night.
Thanks for spending the time on this!!
__________________ Cicero, Enjoying automation!
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: March 05 2008 at 13:20 | IP Logged
|
|
|
mmm. Dave did something to add the virtual controller that I am missing in my steps now you mention it.
I will need to look when I get home.
|
Back to Top |
|
|
TonyNo Moderator Group
Joined: December 05 2001 Location: United States
Online Status: Offline Posts: 2889
|
Posted: March 05 2008 at 14:00 | IP Logged
|
|
|
You need to add it as a controller in Setup.
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: March 05 2008 at 14:08 | IP Logged
|
|
|
Tony is correct. I remember now. Just add as a controller and make sure you reinitialize afterwards.
Dave clarified for me last night that you only need to reinitialize if you make change within the Setup section of the explorer. I have been reinitializing more often that that as I was never sure if changes I made were taking effect. Now I know they were and they were just wrong ;-)
Tony, I don't know the script importing well enough to know if I can combine all of these steps into a single script that someone could execute to "install" the thermostat. Do you know?
|
Back to Top |
|
|
cmhardwick Senior Member
Joined: July 08 2006 Location: United States
Online Status: Offline Posts: 290
|
Posted: March 05 2008 at 14:48 | IP Logged
|
|
|
that's why mine's not working then. it has no idea what controller to use. Thanks Tony. I'll do that tonight. do I need to set it as any particular TYPE of controller? or special settings?
__________________ Cicero, Enjoying automation!
|
Back to Top |
|
|
cmhardwick Senior Member
Joined: July 08 2006 Location: United States
Online Status: Offline Posts: 290
|
Posted: March 05 2008 at 20:39 | IP Logged
|
|
|
OK, I've tried with type of "Powerhome Virtual" still no go. Still plugging away though
__________________ Cicero, Enjoying automation!
|
Back to Top |
|
|
cmhardwick Senior Member
Joined: July 08 2006 Location: United States
Online Status: Offline Posts: 290
|
Posted: March 05 2008 at 21:07 | IP Logged
|
|
|
Finally ... stupid forum put spaces in some of the macros, right in the middle of commands. Working great now!
__________________ Cicero, Enjoying automation!
|
Back to Top |
|
|
TonyNo Moderator Group
Joined: December 05 2001 Location: United States
Online Status: Offline Posts: 2889
|
Posted: March 05 2008 at 21:43 | IP Logged
|
|
|
Quote:
Tony, I don't know the script importing well enough to know if I can combine all of these steps into a single script that someone could execute to "install" the thermostat. Do you know? |
|
|
Dave can say for sure, but it seems like it should work.
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: March 08 2008 at 02:08 | IP Logged
|
|
|
I just added a macro to update a set of global variables as well as the virtual analog in the original post:
Code:
insert into macroheader values ('GETTSTAT_GLOBAL','Get Thermostat Data',0,0,1);
insert into macrodetail values ('GETTSTAT_GLOBAL',1,38,'',0,'ph_setglobal_a("THERMOSTAT_TEM P", (ph_insteonwithret("THERMOSTAT",107,3) / 2))',0,'');
insert into macrodetail values ('GETTSTAT_GLOBAL',2,38,'',0,'ph_setglobal_a("THERMOSTAT_MOD E", case(ph_insteonwithret("THERMOSTAT",107,2) when 0 then "Off" when 1 then "Heat" when 2 then "Cool" when 3 then "Auto" when 4 then "Fan" when 5 then "Program" when 6 then "Program Heat" when 7 then "Program Cool" else "Unknown"))',0,'');
insert into macrodetail values ('GETTSTAT_GLOBAL',3,38,'',0,'ph_setglobal_a("THERMOSTAT_SP" , ph_insteonwithret("THERMOSTAT",106,32) / 2)',0,'');
|
|
|
Don't forget to create the Global Variables too.
The main reason for this was to have easier access to them in eHome.
Now I just need to work out how to get the Fan settings and Humidity reading out of the thermostat.
BTW, I ordered the humidity module from Amazon. $5 cheaper than smarthome directly but is still shipped by smarthome. Go figure....
|
Back to Top |
|
|
cmhardwick Senior Member
Joined: July 08 2006 Location: United States
Online Status: Offline Posts: 290
|
Posted: March 08 2008 at 22:54 | IP Logged
|
|
|
I'm sure emergency heat and auxiliary heat modes are also reported, which would be nice. Nice to have an alert email, sound, whatever, when either of these kick in, especially emergency heat, as that cuts off the heatpump whereas auxiliary is just a boost. Of course, if you're using a traditional package unit, these don't apply.
__________________ Cicero, Enjoying automation!
|
Back to Top |
|
|
jtrevill Newbie
Joined: April 11 2008
Online Status: Offline Posts: 2
|
Posted: April 20 2008 at 02:44 | IP Logged
|
|
|
Okay, so I'm new here - I've been running Houselinc, but am trying to get into something with more flexability. Testing PH and just need to get my thermostat working to be convinced... However, I don't have the programing knowledge, or the PH knowledge to be able to figure this out. Can someone "Dumb down" these instructions for me :)
THanks!
Jason
|
Back to Top |
|
|
TonyNo Moderator Group
Joined: December 05 2001 Location: United States
Online Status: Offline Posts: 2889
|
Posted: April 20 2008 at 10:24 | IP Logged
|
|
|
Welcome!
Start with martlist's post. I'll fill in what he leaves out...
1. Add a new device type: Go to the Insteon Explorer (Insteon logo button), Types tab, click Append, type in Insteon Thermostat for the Description, follow rest of #1.
2. Auto Discovery: On Setup tab.
3. Devices tab.
4a. Create a Virtual Analog controller (see his 2nd post): PowerHome explorer, Setup, Controllers, right-click in right pane, Insert, follow his post for values.
4b. Reinit PH (File, Reinitialize).
4c. Copy and paste his Code sections into the Multi-Editor (pencil icon; make sure it says SQL, if not, click on 4th icon from right and select SQL), click Run icon (right most icon).
5-8. Same as #4.
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: April 20 2008 at 13:50 | IP Logged
|
|
|
Jason,
your post prompted me to finally get this all into a single clean import,
plus I added some additional support and some macros to make things
easier.
Everything you need should be below and I am no longer using the virtual
device as I all I need for eHome integration is my global variables.
(1) Add a new device type for your Thermostat in the Insteon explorer.
Leave the checkboxes blank and make Groups 254.
(2) Turn on auto discovery and just hold the button on the thermostat
adapter as you usually would with a lamplinc.
(3) Rename the new added device to THERMOSTAT so that all the
following macros work.
(4) Copy and paste this Code sections into the Multi-Editor (pencil icon;
make sure it says SQL, if not, click on 4th icon from right and select SQL),
click Run icon (right most icon). (thanks Tony)
***** NOTE: CORRECTED CODE SINCE ORIGINAL POST *****
***** NOTE: CORRECTED AGAIN FOR LOOP CONDITION 4/29/08 ***
Code:
insert into global_variables values ('THERMOSTAT_DEADBAND','255');
insert into global_variables values ('THERMOSTAT_HUM','31');
insert into global_variables values ('THERMOSTAT_MODE','Unknown');
insert into global_variables values ('THERMOSTAT_SP','-1');
insert into global_variables values ('THERMOSTAT_TEMP','68');
insert into macroheader values ('TSTAT_ALL_OFF','All Off',0,0,1);
insert into macrodetail values
('TSTAT_ALL_OFF',1,38,'',0,'ph_insteon("THERMOSTAT",107,9)', 0,'');
insert into macroheader values ('TSTAT_FAN_OFF','Turn Off House
Fan',0,0,1);
insert into macrodetail values
('TSTAT_FAN_OFF',1,38,'',0,'ph_insteon("THERMOSTAT",107,8)', 0,'');
insert into macroheader values ('TSTAT_FAN_ON','Turn On House
Fan',0,0,1);
insert into macrodetail values
('TSTAT_FAN_ON',1,38,'',0,'ph_insteon("THERMOSTAT",107,7)',0 ,'');
insert into macroheader values ('TSTAT_GETTSTAT_GLOBAL','Get
Thermostat Data',0,0,1);
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',1,31,'',NULL,'5',1,'');
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',2,38,'',0,'ph_setglobal_a("THERMOST
AT_TEMP", (ph_insteonwithret("THERMOSTAT",107,3) / 2))',0,'');
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',3,38,'',0,'ph_setglobal_a("THERMOST
AT_MODE", case(ph_insteonwithret("THERMOSTAT",107,2) when 0 then
"Off" when 1 then "Heat" when 2 then "Cool" when 3 then "Auto" when 4
then "Fan" when 5 then "Program" when 6 then "Program Heat" when 7
then "Program Cool" else "Unknown"))',0,'');
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',4,38,'',0,'ph_setglobal_a("THERMOST AT_SP",
ph_insteonwithret("THERMOSTAT",106,32) / 2)',0,'');
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',5,38,'',0,'ph_setglobal_a("THERMOST
AT_HUM", ph_insteonwithret("THERMOSTAT",106,96))',0,'');
insert into macrodetail values
('TSTAT_GETTSTAT_GLOBAL',6,38,'',0,'ph_setglobal_a("THERMOST
AT_DEADBAND", ph_insteonwithret("THERMOSTAT",106,64))',0,'');
insert into macroheader values ('TSTAT_SETMODE_AUTO','Auto
Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_AUTO',1,38,'',0,'ph_insteon("THERMOSTAT",107
,6)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_AUTO',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_AUTO',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0,'') ;
insert into macroheader values ('TSTAT_SETMODE_COOL','Cool
Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_COOL',1,38,'',0,'ph_insteon("THERMOSTAT",107
,5)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_COOL',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_COOL',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0,'') ;
insert into macroheader values ('TSTAT_SETMODE_HEAT','Heat
Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_HEAT',1,38,'',0,'ph_insteon("THERMOSTAT",107
,4)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_HEAT',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_HEAT',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0,'') ;
insert into macroheader values ('TSTAT_SETMODE_PGM_AUTO','Program
Auto Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_PGM_AUTO',1,38,'',0,'ph_insteon("THERMOSTAT"
,107,12)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_AUTO',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_AUTO',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0 ,'');
insert into macroheader values ('TSTAT_SETMODE_PGM_COOL','Cool
Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_PGM_COOL',1,38,'',0,'ph_insteon("THERMOSTAT"
,107,11)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_COOL',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_COOL',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0 ,'');
insert into macroheader values ('TSTAT_SETMODE_PGM_HEAT','Program
Heat Mode',0,0,1);
insert into macrodetail values
('TSTAT_SETMODE_PGM_HEAT',1,38,'',0,'ph_insteon("THERMOSTAT"
,107,10)',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_HEAT',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SETMODE_PGM_HEAT',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0 ,'');
insert into macroheader values ('TSTAT_SP_DOWN','Current setpoint do 1
deg',0,0,1);
insert into macrodetail values
('TSTAT_SP_DOWN',1,38,'',0,'ph_insteon("THERMOSTAT",105,2)', 0,'');
insert into macrodetail values ('TSTAT_SP_DOWN',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SP_DOWN',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0,'');
insert into macroheader values ('TSTAT_SP_UP','Current setpoint up 1
deg',0,0,1);
insert into macrodetail values
('TSTAT_SP_UP',1,38,'',0,'ph_insteon("THERMOSTAT",104,2)',0, '');
insert into macrodetail values ('TSTAT_SP_UP',2,31,'',NULL,'2',0,'');
insert into macrodetail values
('TSTAT_SP_UP',3,1,'TSTAT_GETTSTAT_GLOBAL',0,'',0,'');
insert into timedevents values ('2008-04-20
10:34:34.000',5,0,'TSTAT_GETTSTAT_GLOBAL',0,'2008-04-20
10:34:34.000',0,0);
|
|
|
(5) You now have several macros for reading status and setting modes, a
timed event to run the status update, and the corresponding global
variables to store them.
One issue. I have found that after some period of time, days or weeks,
the insteon adapter stops responding to requests for both status and
updates. I have to unplug it to reset.
Edited by martlist - April 29 2008 at 11:47
|
Back to Top |
|
|
nadler Super User
Joined: February 25 2006 Location: United States
Online Status: Offline Posts: 354
|
Posted: April 20 2008 at 14:24 | IP Logged
|
|
|
Martlist, Thanks for the code. I just ordered the thermostat and await it with great anticipation. There might be a slight error in the code. Line 6 and 7 is repeated in lines 8 and 9 thus causing the SQL to fail on execution. Elimination of the lines does the trick.
Thanks again.
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: April 20 2008 at 19:21 | IP Logged
|
|
|
Thanks. I updated the original post to remove the duplicate lines.
This is my Thermostat screen in eHome which uses the macros and variables:
|
Back to Top |
|
|
dhoward Admin Group
Joined: June 29 2001 Location: United States
Online Status: Offline Posts: 4447
|
Posted: April 21 2008 at 11:47 | IP Logged
|
|
|
Ive also received my Insteon Thermostat adaptor and have created some new macros to control it. I currently don't have any Control Center screens (nice eHome screens Martlist. Hats off to you and Steve (eHome creator) working with it yet, but I can monitor and change settings via the Device Status screen.
I'll try to upload my settings later tonight.
Also, when the next beta is released, support should be built in, eliminating the need for the special macro's.
Dave.
|
Back to Top |
|
|
jtrevill Newbie
Joined: April 11 2008
Online Status: Offline Posts: 2
|
Posted: April 21 2008 at 23:37 | IP Logged
|
|
|
Thank you very much! I do have a question. I got all of your code working and can turn the thermostat off, and change the program modes. However, the macro that adjusts the temp up and down 1 degree doesn't do anything. Is that specific to one particular program mode? I just run in program mode all the time.
Thoughts?
Thanks!
Jason
|
Back to Top |
|
|
martlist Newbie
Joined: January 07 2007
Online Status: Offline Posts: 31
|
Posted: April 21 2008 at 23:57 | IP Logged
|
|
|
Hmmmmmmm....
I rechecked the code and it looks right in the import. However I just rechecked my system and it is no longer working. I think it may only work in certain modes but I cannot test as I am now getting weird responses from the thermostat. I will reboot and try again in the morning and let you know.
|
Back to Top |
|
|
nadler Super User
Joined: February 25 2006 Location: United States
Online Status: Offline Posts: 354
|
Posted: April 28 2008 at 16:02 | IP Logged
|
|
|
I just got my thermostat installed. I had to rewire my air handler in the attic to get a common and then rewire my heating in the basement with a second relay on 1 zone because I had 'dual 24V transformers' and the venstar only handles a single 24V. But it all works and I learned a lot about heating and ac control systems.
Martlist, I used your macros and they were aces. Saved me hours of work and figured everything out in minutes. Your screen is terrific as well. I haven't used ehome yet and do everything in the control center but I'll have to check ehome out.
There are 2 slight errors in the macro. In the TSTAT_SETSTAT_GLOBAL macro the last line (line 70) calls the macro again thus making an endless loop. This line can be deleted or check boxed out.
In the same macro the global variables have an extra space. I believe this is put in by this board and you won't be able to get them about in the post, but it would be good for other to know. Cicero commented on it above. Here are the effected global variables:
THERMOST AT_TEMP
THERMOST AT_MODE
THERMOST AT_SP
THERMOST AT_HUM
THERMOST AT_DEADBAND
To all using Insteon and PH - I recommend the thermostat, it does what it's supposed to do and with PH, even more.
|
Back to Top |
|
|
|
|