Skip to content

Rebrand project from B2500 Meter to AstraMeter#302

Merged
tomquist merged 13 commits into
developfrom
claude/plan-astrameter-rebrand-4SsHu
Apr 6, 2026
Merged

Rebrand project from B2500 Meter to AstraMeter#302
tomquist merged 13 commits into
developfrom
claude/plan-astrameter-rebrand-4SsHu

Conversation

@tomquist
Copy link
Copy Markdown
Owner

@tomquist tomquist commented Apr 6, 2026

Summary

This is a comprehensive rebranding of the project from "B2500 Meter" to "AstraMeter" to better reflect support for the full range of Marstek storage systems (B2500, Jupiter, Venus, etc.), not just the B2500.

Key Changes

  • Package rename: b2500_meterastrameter
  • CLI commands: b2500-meterastrameter, b2500-simastra-sim
  • Docker image: ghcr.io/tomquist/b2500-meterghcr.io/tomquist/astrameter
  • Home Assistant: Updated addon slug, image references, and repository URLs
  • Documentation: Updated all references in README, CONTRIBUTING, and configuration examples
  • Logging: Updated logger names and startup messages
  • MQTT Discovery: Updated node IDs and manufacturer names from b2500_meter to astrameter
  • Marstek API: Updated device names from "B2500-Meter CT002/CT003" to "AstraMeter CT002/CT003"
  • Docker: Updated user/group from b2500 to astra
  • Configuration: Updated Home Assistant addon references to "app" terminology and config paths

Implementation Details

  • All Python imports updated to use astrameter package namespace
  • Test files updated with new import paths
  • Configuration examples and documentation reflect new naming conventions
  • Home Assistant addon configuration updated with new slug and image references
  • CHANGELOG entry documents this as a breaking change requiring users to update repository URLs

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW

Summary by CodeRabbit

Release Notes

  • Rebranding & Updates
    • Project rebranded from B2500 Meter to AstraMeter
    • CLI commands renamed: b2500-meterastrameter, b2500-simastra-sim
    • Updated Home Assistant integration documentation (app terminology)
    • Device names updated to AstraMeter CT002/CT003
    • Default MQTT topic changed to astrameter
    • Docker image and configuration examples updated

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 6, 2026

Warning

Rate limit exceeded

@tomquist has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 15 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 12 minutes and 15 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 827d6905-5258-462b-842b-a75d70dd0e1d

📥 Commits

Reviewing files that changed from the base of the PR and between 6e1e84a and 82f1131.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • README.md
  • src/astrameter/main.py

Walkthrough

This pull request performs a comprehensive project rebrand from "B2500 Meter" to "AstraMeter", including package namespace migration (b2500_meterastrameter), CLI command renames, Home Assistant app terminology updates, logger name changes, and corresponding import path updates across the entire codebase.

Changes

