- Fix the App Settings diagnostic report after a user received
ENOENT: no such file or directory, uv_resident_set_memory. - Publish the fix as a new Homey draft release.
- Made Node.js process-memory and operating-system resource probes best effort so unavailable platform metrics cannot abort report generation.
- Wrapped Homey API resource calls so both synchronous exceptions and rejected promises degrade to unavailable values.
- Ensured missing or incomplete load averages are rendered explicitly as unavailable.
- Added regression coverage for the reported process-memory failure and unavailable Homey resource endpoints.
- Prepared the v1.10.29 patch-release metadata and Community post source.
npm test -- --runInBand: 19 suites and 210 tests passed.npm run test:package: publish-level validation passed; bundle contains 766 files (7.51 MB) and all 17 manifest assets were verified.
- Add a way for users to submit a diagnostic report directly to GitHub Issues.
- Include available device/app CPU, memory, storage and Circadian Light Group load information.
- Prepare a reviewed PR, merge it when green, upload a Homey test build, install it on the configured Homey, and update the Community post source.
- Added a private App Settings diagnostics endpoint and UI for generating, previewing, copying, and opening a prefilled GitHub issue without embedding GitHub credentials.
- Added bounded persistence of recent warnings/errors with stack traces and redaction of common device IDs, email/IP values, credentials, and long token-like values.
- Reduced persisted logger events to label-free messages and stack frames so user-defined device, room, waiter, and formula labels are not copied into public issue drafts.
- Added anonymous per-driver device counts, configuration-alarm counts, Circadian Light Group member/watcher/update-interval details, process and Homey-reported memory, system load averages, app CPU metric, and Homey storage totals when exposed by the platform.
- Aligned the runtime startup banner and npm package metadata with Homey app version 1.10.28.
- Updated README, Store README, changelog, project documentation, and Homey Community post source.
- JavaScript syntax and changed locale/manifest JSON parsing passed.
npm test -- --runInBand: 19 suites and 209 tests passed.npm run test:package: publish-level validation passed; bundle contains 766 files (7.51 MB) and all 17 manifest assets were verified.homey app run --remote: v1.10.28 initialized successfully with the correct version banner and remained running without an app restart during the smoke-test window.- GitHub review found six issues across two passes; all findings were addressed with regression coverage before merge. Homey upload/install and the final release result are recorded below when completed.
- Publish the latest test version, update the Homey Community post, and install the newest version locally.
- Prepared the v1.10.27 release notes for serialized Logic Device evaluations, reduced Logic Unit logging, and the leaner validated app bundle.
- Updated the repository README, changelog, Homey changelog, and Community-listing source for the new test version.
- Uploaded Homey Build 56 as version 1.10.27; the user published it to the test channel.
- Posted the v1.10.27 release announcement to the existing Homey Community topic.
npm test -- --runInBand: 14 suites and 197 tests passed.npm run test:package: publish-level validation passed; bundle contains 764 files (8.16 MB) and all 17 manifest assets were verified.homey app install: version 1.10.27 installed successfully on the configured Homey Pro.
- Add a universal Homey device that combines the same capability from multiple devices.
- Support humidity min/max and broader numeric, boolean/alarm, text, enum, and clock-time use cases.
- Verify and improve the published Logic Unit usage documentation.
- Create the Composite Device image assets and publish the app.
- Added the
composite-devicedriver with a visual capability, operation, source-device, and name pairing page. - Added
CompositeAggregator.jswith numeric average/min/max/sum/median; boolean any/all/majority/count/percentage; text/enum mode/min/max/newest; and circular average clock time. - Added dynamic numeric, alarm, and text capabilities plus realtime source listeners, partial-source error reporting, periodic reconnection, and listener cleanup.
- Added unit/device/driver tests and retained the pending Logic Device restart and Circadian Light Group member-verification fixes already present in the worktree.
- Added a Composite Device guide, updated the device overview and README, and added existing Logic Unit settings/Flow screenshots to the published documentation.
- Reworked the supplied Composite Device raster into a transparent master and derived 500 × 500 and 75 × 75 Homey assets; verified the enclosed background gaps between pins are transparent.
npm test -- --runInBand: 7 suites, 133 tests passed.homey app validate: passed at publish level.homey app run --remote: installed and initialized successfully on the configured Homey Pro; the Composite Device driver initialized without errors.
- Published Homey Build 49 as version 1.10.20 in the test channel.
- Installed version 1.10.20 on the configured Homey Pro after the remote development run.
- Committed the implementation and documentation for GitHub publication.
- Replace the generated Composite Device small asset with the supplied final
small.png. - Publish a new Homey test version and update GitHub, the community listing source, and online documentation.
- Replaced the 75 × 75 Composite Device driver image with the supplied final image.
- Replaced the partial Homey Store README with a complete overview of all current and legacy devices plus every standalone Flow-card family.
- Added Composite Device to the Homey Store description and updated the community listing source.
- Updated the README, changelog, Composite Device guide, device overview, and version badges for v1.10.21.
npm test -- --runInBand: 7 suites, 133 tests passed.homey app validate: passed at publish level after the final Store README update.- Source and runtime
small.pngfiles have identical SHA-256 hashes and are 75 × 75 RGBA PNGs. - Changed documentation pages passed local-link checks and all edited JSON files parsed successfully.
- Uploaded Homey Build 50 as v1.10.21 and published it to the test channel.
- Confirmed in Homey Developer Tools that the test submission contains the complete Store README and updated Composite Device image.
- Installed v1.10.21 successfully on the configured Homey Pro.
- Prepared the v1.10.21 release commit with the documentation, community listing source, and image assets required for GitHub Pages.
- Add a Composite Device trigger that fires whenever the exposed value changes.
- Add a second trigger that fires only when a numeric change is larger than a user-selected fixed or percentage threshold.
- Added the device trigger
composite_value_changedfor numeric, boolean/alarm, and text/clock outputs, with current value, previous value, value type, and device-name tags. - Added
composite_value_changed_larger_thanfor numeric Composite Devices, with per-Flow fixed-unit or percentage thresholds and current, previous, signed-change, absolute-change, and percentage-change tags. - Suppressed both triggers for the first successful aggregate after app/device startup so initialization only establishes the comparison baseline.
- Defined percentage change against the absolute previous value; zero-to-nonzero transitions are represented as 100%, and thresholds compare consecutive values rather than accumulating smaller changes.
- Isolated Flow trigger failures from aggregate capability updates and source-error reporting.
- Updated the Composite Device guide, Flow-card reference, project documentation, Store README, root README, and changelog.
npm test -- --runInBand: 7 suites, 136 tests passed.homey app validate: passed at publish level with both new trigger cards included.- JavaScript syntax, Flow-card JSON parsing, local documentation links, and
git diff --checkpassed.
- Implemented and validated locally; no new version was published in this session.
- Publish the Composite Device value-change triggers as a new Homey test version and install it locally.
- Update
HOMEY_COMMUNITY_LISTING.md, push the release to GitHub, and leavemainin the merged release state.
- Versioned the app and documentation as v1.10.22 and added the two new Composite Device triggers to the app changelog.
- Updated the community listing source, Store README, root README, device guide, Flow-card reference, and version labels for the test release.
npm test -- --runInBand: 7 suites, 136 tests passed.- Homey publish validation passed and included both Composite Device trigger cards.
- Homey Developer Tools confirmed Build 51 as v1.10.22 with the updated changelog and Store README.
- Uploaded Homey Build 51 as v1.10.22 and published it to the test channel.
- Installed v1.10.22 successfully on
Lars's New Homeyafter debug-level validation. - Prepared the v1.10.22 source, documentation, and community listing update for the GitHub release commit.
- Determine whether a Logic Unit using
A+Bshould trigger Homey's generic-alarm-turned-on card after an input is set to TRUE, or whether the wrong Flow card was used.
- Confirmed that
+is a supported OR operator, so either A or B being TRUE makesA+BTRUE once both required inputs have values. - Confirmed that the current Logic Unit evaluator stores the formula result but never writes the aggregate result to
alarm_generic; even the aggregate state calculated during full reevaluation is unused. - Confirmed that published documentation defines
alarm_genericas the formula result and that the older backup implementation updated it, identifying this as a Logic Unit regression rather than user misuse. - Found a second inconsistency in the formula-specific trigger path: the evaluator triggers undeclared device-card IDs while the registered combined card has a different app-trigger ID. It should therefore not be presented as a reliable workaround until fixed.
- The generic alarm card should work according to the exposed capability contract; for multiple formulas, its intended state is the aggregate OR result (TRUE when any enabled formula is TRUE).
npm test -- --runTestsByPath FormulaEvaluator.test.js --runInBand: 1 suite, 52 tests passed, includingA + Btokenization and evaluation coverage.- No production code was changed during this diagnostic session.
- Add a new Formula changed to... card and repair the Formula changed behavior.
- Added a formula-specific Formula changed trigger for every TRUE/FALSE transition and repaired Formula changed to... with correct device-trigger registration, formula matching, and result filtering.
- Added current and previous boolean result tokens to both cards.
- Restored the original pre-Compose TRUE/FALSE trigger IDs as deprecated compatibility cards and retained the newer deprecated aliases.
- Synchronized
alarm_genericwith the aggregate Logic Unit result, defined as TRUE whenever any enabled formula is TRUE, so Homey's standard alarm turned on/off cards work again. - Renamed the Dynamic Logic Unit capability from the generic Homey label to Formula result and updated Flow-card/device documentation.
- Added Logic Unit regression tests covering
A+B, aggregate alarm behavior, trigger payloads, selected-formula filtering, and TRUE/FALSE result filtering. - Focused test run: 2 suites and 55 tests passed.
- Full test run: 8 suites and 139 tests passed.
- All changed Flow-card and driver Compose JSON parsed successfully; changed JavaScript files passed
node --check. homey app validatepassed at publish level with both current cards and all compatibility IDs included for every Logic Unit driver.
- Publish and install the Logic Unit fix, update GitHub, and update the existing Homey Community topic.
- Versioned the Homey app and release documentation as v1.10.23.
- Added the Logic Unit alarm and formula-trigger fixes to the Homey changelog, repository changelog, README, documentation version badges, and community-listing source.
npm test -- --runInBand: 8 suites, 139 tests passed.homey app validate: passed at publish level.- Homey Developer Tools confirmed Build 52 as v1.10.23 and showed both
Formula changedandFormula changed to...in the submitted manifest.
- Uploaded Homey Build 52 and published v1.10.23 to the test channel.
- Installed the app successfully on
Lars's New Homeywithhomey app install. - Updated and verified the existing Homey Community topic with the v1.10.23 title and release notes.
- Investigate a user report that the app resets itself every 30 seconds by running the app remotely over time.
- Determine what diagnostics the user can submit and whether the app should expose stack traces or additional logs.
- Ran
homey app run --remotefor approximately 5 minutes and 16 seconds. The app completed one initialization and remained running through more than ten reported 30-second windows without a restart, repeatedonInit, unhandled rejection, fatal error, or memory/heap error. - The only runtime errors were handled Homey API failures for unavailable Z-Wave devices (
TRANSMIT_COMPLETE_NO_ACKandThis device is currently unavailable) during Circadian Light Group updates. The retry path completed without terminating the app. - Found a stronger explanation if "reset" means that light values are restored: Circadian Light Group reapplies its target on a configurable scheduler whose hard minimum is exactly 30 seconds. The local configuration uses 120 seconds, and the remote log showed normal
apply[timer]cycles at that interval without app reinitialization. - Reviewed five earlier long-running remote logs. Each contained exactly one startup banner and one completed initialization, with no app uninitialization or fatal/unhandled/heap markers. The longest session logged activity continuously for almost three days.
- Confirmed that the app already logs stack traces when a real
Errorobject reachesLogger.error, but it has no user-downloadable persistent ring buffer or diagnostic snapshot. The startup banner currently reads the stale package version (1.10.25) while the generated/Compose manifest is 1.10.27, which can confuse incident reports. - Homey's built-in app management offers Send diagnostics to developer; a separate Homey system diagnostics report can also be created for Homey Support.
- First ask the reporter whether the app itself shows a crash/restart or whether controlled device values revert, and whether a Circadian Light Group is configured with a 30-second update interval.
- Ask the user to enable the app's Debug Mode, reproduce the issue, immediately send app diagnostics, and include the exact local time, app version, affected device/group, and what visibly resets.
- Add a bounded in-memory diagnostic ring buffer and a redacted downloadable diagnostic snapshot with startup/session ID, manifest version, uptime, last scheduler operations, last errors with stacks, and lightweight memory counters. Do not rely on global
uncaughtExceptionhandlers to keep a damaged process alive.
- Current remote observation: one startup, normal 120-second scheduler cycles, no restart or fatal process signal.
- Historical log scan: five sessions, one initialization per session, zero fatal/unhandled/heap markers.
- No production code was changed during this diagnostic session.