Monitor your baby — right from Home Assistant.
Live streams, nursery sensors, night light control, and automations — all from your HA dashboard. Works with all Nanit cameras and the Sound & Light Machine.
- Home Assistant 2025.12 or newer
- A Nanit account with email/password
- HACS (recommended)
- Open HACS → Integrations → ⋮ → Custom repositories.
- Add
https://github.com/wealthystudent/ha-nanitas Integration. - Install Nanit, then restart Home Assistant.
- Download
nanit.zipfrom the latest release. - Extract it into
config/custom_components/nanit/in your Home Assistant configuration directory. - Restart Home Assistant.
Use the release zip, not a copy of the repository: the source on main carries a placeholder version that release builds replace.
- Go to Settings → Devices & Services → Add Integration → Nanit.
- Enter your Nanit email and password.
- Enter the MFA code sent to your device (use the latest code — they expire quickly).
- Done — all devices on your account (cameras and Sound & Light Machines) are discovered automatically.
Per camera:
- 📷 Live camera stream (RTMPS)
- 🌡️ Temperature & humidity sensors
- 👁️ Motion & sound detection
- 💡 Night light switch
- 🔌 Camera power switch
Sound & Light Machine (works standalone or paired with a camera):
- Power, sound, and light switches
- Sound track selector, volume & brightness controls
- Temperature & humidity sensors
- Battery level & charging status
- Firmware version (diagnostic)
- WiFi signal strength (diagnostic, disabled by default)
Some entities are disabled by default. Enable them in Settings → Devices & Services → Nanit → Entities.
Coming from nanit-sound-light? That integration has merged into this one. Its migration guide maps every entity id.
A companion Lovelace card is bundled with the integration — no HACS frontend dependencies or manual JS installation required. After setup, the card appears in your card picker automatically.
To add it: Open any dashboard → Add Card → search for Nanit → select your camera.
The card provides:
- Live camera stream with loading indicator
- Temperature & humidity overlays, with optional semantic entity overrides for the displayed sensors
- Motion & sound activity indicators
- Optional baby name and connectivity status display
- Header power button (can be hidden in card settings)
- Night light slider (drag to adjust brightness, 0% = off; can be hidden in card settings)
- Sound machine controls with icon-based track selection (can be hidden in card settings)
- Volume slider
- Network info popup (WiFi name, frequency, signal strength)
Optional sensor overrides can be set in the visual editor or YAML when you want the overlay to display another Home Assistant sensor instead of the Nanit-discovered sensor:
type: custom:nanit-card
camera_entity_id: camera.nursery
temperature_entity_id: sensor.nursery_temperature
humidity_entity_id: sensor.nursery_humidityNote
If your Lovelace is in YAML mode, add the resource manually:
resources:
- url: /nanit-card/nanit-card.js
type: moduleThe integration provides one action:
nanit.reset_stream targets a Nanit camera entity and discards Home Assistant's cached camera stream, so the next viewer gets a freshly negotiated stream from the Nanit cloud. The bundled dashboard card calls it automatically when it detects a stalled stream, and it is useful in automations or scripts when a stream shows a stale or frozen picture. It has no parameters beyond the target.
action: nanit.reset_stream
target:
entity_id: camera.nurseryHow each piece of data reaches Home Assistant:
- Camera sensors (temperature, humidity, night light, connectivity) arrive as push updates over the camera's WebSocket, so they update in real time.
- Motion and sound events come from the Nanit cloud API, polled every 30 seconds.
- Network diagnostics (WiFi details) are polled every 5 minutes.
- Sound & Light state (power, sound, light, volume) arrives as push updates over the speaker's WebSocket, local or relay. A light 30 second poll reconciles state and refreshes battery and WiFi diagnostics. The firmware version is requested with the poll until known, then left alone.
- Video streams on demand over RTMPS when a viewer opens the camera.
For faster response times, you can connect directly to your camera over LAN:
Settings → Devices & Services → Nanit → Configure → select device → enter its local IP address.
The integration will use your local network for sensors and controls, falling back to cloud for auth and events.
The Sound & Light Machine needs no configuration for this: it is discovered on the LAN automatically (mDNS) and the local connection is preferred whenever the speaker is reachable, with the cloud relay as fallback. A manually configured speaker IP takes precedence over discovery.
One thing worth knowing: the speaker accepts a single local client at a time. If the Nanit phone app on the same network holds the local slot, the integration uses the cloud relay and takes the local slot back automatically when it frees up.
| Problem | Solution |
|---|---|
| MFA code rejected | Codes expire fast — use the latest one. |
| Stream not playing | Verify HA can reach rtmps://media-secured.nanit.com. The Stream integration is pulled in automatically; on installs without default_config: an older version left it out, and the picture silently fell back to still images. |
| Stream frozen or stale | Run the nanit.reset_stream action on the camera entity (the dashboard card does this automatically when it detects a stall). |
| Sensors unavailable | WebSocket reconnects automatically. Try reloading the integration if it persists. |
| Local connection failing | Confirm the camera IP is correct and port 442 is reachable from HA. |
| Re-authentication required | Session expired — click the notification to re-enter credentials. |
| Other issues | Check Settings → System → Logs (filter for nanit) or download diagnostics from the integration page. |
- Authentication, motion/sound events, and streaming always require the Nanit cloud — no fully offline mode.
- Motion and sound detection is polled every 30 seconds (up to ~30s delay).
- Live video requires your HA instance to reach
rtmps://media-secured.nanit.com.
- Go to Settings → Devices & Services → Nanit, open the three dot menu on the entry, and choose Delete. This removes all Nanit devices and entities and deletes the stored account tokens.
- If you installed through HACS, also remove the repository there: HACS → Nanit → three dot menu → Remove, then restart Home Assistant.
The integration keeps no other state on disk. If you use the bundled dashboard card in YAML mode, remove its resource entry as well.
See CONTRIBUTING.md for setup and PR workflow.
