Privacy Tools Guide

Privacy-Focused Smart Home Hub Alternatives

Amazon Alexa, Google Home, and Samsung SmartThings process your automation data on vendor clouds. This means a record of when you turn lights on, when motion is detected, when you arrive home, and — for voice-based hubs — recordings of everything said near a device. Local hubs eliminate this. This guide covers three alternatives that run entirely on your network.

What Cloud-Connected Hubs Collect

Amazon Echo/Alexa:
  - Voice recordings (7 seconds before wake word and after)
  - Device state changes (on/off/dimmer level + timestamp)
  - Routine triggers and schedules
  - IP address and router details
  - Skill usage patterns

Google Home:
  - Same categories plus cross-device activity correlation
  - Links to Google account: location history, search history, YouTube

Samsung SmartThings:
  - All device events streamed to SmartThings cloud
  - Automation triggers and schedules
  - Camera snapshots (SmartThings/Ring integration)

All three platforms retain this data for months to years and use it for advertising profiling or share it with law enforcement on subpoena.


Option 1: Home Assistant (Most Flexible)

Home Assistant is the most popular local smart home platform — 700,000+ active installations. It runs on a Raspberry Pi, dedicated mini PC, or as a Docker container. With “Home Assistant Cloud” (Nabu Casa, optional) disabled, it operates 100% locally.

Install on a Raspberry Pi 4:

# Flash the Home Assistant OS image (easiest method)
# Download: https://www.home-assistant.io/installation/raspberrypi
# Flash with balenaEtcher or rpi-imager
# Boot → access http://homeassistant.local:8123

# Or install as Docker container on an existing server
docker run -d \
  --name homeassistant \
  --privileged \
  --restart unless-stopped \
  -v /opt/homeassistant/config:/config \
  -v /run/dbus:/run/dbus:ro \
  --network host \
  ghcr.io/home-assistant/home-assistant:stable

Verify no cloud data is sent:

# Block Home Assistant from reaching the internet (whitelist exceptions for NTP/updates)
sudo ufw deny out from <ha-ip>
sudo ufw allow out from <ha-ip> to any port 443  # only if you use Nabu Casa

# Check what HA is connecting to
sudo tcpdump -i eth0 host <ha-ip> -n port 443 -w /tmp/ha_traffic.pcap

Zigbee and Z-Wave integration (no cloud required):

# configuration.yaml
zha:
  database_path: /config/zigbee.db

# Or use Zigbee2MQTT (connects Zigbee coordinator to MQTT broker)
# No Zigbee vendor cloud required

Privacy-respecting automations:

# automations.yaml — local motion-triggered light with no cloud
- alias: "Living room motion"
  trigger:
    platform: state
    entity_id: binary_sensor.living_room_motion
    to: "on"
  action:
    service: light.turn_on
    entity_id: light.living_room
    data:
      brightness: 200

# Presence detection without Google/Apple location sharing
# Use local Bluetooth scanner (HACS bluetooth_tracker)
- alias: "Arrive home"
  trigger:
    platform: state
    entity_id: device_tracker.my_phone_bt
    to: "home"
  action:
    service: alarm_control_panel.alarm_disarm
    entity_id: alarm_control_panel.home

Voice assistant — fully local with Whisper + Piper:

# Home Assistant Voice (local processing, no cloud)
# Requires HACS Wyoming integration

# whisper (speech-to-text)
# piper (text-to-speech)
# openwakeword (wake word detection)

# All run on-device — nothing leaves your network

Option 2: openHAB (Enterprise-Grade)

openHAB (Open Home Automation Bus) is Java-based and focuses on enterprise-grade stability. It supports 400+ bindings (integrations). Its declarative configuration model is more structured than Home Assistant’s YAML.

Install on Ubuntu:

# Java requirement
sudo apt install -y openjdk-17-jdk

# Add openHAB repository
wget -qO- "https://openhab.jfrog.io/artifactory/api/gpg/key/public" \
  | sudo apt-key add -
echo 'deb https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main' \
  | sudo tee /etc/apt/sources.list.d/openhab.list

sudo apt update && sudo apt install -y openhab

sudo systemctl enable --now openhab
# Access at http://localhost:8080

Blocking cloud calls in openHAB:

# openHAB does not require cloud connectivity
# Disable usage statistics reporting:
# In PaperUI > Settings > System > Remote Access: OFF

# Verify no outbound connections
ss -tnp | grep java | grep ESTABLISHED
# Should only show local connections

Sample items and rules:

// items/home.items
Switch LivingLight "Living Room Light" (gLights) { channel="zigbee:zigbee_device:coordinator:bulb1:switch" }
Number RoomTemp "Room Temperature [%.1f °C]" { channel="zwave:device:controller:sensor_temperature" }
// rules/heating.rules
rule "Eco mode when empty"
when
    Item PresenceSensor changed to OFF
then
    Thermostat.sendCommand(16)  // Set to 16°C when nobody home
    logInfo("Heating", "Eco mode activated")
end

Option 3: Hubitat Elevation

Hubitat is a commercial hub (hardware device, ~$150) that processes all automations locally. Unlike SmartThings, nothing leaves the hub. There is no subscription required for local operation.

Privacy properties:

Disable cloud features:

Settings > Hub Details > Cloud Connection > Disable

Settings > Hub Mesh > Off (if not using multi-hub setup)

Backup locally:

# Hubitat provides local backup via web UI
curl -s "http://hubitat.local/hub/backup" \
  -o hub_backup_$(date +%Y%m%d).lzf

Choosing a Protocol (No Cloud Required)

Protocol Range Mesh Cloud Required
Zigbee 10–20m Yes No
Z-Wave 30–100m Yes No
Thread/Matter 10–20m Yes No (Matter = local first)
Wi-Fi Home coverage No Depends on device
Bluetooth LE 5–10m No (BLE mesh exists) Depends

For maximum privacy: use Zigbee or Z-Wave with a local coordinator (ConBee II, HUSBZB-1). These devices talk directly to your hub without any internet requirement.

# Zigbee2MQTT — bridges Zigbee coordinator to MQTT broker locally
# No zigbee vendor cloud required even for commercial devices

docker run -d \
  --name zigbee2mqtt \
  -v /opt/zigbee2mqtt/data:/app/data \
  --device=/dev/ttyACM0 \
  -e TZ=America/New_York \
  koenkk/zigbee2mqtt

# All Zigbee device events go to local MQTT broker, not any cloud

Network Isolation for IoT Devices

Regardless of which hub you choose, isolate IoT devices on a dedicated VLAN:

# Create VLAN 30 for IoT on pfSense/OPNsense
# Rule: IoT VLAN can communicate with Hub IP only
# Rule: IoT VLAN cannot reach main LAN
# Rule: Block IoT VLAN from internet (adjust per device)

# Home Assistant configuration for isolated IoT VLAN
# Set HA IP to 192.168.30.2 (gateway on IoT VLAN)
# All Zigbee/Z-Wave/Thread devices communicate only with HA
# HA on main LAN for dashboard access


Built by theluckystrike — More at zovo.one