The diagram showcases the high-level connections between all the devices and hardware. At the central focal point is the Hub. The arrows indicate a form of communication or connections, which for most of the devices here is handled via a local WiFi network using MQTT as the communication protocol. The exceptions here include the Smart TV and the Smart Speaker, as the Pico serves as a courier of HTTP requests/responses, and the ESP32 uses HTTP requests respectively. The Smart Mobile Device (SMD) communicates with the Hub using REST API calls,  structured HTTP web requests that tell the system which action to perform. The Kick buttons (SALE-Remote) communicate with the SMD over Bluetooth Low Energy (BLE). The Remote Support Station is represented by any computer with access to the Home Assistant website that communicates via HTTPS.

 

Wireless Network Protocols

Bluetooth Low Energy

Bluetooth Low Energy is a protocol for wireless communication that operates on the same 2.4GHz bandwidth as Bluetooth. However, unlike Bluetooth, the protocol enters a sleep mode when not in use. It saves much more power than having a constant Bluetooth Classic protocol running at full power. Bluetooth Classic is better for larger amounts of data or when minimizing latency is an important factor while power consumption is not. However, when the application suits it, Bluetooth Low Energy often has lower cost of development and wider device support than similar competitors.

MQTT

MQTT is a lightweight connectivity protocol designed around a publish/subscribe method of message transportation. One device sends out, or publishes, a message to a broker.  The broker then distributes those messages to devices that are subscribers to that topic. It is important to note that all MQTT clients can both send and receive, and are only publishers or subscribers relative to a message transfer. Because the broker handles most of the load of the connection, the software on the clients is lightweight and clients are able to have very low minimum hardware requirements, which is great for small microcontrollers.