Deye logger port 8899 closed? Local Modbus TCP moved to port 502

Updated: ·Читати українською

"Deye blocked the logger", "port 8899 is closed", "ha-solarman cannot open connection". These reports started in September 2026, and many people concluded that Deye shut local access for good. Short answer: not entirely. On the newer generation of Wi-Fi loggers port 8899 really does not answer, but local access has moved to a different port and became something you switch on. Below: what changed, how to tell which case you have, and what to do.

What is confirmed and what is not. We found no official statement, release notes or documentation from Deye or Solarman about closing port 8899, about port 502 or about the reasons. Everything below about the new loggers comes from user reports in the Home Assistant Community and on GitHub (September to early November 2026), not from Deye documents. We do not know Deye's intent and do not claim the change is a deliberate block. We have not tried the Link2 procedure on a new logger ourselves.

Two different stories

This is not one problem but two generations of loggers that behave differently.

Older loggers (LSW-3, LSE-3 and similar) Newer loggers (DYDA_WiBLE, including DL1000B-WIFI)
Firmware web UI 1.0.x 1.6.x (users mention 1.6.0 and 1.6.2)
Port 8899 (Solarman V5) open closed for TCP, per user reports
Port 502 (plain Modbus TCP) closed, and that is normal closed on 1.6.x; on 1.7.x opens once you enable it
What to do Nothing is broken See "What to do"

We checked an older logger ourselves: port 8899 answers, port 502 is closed. On an older logger that is not a sign of blocking: there is simply no Modbus TCP server, it speaks Solarman V5.

Updating an older logger does not break it. In early November 2026 we asked Deye support to update our LSW-3 logger, and they did it remotely, to firmware LSW3_32_5406_SS_04_00.00.00.0B (web UI 1.0.24). After the update port 8899 answers as before: nothing had to be configured by hand, and Barnex keeps reading the inverter. One device, but a first-hand check rather than a forum report.

Ports 8899 and 502: the difference

  • Port 8899. The Solarman V5 protocol: a frame that carries the serial number of the logger (not the inverter) with a Modbus request inside. There is no authentication; the marklabs author calls the serial number in the frame "pseudo-security" (marklabs, pysolarmanv5).
  • Port 502. Plain Modbus TCP: a unit ID (usually 1), no logger serial number.
  • Port 48899. A separate UDP channel with AT commands that some other tools use.

