- Yes: run the nursery camera through go2rtc once, then point both Home Assistant and a baby monitor app at its restream.
- A camera often serves only a few RTSP viewers, so one program reads it and everything else reads that program.
- A dashboard on a locked iPhone stops its sound; the dashboard is fine by day, a night app is for the pillow.
- Sound must reach the app as G.711; go2rtc converts AAC from cameras such as Reolink in one config line.
- Away from home, the Tailscale add-on carries the same stream; nothing goes through a cloud.
Can Home Assistant be a baby monitor?
Yes, for the camera side. Home Assistant reads almost any Wi-Fi camera, and a dashboard card shows the nursery in a second. It falls short on the phone you sleep next to. A browser tab or the Companion app is not built to keep a live sound playing on a locked phone for nine hours, and it does not tell you when that sound has died.
Our own case: we ran a Tapo TC72 (the retail twin of the C212) through Home Assistant as the monitor for our second son in August and September 2026. The camera side worked from day one. The parent side took weeks of fixes, and the last fault was a stream that kept saying "playing" while it sent nothing. That is the one fault a baby monitor must never have.
So the setup that works keeps Home Assistant for what it does best, automations and the dashboard, and gives the night to an app. Both read one restream from go2rtc, the streaming server Home Assistant itself has shipped inside since version 2024.11.
| What the night needs | Home Assistant dashboard on an iPhone | What fixed it in our setup |
|---|---|---|
| Sound with the phone locked | stops when the screen locks | a separate sound-only stream (go2rtc + ffmpeg to AAC) |
| Sound that stays alive | died silently: go2rtc drops an HLS session after 4–5 s without a request | a plain long stream.aac, 5 minutes with no fault |
| Sound in step with the picture | seconds behind: Safari buffers it like radio | not fixed in the dashboard |
| Volume | ignored by iOS on a web page | one extra ffmpeg stream per level (+12 dB, +22 dB) |
| Small window over other apps | empty window for live WebRTC | not fixed |
| "Is it still listening?" | no: a dead stream still says playing | a home-made watchdog and a red SOUND LOST banner |
| Crying vs. the dog | no: every noise is the same | not fixed |
| The camera itself | fine: WebRTC card, low delay | nothing to fix |
Measured by us in August–September 2026 with a Tapo TC72, go2rtc in its own container next to Home Assistant, and iPhones on iOS 18.
Set up the camera through go2rtc, step by step
The steps below fit a Tapo camera and go2rtc running as a Home Assistant add-on, a Docker container or inside Frigate. Other RTSP cameras differ only in the stream address; the IP camera guide lists them. Checked against go2rtc 1.9 on 2026-10-30.
- Give the camera a login for other apps. On a Tapo, open the camera in the Tapo app → Settings → Advanced Settings → Camera Account, as the Tapo guide shows. Other makers call it the RTSP or ONVIF user.
- Add two streams to
go2rtc.yaml. One sharp, one light, in the format go2rtc documents:
Restart go2rtc. From now on, no other app talks to the camera. We hit this: a second app pointed straight at our Tapo gave timeouts, because the camera serves only a couple of viewers.streams: nursery: rtsp://<camera-user>:<camera-password>@<camera-address>:554/stream1 nursery_sd: rtsp://<camera-user>:<camera-password>@<camera-address>:554/stream2 - Check the restream. Open
http://<home-assistant-host>:1984. You should see both names in the list, and the stream's info should show H264 video and PCMA or PCMU sound. No sound codec at all? Turn on the microphone in the camera's own app. - Convert the sound if it is AAC. Reolink and several others send AAC, which a baby monitor app may not play. Turn the stream into a list and add a second source, as in go2rtc's ffmpeg notes:
- ffmpeg:nursery#audio=pcmaundernursery_sd. The same idea makes a quiet room louder:#raw=-af volume=4, written in the file. We hit this too:#af=volume=4is accepted and silently ignored. - Give go2rtc room. Measured by us in September 2026: the container needed 256 MB of memory instead of 128 MB, and each sound conversion took about 13 MB.
- Point Home Assistant at the restream. A Generic Camera or WebRTC card reads
rtsp://<home-assistant-host>:8554/nursery. That is your daytime view. - Point the phone at the same restream. In Mamoon on the parent phone, choose the camera in the nursery, then "Advanced: I have my own server (go2rtc)", and type the server address. Mamoon finds the RTSP streams itself in its connection test; under "Edit streams manually", "Stream for detail" is
nurseryand "Everyday stream" isnursery_sd. You should see the picture and hear the room within seconds. - Keep the power switch in Home Assistant. A Zigbee smart plug or Tapo privacy mode can turn the camera off by day. Your automation does the switching; the monitor app should simply say the camera sends nothing, and pick it up again when it wakes.
One more trap from our notes: asking go2rtc for sound only (?audio) from an idle Tapo stream gave no packets at all. Ask for the light stream with its video and just don't draw it.
Which baby cameras work with Home Assistant?
Any camera with local RTSP: Tapo, Hikvision, Dahua, Imou, and Reolink once its sound is converted. Cubo Ai has a community integration that reads its cloud, so it is not local. Radio monitors such as most VTech units have no network stream at all, which suits parents who want a non-Wi-Fi baby monitor. Ring, Nest and current Wyze cameras stream only through their makers' clouds. The camera checker tells you which group yours is in, and the camera guide compares the ones that work.
Frigate is fine as the restream, since it runs go2rtc inside and serves port 8554. Just give the nursery camera no recording and no object detection; a sleeping baby is not an event.
Is Baby Buddy a baby monitor?
No. Baby Buddy is a log for feeds, naps and diapers, with a Home Assistant integration for buttons and charts. It is a great match for a dashboard by the changing table. It does not watch or listen to the crib, so it sits next to the camera setup above, not in its place.
Watching from work over Tailscale
Install the Tailscale add-on on Home Assistant and Tailscale on your phone, and the go2rtc restream is reachable wherever the phone is. In the monitor app, use the server's Tailscale address instead of its home one. No port opens on your router and no cloud sits in the middle. The full walk-through is in the Tailscale guide.
Where Mamoon fits
Mamoon is the night half of this setup: a baby monitor app on your own phone. It reads the go2rtc restream on your home Wi-Fi, keeps the sound live with the phone locked, and tells a cry from a door or the dog on the phone itself. If the camera stops sending, Mamoon turns the screen grey and alerts you after 20 seconds. It does not run automations or talk to HomeKit, Alexa or Google Home; Home Assistant keeps that job. Sound and cry alerts are free; the picture costs $29.99 once or $3.99 a month after 14 days free.
Frequently asked questions
Does Home Assistant have a built-in baby monitor?
No. It has camera cards, sound sensors and automations, but nothing that keeps a live sound playing on a locked phone or warns you when that sound has stopped. People build it from go2rtc, a dashboard and a companion app, or add a monitor app on top.
Can I get a cry alert in Home Assistant?
Only roughly. A noise sensor on the camera or a sound-level automation fires on any loud sound, the dog and the door included. Telling crying from other sounds needs a classifier, which a dedicated monitor app runs on the phone.
Do I need Frigate for a baby camera?
No. Frigate is for detecting people and cars and keeping events. For a nursery, plain go2rtc is enough; if Frigate already runs, its built-in go2rtc restream works just as well.
Can the camera stay blocked from the internet?
Yes. Block it at the router and everything local keeps working. You lose the maker's cloud, its push alerts and its own cry detection, and its clock drifts: measured by us in September 2026, ours ended up 129 days behind.
Does Mamoon need Home Assistant?
No. Mamoon reads most Wi-Fi cameras over RTSP on its own, or uses an old phone by the crib as the camera. The go2rtc route is for people who already run a server and want one restream for everything.
Sources
- go2rtc on GitHub: streams, RTSP restream on port 8554, web UI on 1984, ffmpeg audio conversion
- Home Assistant 2024.11 release notes: go2rtc built in
- Frigate docs: restream through its built-in go2rtc
- TP-Link Tapo FAQ: Camera Account, RTSP and ONVIF
- Baby Buddy documentation
- Our own setup: Tapo TC72, go2rtc and Home Assistant, measured August–September 2026
Spotted a mistake or an outdated figure? Write to [email protected].
How these pages are made: an AI model drafts them from our own tests, real app screens and the sources listed, and Jan Drábek checks every page before it goes live.
