Skip to content

What Community Edition Sends ​

Community Edition runs entirely on your Mac and has no account. That also means we have no way of knowing it is being used at all — how many relays are running, how large the homes they serve are, or which app versions are still in the field and therefore still need supporting.

So a Community relay sends one anonymous report every 24 hours to api.homecast.cloud. This page is the complete list of what is in it. The code that builds it is open source: see TelemetryReporter.swift and local-telemetry.ts.

Who sends it ​

Only the relay — the Mac running the Community server. An iPhone, an Android or desktop app, a browser, or a second Mac pointed at someone else's relay all send nothing. They are counted by the relay they connect to, so one household produces one report rather than one per device.

Builds made for development send nothing at all.

What is in the report ​

json
{
  "v": 1,
  "installId": "8f14e45f-ea8d-4b1c-9a2e-…",
  "sentAt": "2026-08-17T03:14:00Z",
  "windowSeconds": 86400,

  "app":   { "version": "1.0.6", "build": "44", "platform": "macos",
             "os": "15.3.0", "locale": "en_GB", "env": "prod" },

  "relay": { "uptimeSeconds": 256320, "restarts": 1, "ageDays": 43 },

  "scale": { "homes": 2, "rooms": 11, "zones": 2, "accessories": 47,
             "accessoriesOnline": 45, "scenes": 8, "serviceGroups": 3,
             "hkAutomations": 4, "hcAutomations": 6, "virtualAccessories": 2,
             "users": 2, "webhooks": 1, "apiTokens": 1, "oauthClients": 0 },

  "categories": { "light": 22, "switch": 6, "outlet": 4, "sensor": 9, "other": 6 },

  "features": { "authEnabled": true, "mqttBrokers": 0,
                "historyEnabled": true, "developerMode": false },

  "clients": { "peakConcurrent": 4, "distinct": 6,
               "byKind": { "browser": 3, "ios": 2, "homeassistant": 1, "mcp": 1 } },

  "usage": { "httpRequests": 1240, "wsMessages": 8800, "restCalls": 120,
             "mcpCalls": 33, "graphqlCalls": 410, "characteristicWrites": 88,
             "sceneRuns": 5, "automationRuns": 41, "automationErrors": 2 }
}

Every value is a number, a boolean, or a fixed label. There is no free text anywhere in the report.

installId ​

A random UUID generated on your Mac the first time the relay reports, and kept in UserDefaults. It is not derived from your hardware, your Apple ID, your network, or anything else — it is UUID(), stored.

It is deliberately not the id your relay advertises over Bonjour on your local network. Reusing that one would make a row in our database linkable to something anyone on your Wi-Fi can already observe.

windowSeconds ​

How long the counters have actually been accumulating. If your relay is offline for a week, it sends one report covering that week rather than losing seven — and this field is what stops that arriving as a fake one-day traffic spike.

What is never in it ​

  • The names of your homes, rooms, accessories, scenes or automations
  • Any HomeKit accessory, service or characteristic identifier
  • Any accessory state or sensor reading — no temperatures, no on/off, nothing
  • The contents of your automations, scenes or scripts
  • Your IP address, hostname, Mac name, or Bonjour identifier
  • MQTT broker addresses, usernames or passwords
  • Any user name, email address, password or token
  • Anything at all about the people who use the relay

The counts above are counts of your accessories, not data about them. That "light": 22 line says a relay somewhere serves 22 lights; it says nothing about which lights, where they are, or whether any of them is on.

What we do with it ​

It answers questions we otherwise cannot answer: how many people run Community Edition, how large a home it needs to cope with, which app versions are still out there before we change something that would break them, and which of the APIs we maintain — REST, MCP, WebSocket, MQTT — anybody actually uses.

Reports are kept for 400 days and are only ever looked at in aggregate.

Failure is silent ​

If the report cannot be sent — no internet, a firewall, a blocked domain, our servers down — nothing happens. There is no error, no banner, no retry storm, and no effect on your relay. It is a side channel: it can fail completely and Community Edition works exactly as it did before.

If you block api.homecast.cloud at your router or in /etc/hosts, the relay carries on working normally and the reports simply never arrive.