Skip to content

Add TemperatureRiseInformation field constants - #3

Merged
PoolsideStan merged 2 commits into
PoolsideStan:mainfrom
jaltmayerpizzorno:temperature-rise-constants
Oct 5, 2026
Merged

PoolsideStan merged 2 commits into
PoolsideStan:mainfrom
jaltmayerpizzorno:temperature-rise-constants

Conversation

@jaltmayerpizzorno

@jaltmayerpizzorno jaltmayerpizzorno commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

What

This adds constants for the TemperatureRiseInformation body-of-water status field, next to CURRENT_TEMPERATURE_FIELD and CURRENT_STATE_FIELD:

  • TEMPERATURE_RISE_INFORMATION_FIELD = "TemperatureRiseInformation"
  • TEMPERATURE_RISE_TARGET_END_KEY = "TargetEndDateTime"
  • TEMPERATURE_RISE_STATE_KEY = "TemperatureState", TEMPERATURE_RISE_EVENT_TYPE_KEY = "HeatingEventType"
  • TEMPERATURE_RISE_SAMPLED = "SAMPLED", TEMPERATURE_RISE_NORMAL = "NORMAL"

Why

While a body of water heats toward its set point, the controller pushes a JSON document in this field, keyed by the BodyOfWaterUUID. TargetEndDateTime is the predicted completion time. The Poolside app shows it as "ready in …" only for a sampled, normal heat-up: TemperatureState SAMPLED and HeatingEventType NORMAL. These are the names the estimated ready time sensor uses in PoolsideStan/poolside-official-integration#5 and PoolsideStan/home-assistant-core#1. Until now it had to define them itself.

The state and event type are plain string constants rather than enums, because only some of their values are known (SAMPLING/SAMPLED, and NORMAL/MAINTAIN_TEMPERATURE/LEARNING).

Observed behavior

These are notes from a live controller and from review, recorded in the comment:

  • No heat-up in progress: the field is None.
  • While sampling: TemperatureState is SAMPLING, and the controller may already fill in a preliminary target.
  • After sampling: TemperatureState becomes SAMPLED, and the controller revises TargetEndDateTime every few minutes.
  • Unset timestamps: they arrive as 0001-01-01… placeholders.

Constants only, so there's no behavior change. Tests and ruff pass.

🤖 Generated with Claude Code

The controller pushes a TemperatureRiseInformation document under each body
of water while it heats or cools toward its set point. Its TargetEndDateTime
is the predicted completion time the Poolside app shows as "ready in ...".
Add the field and key names so consumers can import them like the other
status fields.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Following review of the integration that uses them: drop the unused
ActualEndDateTime key (the controller clears the document when a heat-up
ends), and add TemperatureState and HeatingEventType with the values the
Poolside app requires to show a ready time (SAMPLED, NORMAL).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PoolsideStan
PoolsideStan merged commit 5ad094a into PoolsideStan:main Oct 5, 2026
1 check passed
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.

2 participants