Cohort / File(s) Summary
Documentation & Branding
README.md, CHANGELOG.md, CONTRIBUTING.md, AGENTS.md, .github/ISSUE_TEMPLATE/issue_report.md, release.sh
Project renamed to AstraMeter with updated product descriptions, installation instructions, Home Assistant app terminology (replacing add-on references), CLI command names (astrameter/astra-sim), example configurations, and guidance text across all user-facing documentation.
Package Definition & Configuration
pyproject.toml, config.ini.example, repository.yaml, ha_addon/config.yaml
Project distribution name changed to astrameter with new console script entry points; default MQTT base topic updated from b2500_meter to astrameter; Home Assistant add-on metadata and repository URLs updated; package wheel path changed to src/astrameter.
CI, Containers & Infrastructure
.github/workflows/ci.yml, Dockerfile, docker-compose.yaml
CI pytest coverage target updated to astrameter; Docker runtime user changed from b2500 to astra; container entrypoint command renamed to astrameter; Docker Compose service and image references updated to astrameter.
Home Assistant Add-on Runtime
ha_addon/run.sh, ha_addon/translations/en.yaml
Startup messages and executed binary updated to reference AstraMeter; app/UI terminology updated in warning messages and translation strings; log output references astrameter.
Core Application & Config
src/astrameter/main.py, src/astrameter/config/config_loader.py, src/astrameter/health_service.py, src/astrameter/marstek_api.py
Application imports updated to astrameter namespace; default MQTT base topic changed to astrameter; health service metadata updated; device naming strings changed from B2500-Meter to AstraMeter; help text wording adjusted.
MQTT Insights & Discovery
src/astrameter/mqtt_insights/service.py, src/astrameter/mqtt_insights/discovery.py, src/astrameter/mqtt_insights/mqtt_insights_test.py
MQTT discovery identifiers and prefixes updated from b2500_meter_* to astrameter_*; default base topic changed; manufacturer metadata updated; test expectations aligned with new identifiers and base topic.
Logger Configuration
src/astrameter/config/logger.py, src/astrameter/config/logger_test.py, src/astrameter/powermeter/homeassistant.py, src/astrameter/powermeter/homewizard.py, src/astrameter/powermeter/json_http.py, src/astrameter/powermeter/sma_energy_meter.py, src/astrameter/powermeter/sml.py, src/astrameter/powermeter/throttling.py, src/astrameter/powermeter/transform.py
Logger names updated from b2500-meter / b2500_sim.* to astrameter / astra_sim.* across all modules; test expectations updated to match new logger identities.
CT002 & Shelly Modules
src/astrameter/ct002/balancer.py, src/astrameter/ct002/ct002.py, src/astrameter/shelly/shelly.py, src/astrameter/shelly/shelly_udp_test.py
Module imports updated from b2500_meter to astrameter package namespace for logger and dependencies.
Simulator Module
src/astrameter/simulator/cli.py, src/astrameter/simulator/battery.py, src/astrameter/simulator/powermeter_sim.py, src/astrameter/simulator/protocol.py, src/astrameter/simulator/runner.py, src/astrameter/simulator/tui.py
Logger names updated to astra_sim.* pattern; CLI branding, docstrings, and file names updated; pip install instructions in error messages changed to astrameter[sim]; simulator title and prog name updated.
Powermeter Implementations & Tests
src/astrameter/powermeter/amisreader_test.py, src/astrameter/powermeter/emlog_test.py, src/astrameter/powermeter/esphome_test.py, src/astrameter/powermeter/homeassistant.py, src/astrameter/powermeter/homewizard_test.py, src/astrameter/powermeter/iobroker_test.py, src/astrameter/powermeter/json_http_test.py, src/astrameter/powermeter/modbus_test.py, src/astrameter/powermeter/mqtt.py, src/astrameter/powermeter/mqtt_test.py, src/astrameter/powermeter/shelly_test.py, src/astrameter/powermeter/shrdzm_test.py, src/astrameter/powermeter/sml_test.py, src/astrameter/powermeter/tasmota_test.py, src/astrameter/powermeter/tq_em_test.py, src/astrameter/powermeter/vzlogger_test.py, src/astrameter/powermeter/sma_energy_meter_test.py
All import paths updated from b2500_meter.powermeter to astrameter.powermeter; test mocking targets updated to use new package namespace; test expectations adjusted for new module sources.
Integration & Unit Tests
tests/smoke_efficiency_saturation.py, tests/smoke_transitions.py, tests/test_balancer.py, tests/test_ct002_active_control.py, tests/test_ct002_mac_policy.py, tests/test_ct002_protocol.py, tests/test_efficiency_e2e.py, tests/test_marstek_api.py, tests/test_version_info.py
All test imports updated from b2500_meter.* to astrameter.* package hierarchy; test classes and helper functions now reference new package sources.
Package Initialization
src/astrameter/__init__.py, src/b2500_meter/__init__.py
New module docstring added to astrameter/__init__.py; docstring removed from deprecated b2500_meter/__init__.py.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

  • PR #264 — Also modifies .github/workflows/ci.yml with pytest --cov argument changes to the project package namespace.
  • PR #259 — Related packaging and CI/workflow modernization with similar module import/namespace updates across pyproject.toml, Dockerfile, and source files.
  • PR #292 — Directly related; renames MQTT Insights codepaths (imports, config loader, default BASE_TOPIC) from b2500_meterastrameter that align with this rebrand.
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 19.15% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Rebrand project from B2500 Meter to AstraMeter' clearly and concisely summarizes the main change across the entire changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/plan-astrameter-rebrand-4SsHu

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

claude added 9 commits April 6, 2026 19:51
Rename the Python package from b2500_meter to astrameter, update all
CLI entry points (astrameter, astra-sim), Docker configuration,
Home Assistant add-on metadata, MQTT topic defaults, logger names,
and documentation. The project now reflects support for the full
range of Marstek storage systems rather than just the B2500.

