The onvif camera platform allows you to use an ONVIF camera in Home Assistant. This requires the ffmpeg component to be already configured.


To enable your ONVIF camera in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
  - platform: onvif

Configuration Variables



The IP address or hostname of the camera.



Override the name of your camera.

Default value:

ONVIF Camera



The username for the camera.

Default value:




The password for the camera.

Default value:




The (HTTP) port for the camera.

Default value:




Video profile that will be used to obtain the stream, more details below.

Default value:




RTSP transport protocols. The possible options are: tcp, udp, udp_multicast, http.

Default value:




Extra options to pass to ffmpeg, e.g., image quality or video filter options. More details in ffmpeg component.

Default value:

-q:v 2

Most of the ONVIF cameras support more than one audio/video profile. Each profile provides different image quality. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn’t able to render the highest quality image in real-time, especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in configuration profile variable.

Service onvif.ptz

If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your camera.

Service data attribute Description
entity_id String or list of strings that point at entity_ids of cameras. Use entity_id: all to target all.
tilt Tilt direction. Allowed values: UP, DOWN, NONE
pan Pan direction. Allowed values: RIGHT, LEFT, NONE
zoom Zoom. Allowed values: ZOOM_IN, ZOOM_OUT, NONE
distance Distance coefficient. Sets how much PTZ should be executed in one request. Allowed values: floating point numbers, 0 to 1. Default : 0.1
speed Speed coefficient. Sets how fast PTZ will be executed. Allowed values: floating point numbers, 0 to 1. Default : 0.5
move_mode PTZ moving mode. Allowed values: ContinuousMove, RelativeMove, AbsoluteMove. Default :RelativeMove
continuous_duration Set ContinuousMove delay in seconds before stoping the move. Allowed values: floating point numbers or integer. Default : 0.5

If you are running into trouble with this sensor, please refer to the Troubleshooting section.