PIN-protected camera sharing for Home Assistant. Share live camera feeds with family, guests, or service providers — no HA account required.
- 📱 iPhone-style PIN pad — clean, mobile-first unlock screen
- 🔑 Flexible auth — 4-digit, 6-digit, or alphanumeric passcodes
- 📷 Multi-camera support — select which cameras each person can see
- 🔄 Multiple shares — create separate links with different PINs and cameras
- 🔘 Switch entity — enable/disable each share instantly (great for automations)
- 🔒 Secure by default — JWT cookies, per-share secrets, sharing off on restart
- Baby monitor access for family
- Pet camera for the dog walker
- Front door cam for a delivery window
- Guest camera access during a stay
- Open HACS → Integrations → ⋮ → Custom repositories
- Add
evandcoleman/campasswith category Integration - Install CamPass and restart Home Assistant
- Copy
custom_components/campassto your HAconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Integrations → Add Integration → CamPass
- Enter a name (e.g. "Guest"), choose auth type, set a passcode
- Select which cameras to share
- Turn on the
switch.campass_<name>entity to enable sharing
Repeat to create additional shares with different settings.
Share the URL with your guest:
http://YOUR_HA_ADDRESS:8123/campass/guest/
They enter the passcode and see the live camera feed. When you turn off the switch, they see "Camera not available."
Use the switch entity to schedule access:
automation:
- alias: "Enable baby cam sharing at bedtime"
trigger:
- platform: time
at: "19:00:00"
action:
- service: switch.turn_on
target:
entity_id: switch.campass_guest
- alias: "Disable baby cam sharing in morning"
trigger:
- platform: time
at: "07:00:00"
action:
- service: switch.turn_off
target:
entity_id: switch.campass_guest- Passcodes are validated server-side
- Sessions use signed JWT tokens (httpOnly cookies, 24h expiry)
- Each share has its own cryptographic secret
- Switch state persists across HA restarts
- Camera access is restricted to the configured whitelist
MIT © 2026 Evan Coleman
