2021-03-22 02:34:45 +01:00
2021-03-22 02:10:54 +01:00
2021-03-22 02:34:45 +01:00
2021-03-16 23:44:14 +01:00
2021-03-19 19:02:40 +01:00
2021-03-21 19:34:40 +01:00
2021-03-21 19:34:40 +01:00
2021-03-16 22:38:05 +01:00
2021-03-22 01:59:40 +01:00

TinyMqtt

ESP 8266 is a small and very capable Mqtt Broker and Client

Features

  • Act as as a mqtt broker and/or a mqtt client
  • Mqtt 3.1.1 / Qos 0 supported
  • Standalone (can work without WiFi) (degraded/local mode)
  • Brokers can connect to another broker and becomes then a proxy for clients that are connected to it.
  • zeroconf, this is a strange but very powerful mode where all brokers tries to connect together on the same local network.

TODO List

  • Use Async library
  • Implement zeroconf mode (needs async)
  • Add a max_clients in MqttBroker. Used with zeroconf, there will be no need for having tons of clients (also RAM is the problem with many clients)
  • Test what is the real max number of clients for broker. As far as I saw, 3k is needed per client which would make more than 10 clients critical.
  • MqttMessage uses a buffer 256 bytes which is usually far than needed.
  • MqttClient auto reconnection
  • MqttClient auto re-subscribe
  • MqttClient does not callback payload...
  • MqttClient user/password

Quickstart

Examples

Example Description
client-without-wifi standalone example
simple-client Connect the ESP to an external Mqtt broker
simple-broker Simple Mqtt broker with your ESP
tinymqtt-test Complex console example
  • tinymqtt-test : This is a complex sketch with a terminal console that allows to add clients publish, connect etc with interpreted commands.

Standalone mode (zeroconf)

-> The zeroconf mode is not yet implemented zerofonf clients to connect to broker on local network.

In Zeroconf mode, each ESP is a a broker and scans the local network. After a while one ESP naturally becomes a 'master' and all ESP are connected together. No problem if the master dies, a new master will be choosen soon.

License

Gnu GPL 3.0, see LICENSE.

Description
No description provided
Readme 2.8 MiB
Languages
C++ 93%
Makefile 5%
Shell 2%