Skip to content

1.0.0

Choose a tag to compare

@cryptk cryptk released this 22 Apr 02:36
8c75275

This change has been a long time coming.

The entire library has been completely refactored, and the integration as well to use the new and improved library. This should go a long way towards resolving a lot of the maintainability issues that I had with both the library and the integration. The new library version also supports some more functionality for controlling OmniLogic controllers that isn't yet implemented in the integration as I wanted to focus on feature parity with what was already there previously, but there is more coming.

In addition to that, I have finally tracked down and resolved a long-standing bug that caused the integration to sometimes break on flaky network connections in a way that it wasn't able to recover from, causing entity states to stop updating. Part of this is properly marking entities as unavailable if the integration cannot receive updates from the OmniLogic, so if you ever see your entities marked as unavailable this is why. It is almost certainly caused by an unreliable network connection to the OmniLogic. Rest assured, the integration is already trying really hard with multiple retries and proper error handling to get data to/from the OmniLogic, but at some point, if it's not responding over the network, it's not responding.

Other notable improvements include:

  • More accurate naming for various extra entity data (such as the whyOn states, etc)
  • A long-standing bug that would occasionally throw errors related to pretty printing various data has been squashed.
  • Valve Actuators have been moved to the valve platform rather than switch (the valve platform didn't exist yet when I initially created this integration)
  • Support for ColorLogic 4.0 lights as well as Pentair (and maybe even Zodiak lights, open an issue and let me know if you have those)

There are some breaking changes that you should be aware of for this 1.0.0 version.

Breaking Changes

Removed scan interval configuration

The ability to configure the polling interval from the integration configuration/options has been removed in order to fall in line with integration best practices. I know this will be annoying for some subset of users, but if I ever decide to upstream this provider into core, this would have to be done.

What this means for you:

  • The integration now polls on a fixed 10s interval. If you need it to poll on a different frequency, you can disable the polling in the integrations system options and then create an automation that triggers the refresh on whatever interval you require.

Entity extra attributes changed

Many extra state attributes have been renamed to have omni_ prefixed, this is now consistent across all extra state attributes that the integration adds. Some extra state attributes have had their values changed to more accurate strings to better reflect the data in the OmniLogic controller

What this means for you:

  • If you are referencing any entity extra attributes in any automations, dashboards or templates, you should verify that they are still working properly

Variable Speed Filters and Pumps use percent for speed

Internally, the OmniLogic tracks all variable speed filters/pumps in percentage, not RPM. In order to simplify the codebase, the integration now does this as well. There are still attributes for min/max/current RPM if you need to know the RPM that the pump is set to (this is not the RPM it's actually running at, but rather the "target" RPM, kinda).

What this means for you:

  • The number entities for Filters and Pumps now work in percentage, no matter how your display preferences in the OmniLogic are configured
  • If you were previously using RPM, you will need to update any automations and/or dashboards
  • The integration now better aligns with how the OmniLogic controller works

Valve Actuators Now Use Valve Platform

Valve actuator relays have been moved from the switch platform to the new valve platform. This is a breaking change that will require users to update their automations and dashboards.

What this means for you:

  • Valve actuator entities will now appear as valve entities instead of switch entities
  • Entity IDs will change (e.g., switch.pool_waterfall becomes valve.pool_waterfall)
  • Any automations, scripts, or dashboards referencing valve actuator switches must be updated to reference the new valve entities
  • The valve platform provides a more semantically correct interface for these devices

Library Refactor - Entity Name Changes

This release includes a major refactor to use a newly redesigned underlying library (python-omnilogic-local). While the functionality remains the same, some entity names and attributes may have changed.

Action required:

  • Review all entities after upgrading
  • Check your automations and update any entity references as necessary
  • Verify dashboards are displaying the correct entities
  • Test critical automations before relying on them

What's Changed

  • feat: migrate to new api library by @cryptk in #167
  • chore: update pytest dependency by @cryptk in #176
  • General cleanup of codebase by @cryptk in #177
  • fix: adjust library name from underscores to hyphens by @cryptk in #178
  • ci: modify how the backend library version is handled by @cryptk in #179
  • fix: service mode sensor inverted by @cryptk in #180
  • fix: fix some entities (eg: chlorinators) showing as unavailable by @cryptk in #181
  • fix: fix errors with release workflow by @cryptk in #182
  • fix: variable speed pumps showing incorrect value for current RPM by @cryptk in #183
  • fix: CL4.0 lights do not support brightness control by @cryptk in #184
  • fix: fix valves and better delayed refresh by @cryptk in #186
  • feat: fix PrettyEnum usage, make extra_state_attributes consistent by @cryptk in #187
  • chore: cleanup debug logging by @cryptk in #188
  • New config migrations by @cryptk in #190
  • fix: missing light icons for some relays/switches by @cryptk in #191
  • fix: handle the delayed state updates in a simpler way by @cryptk in #192
  • fix: change the integration type from device to hub by @cryptk in #193
  • feat: embedded branding, start work on quality scale by @cryptk in #194
  • feat: bump library, ref #172 by @cryptk in #195
  • fix: correct update mechanism for temperature sensors by @cryptk in #198
  • fix: shell.nix had invalid bash syntax in run-core alias by @cryptk in #199
  • feat: fix unavailable state and add failure reason counts to diagnostics by @cryptk in #200
  • fix: update library to resolve infinite wait while waiting for response by @cryptk in #201

Full Changelog: 0.7.13...1.0.0