Is it possible to set the time after which a device offline notification is emailed to 1 hour instead of immediately? My mailbox is getting full of notifications of systems that are offline for 2/3 minutes and then come back online again. This way it’s getting hard to see if there’s a system that’s offline for longer which suggests a real problem.
There is not currently a configuration for this, but you could create a webhook where you can create the logic yourself. There are a couple of solutions, one which you would code and host yourself, and at the bottom, there is an example solution if you do not want to host the solution yourself.
Remote.it already supports online/offline webhooks, so the most robust pattern is: receive every state-change webhook, store timestamps, and have your own small service decide when a device has been offline for 1+ hour and then send a notification.
How Remote.it Webhooks Behave
- Remote.it can send HTTP webhooks for device online/offline changes to a URL you control.
- Each webhook payload includes at least: device ID, name, owner email, state (online/offline), and the UTC time of the state change.
- Offline notifications may be delayed up to ~15 minutes if the device lost power or network unexpectedly.
Core Design for “Offline ≥ 1 Hour”
Implement a tiny backend (e.g., FastAPI/Express/Lambda) that:
- Exposes a public HTTPS endpoint
/remoteit-webhook. - Parses incoming JSON, extracting:
device(ID)namestate(online/offline)time(UTC timestamp)
- Maintains a store keyed by device ID (Postgres, Redis, or even DynamoDB/Firestore) with:
last_statelast_state_changed_atlast_notified_offline_at(optional, to avoid repeats)
Logic on each webhook:
- If
state == "offline":- Save offline timestamp.
- Do not notify yet.
- If
state == "online":- Clear any pending “offline” condition and maybe send a “back online” alert if you want.
Separately, run a scheduled job (cron or cloud scheduler) every 5–10 minutes:
- For each device with
last_state == "offline":- If
now - last_state_changed_at >= 1 hourand eitherlast_notified_offline_atis null or older than your repeat window:- Send your notification (email, Slack, SMS, etc.).
- Update
last_notified_offline_at = now.
- If
This avoids hammering the Remote.it API and uses their recommended webhook-first pattern.
Wiring Remote.it to Your Endpoint
- In the Remote.it web UI, under Settings → Notifications, configure the webhook URL to point to your HTTPS endpoint.
- Ensure your endpoint:
- Accepts POST with JSON.
- Returns 2xx quickly (log and enqueue work, don’t block on slow operations).
If you want to fan out to other services (Slack, etc.), you can either send directly from your code or push events into something like Zapier/IFTTT from your webhook handler.
Handling Delays and Flapping
- Because offline events can be late by up to ~15 minutes, your “offline for an hour” check should be based on the webhook’s
timefield, not the arrival time. - The 1-hour threshold already smooths out most brief flaps; if you still see a lot of noise, you can:
- Require offline for 70–75 minutes instead of 60.
- Only alert if there were no intervening “online” events in your store.
Lightweight Option Like Zapier (If You Don’t Want to Host Code)
If you want minimal infrastructure:
- Use Remote.it’s webhook → Zapier (or similar) via a custom webhook app.
- In Zapier:
- Trigger: “Catch Hook”.
- Action: add/update a row in an Airtable/Google Sheet with device ID, last state, and timestamp.
- Another Zap on a schedule (e.g., every 5–10 minutes) checks for rows where:
state == offlineandnow - last_state_changed_at >= 1 hour,- and then sends you email/Slack/Discord.
This replicates the same “state + scheduler” pattern without running your own server.