www.homeseer.com    
 

Go Back   HomeSeer Message Board > Thermostat / HVAC Plug-ins > Thermostat / HVAC Discussion > HomeSeer HAI Omnistat Plug-in

HomeSeer HAI Omnistat Plug-in Discussions related to the HomeSeer provided thermostat plug-in for HAI thermostats. These plug-ins will eventually replace the current script-based thermostat support.

Reply
 
Thread Tools Display Modes
  #1  
Old December 15th, 2012, 11:21 AM
dschoppe dschoppe is offline
Seer Master
 
Join Date: Aug 2004
Location: NC
Posts: 833
hspi_haithermostat.dll not managed assembly

Hi AO (or anybody that may have access to the HAI source),

I'd like to script some calls into the HAI thermo plug-in but I can't browse the DLL in VisualStudio or ILSpy (e.g., to determine method signatures, return types, fields, etc.) as it isn't a managed assembly.

The plug-in doc contains some scripting information but I don't know if is up to date with respect to the actual code. Would it be possible for someone to post the public script method signatures and accessible fields here directly from the source?

Thanks,
Don
Reply With Quote
  #2  
Old January 6th, 2013, 07:53 AM
acromion acromion is offline
Seer Deluxe
 
Join Date: Jun 2012
Location: Saskatchewan, Canada
Posts: 162
Sorry Don - I just seen this.

Is this what you need?

// Methods and properties making up the automation API to this object
STDMETHOD(TempFtoOmni)(double val, long *pVal);
STDMETHOD(get_Thermostats)(IThermostats* *pVal);
STDMETHOD(get_ComPort)(long *pVal);
STDMETHOD(put_ComPort)(long pVal);
STDMETHOD(get_PollInterval)(long *pVal);
STDMETHOD(put_PollInterval)(long pVal);
STDMETHOD(get_ExternalTemperature)(BOOL *pVal);
STDMETHOD(put_ExternalTemperature)(BOOL pVal);
STDMETHOD(get_ExternalTemperatureDevice)(BSTR *pVal);
STDMETHOD(put_ExternalTemperatureDevice)(BSTR pVal);
STDMETHOD(get_Enabled)(BOOL *pVal);
STDMETHOD(put_Enabled)(BOOL pVal);
STDMETHOD(get_NumberThermostat)(long *pVal);
STDMETHOD(put_NumberThermostat)(long pVal);
STDMETHOD(put_OutdoorTemperature)(double pVal);
STDMETHOD(UpdateTime)();
STDMETHOD(put_Debug)(BOOL pVal);
STDMETHOD(get_Debug)(BOOL *pVal);

// HS Thermostat Plug-In API
STDMETHOD(NThermostats)(long* pVal);
STDMETHOD(NTemps)(long thermo, long* pVal);
STDMETHOD(SupportsStat)(long thermo, long temp, BOOL* pVal);
STDMETHOD(SupportsCoolSet)(long thermo, long temp, BOOL* pVal);
STDMETHOD(SupportsDirect)(long thermo, long temp, BOOL* pVal);
STDMETHOD(SupportsHold)(long thermo, long temp, BOOL* pVal);
STDMETHOD(NumSetbacks)(long thermo, long temp, long* pVal);
STDMETHOD(SupportsAux)(long thermo, long temp, BOOL* pVal);
STDMETHOD(SupportsOperating)(long thermo, long temp, BOOL* pVal);
STDMETHOD(CmdSetHeat)(long thermo, double temp, long partition);
STDMETHOD(CmdSetCool)(long thermo, double temp, long partition);
STDMETHOD(CmdSetMode)(long thermo, long mode, long partition);
STDMETHOD(CmdSetFan)(long thermo, long mode, long partition);
STDMETHOD(CmdSetHold)(long thermo, long mode, long partition);
STDMETHOD(GetTemp)(long thermo, long partition, double* pVal);
STDMETHOD(GetHeatSet)(long thermo, long partition, double* pVal);
STDMETHOD(GetCoolSet)(long thermo, long partition, double* pVal);
STDMETHOD(GetModeSet)(long thermo, long partition, long* pVal);
STDMETHOD(GetFanMode)(long thermo, long partition, long* pVal);
STDMETHOD(GetHoldMode)(long thermo, long partition, long* pVal);
STDMETHOD(GetCurrentMode)(long thermo, long partition, long* pVal);
STDMETHOD(GetOperating)(long thermo, long partition, BOOL* pVal);
STDMETHOD(SupportsHoldOverride)(long thermo, long partition, BOOL* pVal);
STDMETHOD(CmdIncreaseSetpoint)(long thermo);
STDMETHOD(CmdDecreaseSetpoint)(long thermo);
STDMETHOD(ThermLoc)(long thermo, BSTR* pVal);
STDMETHOD(ThermName)(long thermo, BSTR* pVal);
Reply With Quote
  #3  
