Home Automation
Arrivals Board makes an excellent smart home display. Connect it to your home automation system via MQTT or the Local Server and it becomes a split-flap dashboard for door sensors, thermostats, garden monitors, and anything else in your connected home.
Unlike most smart home dashboards, Arrivals is a passive, ambient display -- it flips through alerts and status messages on its own. You glance at it the same way you would glance at a clock. No interaction needed.
MQTT message format¶
Arrivals accepts JSON messages on a configurable MQTT topic. Each message includes a sender name, text, and an optional indicator color.
Example messages¶
Door sensor:
{
"sender": "Front Door",
"text": "DOOR OPENED",
"indicatorColor": "#FF0000"
}
Thermostat:
{
"sender": "Thermostat",
"text": "72F — COOLING",
"indicatorColor": "#00AAFF"
}
Garden monitor:
{
"sender": "Garden",
"text": "SOIL MOISTURE LOW — WATERING STARTED",
"indicatorColor": "#00FF00"
}
Motion sensor:
{
"sender": "Garage",
"text": "MOTION DETECTED — LIGHTS ON",
"indicatorColor": "#FFAA00"
}
Weather station:
{
"sender": "Backyard",
"text": "68F — HUMIDITY 45% — WIND 8 MPH NW",
"indicatorColor": "#FFFFFF"
}
Indicator colors
Use color to convey urgency at a glance: red for security alerts (doors, locks), amber for warnings (low battery, high temperature), green for routine events (watering, schedules), and blue for informational readings (temperature, humidity).
Integration platforms¶
Home Assistant¶
Home Assistant is the most popular open-source home automation platform. It has built-in MQTT support and powerful automations.
Setup:
- Install an MQTT broker (e.g., Mosquitto) as a Home Assistant add-on or standalone service.
- Configure the MQTT integration in Home Assistant.
- Create an automation that publishes to the Arrivals MQTT topic when a sensor state changes.
Example automation (YAML):
automation:
- alias: "Front door opened — notify Arrivals"
trigger:
- platform: state
entity_id: binary_sensor.front_door
to: "on"
action:
- service: mqtt.publish
data:
topic: "arrivals/messages"
payload: >
{
"sender": "Front Door",
"text": "DOOR OPENED",
"indicatorColor": "#FF0000"
}
Node-RED¶
Node-RED is a flow-based programming tool that connects hardware devices, APIs, and services. It runs alongside Home Assistant or standalone on a Raspberry Pi.
Setup:
- Add an MQTT out node to your flow.
- Configure the broker address and topic (e.g.,
arrivals/messages). - Use a function node to format the JSON payload.
- Connect your trigger nodes (sensor events, timers, HTTP inputs) to the function node.
Node-RED + Home Assistant
If you run Node-RED as a Home Assistant add-on, it can access all Home Assistant entities directly and publish to the same MQTT broker.
Homebridge¶
Homebridge exposes non-HomeKit devices to Apple Home. While Homebridge itself does not publish MQTT, many Homebridge plugins support MQTT-based devices. You can also use a Homebridge webhook plugin to trigger an HTTP POST to the Arrivals REST API.
Arduino / ESP32¶
Microcontrollers like the ESP32 or Arduino with Ethernet/Wi-Fi can publish MQTT messages directly from sensors.
Example (Arduino / ESP32 with PubSubClient):
#include <WiFi.h>
#include <PubSubClient.h>
WiFiClient wifiClient;
PubSubClient mqtt(wifiClient);
void publishToArrivals(const char* sender, const char* text, const char* color) {
char payload[256];
snprintf(payload, sizeof(payload),
"{\"sender\":\"%s\",\"text\":\"%s\",\"indicatorColor\":\"%s\"}",
sender, text, color);
mqtt.publish("arrivals/messages", payload);
}
// Example: soil moisture sensor
void loop() {
int moisture = analogRead(A0);
if (moisture < 300) {
publishToArrivals("Garden", "SOIL MOISTURE LOW", "#FF8800");
}
delay(60000); // check every minute
}
Raspberry Pi¶
A Raspberry Pi can act as both an MQTT broker and a sensor hub. Use Python with the paho-mqtt library to publish messages:
import paho.mqtt.client as mqtt
import json
client = mqtt.Client()
client.connect("your-broker-ip", 1883)
message = {
"sender": "Pi Sensor Hub",
"text": "TEMPERATURE 74F — HUMIDITY 52%",
"indicatorColor": "#00AAFF"
}
client.publish("arrivals/messages", json.dumps(message))
Recommended settings¶
| Setting | Value | Why |
|---|---|---|
| Keep Screen Awake | On | Alerts should be visible around the clock |
| Display Duration | 15--20 seconds | Short enough to cycle through alerts quickly |
| Long Messages | Complete | Sensor messages can be long; do not truncate them |
| Sound | On (low volume) | A click when a new alert flips in provides an audible cue |
| Show Settings Button | Off | Clean display for a hallway or kitchen mount |
Placement ideas¶
- Entryway --- Door sensor alerts, weather forecast, calendar events for the day.
- Kitchen --- Timers, grocery list updates, smart appliance status.
- Hallway --- A general-purpose status board visible from multiple rooms.
- Garage/Workshop --- Equipment status, temperature, security alerts.