Breaking changes:
- Package name: b2500-meter → astrameter
- CLI commands: b2500-meter → astrameter, b2500-sim → astra-sim
- MQTT base topic default: b2500_meter → astrameter
- MQTT node ID prefix: b2500_meter_ → astrameter_
- HA add-on slug: b2500_meter → astrameter
- Docker image: ghcr.io/tomquist/b2500-meter → ghcr.io/tomquist/astrameter

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
The B2500 firmware version references (port 1010 for ≤224, port 2220
for ≥226) are specific to the B2500 product, not generic Marstek info.
Revert these from "Marstek firmware" back to "B2500 firmware".

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
MQTT Insights is new in the same release, so there are no existing
integrations to migrate.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Released version entries (1.0.x) should be immutable. Revert the
GitHub URLs and project name back to their original form in those
sections.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
- Rename user-facing "Add-on"/"add-on" references to "App"/"app"
  in README, CHANGELOG (Next section only), config.ini.example,
  HA translations, run.sh, and issue template.
- Keep ha_addon/ directory, HA config field names, badge URLs,
  and filesystem paths unchanged (HA build system internals).
- Released CHANGELOG entries (1.0.x) left untouched.
- Expand rebranding changelog bullet with Docker image and HA
  app repository URL migration notes.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Point the HA app repository badge and changelog migration note
to https://github.com/tomquist/astrameter#main so Home Assistant
resolves the correct branch.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
The slug changed from b2500_meter to astrameter, which moves the
custom config directory. Existing users need to move their files
manually after upgrading.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Revert the HA addon slug to b2500_meter so existing installations
upgrade in place rather than being treated as a new app. The display
name still shows "AstraMeter".

Remove Node-RED from the issue template installation method options
since the Node-RED flow was removed with CT001.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Combine "Added CT002/CT003 emulation" and "Added efficiency
optimization" into a single bullet since they are closely related.
Also restore the MQTT multi-phase line that was between them.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
@tomquist tomquist force-pushed the claude/plan-astrameter-rebrand-4SsHu branch from 0161e4a to 6a19af6 Compare April 6, 2026 19:51
@tomquist tomquist marked this pull request as ready for review April 6, 2026 19:52
claude added 2 commits April 6, 2026 19:58
Rewrite entries to describe the final state vs 1.0.8 rather than
incremental develop-branch work. Merge related entries, remove
internal implementation details, and drop items that are not
user-visible on their own.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Re-add battery activity logs, throttling log cleanup, Shelly UDP
robustness, and Modbus docs clarification — all user-visible changes.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
src/astrameter/simulator/cli.py (1)

22-23: PID/log file paths updated to new naming.

