ebus-rumqttc
The eBus Homie 5 controller and device on tokio with their own rumqttc 0.25 connection: controller, device, or pair for both on one connection. The broker, client id, credentials and TLS come from the caller's rumqttc::MqttOptions. A host that found its broker over mDNS with ebus-discovery-tokio gives the task a reresolve hook, which finds the same broker again when connecting fails.
Usage
Watch every device on a broker:
use ;
use ;
use rumqttc;
async
The repository has the watch, device, tree-device, set and simple-span-controller examples.
Features
| Feature | Default | Enables |
|---|---|---|
rustls |
no | MQTT over TLS through rustls |
native-tls |
no | MQTT over TLS through the platform's TLS library |
The eBus crates
ebus-rumqttc 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.