So "port 8899 is closed" and "all local access is closed" are different claims. On 1.6.x, according to one report, TCP 8899, 10000 and 502 are unreachable and only UDP 8899 answers (ha-solarman #1159). The typical picture: the logger answers ping, its web page and Deye Cloud work, and Home Assistant says "Cannot open connection" (ha-solarman #1156).

What is known about 1.7.x

A user relays that Deye support told them firmware 1.7.1 no longer supports Modbus TCP on 8899, only on port 502, and that it has to be enabled in the logger's web UI first (HA Community, post 18). That is the only "official" line we found, and it is second-hand.

Several users write that after emailing Deye support their logger was updated remotely to 1.7.1 or 1.7.2 within 12 to 24 hours. After that, Modbus TCP is switched on in the Link2 block of the web UI and serves on port 502, while Deye Cloud stays on Link1. Users confirm port 502 with unit ID 1 on 1.7.2 (ha-solarman #1187). These are people who post on forums, not statistics: how many loggers are affected is unknown.

What is new since late October

  • The ha-solarman maintainer wrote on 2 November that the latest logger firmware "now also supports the Modbus TCP protocol, right out of the box" (#769). Not a Deye statement, but the most authoritative one so far.
  • Updates without asking support. Two or three users report that the logger got the new firmware by itself, or that Link2 was already there, and they enabled it without contacting Deye (#769, #1156). Single reports, but worth checking your web UI before writing to support.
  • No Link2 on 1.6.2. One user on DYDA_WiBLE_1.6.2 finds no Link2 option at all (#769). That matches the idea that Link2 comes with 1.7.x.
  • Unofficial firmware files. Logger firmware images are circulating on GitHub, and people ask whether to flash them through the logger's /ota.html page. Nobody has reported doing it, and nothing official confirms these files. See "What not to do".
  • No firmware newer than 1.7.2 and no official statement found as of 4 November 2026.

The first five minutes: which case is yours

  1. Is the logger on the network? Ping, the logger's web page, the app and Deye Cloud.
  2. Check the ports from a computer on the same network:
nc -vz <logger IP> 8899
nc -vz <logger IP> 502
nc -vz <logger IP> 80
nc -zuv <logger IP> 8899

The last command checks UDP. Tell "refused" (nothing listens on the port) from "timeout" (no answer at all: another network, filtering, logger off). This scheme is our reading of the protocols, not something Deye published.

  1. Look up the logger firmware version on its Status page.
What you see Likely case What to do
8899 open, 502 refused, firmware 1.0.x Older logger, all fine Check the logger serial number, unit ID 1, one client per logger
8899 refused or timeout, 502 refused, firmware 1.6.x Newer logger, local Modbus off Check the web UI for Link2; if absent, ask Deye support for an update
502 open Link2 with Modbus TCP is on Point your client at port 502, unit ID 1
Everything closed, no Link2 in the web UI Firmware without the option Update via support, or RS485
Only UDP 8899 answers Newer logger, your integration tries TCP only Same as for 1.6.x
Port 80 unreachable Logger on another subnet Find its IP in the router, reserve the address

Look-alike causes

Many complaints have nothing to do with firmware. Before concluding you were blocked, check:

  • The inverter serial number instead of the logger's. The classic mistake. You need the logger's serial number from its Status page or sticker.
  • The wrong unit (slave) ID. In one case changing it from 2 to 1 fixed it.
  • The wrong integration profile for your model.
  • A second client on the same logger. The logger sends answers to every client and starts dropping requests when several pollers hit it. In our experience 15–25% of requests went unanswered while Home Assistant and our coordinator polled the same logger. Keep one reader.
  • A Bluetooth session. One user reports that while Home Assistant holds a Bluetooth connection to the logger, its Deye Cloud sync stops.
  • The logger's IP address changed. Reserve it in the router.
  • The problem is in the inverter, not the logger. Some reports trace failing Modbus to old inverter firmware.

What to do

With a newer logger (1.6.x)

  1. Open the logger's web UI first and look for a Link2 block. Some users already have it.

  2. If there is no Link2, write to Deye support and ask for a remote update to the firmware with local Modbus TCP. Users report that Deye asked for the country and replied within hours. The address users name is service@deye.com.cn; we could not confirm it as an official channel, so going through the installer or dealer is an option too. A short template:

    Hello, my Deye Wi-Fi logger (serial number: …, firmware: …, inverter model: …, country: …) no longer accepts local connections on port 8899. Could you please update the logger firmware to a version that supports Modbus TCP on port 502 (Link2)? Thank you.

  3. After the update, enable Link2. Per user reports: Enable, protocol Modbus Tcp (mode Default), confirm. The logger restarts.

  4. Point your client at port 502. For ha-solarman: logger IP, logger serial number and port 502, unit ID 1.

Web UI credentials are usually on the logger's sticker; reports about default logins differ, so check on your own device. An update is not a guaranteed fix: which models and versions get Link2 is not established.

If support does not answer

  • RS485 directly (9600 8N1, address 1) through an ESP32 gateway or a Waveshare or Elfin adapter. Several users find this the most stable option.
  • Bluetooth (ESPHome or hass-deye-local). Works, but one session at a time and with the cloud sync pause mentioned above.
  • The Deye cloud API. Little data, delayed by several minutes.

What not to do

  • Do not flash firmware files from unofficial sources through /ota.html. A wrong or broken image can leave you without a working logger, and nobody has confirmed these files.
  • Do not expose ports 8899 or 502 to the internet. Neither has real authentication.
  • Do not connect two readers to one logger.
  • Do not treat every connection error as a block. Go through the checks above first.

FAQ

Did Deye block port 8899? On the newer loggers, per user reports, TCP 8899 does not answer. On older ones it works. We found no official explanation.

Can I get local access back? According to several users, yes: firmware 1.7.x and Link2 with Modbus TCP on port 502. Not guaranteed for every model.

Why does ha-solarman say "Cannot open connection"? Often it is the closed TCP port on a newer logger, but also check the logger serial number and IP.

Will an update break an older logger? Ours (LSW-3) did not: after a remote update by Deye support port 8899 works as before, with nothing to switch on.

Can I do without the logger? Yes, with RS485 directly to the inverter, but you need a gateway.

Summary

  • Deye has not closed local access entirely: on newer loggers port 8899 is closed, and local Modbus TCP, per reports, moved to port 502 and is switched on in the Link2 block.
  • Older loggers with port 8899 are not affected; a closed port 502 is normal there. Our LSW-3 still works on 8899 after a remote update.
  • Diagnose first: ping, nc on 8899 and 502, firmware version. Many "blocks" are a wrong serial number or a second client.
  • Newer logger: check for Link2, otherwise ask support for an update, then port 502. This comes from users, not from Deye documentation.
  • Do not flash unofficial firmware and do not expose the ports to the internet.

About this article

Written by the team behind Barnex, a Ukrainian device that reads Deye inverters locally over the logger. The Ukrainian version has the same content. Corrections are welcome at hello@barnex.io.

Sources