Skip to content

HMI-2000 (MI2000W) firmware V115: polls forwarded to hame-2025 but no response ever returns #182

Description

@duffers11

Before you submit

  • I have read the README and my question is not answered there.
  • I have searched existing issues and this is not a duplicate.

Battery / device models

Other / not sure

Version

1.7.1

Deployment

Home Assistant add-on

B2500 MQTT configuration

Not applicable — I don't have a B2500

Are you using hm2mqtt?

Yes

What's happening?

Device

Marstek MI2000W microinverter — Type: HMI-2000, Firmware: V115

Setup

  • Hame Relay add-on 1.4.2 (HAOS 17.3, HA Core 2026.6.2)
  • hm2mqtt add-on 1.7.1
  • Device is cloud-registered, online and producing (live data visible in Marstek app)

Symptom

hm2mqtt polls every 60s and times out indefinitely. Relay debug logs show
every poll forwarded local → remote, but no message has ever arrived
remote → local
, including while the app is displaying live data.

Relay debug log (startup)

  • Auto-selected broker hame-2025 (overrides default_broker_id; tried
    forcing hame-2024 via add-on config — auto-selection wins)
  • Remote ID calculated via CommonHelper.cq
  • Use Remote Topic ID: false, Inverse Forwarding: true (automatic)
  • Subscribing local: hame_energy/HMI-2000/App/18cedf992acX/ctrl
  • Subscribing remote: marstek_energy/HMI-2000/device//ctrl

Per polling cycle

Forwarded message from local to remote:
hame_energy/HMI-2000/App/18cedf992acX/ctrl ->
marstek_energy/HMI-2000/App//ctrl

…and never anything in the opposite direction.

Suspicion

The topic structure / remote ID scheme the relay uses for HMI-2000 on V115
doesn't match what this firmware actually publishes/subscribes to on the
cloud side. Possibly related to tomquist/hm2mqtt#227 where an HMI-1 on
V107 showed the same one-way behaviour.

Happy to provide full debug logs or test a branch.

Configuration

log_level: debug
default_broker_id: hame-2024  # tried as workaround; API auto-selection overrides it
username: <removed>
password: <removed>
# MQTT broker auto-configured from HA Supervisor (core-mosquitto, no SSL)
# No other optional fields set

Logs

[2026-06-12 07:27:58] INFO: Successfully fetched 1 devices from Hame API
[2026-06-12 07:27:58] DEBUG: Device 18cedf992ac4 (HMI-2000): inverse_forwarding = true (automatic)
[2026-06-12 07:27:58] INFO: Auto-selected broker hame-2025 for device 18cedf992ac4
[2026-06-12 07:27:58] DEBUG: Device 18cedf992ac4 supports CommonHelper.cq method, using salt-based calculation
[2026-06-12 07:27:58] DEBUG: Calculated remote ID using CommonHelper.cq: <masked> for device 18cedf992ac4
[2026-06-12 07:27:58] INFO:   Name: Marstek MI2000W Microinverter
[2026-06-12 07:27:58] INFO:   Type: HMI-2000
[2026-06-12 07:27:58] INFO:   Version: 115
[2026-06-12 07:27:58] INFO:   Broker: hame-2025
[2026-06-12 07:27:58] INFO:   Inverse Forwarding: true
[2026-06-12 07:27:58] INFO:   Use Remote Topic ID: false
[2026-06-12 07:27:59] DEBUG: [hame-2025] Subscribing to local broker topics:
hame_energy/HMI-2000/App/18cedf992ac4/ctrl
[2026-06-12 07:27:59] DEBUG: [hame-2025] Subscribing to remote broker topics:
marstek_energy/HMI-2000/device/<masked>/ctrl
[2026-06-12 07:28:06] INFO: [hame-2025] Forwarded message from local to remote: hame_energy/HMI-2000/App/18cedf992ac4/ctrl -> marstek_energy/HMI-2000/App/<masked>/ctrl

(repeats every 60s for 12+ hours — zero messages ever forwarded remote -> local,
including while the Marstek app was open showing live production data)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions