Repository navigation
Consume valar-core + scheduling as remote packages (retire self-contained core) - #33
Merged
Merged
Conversation
…anch) Prove-out of the shared-core rewire (not for merge yet). Replaces Ropener's self-contained board core with the shared valar-core + scheduling packages from Valar-Systems/valar-motion, keeping only the Ropener product layer (cover, sensorless homing, two-button gesture UI, gear math, and the schedule_open/schedule_close scripts the scheduling mixin calls). - firmware/common/ropener-product.yaml — the product layer; renames core's shared entities via !extend so field units keep their HA entity_ids (IRUN value, SGTHRS value, TCOOLTHRS value, SG_RESULT Sensor, TSTEP Sensor, WiFi Reset) - firmware/VAL3000|VAL3100/Ropener-*-rewired.yml — board wrappers pulling the remote packages (pinned to a valar-motion commit) + the product layer - .github/workflows/verify-rewire.yml — compiles both on GitHub runners Regression gate (esphome config, both boards): 0 entity regressions, all original entities preserved, +7 new core diagnostics; OTA button URL and asset names byte-identical (Ropener-VAL3x00, self-updating from the Ropener repo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpCz2RvuxV5uV8bFwCEpkL
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpCz2RvuxV5uV8bFwCEpkL
Make the valar-core rewire the canonical Ropener firmware: - delete firmware/common/ropener-core.yaml and the old per-board wrappers - Ropener-VAL3000.yml / Ropener-VAL3100.yml now pull valar-core + scheduling from Valar-Systems/valar-motion pinned to tag v0.2.0, + ropener-product.yaml - bump fw_version 2.6.4 -> 2.7.0 - replace the verify workflow with build-release.yml: builds every board and, on a tag, attaches factory.bin + ota.bin + ota.bin.md5 with the stable Ropener-VAL3000 / Ropener-VAL3100 asset names (the md5 the OTA button needs) Verified on real hardware against the identical core commit (v0.2.0 = bc869f7): 0 entity regressions, OTA button URL + asset names unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpCz2RvuxV5uV8bFwCEpkL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rewires the Ropener firmware to build on the shared valar-core instead of carrying its own copy of the board core. Ropener now pulls
valar-core+schedulingfromValar-Systems/valar-motionas remote packages (pinned to tagv0.2.0) and keeps only the Ropener product layer. Fix a board bug once in valar-core and every product inherits it.What changed
firmware/common/ropener-core.yaml(1,785 lines) and the old per-board wrappers.firmware/common/ropener-product.yaml— the product layer: cover, sensorless homing, two-button gesture UI, gear/distance math, and theschedule_open/schedule_closescripts the scheduling mixin calls. Renames core's shared entities via!extendso field units keep their existing Home Assistant entity_ids (IRUN value,SGTHRS value,TCOOLTHRS value,SG_RESULT Sensor,TSTEP Sensor,WiFi Reset).firmware/VAL3000|VAL3100/Ropener-*.yml— thin board wrappers pinningvalar-core+schedulingatv0.2.0;fw_version→ 2.7.0..github/workflows/build-release.yml— builds every board and, on a tag, attachesfactory.bin+ota.bin+ota.bin.md5with the stableRopener-VAL3000/Ropener-VAL3100asset names.Regression gate (both boards)
https://github.com/Valar-Systems/Ropener/releases/latest/download/Ropener-VAL3100.ota.bin— so field units keep self-updating from the same place, and release asset names are unchanged.valar-motion v0.2.0, and verified working on physical hardware.After merge
Ropener v2.7.0→build-release.ymlattaches theRopener-VAL3x00binaries; existing units OTA-update safely (names + URL preserved).rewire/valar-corefrom the workflow's branch triggers (present only to verify pre-merge).🤖 Generated with Claude Code
https://claude.ai/code/session_01XpCz2RvuxV5uV8bFwCEpkL
Generated by Claude Code