Push

The push camera integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] allows you to integrate images sent over HTTP POST to Home Assistant as a camera. External applications/daemons/scripts are therefore able to “stream” images through Home Assistant.

Optionally the Push Camera can buffer a given number of images, creating an animation of the detected motion after the event has been recorded.

Images are cleared on new events, and events are separated by a soft (configurable) timeout.

Integration with motionEye

The push camera can as an example be used with motionEye a web frontend for the motion daemon. motionEye is usually configured to save/record files only when motion is detected. It provides a hook to run a command whenever an image is saved, which can be used together with cURL to send the motion detected images to the push camera, as shown in this example:

In motionEye, under File Storage -> Run A Command type in:

curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/webhook/my_custom_webhook_id
# inserting a backslash in the middle of "webhook" stops Motion to move the command to a webhook

Optionally configure motionEye to save only motion triggered images by going into Still Images -> Capture Mode and setting Motion Triggered. Tune your preferences under Motion Detection.

In this setup, you can configure the push camera to continuously replay the last motion triggered event using a configuration such as:

camera:
  - platform: push
    name: MotionEye Outdoor
    buffer: 3
    timeout: 5
    webhook_id: my_custom_webhook_id

Configuration

To enable this camera in your installation, add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file. After changing the configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file, restart Home Assistant to apply the changes. The integration is now shown on the integrations page under Settings > Devices & services. Its entities are listed on the integration card itself and on the Entities tab.

# Example configuration.yaml entry
camera:
  - platform: push
    name: My Push Camera
    webhook_id: my_custom_webhook_id

Configuration Variables

name string (Optional, default: Push Camera)

The name you would like to give to the camera.

buffer string (Optional, default: 1)

Number of images to buffer per event. Be conservative, large buffers will starve your system memory.

timeout time (Optional, default: 5 seconds)

Amount of time after which the event is considered to have finished.

webhook_id string Required

User provided string acting as camera identifier and access control, should be a large string (more then 8 chars).

field string (Optional, default: image)

HTTP POST field containing the image file