Your Smart Home Writes the List
The window sensor's battery is almost dead, the printer is low on toner — things Home Assistant already knows. This bridge turns them into Hobba tasks. And once the problem resolves itself, the task checks itself off.
How it works
Home Assistant gets its own to-do list as a mailbox. Your automations drop items there — using built-in actions, no extra add-on. On a Mac in the same network, a small script empties the mailbox every five minutes and creates each item as a task via the Hobba Connector. From there, CloudKit syncs to iPhone, iPad, and Watch as usual.
The return path is built in: if an automation drops an item starting
with erledigt:, the bridge checks off the matching task in
Hobba. Tasks disappear on their own once the battery has been swapped —
or the gauge was just acting up for a moment.
Prerequisites
- Home Assistant on your home network.
- A Mac that runs regularly, with Hobba and the Connector shortcut — that's steps 1 and 2 of the Connector guide.
Step 1: The mailbox in Home Assistant
Settings → Devices & Services → Add Integration →
“Local to-do list” → name it “Hobba Eingang”. That
creates the entity todo.hobba_eingang.
Step 2: The bridge on the Mac
Fetch the script and store the access token (token: HA → Profile → Security → “Long-lived access tokens”):
mkdir -p ~/.hobba-mcp
curl -o ~/.hobba-mcp/hobba-ha-bridge.py https://hobba.rinn-home.de/hobba-ha-bridge.py
printf '{"url": "http://homeassistant.local:8123", "token": "YOUR-TOKEN", "liste": "todo.hobba_eingang"}' > ~/.hobba-mcp/ha-bridge.conf
chmod 600 ~/.hobba-mcp/ha-bridge.conf
Run it once by hand — a test item on the HA list should appear in Hobba's inbox:
python3 ~/.hobba-mcp/hobba-ha-bridge.py
Then every five minutes automatically, via launchd:
cat > ~/Library/LaunchAgents/de.rinnhome.hobba.ha-bridge.plist <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>de.rinnhome.hobba.ha-bridge</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/YOUR-USER/.hobba-mcp/hobba-ha-bridge.py</string>
</array>
<key>StartInterval</key><integer>300</integer>
<key>StandardOutPath</key><string>/Users/YOUR-USER/.hobba-mcp/ha-bridge.log</string>
<key>StandardErrorPath</key><string>/Users/YOUR-USER/.hobba-mcp/ha-bridge.log</string>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/de.rinnhome.hobba.ha-bridge.plist
Replace YOUR-USER in all three places —
launchd doesn't expand the tilde.
Step 3: Automations that feed the list
Any automation can now create tasks with the built-in
todo.add_item action. The battery example as a pair —
warning and all-clear:
# Warning: below 20% for an hour → task
triggers:
- trigger: numeric_state
entity_id: sensor.fensterkontakt_battery
below: 20
for: { hours: 1 }
actions:
- action: todo.add_item
target: { entity_id: todo.hobba_eingang }
data:
item: "Replace battery in {{ trigger.to_state.name }}"
description: "Level: {{ trigger.to_state.state }}%"
# All-clear: stable above 50% → check the task off
triggers:
- trigger: numeric_state
entity_id: sensor.fensterkontakt_battery
above: 50
for: { hours: 1 }
actions:
- action: todo.add_item
target: { entity_id: todo.hobba_eingang }
data:
item: "erledigt: Replace battery in {{ trigger.to_state.name }}"
The only rule: the title after erledigt: (the prefix is
fixed, German for “done”) must exactly match the warning's title — that's
how the bridge recognizes the task. The thresholds 20 and 50 are apart on
purpose: the gap prevents ping-pong when a gauge hovers around the
line.
Why this is safe
- No open port. The Mac pulls the items (polling) — nothing listens, Home Assistant stays inside your home network.
- The token stays local. It lives in a file with 0600 permissions; the script refuses to run if the file is more open. Even tighter: create a dedicated HA user without admin rights and use that user's token.
- Everything goes through the app. The bridge never writes past a database — it uses the same shortcut path as the Claude Connector. The source is one page of Python.
- Nothing gets lost. An item is only removed from the HA list once Hobba has confirmed it. If the Mac is asleep, tasks wait in the mailbox.
Hobba is a task app for iPhone, iPad, Mac, and Apple Watch — no account, no subscription, no tracking. On the App Store since August 30, 2026: one purchase, no monthly bill.
Get it on the App Store