esphome / esphome/feature-requests

Modbus TCP Server support

Open
#2,726 29 comments 10 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

As originally requested in #708, it would be very useful to be able to interact with a modbus server using modbus TCP, ideally at the same time as ESPHome is polling it.

In other words, if there is a UART connected to a modbus server, or esphome is acting as a modbus server itself, it would be useful to be able to interface with it using modbus TCP.

Obviously modbus RTU queries (if there are any) would have priority due to latency requirements.

External modbus TCP queries would need to be interleaved with internal ones such that neither gets corrupted.

I have an esp32 connected to my inverter, and have defined a number of entities the esphome queries. However, it would be useful to allow ad hoc queries of registers that have not already been defined, without having to reflash new firmware.

This can allow eg manufacturers tooling to interact with the device at the same time as esphome does.

I have used stream_server to expose the uart, but that is an exclusive use only.

**Additional context**

Contributor guide

No contributing guide indexed for this repository

Research direction

Use the existing Modbus RTU polling and stream_server UART path as the entry points for understanding current access and priority behavior. Determine how external Modbus TCP queries can be interleaved without corrupting internal or RTU traffic; done means ad hoc register queries work concurrently with ESPHome polling and existing RTU latency requirements remain intact.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.