• 1 Post
  • 15 Comments
Joined 8 months ago
cake
Cake day: August 14th, 2025

help-circle

  • I don’t have an external GPU either, just the onboard Intel graphics is what I use now. Also worth mentioning to use integrated graphics your Docker Compose needs:

    devices:
          - /dev/dri/renderD128:/dev/dri/renderD128
    

    I’m not using substreams. I have 2 cameras and the motion detection doesn’t stress the CPU too much. If I add more cameras I’d consider using substreams for motion detection to reduce the load.

    Your still frames in Home Assistant are the exact problem I was having. If your cameras really do need go2rtc to reduce connections (my wifi camera doesn’t seem to care), you might try changing your Docker container to network_mode: host and see if that fixes it.

    Here’s my config. Most of the notations were put there by Frigate and I’ve de-identified everything. Notice at the bottom go2rtc is all commented out, so if I want to add it back in I can just remove the #s. Hope it helps.

    config.yaml
    mqtt:
      enabled: true
      host: <ip of Home Assistant>
      port: 1883
      topic_prefix: frigate
      client_id: frigate
      user: mqtt username
      password: mqtt password
      stats_interval: 60
      qos: 0
    
    cameras:     # No cameras defined, UI wizard should be used
      baby_cam:
        enabled: true
        friendly_name: Baby Cam
        ffmpeg:
          inputs:
            - path: 
                rtsp://user:pw@<ip-addr>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
              roles:
                - detect
                - record
          hwaccel_args: preset-vaapi
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 1920 # <---- update for your camera's resolution
          height: 1080 # <---- update for your camera's resolution
        record:
          enabled: true
          continuous:
            days: 150
          sync_recordings: true
          alerts:
            retain:
              days: 150
              mode: all
          detections:
            retain:
              days: 150
              mode: all
        snapshots:
          enabled: true
        motion:
          mask: 0.691,0.015,0.693,0.089,0.965,0.093,0.962,0.019
          threshold: 14
          contour_area: 20
          improve_contrast: true
        objects:
          track:
            - person
            - cat
            - dog
            - toothbrush
            - train
    
      front_cam:
        enabled: true
        friendly_name: Front Cam
        ffmpeg:
          inputs:
            - path: 
                rtsp://user:pw@<ip-addr>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
              roles:
                - detect
                - record
          hwaccel_args: preset-vaapi
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 2688 # <---- update for your camera's resolution
          height: 1512 # <---- update for your camera's resolution
        record:
          enabled: true
          continuous:
            days: 150
          sync_recordings: true
          alerts:
            retain:
              days: 150
              mode: all
          detections:
            retain:
              days: 150
              mode: all
        snapshots:
          enabled: true
        motion:
          mask:
            - 0.765,0.003,0.765,0.047,0.996,0.048,0.992,0.002
            - 0.627,0.998,0.619,0.853,0.649,0.763,0.713,0.69,0.767,0.676,0.819,0.707,0.839,0.766,0.869,0.825,0.889,0.87,0.89,0.956,0.882,1
            - 0.29,0,0.305,0.252,0.786,0.379,1,0.496,0.962,0.237,0.925,0.114,0.879,0
            - 0,0,0,0.33,0.295,0.259,0.289,0
          threshold: 30
          contour_area: 10
          improve_contrast: true
        objects:
          track:
            - person
            - cat
            - dog
            - car
            - bicycle
            - motorcycle
            - airplane
            - boat
            - bird
            - horse
            - sheep
            - cow
            - elephant
            - bear
            - zebra
            - giraffe
            - skis
            - sports ball
            - kite
            - baseball bat
            - skateboard
            - surfboard
            - tennis racket
          filters:
            car:
              mask:
                - 0.308,0.254,0.516,0.363,0.69,0.445,0.769,0.522,0.903,0.614,1,0.507,1,0,0.294,0.003
                - 0,0.381,0.29,0.377,0.284,0,0,0
        zones:
          Main_Zone:
            coordinates: 0,0,0,1,1,1,1,0
            loitering_time: 0
    
    detectors: # <---- add detectors
      ov:
        type: openvino
        device: GPU
    
    model:
      model_type: yolo-generic
      width: 320 # <--- should match the imgsize set during model export
      height: 320 # <--- should match the imgsize set during model export
      input_tensor: nchw
      input_dtype: float
      path: /config/model_cache/yolov9-t-320.onnx
      labelmap_path: /labelmap/coco-80.txt
    
    version: 0.17-0
    
    
    #go2rtc:
    #  streams:
    #    front_cam:
    #      - ffmpeg:rtsp://user:pw@<ip-addr>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    #    baby_cam:
    #      - ffmpeg:rtsp://user:pw@<ip-addr>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    





  • You seem a bit more network savvy than me. All I could figure is the Frigate integration (also HACS for me) talks to Frigate and asks it where to get the video from. If go2rtc is enabled in Frigate, the integration tries to stream from go2rtc. Without my Docker stack being in host network mode, it wouldn’t work for me.

    With no go2rtc, the Frigate integration asks Frigate where to get the stream, and it’s told to get it from the camera from what I can tell.

    All just guesses on my end. Hopefully I don’t sound too sure of myself because I’m not really sure.




    1. Portainer is practical, but I switched to Dockge and have been much happier with it. It doesn’t have all of the bells and whistles, but the simplicity makes the workflow much better for me. Give both a try!
    2. FreshRSS for RSS feeds, Lubelogger for tracking car (other other things) maintenance, Nginx Proxy Manager for a reverse proxy (or Caddy which is also popular). Whatever you fancy!
    3. Not sure.

    Regarding domain name, use what you have. It’s super easy to change domain names, and some people do it regularly to take advantage of 1st year sales. Basically all you have to do is transfer your DNS entries to the new domain, and update your reverse proxy entries.

    Definitely put everything behind a reverse proxy. I followed this advice so I don’t even have to expose ports using Docker. Everything runs through the reverse proxy, and Dockge makes it trivial add each container to the same network.






  • I’ve never had to restore a backup (yet), but to me this is the best feature of Restic.

    I used Duplicati for a while (I think it was Duplicati, not Duplicacy) and although the backups seemed to work, I kept reading about people having trouble during the restore process.

    Restic is a slight chore to get set up with the environmental variables, figuring out which directories to “–ignore”, etc… but man once it’s set up it’s just great.


  • I’m not sure I fully grasp what you want, but Restic is excellent. I use a cronjob to back up on a schedule. It’s command line only. I think there’s a tool to make it a GUI but I haven’t tried it. They have a Docker image available but it’s weird, you have to pass commands to it, it runs, then shuts down when it’s done. I love Docker but that didn’t quite work for me.

    I use Backblaze B2 for storage, but any S3 will do. Restic supports all sorts of storage targets.

    Credentials and things go in an .env file, or you can put everything into the command line every time.

    When it’s time to restore things, you can fricken mount the whole backup you want and browse the files, copy and paste what you need, etc. That part is really cool to me.

    Backblaze is $5 or $6 USD per TB per month, so 500GB will be about $36USD a year.