Home Assistant

Alerts that arrive even when the internet doesn't

Why SMS, when you already have push notifications?

Push notifications fail exactly when you need them most: no data connection, phone in battery saver, app killed by the OS — or your home internet being the very thing that broke. An SMS gets through. And it comes from your own phone, on your own SIM, so there's no per-message fee and no third party reading your alerts.

What people use it for

💧
Water leak

The classic case where minutes cost real money.

Power outage

A UPS sensor triggers while the router is already dead.

🧊
Freezer warming up

Hours of warning instead of a ruined freezer.

🚨
Intrusion / smoke

Alerts that don't depend on an app being alive.

1. Install

Via HACS (recommended)

  1. 1. HACS → three-dot menu → Custom repositories
  2. 2. Add the repository URL, category Integration
  3. 3. Install SMSTunnel, then restart Home Assistant

Manual

Copy custom_components/smstunnel into your Home Assistant config/custom_components/ folder and restart.

2. Configure

Settings → Devices & Services → Add Integration → SMSTunnel

Field Notes
API keyNeeds the sms:send permission. Validated during setup, so a wrong key fails immediately instead of at the first real alert.
RecipientsOne or more numbers, comma separated.
Default country codee.g. +40 — local numbers without a prefix still work.
Device IDOptional. Pin sending to one specific phone.

3. Use it

Automation: SMS on water leak
automation:
  - alias: "SMS on water leak"
    trigger:
      - platform: state
        entity_id: binary_sensor.basement_water_leak
        to: "on"
    action:
      - service: notify.smstunnel
        data:
          title: "Home Assistant"
          message: "Water leak detected in the basement!"
Override the recipient at call time
service: notify.smstunnel
data:
  message: "The alarm was triggered"
  target:
    - "+40712345678"
    - "+40787654321"

Worth knowing

  • Watch out for flapping sensors. A trigger that fires repeatedly can burn your quota in minutes. Use for: or a condition so a twitchy sensor doesn't text you 200 times.
  • Rate limit: 30 requests per minute. When hit, it's written plainly in the log instead of the message silently disappearing.
  • Length: up to 1600 characters; longer messages are truncated before sending rather than rejected.
  • A title is prepended to the message, since SMS has no separate title field.

Responsible use

Built for low-volume alerting to yourself and your household. Sending unsolicited bulk messages from a consumer SIM generally breaches mobile carrier terms of service.

No phone paired yet?

Install the Android app, scan a QR code, and you're ready in about a minute.

Get the Android app