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

Insteon: Add Support for Thermostat i2 Devices #267

Merged
merged 92 commits into from
Oct 12, 2013

Conversation

krkeegan
Copy link
Collaborator

@krkeegan krkeegan commented Oct 9, 2013

My work on adding support for the i2 Thermostats.

The code is good, but not perfect. However, my bad habits of over-perfection shouldn't slow this down any longer.

Messages arrive very very fast.  Adding milliseconds to the print log helps debug what is going on.
Trailing zeros were previously omitted.

Printing the milliseconds helps a lot in debugging corrupt messages
Test for unique items first, then call the routine in SUPER to handle the remaining
simple_message() is a stop-gap to bring support of i1, i2, & i2cs thermostats up to the level provided before Insteon Redux.  This should allow for quick merging into the stable codebase before release 3.0.

Next steps will be to split the thermostat class into an i1 and i2 class.
Conflicts:
	lib/Insteon/BaseInsteon.pm
Objects are reblessed when aldb version is checked
The 2441th Insteon thermostat will broadcast changes to all devices registered as a responder to group EF.  Created a dummy object under thermostat that is registered as a subdevice on group EF of the thermostat.  Sync links properly handles adding the link to the device, but has an error adding it to the PLM.  PLM responder link is not necessary, but will solve in future commit.

Moved reclass of thermostat to i1 and i2 to Insteon.pm.  Will add subchildren to same sub in future.
The device requires that a specific flag be enabled for it to provide broadcast updates.

Now, when sync_links is called, this flag will be automatically set.  This is done by injecting code into the sync_links sub before calling the main sync_links in BaseDevice
Groups 1-4 of the i2 devices report on/off events for cooling, heating, high humidity, and low humidity.  Insteon objects can be linked to these events.  e.g. Turn on a fan when the humidity is high.

In addition, a new status child has been added.  It provides a simple text of the current status of the HVAC system.
There is a possibility that a user may define a link to the EF group.

If a broadcast object is defined, sync_links will automatically enable the broadcast setting.
Catch and process status request responses before processing unique _process_message commands.
Some of the older thermostat devices including the 2441v venstar device were i2 devices but do not support the newer thermostat code.

As such the distinction between the old and new devices is not i1 vs i2 but rather i2CS or not i2CS.
The ALDB can only be i1 or i2, need to be checking the engine version instead.
Only Cooling and Heating statuses appear to be supported.  Bits 4 and 6 are also always enabled, I don't currently know what these are.  Sadly, humidifying and dehumidifying do not appear to be supported.
…h Request_Status

This more closely matches what the user would expect
Conflicts:
	lib/Insteon.pm
	lib/Insteon/BaseInsteon.pm
	lib/Insteon_PLM.pm
…Nomenclature

Heating, Cooling, ... should be humidifying and the like
There does not appear to be any request which can be made to the device to get the status of the Humidifying or Dehumidifying group (perhaps a direct request to each device->group would work)

But in order to make sure that the two groups are in the proper state after a call to request_status we just manually set them inside the code
Generate Voice Commands needed to be called after the thermo version is set
krkeegan added a commit that referenced this pull request Oct 12, 2013
Insteon:  Add Support for Thermostat i2 Devices
@krkeegan krkeegan merged commit ea5e4d0 into hollie:master Oct 12, 2013
@krkeegan krkeegan deleted the insteon_thermo_i2 branch October 12, 2013 23:10
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

Successfully merging this pull request may close these issues.

1 participant