Announcement

Collapse
No announcement yet.

hspi_haithermostat.dll not managed assembly

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

  • #2
    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);

    Comment


    • #3
      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 Files

      Comment


      • #4
        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.

        Comment


        • #5
          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.

          Comment


          • #6
            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.

            Comment


            • #7
              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

              Comment

              Working...
              X