The file paths changed from .b2500-sim.* to .astra-sim.*. Users with a running daemon from the old version may have orphaned .b2500-sim.pid and .b2500-sim.log files in their home directory after upgrading. This is a minor consideration but could cause confusion if the old daemon is still running.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/astrameter/simulator/cli.py` around lines 22 - 23, PID_FILE and LOG_FILE
were renamed to ".astra-sim.*" and may leave behind legacy
".b2500-sim.pid"/".b2500-sim.log" files from older installs; update the startup
routine to detect those legacy files, and if present either migrate them (rename
to the new names) or emit a clear warning and attempt safe cleanup: check the
PID in ".b2500-sim.pid" and verify whether that process is still running before
removing or renaming, and log actions to LOG_FILE via the existing logging
mechanism; use the symbols PID_FILE and LOG_FILE to locate where to add this
migration/check logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Around line 4-17: The CHANGELOG.md contains broken GitHub links to
"https://github.com/tomquist/astrameter" and PR links like
"https://github.com/tomquist/astrameter/pull/231"; either finish the repository
rename and create tomquist/astrameter (with redirects) before release or revert
the changelog links to the existing repo (e.g., tomquist/b2500-meter) and update
the PR URLs accordingly; search for the exact URL string
"https://github.com/tomquist/astrameter" and the "/pull/" links in CHANGELOG.md
and replace them with the correct target (or add a TODO note pending repo
creation) so no public link returns 404.

In `@README.md`:
- Line 40: The badge alt text contains a duplicated word "add" ("Open your Home
Assistant instance and show the add add-on repository dialog..."); update the
alt text for the markdown image (the badge image link/alt string that begins
"Open your Home Assistant instance and show the add add-on repository
dialog...") to remove the duplicate so it reads e.g. "Open your Home Assistant
instance and show the add-on repository dialog with a specific repository URL
pre-filled."
- Around line 72-73: Add a brief explanatory note to the README next to the path
string `addon_configs/a0ef98c5_b2500_meter` explaining that the `b2500_meter`
suffix is kept intentionally for compatibility/in-place upgrades (e.g., “path
stays ...b2500_meter for compatibility”) so users don’t think it’s stale; update
the sentence that mentions setting `Custom Config` to also reference this
compatibility note so it’s clear why the filename/path remains unchanged.

In `@src/astrameter/main.py`:
- Line 432: Fix the typo in the startup log message by updating the logger.info
call (logger.info("startet astrameter application")) to the correct text
"started astrameter application" so the startup log reads properly.

---

Nitpick comments:
In `@src/astrameter/simulator/cli.py`:
- Around line 22-23: PID_FILE and LOG_FILE were renamed to ".astra-sim.*" and
may leave behind legacy ".b2500-sim.pid"/".b2500-sim.log" files from older
installs; update the startup routine to detect those legacy files, and if
present either migrate them (rename to the new names) or emit a clear warning
and attempt safe cleanup: check the PID in ".b2500-sim.pid" and verify whether
that process is still running before removing or renaming, and log actions to
LOG_FILE via the existing logging mechanism; use the symbols PID_FILE and
LOG_FILE to locate where to add this migration/check logic.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e9f7e0c1-8501-413d-a8c9-5951c41f0e7f

📥 Commits

Reviewing files that changed from the base of the PR and between a6aa6c9 and 6e1e84a.

⛔ Files ignored due to path filters (2)
  • src/astrameter/powermeter/homewizard_ca.pem is excluded by !**/*.pem
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (97)
  • .github/ISSUE_TEMPLATE/issue_report.md
  • .github/workflows/ci.yml
  • AGENTS.md
  • CHANGELOG.md
  • CONTRIBUTING.md
  • Dockerfile
  • README.md
  • config.ini.example
  • docker-compose.yaml
  • ha_addon/config.yaml
  • ha_addon/run.sh
  • ha_addon/translations/en.yaml
  • pyproject.toml
  • release.sh
  • repository.yaml
  • src/astrameter/__init__.py
  • src/astrameter/config/__init__.py
  • src/astrameter/config/config_loader.py
  • src/astrameter/config/config_loader_test.py
  • src/astrameter/config/logger.py
  • src/astrameter/config/logger_test.py
  • src/astrameter/conftest.py
  • src/astrameter/ct002/__init__.py
  • src/astrameter/ct002/balancer.py
  • src/astrameter/ct002/ct002.py
  • src/astrameter/ct002/protocol.py
  • src/astrameter/ct002/smoother.py
  • src/astrameter/health_service.py
  • src/astrameter/main.py
  • src/astrameter/marstek_api.py
  • src/astrameter/mqtt_insights/__init__.py
  • src/astrameter/mqtt_insights/discovery.py
  • src/astrameter/mqtt_insights/mqtt_insights_test.py
  • src/astrameter/mqtt_insights/service.py
  • src/astrameter/powermeter/__init__.py
  • src/astrameter/powermeter/amisreader.py
  • src/astrameter/powermeter/amisreader_test.py
  • src/astrameter/powermeter/base.py
  • src/astrameter/powermeter/conftest.py
  • src/astrameter/powermeter/emlog.py
  • src/astrameter/powermeter/emlog_test.py
  • src/astrameter/powermeter/esphome.py
  • src/astrameter/powermeter/esphome_test.py
  • src/astrameter/powermeter/homeassistant.py
  • src/astrameter/powermeter/homeassistant_test.py
  • src/astrameter/powermeter/homewizard.py
  • src/astrameter/powermeter/homewizard_test.py
  • src/astrameter/powermeter/iobroker.py
  • src/astrameter/powermeter/iobroker_test.py
  • src/astrameter/powermeter/json_http.py
  • src/astrameter/powermeter/json_http_test.py
  • src/astrameter/powermeter/modbus.py
  • src/astrameter/powermeter/modbus_test.py
  • src/astrameter/powermeter/mqtt.py
  • src/astrameter/powermeter/mqtt_test.py
  • src/astrameter/powermeter/script.py
  • src/astrameter/powermeter/script_test.py
  • src/astrameter/powermeter/shelly.py
  • src/astrameter/powermeter/shelly_test.py
  • src/astrameter/powermeter/shrdzm.py
  • src/astrameter/powermeter/shrdzm_test.py
  • src/astrameter/powermeter/sma_energy_meter.py
  • src/astrameter/powermeter/sma_energy_meter_test.py
  • src/astrameter/powermeter/sml.py
  • src/astrameter/powermeter/sml_test.py
  • src/astrameter/powermeter/tasmota.py
  • src/astrameter/powermeter/tasmota_test.py
  • src/astrameter/powermeter/throttling.py
  • src/astrameter/powermeter/throttling_test.py
  • src/astrameter/powermeter/tq_em.py
  • src/astrameter/powermeter/tq_em_test.py
  • src/astrameter/powermeter/transform.py
  • src/astrameter/powermeter/transform_test.py
  • src/astrameter/powermeter/vzlogger.py
  • src/astrameter/powermeter/vzlogger_test.py
  • src/astrameter/shelly/__init__.py
  • src/astrameter/shelly/shelly.py
  • src/astrameter/shelly/shelly_udp_test.py
  • src/astrameter/simulator/__init__.py
  • src/astrameter/simulator/battery.py
  • src/astrameter/simulator/cli.py
  • src/astrameter/simulator/load_model.py
  • src/astrameter/simulator/powermeter_sim.py
  • src/astrameter/simulator/protocol.py
  • src/astrameter/simulator/runner.py
  • src/astrameter/simulator/tui.py
  • src/astrameter/version_info.py
  • src/b2500_meter/__init__.py
  • tests/smoke_efficiency_saturation.py
  • tests/smoke_transitions.py
  • tests/test_balancer.py
  • tests/test_ct002_active_control.py
  • tests/test_ct002_mac_policy.py
  • tests/test_ct002_protocol.py
  • tests/test_efficiency_e2e.py
  • tests/test_marstek_api.py
  • tests/test_version_info.py
💤 Files with no reviewable changes (1)
  • src/b2500_meter/init.py

Comment thread CHANGELOG.md Outdated
Comment on lines +4 to +17
- **Breaking:** Rebrand project from "B2500 Meter" to "AstraMeter" (formerly b2500-meter). Package renamed to `astrameter`, CLI commands are now `astrameter` and `astra-sim`. Docker image moved from `ghcr.io/tomquist/b2500-meter` to `ghcr.io/tomquist/astrameter`. Home Assistant users must update their app repository URL to `https://github.com/tomquist/astrameter#main`.
- Added CT002/CT003 emulation for steering multiple Marstek storage devices over the Marstek CT UDP protocol, with opt-in efficiency optimization that concentrates power on fewer batteries at low demand and rotates fairly over time (`MIN_EFFICIENT_POWER`, `EFFICIENCY_ROTATION_INTERVAL`, and related tuning options)
- Added MQTT Insights: optional `[MQTT_INSIGHTS]` section publishes internal state (grid power, targets, saturation, consumer topology) to MQTT with Home Assistant Device Discovery, per-consumer active/pause control, manual target override, and Shelly battery offline availability; auto-configured in the HA app when Mosquitto is installed
- Added HomeWizard P1 powermeter support via the device WebSocket API with optional `VERIFY_SSL` ([#231](https://github.com/tomquist/astrameter/pull/231), [#254](https://github.com/tomquist/astrameter/pull/254))
- Added SMA Energy Meter / Sunny Home Manager support via Speedwire multicast with auto-detection and per-phase readings ([#252](https://github.com/tomquist/astrameter/pull/252))
- Added SML powermeter support for smart meters over a local serial port (IR head), with optional per-phase OBIS overrides ([#229](https://github.com/tomquist/astrameter/pull/229))
- Added multi-phase support for Tasmota (`JSON_POWER_MQTT_LABEL`) and MQTT (`TOPICS` / `JSON_PATHS`) powermeters ([#136](https://github.com/tomquist/astrameter/issues/136), [#280](https://github.com/tomquist/astrameter/pull/280))
- Added `POWER_OFFSET` and `POWER_MULTIPLIER` transforms for any powermeter, including per-phase calibration, sign flipping, and phase nulling ([#250](https://github.com/tomquist/astrameter/pull/250))
- Added optional Marstek cloud auto-registration for managed fake CT devices at startup ([#237](https://github.com/tomquist/astrameter/pull/237))
- Switched the Home Assistant powermeter integration from REST polling to the WebSocket API ([#232](https://github.com/tomquist/astrameter/pull/232))
- Added `LOG_LEVEL` environment variable support for Docker and CLI runs ([#174](https://github.com/tomquist/astrameter/pull/174))
- Added timestamps to application log lines ([#260](https://github.com/tomquist/astrameter/pull/260))
- CI-built container images embed `GIT_COMMIT_SHA`; startup logs the git commit and `/health` JSON includes `git_commit` when set
- Fixed Modbus `UNIT_ID` handling ([#191](https://github.com/tomquist/astrameter/pull/191))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

urls=(
  "https://github.com/tomquist/astrameter"
  "https://github.com/tomquist/astrameter#main"
  "https://github.com/tomquist/astrameter/pull/231"
  "https://github.com/tomquist/astrameter/pull/254"
  "https://github.com/tomquist/astrameter/pull/252"
  "https://github.com/tomquist/astrameter/pull/229"
  "https://github.com/tomquist/astrameter/pull/280"
  "https://github.com/tomquist/astrameter/pull/250"
  "https://github.com/tomquist/astrameter/pull/237"
  "https://github.com/tomquist/astrameter/pull/232"
  "https://github.com/tomquist/astrameter/pull/174"
  "https://github.com/tomquist/astrameter/pull/260"
  "https://github.com/tomquist/astrameter/pull/191"
)

for u in "${urls[@]}"; do
  echo "=== $u ==="
  curl -sI -L "$u" | awk 'toupper($1) ~ /^HTTP/ {print}'
done

Repository: tomquist/b2500-meter

Length of output: 946


All astrameter GitHub URLs return 404 — repository rename must be completed before release.

The changelog references github.com/tomquist/astrameter, but the repository does not exist yet. All 13 PR links and the main repository URL currently return HTTP 404. This blocks release:

  • Home Assistant users cannot access migration instructions (https://github.com/tomquist/astrameter#main)
  • All PR references are broken links
  • Package documentation will contain dead links

Complete the repository migration to tomquist/astrameter before publishing this release.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CHANGELOG.md` around lines 4 - 17, The CHANGELOG.md contains broken GitHub
links to "https://github.com/tomquist/astrameter" and PR links like
"https://github.com/tomquist/astrameter/pull/231"; either finish the repository
rename and create tomquist/astrameter (with redirects) before release or revert
the changelog links to the existing repo (e.g., tomquist/b2500-meter) and update
the PR URLs accordingly; search for the exact URL string
"https://github.com/tomquist/astrameter" and the "/pull/" links in CHANGELOG.md
and replace them with the correct target (or add a TODO note pending repo
creation) so no public link returns 404.

Comment thread README.md
1. **Add the Repository to Home Assistant**

[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Ftomquist%2Fb2500-meter)
[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Ftomquist%2Fastrameter%23main)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix small typo in badge alt text.

“add add-on repository” has a duplicated “add”.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 40, The badge alt text contains a duplicated word "add"
("Open your Home Assistant instance and show the add add-on repository
dialog..."); update the alt text for the markdown image (the badge image
link/alt string that begins "Open your Home Assistant instance and show the add
add-on repository dialog...") to remove the duplicate so it reads e.g. "Open
your Home Assistant instance and show the add-on repository dialog with a
specific repository URL pre-filled."

Comment thread README.md Outdated
Comment thread src/astrameter/main.py Outdated
claude added 2 commits April 6, 2026 20:16
Users might think the path is stale after the AstraMeter rebrand.
Add a parenthetical note clarifying it is kept for in-place upgrade
compatibility.

https://claude.ai/code/session_01Y6qEybudSF6wccwhEusiaW
@tomquist tomquist merged commit 4bc34a0 into develop Apr 6, 2026
13 checks passed
@tomquist tomquist deleted the claude/plan-astrameter-rebrand-4SsHu branch April 6, 2026 20:22
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