Skip to content

Split ebus_core into ebus_mqtt, ebus_discovery and ebus_homie targets #3

Closed

Description

@dcj

Split the single ebus_core library into three CMake targets in this repo, mirroring the Python packages (ebus-mqtt-client, ebus-service-discovery, python-sdk):

Target Contents Depends on
ebus_mqtt The transport interface (homie_transport.h, renamed to drop "homie") and Homie-agnostic client behavior: holding publishes while the link is down and the reconnect order (flush, re-subscribe, notify), now in ports/posix/ (publish_hold) nothing
ebus_discovery mDNS/DNS-SD record parsing and broker modes (broker_discovery, mdns_strings.h, today in the core) plus the contents of the _ebus._tcp and _device-info._tcp TXT records (today built in esp32-sdk's network.cpp), behind a small browse/advertise interface a port implements nothing
ebus_homie Device, Node, Property, lifecycle, settable dispatch, controller ebus_mqtt (interface only)

ebus_core stays as an umbrella target that links all three, so existing consumers keep building. PlatformIO consumers keep a single library.

Why: an OEM can take only discovery, or only the Homie model over its own MQTT stack; and behavior every port needs (the disconnected-link rules, the advertised TXT records) is written once instead of per port.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions