Skip to content

v2.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 12:36
v2.1.0
59155f2

Stewart 2.1 keeps your exposed entities through a Home Assistant restart. Stewart no longer gives up when it
reconnects before Home Assistant has loaded the Stewart integration, and a daemon that exposes no entities can leave
the integration alone.

Highlights

Entities come back after a Home Assistant restart. Home Assistant accepts connections before it has loaded the
Stewart integration, so Stewart used to reconnect, find no integration, and leave every exposed entity unavailable
until you restarted Stewart. It now keeps checking with the same backoff it uses to reach Home Assistant, and opens
the session as soon as the integration answers. Installing the integration while Stewart runs works the same way,
without a restart.

Exposing while the integration loads. An app that calls expose*() before the integration answers, for example
when Stewart and Home Assistant start together, gets its handle as usual. Its entity ID is null until the
integration answers, and then Stewart creates the entity. Before, the call threw ComponentMissing and the entity
stayed away until the app exposed it again.

Turn the integration off. A daemon that never exposes entities can set expose.enabled: false
(STEWART_EXPOSE__ENABLED=false). Stewart then sends nothing to the integration, make status and make doctor say
it is off, and expose*() throws ExposureError::Disabled.

Also new

  • The log line, make status and the exposure error for a missing integration say it may still be loading, not only
    that it is not installed.
  • ExposureError::ComponentMissing is deprecated: Stewart no longer throws it, and 3.0 removes it.

Upgrading

Run make update, then restart Stewart. Nothing in your apps needs to change. Update the Stewart integration in Home
Assistant to 2.1.0 too; its protocol is unchanged, so the 2.0.0 integration keeps working until you do.


Every change is in the changelog.