Home Assistant
The Scrypted Custom Component for Home Assistant adds support for managing Scrypted from your Home Assistant Dashboard, and creation of Scrypted NVR cards. A demo of the cards is available on the Scrypted NVR Home Assistant Demo Site.
Addon Setup
TIP
The Custom Component must be installed even if using the Scrypted Home Assistant Addon.
If Scrypted was installed via the Home Assistant Addon, complete the following steps, otherwise continue on to Install Custom Component.
- Navigate to the Scrypted Addon in the Home Assistant sidebar. A separate dedicated Scrypted
admin
must be created inUsers
in the sidebar menu (the defaulthomeassistant
automatic login user can not be used).
- Now, remove the
Scrypted
sidebar item via the Addon configuration. The custom component will supercede the addon sidebar item.
Install Custom Component
The Scrypted Custom Component repository can be found on github.
- Install the custom component using the Home Assistant Community Store (HACS) by adding the
Custom Repository
:
https://github.com/koush/ha_scrypted
- In the HACS panel, select
Scrypted
from the repository list and select theINSTALL
button. - Go to
Settings > Devices & Services > Add Integration
and selectScrypted
. - Enter the host, username, and password for your Scrypted server, as well as a name and icon for the side panel link in the Home Assistant menu.
Setting | Sample Configuration |
---|---|
Host | 192.168.2.124:10443 |
Username | admin |
Password | swordfish! |
TIP
If Scrypted was installed as a Home Assistant Addon, there is no default login. A dedicated admin account will need to be created for the custom component. The Host
will be 127.0.0.1:10443
.
Scrypted can now be accessed in the Home Assistant side panel.
Card Setup
Scrypted NVR provides Home Assistant cards that feature low latency playback and two way audio. The NVR app is also deeply integrated into the Home Assistant UI.
There are several types of cards available:
- Single Camera Card
- Camera Grid Card
- Event Reel Card
TIP
Configuring multiple cameras within a single Camera Grid Card
dramatically improves performance and load times.
Follow the instructions below, and then substitute the card URL appopriately.
- Open Scrypted NVR inside Home Assistant using a desktop browser.
- Navigate to the camera.
- Open the the
Camera Settings
. - Copy the
Scrypted NVR Card Webpage URL
. (Substitute this with Camera Grid or Event Reel URL if desired.)
WARNING
If the Home Assistant Integrate
configuration is unavailable, verify the following:
- Scrypted must be opened from inside Home Assistant. The Home Assistant integration configuration is only available from inside Home Assistant.
- The Custom Component (and Addon setup, if applicable) must correctly be completed prior to setting up the cards.
- The Integration URL is available within the camera's settings reachable by clicking the settings icon under the camera playback view. Not to be confused with the primary NVR app settings.
- Add the following
Webpage Card
in Home Assistant and replace/paste the previously copiedScrypted NVR Card Webpage URL
below:
type: iframe
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>
allow_open_top_navigation: true
layout_options:
grid_columns: full
grid_rows: 4.25
Camera Card Options
The Scrypted NVR card behavior can be configured using query string parameters on the Webpage URL
.
Auto Play
Play the card video on load.
live=true
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?live=true
Image Click
The parameter imageClick
can be used to customize how click events are handled when the snapshot is clicked.
Value | Description |
---|---|
ha | Open the Home Assistant companion app when clicked. |
app | Open the Scrypted NVR app when clicked. |
Example: Open Scrypted NVR Timeline in Home Assistant when the still image is clicked.
imageClick=ha
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?imageClick=ha
Video Click
The parameter videoClick
can be used to customize how click events are handled when the live video is clicked.
Value | Description |
---|---|
ha | Open the Home Assistant companion app when clicked. |
app | Open the Scrypted NVR app when clicked. |
Example: Open Scrypted NVR Timeline in Home Assistant when the playing video is clicked.
videoClick=ha
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?videoClick=ha
Resolution
By default the Card live stream will use the low-resolution
stream: it loads fast, uses minimal resources, is thus best suited for a small frame. The resolution can be changed with the destination
parameter. Supported destination values include low-resolution
, remote
, and local
.
WARNING
Using the high resolution stream (local
) for a Cards is not recommended, as it can cause the Home Assistant Dashboard to become sluggish with multiple cards.
destination=local
destination=remote
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?destination=local
Audio
By default the Card live stream will mute both the microphone and the speaker (two way audio).
WARNING
Browsers will prevent autoplay with audio playback and microphone access prior to user interaction via a click event. The dashboard must be set to Allow on Chrome and Safari.
microphone=on
speaker=on
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?speaker=onµphone=on
Scrollable
By default the Camera Grid is not scrollable. Use the following to make it scrollable:
scrollable=true
type: iframe
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframegrid?ids=1,2,3&scrollable=true
allow_open_top_navigation: true
Multiple Parameters
Multiple parameters may be combined using &
.
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframe/<id>?imageClick=ha&videoClick=ha&live=true
Camera Grid Card
Multiple cameras can be configured within a single Webpage Card
. Configuration is similar to the single camera card, albeit a slightly different url format. The iframe url is:
Card Type | URL Fragment |
---|---|
Single Camera (Reference) | ...#/iframe/<id> |
Camera Grid | ...#/iframegrid?ids=<id1>,<id2> |
The ids
parameter is a comma separated list of device ids to display in the camera grid. The grid card works best in a Panel View, but can be adjusted for Masonry View by using fixed column values.
For example:
type: iframe
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframegrid?ids=<id1>,<id2>
allow_open_top_navigation: true
layout_options:
grid_columns: full
grid_rows: 9.5 # 4.25 * number of rows that will be shown
The Camera Grid card has additional parameters that can be used to used to customize the layout based on the device type and screen orientation:
Name | Device Type | Screen Orientation | Default Value |
---|---|---|---|
phonePortraitCols | Phone | Portrait | 1 |
phoneLandscapeCols | Phone | Landscape | 2 |
tabletPortraitCols | Tablet | Portrait | 2 |
tabletLandscapeCols | Tablet | Landscape | 3 |
desktopMinWidth | Desktop Browser | N/A | 480 (pixels) |
cols | All Devices | N/A | N/A |
focus | All Devices | N/A | N/A |
Use desktopMinWidth
to set the minimum width of a camera within the grid and controls the cell wrap behavior. For example, with the default value of 480
, if the screen is 960
pixels, the grid will be 2 columns. If the screen is 1920
pixels, the grid will be 4 columns.
Use cols
to set a fixed number of columns for all screen sizes and orientations.
Use focus
to focus on cameras that have ongoing motion. When there is no activity on the selected cameras, all cameras will be shown as the default state.
Event Reel Card
The Event Reel shows the recent highlighted events in a scrollable reel. Configuration is similar to the single camera card, albeit a slightly different url format. The iframe url is:
Card Type | URL Fragment |
---|---|
Single Camera (Reference) | ...#/iframe/<id> |
Event Reel | ...#/iframeevents?ids=<id1>,<id2> |
The Event Reel card has additional parameters that can be used to used to customize the cameras and events shown:
Name | Default Value | Description |
---|---|---|
ids | All Cameras | The camera ids shown in the reel. The ids parameter is a comma separated list of device ids to display in the camera grid. If this parameter is ommitted, all are shown by default. |
hiddenDetections | Motion | The detection types to hide in the reel. Person , Vehicle , Animal , etc. All except generic Motion are shown by default. |
cols | Responsive | The number of columns in the event reel. |
count | cols | The total number of items to show in an event reel page. Can be combined with cols to create a reel with multiple rows. |
aspectRatio | 1/1 | The aspect ratio of a detection thumbnail. |
click | ha | The app that will be opened when clicked. Valid values include ha (Home Assistant) and app (Scrypted NVR App) |
For example, for a 4x1 grid of events:
type: iframe
url: >-
/api/scrypted/<token>/endpoint/@scrypted/nvr/public/#/iframeevents?ids=<id1>,<id2>&cols=4
allow_open_top_navigation: true
type: iframe
url: >-
/api/scrypted/3713673acab4bdd3214e673700fe48d4/endpoint/@scrypted/nvr/public/#/iframe/41?cols=1&videoClick=ha&live=true
allow_open_top_navigation: true
layout_options:
grid_columns: full
grid_rows: 2.3
Notifications
WARNING
The Custom Component (and Addon setup, if applicable) must correctly be completed prior to setting up notifications.
Scrypted NVR Notifications can be delivered to the Home Assistant Companion app.
- Install and configure the Scrypted Cloud plugin. This is necessary to receive notification images.
- Install the Home Assistant Plugin for Scrypted.
- Configure the Home Assistant Long Lived Access Token (this is not the same token used in the previous steps) and Address in the Plugin Settings.
- The Home Assistant
notify
(Notify Service) entities should sync. - Find the companion app
Notify Service
entity within the Home Assistant Plugin. It will be named something similar tomobile_app_iphonex
.
- Enable the
Scrypted NVR Users
extension.
- Configure the following settings within the
mobile_app_iphonex
device.
- Assign a
Scrypted User
. - Paste the
Scrypted Token
used by the Home Assistant Custom Component. - Click Save.
- After the settings have been saved, click the Link Companion App button. A notification will be sent to the companion app.
- Click the notification to complete linking and allow customization of notifications from the companion app.
- The Notification options can also be configured in the Scrypted Management Console.