Documentation
Everything you need to install, configure, and troubleshoot MySentryHome.
Getting started
There is nothing to install. The whole system is one browser tab:
- Runner — the app at mysentryhome.com/runner. It captures the camera and the microphone, detects locally, and sends the alerts.
- Local Agent — optional. A small Node service you only need if you want events written to disk, or your bot token kept out of the browser.
Three steps to your first alert
- Open the Runner and grant camera permission.
- Fill in the Alerts panel with your Telegram bot token and chat id (next section), and hit Send test.
- Click Start detection and leave the tab open.
Detection only runs while the tab is open — that is the deal that keeps the product free of installers, servers and accounts.
Telegram setup
Alerts go to a bot that belongs to you. The browser talks to the Telegram API directly, so no server sits in between:
- Open Telegram and chat with @BotFather.
- Send
/newbotand follow the prompts. Save the bot token it gives you. - Send
/startto your new bot, then openhttps://api.telegram.org/bot<token>/getUpdatesin a browser tab and read your chat id frommessage.chat.id. - In the Runner, open the Alerts panel, pick Telegram, paste both values and press Send test. A message in your chat means you are done.
Where the token is kept
By default the token lives in sessionStorage — it dies when you close the tab. Tick Remember token only on a machine you trust, which moves it to localStorage. It is never sent anywhere except to api.telegram.org, and never written to a log.
Using the optional Agent instead
If you run the local Agent, pick HTTP endpoint in the Alerts panel and point it at the Agent's host and port. The token then lives in the Agent's config.json and never enters the browser at all.
Bot commands
The camera can answer back. Turn on Reply to commands in the Alerts panel and your bot starts accepting:
/snap— a photo of what the camera sees right now./short— a few seconds of video, recorded when you ask for it./arm— start detection, after a one-minute grace period./arm 90— same, but wait 90 seconds./arm90works too./disarm— stop detection, or call off a countdown already running./status— whether it is armed, and what the camera and microphone are doing./help— the list above.
Why arming waits a minute
Whoever arms the camera is standing in front of it. Without a delay, the first thing detected is you walking out of the room — a false alert, every single time, until you stop trusting the alerts at all.
So arming always waits, whether you use /arm or the button in the Runner. The button shows the countdown and cancels if you click it again; /disarm cancels from the phone. The bot tells you when the countdown starts and when detection actually begins, so you can leave without going back to check the laptop.
What turning it on actually does
It is off by default, and that default matters. With it off, a configured Runner contacts Telegram only when it detects something. With it on, the tab keeps a connection to Telegram open so it can hear you — and the camera will answer a message you send from anywhere.
- Only your chat is obeyed. A command from any other chat is ignored, and gets no reply at all.
- Anyone in that chat can disarm the camera. The check is on the chat, not on the person — one more reason the bot belongs in a private conversation.
- Only while the tab is open. Same rule as detection.
- One tab at a time. Telegram allows a single listener per bot; a second Runner on the same token will say so and stop.
Do not add the bot to a group. Anyone in it could ask your camera for a photo.
If /short comes back as a file
Chrome and Firefox record WebM, which Telegram delivers as an attachment rather than an inline player. Safari records MP4, which plays inline. The clip is the same either way, and it has no audio.
Leaving it watching a dark room
After a minute without a mouse or a key the Runner dims itself. It shows the state and a clock for a few seconds, then goes completely black — the machine reads as switched off from across the room, which is usually the point. The clock comes back for a few seconds every minute, so you can check on it in passing without touching anything. Move the mouse or press a key and the interface comes straight back. There is also a Standby button to dim it immediately, and a Fullscreen button next to it.
This is on by default, and it covers the interface without pausing anything — detection keeps running behind it, and alerts keep arriving.
Letting the computer turn its own screen off is fine too: detection does not depend on the display being lit. What does stop it is the machine going to sleep or hibernating, so set the power plan to never sleep. On a phone the screen switching off is a different matter and does interrupt capture — that is what a future version is about.
Locking the screen is not the same as turning it off. With the session locked the browser treats the window as hidden and slows the tab down, so detection becomes unreliable. Leave the session unlocked and use Standby to black out the screen instead — the room stays dark either way.
Knowing it is still running
Turn on Keep a live status message in the chat and the Runner posts a single message, then edits that same message every few minutes with the time of the last check-in. Editing a message makes no sound and no notification, so you are interrupted exactly once — when it is first posted — and from then on the status is simply there when you look.
It is not an alarm. If the machine loses power or the tab is killed, the message freezes at the last time it managed to write and stays there, silently. Nothing can send you a warning from a device that is gone. That is why the message always shows a clock and how often it updates: a time that stopped moving is something you can recognise, and it is the honest version of what the software actually knows.
Five minutes is the default. Shorter buys precision you rarely need; longer makes it harder to tell "between updates" from "stopped".
The check-in carries the date as well as the clock, so a message stuck since yesterday cannot be mistaken for a fresh one. If you delete the message, the next check-in posts a new one and carries on there. Telegram refuses to edit a message older than two days, so every 47 hours the Runner replaces it on its own and removes the one it retired.
Responsible use
Point it at your own property, and tell the people who live or work there that it is running. That is the whole rule, and most of what follows is a consequence of it.
Surveillance law is local, and stricter than people expect — recording audio is often regulated separately from video, and consent rules differ. Check before switching it on, not after.
We have no way to help you here, and no way to interfere either: there is no MySentryHome server, no account and no upload, so we never see your footage and could not moderate it if we wanted to. Whoever sets the camera up is the one responsible for it. The full text is on the Terms and responsible use page, along with the absence of any warranty — this is a browser tab, not a monitored security service, and it stops when the tab does.
Camera and microphone
Frames are compared at 160x120 to keep an old laptop cool. The Runner exposes five real-time knobs:
- Sensitivity — % of pixels that must change to trigger motion (default 25).
- Pixel threshold — per-channel RGB diff to count a pixel as changed (default 25).
- FPS — detection rate, 1–30 (default 10).
- Cooldown — minimum seconds between events, so one visitor is not fifty alerts.
- Sound threshold — level in dBFS above which a noise counts as an event (default −40).
For a noisy room, raise the pixel threshold to 35–40. For dark scenes, lower it to 10–15. The engine reports an intensity % you can use to fine-tune.
Troubleshooting
"Camera permission was denied"
The browser blocked webcam access. Click the camera icon in the address bar, allow access, then reload. Note the page must be served over HTTPS — browsers refuse the camera otherwise.
"No camera found"
Check that no other application is using the webcam. On Windows, Settings → Privacy → Camera lists which apps can see it.
"Camera is already in use"
Close Zoom, Teams, OBS, or any other app that may be holding the camera.
Telegram alerts not arriving
Use Send test in the Alerts panel — it exercises the real path and reports the reason in plain words. 401 Unauthorized means a wrong token; chat not found means you never sent /start to the bot, or the chat id is wrong.
Detection stops when I switch tabs
Browsers throttle background tabs. Keep the Runner in its own window, and do not minimize it, for a long watch.
The API status says "Offline"
That indicator only concerns the optional Agent. Confirm it is running — http://localhost:3000/status should answer {"status":"ok"} — and that the host and port in the Alerts panel match.
Technical FAQ
How is motion detected?
Two 160×120 RGBA frames are compared pixel by pixel in the browser. A pixel counts as "changed" when any RGB channel differs by more than the pixel threshold; when the share of changed pixels passes the sensitivity, an event fires.
What runs where?
Everything that looks at your camera runs in the browser tab. The only traffic leaving your machine is the alert itself, to api.telegram.org or to a local endpoint you configured.
Is there a cloud component?
No. This website is static HTML with no server logic, and there is no account, no database and no upload of your frames.
Can I plug in something other than Telegram?
Yes. The HTTP endpoint option speaks a small documented contract, so a Home Assistant automation, a Discord webhook relay or a NAS recorder can take the Agent's place.