Old January 6th, 2013, 04:35 PM
dschoppe dschoppe is offline
Seer Master
 
Join Date: Aug 2004
Location: NC
Posts: 833
Quote:
Originally Posted by acromion View Post
Sorry Don - I just seen this.

Is this what you need?
No worries. This user manual describes a number of functions that can be called from scripts, but lacks the detailed types for params and return values. I see some overlap between the functions you posted and those starting on page 23 of this manual, but not 100% matchup. Maybe the docs are outdated?

I'm also wondering if you are planning to release a version of this plug-in for HS3?

Thanks,
Don
Attached Images
File Type: pdf HAI RC Thermostat Users Guide.pdf (543.9 KB, 8 views)
Reply With Quote
  #4  
Old January 7th, 2013, 10:14 AM
acromion acromion is offline
Seer Deluxe
 
Join Date: Jun 2012
Location: Saskatchewan, Canada
Posts: 162
Hmm. I'll take another look tonight. I must have copied the wrong data. It appears that my c++ skills are not only rusty, they have large holes in them. As far as releasing an HS3 plugin, I will certainly need one but I don't think I have the time/skill set to tackle it. I can't seem to get the dll that I compiled from the source code to load properly in homeseer. I've made a few changes to the code that should allow support for the RC-2000 but no luck on getting it to actually work.

mnsandler (Insteon plugin author) has told me that he might be convinced to write a new plugin for the thermostats for HS3 once he has his other stuff migrated. He only has an RC-80 not a RC-2000 but that is still a great start. I'd be tempted to send him a new thermostat for his trouble if he would tackle it.
Reply With Quote
  #5  
Old January 7th, 2013, 12:34 PM
dschoppe dschoppe is offline
Seer Master
 
Join Date: Aug 2004
Location: NC
Posts: 833
Version 1.0.16.0 of the plug-in is working well enough with my three RC-2000 stats under HS2. (I don't use schedules or advanced features though, just the ability to change set points and read current temperature).

My main concern is having a migration path to HS3 given that HST has open sourced the code and (thus I assume) won't be releasing a HAI Thermo plug-in for HS3. I'm in the same boat w.r.t. the Lightolier Compose plug-in. I'm going to either have to write these from scratch or hope that somebody else does it first Otherwise, I'll forever be stuck on HS2.
Reply With Quote
  #6  
Old January 8th, 2013, 10:39 AM
acromion acromion is offline
Seer Deluxe
 
Join Date: Jun 2012
Location: Saskatchewan, Canada
Posts: 162
I didn't realize they had open sourced the code. I paid for it recently. Oops. I use version .16 with my RC-2000 as well. It works "good enough" for now but these are the features it would be nice to support:

Identify Thermostat correctly so that stages work properly
Read Humidity
Set/Read Humidify and Dehumidify setpoints
Read Outdoor/Additional Temp sensors (omnistat supports several)
Fix Scheduling for 7 days per week
Change Fan mode to include "Cycle"
Change Hold mode to include "Vacation"
Send custom messages to thermostat
Modify display color

These are very simple things to do if I could just get the code to compile and the module to install. As for HS3, I am in the same situation in that I will not upgrade until my thermostats work. Actually, I need the HAI alarm working as well.
Reply With Quote
  #7  
Old January 8th, 2013, 11:11 AM
dschoppe dschoppe is offline
Seer Master
 
Join Date: Aug 2004
Location: NC
Posts: 833
Quote:
Originally Posted by acromion View Post
I didn't realize they had open sourced the code. I paid for it recently. Oops..
Sorry, open source probably wasn't the best term. I should have said "made the source available for purchase."

Now that HS3 is approaching and its architecture is quite a bit different, I think HST needs to revist pricing on the HS2 plug-in source or perhaps offer it for free to those who pay to upgrade to HS3.

Don
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 03:07 PM.


Copyright HomeSeer Technologies, LLC