diff --git a/CHANGELOG.md b/CHANGELOG.md index ec2a5c2..afd0b79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,24 @@ All notable changes to Smart (Components) Toolkit for Homey will be documented i --- +## [1.10.35] - October 2026 (Test channel) + +### Fixed +- Circadian Light Group: a Flow no longer stops with "Timeout after 60000ms" at a Circadian card ([#73](https://github.com/Tiwas/SmartComponentsToolkit/pull/73)). Homey stops an app's Flow card after 60 seconds. With a few lights that did not answer, turning a group or Collection on could take almost that long, because the card waited for every retry. + - A card now lets the Flow continue once every light has its commands and has been checked, which usually takes a few seconds. + - Lights that have not confirmed are retried in the background, and no Circadian card waits more than 50 seconds. + - A newer command, or pausing or deleting the group, stops the retries. + - Lights that still fail are reported by the *Error occurred* trigger, as before. + + See the [Circadian Light Group guide](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html#retries). +- Circadian Light Group Collection: the error message for groups with unresponsive lights named `undefined`; it now names the groups. A profile update that a group postpones, or that a newer command takes over, no longer counts as a failure. + +### Added +- *Turn on / Turn off / Toggle and report the result* (Then cards, Advanced Flow) for Circadian Light Groups and Collections. They do the same as the device's own On/Off/Toggle cards and return *All lights confirmed* (yes/no) and *Status* (text), for example "Continued before everything was confirmed. Lights still being retried in the background (1 of 11): Dining room bulb." + +### Changed +- The next card in a Flow no longer waits for the retries of an on/off command. A profile card such as Resume or Apply temporary state that arrives while those retries run is applied when they finish. + ## [1.10.34] - October 2026 (Test channel) ### Changed diff --git a/HOMEY_COMMUNITY_LISTING.md b/HOMEY_COMMUNITY_LISTING.md index 54239b3..35cfa7a 100644 --- a/HOMEY_COMMUNITY_LISTING.md +++ b/HOMEY_COMMUNITY_LISTING.md @@ -1,11 +1,11 @@ URL: https://community.homey.app/t/app-smart-components-toolkit-was-boolean-toolbox-create-advanced-logic-with-simple-formulas-v1-10-16-store-v1-10-27-test-logic-device-reliability/143906 -Title: [APP] Smart (Components) Toolkit (was: Boolean Toolbox) - Create advanced logic with simple formulas [v1.10.16 store / v1.10.34 test - Flow name card, Circadian time fix] +Title: [APP] Smart (Components) Toolkit (was: Boolean Toolbox) - Create advanced logic with simple formulas [v1.10.16 store / v1.10.35 test - Circadian cards no longer time out, Flow name card] Content: ![xlarge|690x483](upload://iSxhJPUltgcgPQ7gy4z5iisCv5F.jpeg) -# Smart (Components) Toolkit — store v1.10.16 / test v1.10.34 +# Smart (Components) Toolkit — store v1.10.16 / test v1.10.35 > **📚 Full Documentation:** https://tiwas.github.io/SmartComponentsToolkit/ @@ -17,6 +17,23 @@ Replace complex flow networks with powerful logic devices controlled by dynamic ## What's new +### v1.10.35 (test channel) + +- **Circadian Light Group: no more "Timeout after 60000ms".** Homey stops an app's Flow card after 60 seconds, and the rest of the Flow then never runs. With a few lights that don't answer (an unplugged bulb, a Z-Wave module out of range), turning a group or Collection on could take almost that long, because the card waited for every retry. Now the card lets the Flow continue as soon as every light has its commands and has been checked, usually within a few seconds. Lights that haven't confirmed are retried in the background, and no Circadian card waits more than 50 seconds. +- **New: *Turn on / Turn off / Toggle and report the result*** (Then cards, Advanced Flow). They work like the device's own On/Off/Toggle cards and add two tags: *All lights confirmed* (yes/no) and *Status* (text), for example *"Continued before everything was confirmed. Lights still being retried in the background (1 of 11): Dining room bulb."* +- **Retries stop when you change your mind:** a newer command, pausing the group or deleting it stops retries that are still running, so a retry never turns a light back on after you paused or switched off. +- **Clearer Collection errors:** the error message for groups with unresponsive lights now names the groups (it said *undefined*). +- **Tip:** a lamp that is unplugged slows every command down. Untick *Enabled* for it in the group's light settings until it works again; the *Status* tag tells you which lamps don't answer. + +``` +WHEN: Button "All on" pressed +THEN: Turn on and report the result (Circadian Light Group Collection) +AND: All lights confirmed is no +THEN: Create a notification with "Lights: [Status]" +``` + +Circadian Light Group guide — retries and result tags + ### v1.10.34 (test channel) - **Clearer waiter log:** when a wait takes over a Waiter ID that is already waiting, the app log now says so. The earlier wait still ends on its NO path, as before. Internal clean-up only; nothing changes in your Flows. Waiter Gates guide @@ -160,10 +177,11 @@ Together they cover both sides: Flow Doctor shows how your Flows are wired, and ## ✨ Circadian Light Group — now on stable -A virtual **light device** that adjusts brightness and color temperature for a group of real lights — automatically following a circadian rhythm. Store is currently v1.10.16; v1.10.34 is available on the test channel. +A virtual **light device** that adjusts brightness and color temperature for a group of real lights — automatically following a circadian rhythm. Store is currently v1.10.16; v1.10.35 is available on the test channel. ### Circadian Light Group highlights +- **No more 60-second timeouts (v1.10.35).** Cards let the Flow continue once every light has its commands; lights that don't answer are retried in the background. *Turn on / Turn off / Toggle and report the result* (Advanced Flow) tell you whether every light confirmed. - **Local time and morning profile (v1.10.32).** The schedule follows your Homey's time zone instead of UTC. Mornings can have their own dim and temperature, and lux anchors stay intact when you edit the group. - **Device ID resolver (v1.10.16).** The app now captures Homey device IDs and names so Flow Doctor can resolve references to previously deleted devices. - **Parallel device writes (v1.10.7).** Multi-device flow actions and the scheduler push to up to 5 lights at the same time instead of one-after-another. A 16-light "turn on all" goes from minute-scale to seconds. @@ -207,7 +225,7 @@ Choose how the device knows how bright it is outside: **Conditions**: is in phase, red mode active, is paused, is on. -**Actions**: pause (sec/min/hour), pause until time, pause until solar event, resume, turn on/off/toggle, set red threshold, **apply temporary state** (override dim/temp/saturation/red — restored on next tick, perfect for testing or quick "moods"), **force red mode** (with optional duration), apply now, set outdoor lux, **turn on light at current circadian level** (pick any group member from dropdown), **turn on / off all members** (group-level convenience). +**Actions**: pause (sec/min/hour), pause until time, pause until solar event, resume, turn on/off/toggle (also as **… and report the result** with *All lights confirmed* and *Status* tags, Advanced Flow), set red threshold, **apply temporary state** (override dim/temp/saturation/red — restored on next tick, perfect for testing or quick "moods"), **force red mode** (with optional duration), apply now, set outdoor lux, **turn on light at current circadian level** (pick any group member from dropdown), **turn on / off all members** (group-level convenience). → Read full Circadian Light Group guide diff --git a/README.md b/README.md index 61cc61e..f088308 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Advanced logic and state management for your Homey automations. Create smart dev [![Test](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapps-api.athom.com%2Fapi%2Fv1%2Fapp%2Fno.tiwas.booleantoolbox&query=%24.testVersion&label=test&color=orange)](https://homey.app/a/no.tiwas.booleantoolbox/test/) [![Homey](https://img.shields.io/badge/Homey-5.0+-green.svg)](https://homey.app) -> **v1.10.34 test** — the app log now shows when a wait takes over a Waiter ID that is already waiting (internal clean-up, no change in behaviour). Builds on **v1.10.33**: new Advanced Flow card *Get the name of [this Flow]* returns the Flow's own name, id and folder as tags, and follows when you rename the Flow. See the [Flow card reference](https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html#action-flow-name). Builds on **v1.10.32**: the Circadian Light Group schedule now follows your Homey's time zone (it ran 1–2 hours late on UTC), the outdoor light estimate follows the real sun, mornings can get their own optional profile, and the editors keep lux anchors and saved lux sensors. See the [Circadian Light Group guide](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html). Builds on **v1.10.31** (Homey Web API library 3.20.0) and **v1.10.30**, which fixes app restarts and Logic Devices that stopped reacting, and adds background waits beyond Homey's 60-second Flow card limit. See the [Conditional Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html) and [Waiter Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html) guides. +> **v1.10.35 test** — Circadian Light Group Flows no longer stop at Homey's 60-second card limit: a card lets the Flow continue once every light has its commands, lights that do not answer are retried in the background, and new Advanced Flow cards *Turn on / Turn off / Toggle and report the result* tell you whether every light confirmed. See the [Circadian Light Group guide](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html#retries). Builds on **v1.10.34**: the app log now shows when a wait takes over a Waiter ID that is already waiting. Builds on **v1.10.33**: new Advanced Flow card *Get the name of [this Flow]* returns the Flow's own name, id and folder as tags, and follows when you rename the Flow. See the [Flow card reference](https://tiwas.github.io/SmartComponentsToolkit/docs/flow-cards.html#action-flow-name). Builds on **v1.10.32**: the Circadian Light Group schedule now follows your Homey's time zone (it ran 1–2 hours late on UTC), the outdoor light estimate follows the real sun, mornings can get their own optional profile, and the editors keep lux anchors and saved lux sensors. See the [Circadian Light Group guide](https://tiwas.github.io/SmartComponentsToolkit/docs/circadian-light-group.html). Builds on **v1.10.31** (Homey Web API library 3.20.0) and **v1.10.30**, which fixes app restarts and Logic Devices that stopped reacting, and adds background waits beyond Homey's 60-second Flow card limit. See the [Conditional Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/conditional-gates.html) and [Waiter Gates](https://tiwas.github.io/SmartComponentsToolkit/docs/waiter-gates.html) guides. --- @@ -139,7 +139,7 @@ THEN: Pop state (restore previous) [Homey Flow delay: 5 minutes] --- -### Circadian Light Group *(stable v1.10.16 / test v1.10.34)* +### Circadian Light Group *(stable v1.10.16 / test v1.10.35)* Virtual light device that adjusts brightness and color temperature for a group of real lights based on time, sun position or ambient lux. diff --git a/WORKLOG.md b/WORKLOG.md index b115898..f9cf902 100644 --- a/WORKLOG.md +++ b/WORKLOG.md @@ -1,5 +1,23 @@ # Worklog +## 2026-10-08 — Release prep for test v1.10.35 + +### Requested +- Lars asked for a review of the Circadian change. Once it passed, he asked for it to be installed on his Homey with `homey app install`, released as a new test version, and the community post Markdown file updated. + +### Implemented +- Version 1.10.35 (`homey app version`, `npm version`), with the store changelog in English and Norwegian linking to the new "Retries after the card" section of the Circadian Light Group guide. That heading now has the anchor `#retries`. +- `CHANGELOG.md`: 1.10.35 section. `README.md`: summary and the Circadian Light Group heading. +- `HOMEY_COMMUNITY_LISTING.md`: + - The title and header say test v1.10.35. + - "What's new" has a v1.10.35 section with an example. + - The Circadian Light Group highlights and the action card list mention the "… and report the result" cards. +- The forum post on community.homey.app is not changed; Lars posts it himself. + +### Verification +- Jest: 24 suites / 414 tests pass. `npm run test:package`: publish-level validation passes. +- Installed on Lars's New Homey with `homey app install` from this branch; its app folder is `main` plus the version bump. 1.10.35 is `running` (`devkit_install`), and all 11 app devices are available. The bedroom group's "Turn off and report the result" returned in 49 ms with `completed: true` and "All lights confirmed (5)." + ## 2026-10-08 — Circadian Light Group and the 60 s Flow card limit (investigation) ### Requested @@ -51,6 +69,16 @@ - Third Codex review (`b298bb7`), P2: `collectionReportGen` went up only after the new operation's first pass had finished. An older operation whose retries finished in that window could still report. The number is now taken when the operation starts, and the first-pass report checks it too. New test; Jest: 24 suites / 410 tests pass. - Fourth Codex review (`51a1d04`), P2: pausing the group did not stop turn-on retries that were running in the background, so a retry could turn a light on after the pause. Pausing, through the card or the capability, now takes over the running operation (`stopRunningLightCommands`). Deleting the group does the same, so retries do not keep writing to its lights. Three new tests; Jest: 24 suites / 413 tests pass. - Fifth Codex review (`5a1d4b5`), P2: when a profile update had a failure that is already final and also lights still being retried, the first result said `ok: true` and hid that failure, so a Collection "Apply now" no longer reported it as before. The first result's `ok` now counts the failures that are not retried. New test; Jest: 24 suites / 414 tests pass. +- Sixth review (`c0f91a4`): no findings, 👍. + +### Live test, replacement PR and merge +- `homey app install` from the PR branch on Lars's New Homey. The first attempt failed with "Missing File" and left the app stopped from about 21:52 to 22:04 local time; the second attempt installed it. Afterwards the app was `running` (`devkit_install`), and all 11 app devices were available. +- At 22:04 every light was off, so turn-on was not tested; it would have lit the whole house. + - The Collection's "Turn off and report the result" (`runFlowCardAction`) finished in 1.8 s with `completed: false`. Its status said: "Circadian Light Group: Continued before everything was confirmed. Lights still being retried in the background (1 of 11): Smart Energy Illuminator. CLG (soverom): All lights confirmed (5)." + - The bedroom group alone finished in 59 ms with `completed: true`. + - The diagnostics showed the background report ("1 Circadian member(s) could not be verified off after retries") about 20 s later. + - The Homey's language is English, so the English status text is right. +- The message check failed on PR #72: five fix commits started with the review tool's name ("… review:"), and so did the PR description. History rewriting and force-pushing are not allowed in this setup. The content therefore went into one clean commit on a new branch (`git merge --squash`) as PR #73, and #72 was closed with a pointer. On #73 the automated review found no issues (👍) and the checks passed. Squash-merged as `a3bb701`. ## 2026-10-05 — Test v1.10.34 released diff --git a/docs/docs/circadian-light-group.html b/docs/docs/circadian-light-group.html index 1adc73e..6a1f31e 100644 --- a/docs/docs/circadian-light-group.html +++ b/docs/docs/circadian-light-group.html @@ -243,7 +243,7 @@

Actions

The multi-device actions and the scheduler push to up to 5 lights in parallel, verify the result afterwards, and retry lights that did not confirm, for example after a Z-Wave / Zigbee timeout. If a conflicting command arrives (e.g. an "all off" right after an "all on"), the new command supersedes the running one — no fighting between flows.

-

Retries after the card, and the result tokens

+

Retries after the card, and the result tokens

Homey stops an app's Flow card after 60 seconds, and the Flow then stops at that card. A light that does not answer can take up to 10 seconds per attempt, so a group with a few dead lights could come close to that limit. To keep the Flow moving: