What's the issue?
I set up AstraMeter (b2500-meter) in docker compose and I cannot get any of my B2500s to output any power. The CT is shown in the Marstek App and I can select it, it even shows the power it reads from the shelly. But the B2500s remain with 0W output, even though the house is currently consuming around 300W and they are all full.
Your setup
- Installation method: Docker Compose
- Storage system: 4x B2500 - V230.7, V116, V116, V104 (They are all on latest according to the Marstek app...)
- Power meter source: Shelly Pro 3EM
Configuration
[GENERAL]
DEVICE_TYPE = ct003
POLL_INTERVAL = 1
THROTTLE_INTERVAL = 0
[CT003]
CT_MAC =
UDP_PORT = 12345
DEDUPE_TIME_WINDOW = 0
MIN_EFFICIENT_POWER = 150
EFFICIENCY_ROTATION_INTERVAL = 1800
EFFICIENCY_FADE_ALPHA = 0.15
[MARSTEK]
ENABLE = true
BASE_URL = https://eu.hamedata.com
MAILBOX = xxxxxxx
PASSWORD = xxxxxxx
TIMEZONE = Europe/Berlin
[SHELLY]
TYPE = 3EMPro
IP = x.x.x.x
USER = xxxxxx
PASS = xxxxxxxxx
METER_INDEX = meter1
POWER_OFFSET = 100
POWER_MULTIPLIER = 1
Error messages or logs
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:startet b2500-meter application
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Git commit: a6aa6c9b4e6c3e905d305fd21e3689a0da538b58
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Device Types: ['ct003']
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Device IDs: ['device-1']
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Skip Test: False
b2500-meter | 2026-04-06 22:42:05 INFO:b2500_meter.marstek_api:Marstek managed ct003 already exists (devid=02b25076df47, mac=02b25076df47, type=HME-3)
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Managed fake CT registration completed. Fake CT devices appear as offline in the Marstek app CT list (this is expected).
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Pairing hint: refresh the CT device list (or log out/in if needed), select B2500-Meter CT003, switch battery mode to Automatic, and choose that CT. The CT should be selectable as soon as it appears in the device list.
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Credentials are only needed for one-time registration. You can remove MARSTEK mailbox/password from config now.
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Starting health check service...
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Health check service started on 0.0.0.0:52500
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Health check service started successfully
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Applying power transform (multiplier=[1.0], offset=[100.0]) to SHELLY
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Successfully fetched TransformedPowermeter powermeter value (filter 0.0.0.0/0): 456.0W
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:Active control enabled (alpha=0.90): smooth target + load split + fair distribution + saturation detection + efficiency optimization (150W)
b2500-meter | 2026-04-06 22:42:05 INFO:b2500-meter:CT002 UDP server listening on port 12345
Additional info
I added the CT to every B2500 of the 4, but only one of them shows up in the logs... sometimes...:
b2500-meter | 2026-04-06 22:06:41 INFO:b2500-meter:CT002 UDP server listening on port 12345
b2500-meter | 2026-04-06 22:06:42 INFO:b2500-meter:CT002 consumer 60323bd1320d phase detected: A
b2500-meter | 2026-04-06 22:24:21 WARNING:b2500-meter:before_send failed for ('10.13.37.187', 10000):
b2500-meter | 2026-04-06 22:26:53 INFO:b2500-meter:CT002 consumer 60323bd1320d phase detected: A
b2500-meter | 2026-04-06 22:36:50 WARNING:b2500-meter:before_send failed for ('10.13.37.187', 10000):
What's the issue?
I set up AstraMeter (b2500-meter) in docker compose and I cannot get any of my B2500s to output any power. The CT is shown in the Marstek App and I can select it, it even shows the power it reads from the shelly. But the B2500s remain with 0W output, even though the house is currently consuming around 300W and they are all full.
Your setup
Configuration
Error messages or logs
Additional info
I added the CT to every B2500 of the 4, but only one of them shows up in the logs... sometimes...: