ebus-mqtt
MQTT vocabulary for eBus: the messages and commands the Homie state machines exchange with an MQTT client, topic filter matching, the ledger of which subscriptions the client holds and who may remove them, and Pair, which runs two roles on one connection. It performs no I/O and reads no clock, and builds without std.
Usage
use filter;
assert!;
assert!;
// A leading wildcard does not match a topic that starts with `$`.
assert!;
Features
| Feature | Default | Enables |
|---|---|---|
std |
yes | Links std; implies alloc |
alloc |
via std |
Command, LastWill, FilterLedger, Role and Pair |
The eBus crates
ebus-mqtt is one of six crates in rust-sdk, the Rust SDK for Electrification Bus (eBus), which builds on the Homie 5 MQTT convention:
| Crate | Role |
|---|---|
ebus-mqtt |
MQTT vocabulary: messages, commands, topic filters and subscription ownership (no_std) |
ebus-homie |
Homie 5 protocol core: identifiers, topics, datatypes, $description, and the controller and device state machines (no_std) |
ebus-discovery |
eBus DNS-SD contract: service types, TXT records, the advertisement model and broker selection (no_std) |
ebus-homie-tokio |
Runs the controller and the device on tokio over an MQTT connection the host owns |
ebus-discovery-tokio |
Finds the site's broker over mDNS and advertises the host's services, on tokio |
ebus-rumqttc |
The controller, the device, or both, with their own rumqttc 0.25 connection |
Minimum Rust version
1.85.
License
MIT; see LICENSE.