Skip to content

Releases: ssbingo/ioBroker.pondpump

Release v0.12.4

Choose a tag to compare

@github-actions github-actions released this 11 Sep 06:54

Feedback: entering an actuator "off value" was practically impossible —
the free-text field re-parsed on every keystroke and parseActuatorValue
fell back to true for any partial input, so typing "false" snapped
straight back to "true".

  • New reusable renderActuatorValueSelect() in PondpumpScheduler.tsx: a
    dropdown true / false / number (with an inline number field), plus a
    "leave untouched" option for the off-value. Used by the actuator window
    on-value + off-value AND the "Set actuator" weather-rule value. Removed
    the old parseActuatorValue/actuatorValueText free-text helpers.
  • +admin i18n "Number" / "leave untouched" (11 languages).
  • Handbook DE+EN 10.2: the on-value/off-value dropdown explained, and a
    note that the on field in the schedule.actuators status datapoint is
    the LIVE window status (window active now?), not the on/off value — the
    point the user was confused by. That datapoint is correct as-is.

README + news (11 languages); handbook PDFs regenerated.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.12.3

Choose a tag to compare

@github-actions github-actions released this 10 Sep 12:55

Water temperature colours (thermometer in PumpVisual, readout in
PumpScheduler) now follow the koi temperature bands from the new research
instead of a neutral cold->warm gradient (graphics.tempColor):
<2 red · 2-4 orange · 4-8 blue (winter rest) · 8-13 amber (the cold
"Aeromonas window": pathogens active, immune system not) · 13-17 teal ·
17-23 light green · 23-26 green (growth optimum) · 26-28 light green ·
28-30 orange · >=30 red.

Per-actuator wheel colours: the Scheduler widget's "Actuators" settings now
give every actuator its own on/off colour picker (stored per actuator in
actuatorColors), replacing the single global pair from v0.12.2. The
wheel's darker gradient shade is still derived automatically.

Research + handbook:

  • New doc/research/wassertemperaturen-im-koiteich.md (faithful transcription
    of the 14-page koi-temperature study, with the source list T1-T93).
  • The German handbook now carries BOTH research papers as Anhang 1 & 2,
    appended at build time by scripts/build-handbook-pdf.mjs (single source of
    truth in doc/research/) — DE manual PDF now 41 pages. The English handbook
    gets an appendix note pointing to them. Widget/handbook thermometer text
    updated to the koi-comfort colour meaning.

README + news (11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.12.2

Choose a tag to compare

@github-actions github-actions released this 10 Sep 11:03

Feedback: let the actuator status impeller colour be chosen in the widget
settings, separately for the on and off state.

  • PumpScheduler settings "Actuators" section: two colour pickers
    actColorOn / actColorOff (defaults #a6e77d light green / #6b7669 muted
    green-grey — matching the previous look). The wheel's darker gradient
    shade is derived automatically via graphics.darken().
  • renderActuators picks the per-state colour; the off wheel no longer
    greyscales (so the chosen off colour shows), just a light dim.
  • +widget i18n act_color_on / act_color_off (11 languages).

Handbook DE+EN 9.4 note; PDFs regenerated. README + news (11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.12.1

Choose a tag to compare

@github-actions github-actions released this 10 Sep 09:52

Feedback: make each actuator individually show/hideable in the widget
settings.

  • New "Actuators" settings section in PumpScheduler with a custom field
    (actuatorVisibilityField) that reads the selected pump's actuator
    windows from the instance config (native.schedules[pid].plans) and
    renders a checkbox per actuator (icon + name).
  • Hidden actuators are stored per widget in hiddenActuators (JSON array
    of stable keys: the target OID, else "#"); the widget filters
    them out with the same key derivation. All shown by default.
  • Self-contained editor translation helper (tr) using the widget's own
    i18n JSONs — avoids depending on @iobroker/gui-components in the widget
    bundle. +widget i18n group_actuators / actuators_visibility /
    no_actuators (11 languages).

Handbook DE+EN 9.4 note; PDFs regenerated. README + news (11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.12.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 09:34

Feedback: actuator schedule windows (waterfall, stream, aerator, …) can
now be named and given an icon, and are shown in the PumpScheduler widget.

  • schedule.ts (mirrored): PumpSchedule +actuatorName/actuatorIcon;
    new describeActuators(plans, nowMin, astro) → [{name, icon, target, on}]
    (name falls back to "Aktor N"), unit-tested (124 passing).
  • Admin scheduler editor: actuator windows gained a Name field
    (placeholder "Actuator N") and an emoji Icon picker (waterfall, stream,
    aerator/oxygen pump, air, spray, UV, light, feeder, plant, heater,
    chiller, …). +admin i18n "Actuator name"/"Icon" (11 languages).
  • Backend: new read-only pumps..schedule.actuators JSON state
    (role "json"), published each tick from describeActuators.
  • PumpScheduler widget: lists each actuator ABOVE the telemetry, one row
    as "icon — name — wheel"; the wheel is a small light-green impeller that
    spins (optionally animated) while on and stands still (dimmed) while off.
  • graphics.tsx: renderImpeller now takes an endColor and uses a unique
    gradient id per colour pair — fixes a latent id collision so the hero
    (blue) and actuator (green) impellers on one card keep their own colour.

Handbook DE+EN 9.4 note; PDFs regenerated. README + news (11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.11.1

Choose a tag to compare

@github-actions github-actions released this 10 Sep 09:00

Feedback from live testing:

  • PumpVisual: the water thermometer was far too large. Replaced with a
    slim, modern, colour-coded design (capped size, no overlap with the
    values row).
  • PumpScheduler: now always shows the water temperature next to power/
    speed, and a small (optionally animated) impeller in the hero (new
    "animate" setting). Added the shared graphics module (graphics.tsx)
    with the impeller + thermometer + tempColor, used by both widgets;
    moved spinDuration() into PumpWidgetBase.
  • Robustness (fixes the "widget shows nothing" report): the base widget
    now reads each state's current value FIRST and subscribes per state,
    instead of one array subscribe. A pump whose newer schedule.* states
    don't exist yet (older backend) no longer blanks the whole widget —
    telemetry, name and controls render regardless. (The schedule.* status
    fields still need the v0.11.0+ backend, and the badge correctly shows
    "manual/off" until scheduling is enabled for the pump.)

Handbook DE+EN 9.4 note (small impeller); PDFs regenerated. README + news
(11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.11.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 08:42

New "Scheduler status" vis-2 widget (PumpScheduler):

  • Shows what the built-in scheduler is doing per pump and why: current
    output + target power, status badge (active/manual/fail-safe), reason
    chips (curve/window/base + night protection/weather boost/frost hold),
    active window, next change, sunrise/sunset, water temperature, live
    power/rpm, and a control bar (on/off, quick power, SFC).
  • Fed by new read-only pumps..schedule.* status states the scheduler
    publishes each tick (controlled/targetPower/sfc/source/raised/
    nightProtection/hold/failSafe/window/nextChangeTs). Registered in
    vite.config.ts + io-package.json; i18n for all 11 languages; preview SVG.

Pure core (schedule.ts, mirrored to src-admin): decideTarget now also
returns source/raised/nightProtected/hold for the status states and the
widget (covered by new unit tests, 123 passing).

PumpVisual: when telemetry.waterTemperature has a value, the impeller
shifts left and a filled, colour-coded thermometer with the reading
appears on the right; unchanged without a value. Shared common helper
pumpDeviceName().

Docs: handbook DE+EN chapter 9.4 (scheduler widget) + 9.2 thermometer
note; PDFs regenerated. README + news (11 languages).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.10.1

Choose a tag to compare

@github-actions github-actions released this 10 Sep 07:37

Bugfix. Previously telemetry.waterTemperature was mirrored ONLY from the
pump's on-device sensor (waterTempSensor = temperature/temperature2), so
when the curve was driven by an EXTERNAL object (e.g. a Homematic water
sensor picked via the object magnifier) the state stayed empty (null) —
even though that external sensor correctly drove the power curve.

  • runScheduler now mirrors the effective curve source's raw value into
    telemetry.waterTemperature (external OIDs included), and logs a debug
    line when the source has no finite value. The scheduler already
    subscribes to curve.source (collectSourceOids), so the state stays
    fresh on every source change.
  • The poll loop's on-device-sensor mirror is now the FALLBACK only —
    it runs when no enabled curve source is configured, so the two writers
    never conflict.
  • objects.ts: updated the waterTemperature doc comment; unit stays "°C"
    (confirmed correct in source and esbuild output "\xB0C"; the "°C" seen
    in a running object is an admin round-trip re-encoding, not adapter code
    — it self-corrects on the next adapter start via extendObject).
  • Handbook DE+EN: note that waterTemperature reflects the effective curve
    source (external sensor included); PDFs regenerated.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.10.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 07:03

Logging/Debugging (per the project's verbindliches Logging standard):

  • decideTarget gained an optional trace: string[] output that records a
    human-readable step at every decision branch (base from curve/window,
    Q_min floor, night protection, each matching weather rule, actuator
    windows, the Q_max ceiling, final power/SFC). Covered by new unit tests.
    Mirrored to src-admin/src/schedule.ts.
  • runScheduler now logs, per tick and per pump at debug level: the raw
    source values, the full input snapshot (raw/smoothed/mapped water temp
    with tau & hysteresis, resolved sunrise/sunset, day/night, priority &
    min/max power), the decision trace, the ramp/hold resolution, the
    "unchanged -> nothing sent" cases and the next re-evaluation time.
  • setupAstro/recomputeAstro log the resolved location mode, system coords
    and per-pump coordinates + sun times; onMessage logs the geocode query
    and its result/failure. Secrets are never logged.

Docs:

  • doc/forum-tester-thread.md rewritten for V0.10.0, covering everything
    since V0.5.0 (max power per pump, astro windows, location + interactive
    map, night protection, actuator windows, clearer scheduler settings,
    detailed debugging).
  • Handbook (DE+EN): new "reading the scheduler decision log" section;
    PDFs regenerated.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Release v0.9.1

Choose a tag to compare

@github-actions github-actions released this 10 Sep 06:33

LocationPicker now listens for Leaflet "tileerror" and overlays a clear
message when the OSM tiles fail to load (typically the admin CSP blocking
the external tile host). The location stays fully settable via marker
click/drag, the coordinate fields and the address search. +1 i18n key
x 11 languages.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com