APsystems ECU-R-BR integration not working – no local API?

Hi everyone,
I’m trying to integrate my APsystems solar system into Home Assistant and I’m not having any success. I’d like to check if anyone here has managed to get this working or can point me in the right direction.

Environment
ECU model: APsystems ECU-R-BR
Connection: ECU connected via Ethernet (wired)
Home Assistant setup:
Core: 2026.1.3
Supervisor: 2026.01.1
OS: 17.0

Installation method: Home Assistant OS

What I’ve already tried
Native APsystems integration in Home Assistant
Correct local IP address of the ECU (confirmed on the router)

Tested multiple common ports manually, including:

80
443
8080 / 8081
8899
502 (Modbus TCP)
1883 (MQTT)

Rebooted both the ECU and Home Assistant
Checked firewall and local network rules
Despite all this, the integration fails to connect.
Important observation

I carefully read the official APsystems manuals (EMA / ECU-R) and could not find any documentation about:

Local REST API
HTTP endpoints
Modbus TCP access
MQTT support

Any officially exposed local interface for data consumption
According to the documentation, the ECU appears to only push data to the APsystems EMA cloud, and all monitoring is designed to be done via their cloud platform.

Questions:

Has anyone successfully integrated an ECU-R locally with Home Assistant?
Is there any hidden configuration, undocumented port, or service that needs to be enabled on the ECU?
Or is cloud-based access / scraping currently the only possible way?
Thanks in advance for any help or insights.

Hello and welcome to the Home Assistant community forums!

GitHub - HAEdwin/homeassistant-apsystems_ecu_reader: APsystems ECU Local Query Integration for Home Assistant should work for you but do read all the instructions because not all models work via ethernet.

Hi, thanks for the reply!

Just to clarify, I’ve already gone through all the recommended steps in detail, so I’d like to summarize what was tested so far:

My ECU is an APsystems ECU-R (Brazilian model), connected via Ethernet (wired).

I installed APsystems ECU Reader via HACS (HAEdwin repository), not the official APsystems integration, and the offficial with no lucky.

I removed any YAML-based configuration and added the integration only via the UI (Config → Devices & Services), as instructed.

Home Assistant was restarted after installation and after any configuration change.

Network and protocol tests (confirmed working):

From Home Assistant SSH:

nc -vz 192.168.1.39 8899 → connection open

Sending a raw query via TCP:

printf “APS1100160001END” | nc -w 5 192.168.1.39 8899

→ ECU returns valid data (ECU ID, firmware info, timezone, etc.)

Port 8050 is closed/refused (expected).

Port 8899 clearly responds over raw TCP (non-HTTP), which matches the ECU Reader protocol.

Integration behavior:

When trying to add the ECU via APsystems ECU Reader, Home Assistant still reports “Failed to connect”, even though the TCP connection is proven to work.

curl to port 8899 returns “empty reply”, which is expected since this is not an HTTP service.

Debug logging for custom_components.apsystems_ecu_reader was enabled, but the UI still fails during config flow.

At this point, based on testing and the forum feedback, it seems very possible that this specific ECU-R firmware/model does not fully support local querying over Ethernet, and may only work correctly when connected via Wi-Fi (hotspot or WLAN mode), as hinted in the repository notes.

Next step on my side will be to:

Reconfigure the ECU to connect via Wi-Fi instead of Ethernet

Retest the integration after that

If you’re aware of any known limitation where wired Ethernet behaves differently from Wi-Fi on ECU-R units, that would confirm the diagnosis.

Thanks again for the help, just wanted to confirm this isn’t a configuration or installation issue on the Home Assistant side.

There is a difference between ECU-R models, some start with serial 2160 (standard model) and some with 2162. This difference determines how you connect the ECU (WiFi or Ethernet). You didn’t specify the starting number of your serial number. But I assume it’s 2160, which unfortunately means you can only connect it via Wi-Fi because port 8899 isn’t open in the firmware when you connect the ECU via Ethernet (don’t ask me why, I’m not affiliated with APsystems). After a restart of the ECU it needs about 10 minutes before all inverter data is complete and the PV configuration is therefore also complete. When configuring the integration for the first time, it’s important to wait 10 minutes after restarting the ECU.

oh got it.

thanks for the feedback…

Best is not to expose the entire serialnumber, but anyway it should work - just do not enter ip-address and port because that won’t work. Only entering the ip-address is sufficient.

Hi

If I don’t set the port, the integration will try 8050 as a default feature, can’t pass over it.
I will try to change the ECU to wifi and see what happens

No the integration will not try another port. Just the ip-address is being asked for i.e:

I wonder if you perhaps have the wrong integration installed…

Hi

Here is the integration that I am using / trying to setu up and some screens about the process, the first window that I get is the one with IP and Port, cant get over it.

@hotsauce Yep, it’s the wrong one - this one is a so called embedded (built-in) integration (officially supported and maintained as part of Home Assistant itself). And it is for the APsystems EZ series of WiFi based microinverters only.

Mine is a custom integration, community-made that you install separately and Home Assistant doesn’t officially support. It supports the APsystems ECU models (and therefor the Zigbee based microinverters).

For installation read this:

@hotsauce
When in HACS in the upper right corner select Custom repositories

Paste the URL:

GitHub - HAEdwin/homeassistant-apsystems_ecu_reader: APsystems ECU Local Query Integration for Home Assistant

and choose type: Integration

Next choose ADD

Then it’s added to the store and if you now look for apsystems:

Click on it and at the lower right (scroll down) you’ll find the download button. Download the integration and restart HA.

Hi

How can I pass this error?

ok, you have succesfully downloaded the integration - next step is to install it in Home Assistant. On the left pane go to Settings > Devices & Services > (on the right bottom) +Add integration > (search for a brand name) APsystems > Choose “APsystems ECU reader”

Now the correct setup screen as shown earlier will appear. From here you should be fine.

When you’re new in HA some things might look a challenge but you get used to it. Remember the two steps: downloading and installing after restart.

Hi

I didn’t notice that I should’ve tried search inside the HAVS repository, I was trying to add and go to devices to add is as an integration, sorry for the mess, now its working, great job…

1 Like

Hi everyone.
I need your help before loosing all the hair I got.
I tried everything you said but when I disconnect the ethernet cable and I connect the ECU-R-EU to my wifi network instead and giving a fix adress (within ema manager) it disappear from my local network. I can only see it when it’s connected with a cable.
my ECU number is 21600036…

Maybe it’s because it’s an EU (europe model) ?
Thanks a lot for yours answers …

No that should not make any difference. What do you mean with “I can not see it”? When you’ve assigned a fixed IP-address, you should be able to ping it and get responses. From the router you can also assign a fixed IP-address by binding it to the MAC address.