Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Vantage.Generic_HVAC_RS485_Zone_CHILD thermostat #115

Open
2 tasks done
MahirManghnani opened this issue Jun 10, 2024 · 0 comments
Open
2 tasks done

Comments

@MahirManghnani
Copy link

Checklist

  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Describe the feature you'd like

I would like to add support for the Vantage.Generic_HVAC_RS485_Zone_CHILD object.
This object functions similarly to the Thermostat object (I have tested with THERMTEMP, GETTHERMTEMP, THERMFAN, GETTHERMFAN, THERMOP , GETTHERMOP, THERMDAY, GETTHERMDAY functions).

However the current Thermostat model inherits from the StationObject model, which includes SerialNumber and Bus fields that are not present in the Vantage.Generic_HVAC_RS485_Zone_CHILD object (you can see an example of the object in the "Additional context" field.

I have created a fork that adds a new model for the Vantage.Generic_HVAC_RS485_Zone_CHILD object. As a quick fix I changed the Thermostat model to inherit from LocationObject instead. This change allows the integration to work correctly.

However I can see that this might not be the best way to implement this as it is modifying existing models. I wanted to get your thoughts on the best way to add support for this object. I can think of 3 solutions:

  1. Just implementing this quick fix
  2. Duplicating the Thermostat classes in the new model
  3. Creating another class that both the Thermostat model and the new model can inherit, which contain the classes from the original Thermostat model

Let me know your thoughts!


Also I just wanted to say thanks for creating this project, I have had a lot of fun working on this! I'm not a software developer, so apologies if this is a simple solution.

Additional context

Here is an example of the Vantage.Generic_HVAC_RS485_Zone_CHILD object.

    <Object>
      <Vantage.Generic_HVAC_RS485_Zone_CHILD VID="{VID}" Master="{MASTER_VID}" MTime="" Position="">
        <Name>{Object_Name}</Name>
        <Model>
        </Model>
        <DeviceCategory>HVAC</DeviceCategory>
        <Note>
        </Note>
        <DName>{Object_DName}</DName>
        <ObjectType>Vantage.Generic_HVAC_RS485_Zone_CHILD</ObjectType>
        <Area>{Area}</Area>
        <Location>
        </Location>
        <Version>
        </Version>
        <Log>None</Log>
        <Parent Position="3">{PARENT_VID}</Parent>
        <IndoorSettings>
          <indoorSensor>0</indoorSensor>
          <IndoorTempOffset>0</IndoorTempOffset>
        </IndoorSettings>
        <PositionNumber>5</PositionNumber>
      </Vantage.Generic_HVAC_RS485_Zone_CHILD>
    </Object>

And here is a link to the fork I have created for this integration:
main...MahirManghnani:aiovantage:main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant