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"
}

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:

  1. Install an MQTT broker (e.g., Mosquitto) as a Home Assistant add-on or standalone service.
  2. Configure the MQTT integration in Home Assistant.
  3. 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:

  1. Add an MQTT out node to your flow.
  2. Configure the broker address and topic (e.g., arrivals/messages).
  3. Use a function node to format the JSON payload.
  4. Connect your trigger nodes (sensor events, timers, HTTP inputs) to the function node.

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))
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.