Frigate: Skirtumas tarp puslapio versijų

Iš Žinynas.
Jump to navigation Jump to search
20 eilutė: 20 eilutė:
 
  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
 
  bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
 
Sekame instrukcijas diegimo metu...
 
Sekame instrukcijas diegimo metu...
 +
 +
=== Įdiegiame MQTT brokerį kaip LXC konteinerį ===
 +
 +
* Prisijungiame prie proxmox valdymo panelio https://ip:8006/
 +
* Einame į Datacenter > PVE > Shell
 +
Rašome:
 +
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/mqtt.sh)"
 +
Sekame instrukcijas diegimo metu...
 +
 +
Diegimui pasibaigus pasijungiame per proxmox konsolę prie mqtt lxc konteinerio ir pakeičiame failo '''/etc/mosquitto/conf.d/default.conf''' turinį į
 +
listener 1883
 +
allow_anonymous true
 +
listener 9001
 +
protocol websockets
 +
socket_domain ipv4
 +
 +
=== Įdiegiame Home Assistant OS ===
 +
 +
* Prisijungiame prie proxmox valdymo panelio https://ip:8006/
 +
* Einame į Datacenter > PVE > Shell
 +
Rašome:
 +
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"
 +
 +
=== Įdiegiame Home Assistant Frigate pluginą ===
 +
 +
Einame į Home Assistant > Settings > Add-ons > ADD-ON STORE > Spaudžiame viršutiniame dešiniame kampe tris taškus ir pasirenkame Repositories, pridedame repozitorių:
 +
https://github.com/blakeblackshear/frigate-hass-addons
 +
Atnaujiname repozitorius ir spaudžiame įdiegti Frigate plugin'ą.
  
 
=== Įgaliname Intel iGPU Passthrough ===
 
=== Įgaliname Intel iGPU Passthrough ===
61 eilutė: 89 eilutė:
 
Po reboot žiūrime ar pavyko:
 
Po reboot žiūrime ar pavyko:
 
  ls -lsah /dev/dri
 
  ls -lsah /dev/dri
Turime matyti
+
Turime matyti:
 +
 
 
[[Vaizdas:7660a1d4-bd8e-11ec-a58e-3f9f3e6c485d.jpg]]
 
[[Vaizdas:7660a1d4-bd8e-11ec-a58e-3f9f3e6c485d.jpg]]
  
=== Įdiegiame MQTT brokerį kaip LXC konteinerį ===
+
[https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-split-passthrough/#proxmox-configuration-for-gvt-g-split-passthrough Daugiau informacijos]
 
 
* Prisijungiame prie proxmox valdymo panelio https://ip:8006/
 
* Einame į Datacenter > PVE > Shell
 
Rašome:
 
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/mqtt.sh)"
 
Sekame instrukcijas diegimo metu...
 
 
 
Diegimui pasibaigus pasijungiame per proxmox konsolę prie mqtt lxc konteinerio ir pakeičiame failo '''/etc/mosquitto/conf.d/default.conf''' turinį į
 
listener 1883
 
allow_anonymous true
 
listener 9001
 
protocol websockets
 
socket_domain ipv4
 
 
 
=== Įdiegiame Home Assistant OS ===
 
 
 
* Prisijungiame prie proxmox valdymo panelio https://ip:8006/
 
* Einame į Datacenter > PVE > Shell
 
Rašome:
 
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"
 
  
=== Įdiegiame Home Assistant Frigate pluginą ===
 
 
Einame į Home Assistant > Settings > Add-ons > ADD-ON STORE > Spaudžiame viršutiniame dešiniame kampe tris taškus ir pasirenkame Repositories, pridedame repozitorių:
 
https://github.com/blakeblackshear/frigate-hass-addons
 
Atnaujiname repozitorius ir spaudžiame įdiegti Frigate plugin'ą.
 
  
 
=== Frigate konfigūracija ===
 
=== Frigate konfigūracija ===
100 eilutė: 104 eilutė:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Jeigu coral neatpažystamas sistemos ===
 +
 +
Jeigu '''lsusb''' komanda rodo:
 +
1a6e:089a Global Unichip Corp.
 +
Reikia įgalinti įrenginio atpažinimą [[udev]] taisyklėmis arba pasinaudoti '''df-util'''
 +
apt install df-util
 +
wget https://github.com/google-coral/libedgetpu/raw/efb73cc94dac29dc590a243109d4654c223e008c/driver/usb/apex_latest_single_ep.bin
 +
dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R
 +
Kad kiekvieną sistemos startavimo kartą suveiktų šis pakeitimas reiktų jį įrašyti į '''/etc/rc.local''' failą
 +
<syntaxhighlight lang="bash">
 +
#!/bin/sh
 +
dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R
 +
exit 0
 +
</syntaxhighlight>
 +
Taip pat suteikiame šiam scriptui paleidimo teises
 +
chmod +x /etc/rc.local
 +
Dabar sistemos perkrovimo metu įrenginys bus atpažystamas teisingai.
 +
 +
[https://williamlam.com/2023/05/google-coral-usb-edge-tpu-accelerator-on-esxi.html Daugiau info]
  
 
== Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q) ==
 
== Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q) ==

22:40, 8 birželio 2024 versija

Proxmox + HassOS (Home Assistant) + Frigate (Intel NUC6CAYH)

Pigiausias (low budget) setupas, nors cpu apkrovos jaučiasi, bet puikiai veikia su 4-6 kameromis. Diegime tuo pačiu ir Home Assistant, kuris naudojamas išmaniųjų namų automatikoje. Frigate diegiamas kaip plugin (papildinys) Home Assistant'ui

Reikalinga:

Sudiegiame proxmox

FIXME

Kai sudiegiame proxmox..

  • Prisijungiame prie proxmox valdymo panelio https://ip:8006/
  • Einame į Datacenter > PVE > Shell

Rašome:

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"

Sekame instrukcijas diegimo metu...

Įdiegiame MQTT brokerį kaip LXC konteinerį

  • Prisijungiame prie proxmox valdymo panelio https://ip:8006/
  • Einame į Datacenter > PVE > Shell

Rašome:

bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/mqtt.sh)"

Sekame instrukcijas diegimo metu...

Diegimui pasibaigus pasijungiame per proxmox konsolę prie mqtt lxc konteinerio ir pakeičiame failo /etc/mosquitto/conf.d/default.conf turinį į

listener 1883
allow_anonymous true
listener 9001
protocol websockets
socket_domain ipv4

Įdiegiame Home Assistant OS

  • Prisijungiame prie proxmox valdymo panelio https://ip:8006/
  • Einame į Datacenter > PVE > Shell

Rašome:

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"

Įdiegiame Home Assistant Frigate pluginą

Einame į Home Assistant > Settings > Add-ons > ADD-ON STORE > Spaudžiame viršutiniame dešiniame kampe tris taškus ir pasirenkame Repositories, pridedame repozitorių:

https://github.com/blakeblackshear/frigate-hass-addons

Atnaujiname repozitorius ir spaudžiame įdiegti Frigate plugin'ą.

Įgaliname Intel iGPU Passthrough

/etc/default/grub pakeisti tik vieną eilutę

GRUB_CMDLINE_LINUX_DEFAULT="quiet quiet intel_iommu=on i915.enable_gvt=1 iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesa:off vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu"

Paleidžiame:

update-grub

Paredaguojame failą /etc/modules ten įrašydami:

# Modules required for PCI passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
# Modules required for Intel GVT-g Split
kvmgt

Paleidžiame:

update-initramfs -u -k all
reboot

Tikriname dmesg komanda ir ieškome eilutės

dmesg | grep -e DMAR -e IOMMU
[0.067203] DMAR: IOMMU enabled

GPU Passthrough įgalinimas Home Assistant OS virtualioje mašinoje

19bbed86-bc34-11ec-bdef-d76764bad4d0.jpg

2cf3d69c-bd89-11ec-af8c-67974c4ba3f0.jpg

3802e9b8-bd8b-11ec-a4ba-8305e0d2d682.jpg

C605680c-bd8c-11ec-81f9-4755a5d3fa24.jpg

Nustatymai turi atrodyti maždaug taip

375ed1c8-bd8d-11ec-94c6-cf0bac60954a.jpg

Po reboot žiūrime ar pavyko:

ls -lsah /dev/dri

Turime matyti:

7660a1d4-bd8e-11ec-a58e-3f9f3e6c485d.jpg

Daugiau informacijos


Frigate konfigūracija

Kad patogiau būtų redaguoti konfigūracijos failą, įdiegiame Home Assistant pluginą File Editor per Settings > Add-ons > ADD-ON STORE įdiegus pluginą pasidarome Show in sidebar. Paspaudę ant šio sidebar meniu punkto nunaviguojame ir sukuriame failą frigate.yml direktorijoje homeassistant/

Failo turinys:

Jeigu coral neatpažystamas sistemos

Jeigu lsusb komanda rodo:

1a6e:089a Global Unichip Corp.

Reikia įgalinti įrenginio atpažinimą udev taisyklėmis arba pasinaudoti df-util

apt install df-util
wget https://github.com/google-coral/libedgetpu/raw/efb73cc94dac29dc590a243109d4654c223e008c/driver/usb/apex_latest_single_ep.bin
dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R

Kad kiekvieną sistemos startavimo kartą suveiktų šis pakeitimas reiktų jį įrašyti į /etc/rc.local failą

#!/bin/sh
dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R
exit 0

Taip pat suteikiame šiam scriptui paleidimo teises

chmod +x /etc/rc.local

Dabar sistemos perkrovimo metu įrenginys bus atpažystamas teisingai.

Daugiau info

Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q)

Reikalinga:

docker-compose.yml

version: "3.9"
services:
  frigate:
    container_name: frigate
    image: ghcr.io/blakeblackshear/frigate:stable
    restart: always
    privileged: true
    shm_size: "256mb"
    ports:
      - "1935:1935"
      - "5000:5000"
    devices:
      - /dev/bus/usb:/dev/bus/usb
      - /dev/dri:/dev/dri
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /srv/dockers/frigate/conf/config.yml:/config/config.yml:ro
      - /srv/dockers/frigate/data:/media/frigate
      - /srv/dockers/frigate/db:/db
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
#    ports:
#      - '5000:5000'
    environment:
      - FRIGATE_RTSP_PASSWORD=123456
    networks:
      - traefik
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - "traefik.http.routers.frigate.rule=Host(`frigate.domenas.lt`)"
      - "traefik.http.services.frigate.loadbalancer.server.port=5000"
    # resources limit
    mem_limit: 6G
    cpus: 3.0
    cap_add:
      - CAP_PERFMON
networks:
  traefik:
    external: true

frigate.yml

detectors:
#  cpu1:
#    type: cpu
#  cpu2:
#    type: cpu
  coral:
    type: edgetpu
    device: usb
    num_threads: 3
database:
  path: /db/frigate.db
ffmpeg:
  hwaccel_args: preset-vaapi
  output_args:
    record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v copy -c:a aac
logger:
  # Optional: default log level (default: shown below)
  default: info
  # Optional: module by module log level configuration
  logs:
    frigate.mqtt: warning
    frigate.ffmpeg: debug
mqtt:
  host: 192.168.1.1
  topic_prefix: frigate
  client_id: frigate
  stats_interval: 60
rtmp:
  enabled: false

birdseye:
  enabled: false

detect:
  enabled: True
  max_disappeared: 50
  width: 640
  height: 360
  fps: 5

record:
  enabled: True
  retain:
    days: 14
    mode: motion
  events:
    pre_capture: 10
    post_capture: 5
    objects:
       - person
       - car
       - bicycle
       - motorcycle
       - bus
       - dog
       - truck
    required_zones: []
    retain:
      default: 3650
      mode: active_objects

snapshots:
  enabled: True
  timestamp: True
  bounding_box: True
  crop: False
  height: 1000
  retain:
    default: 3650

objects:
  track:
    - person
    - car
    - cat
    - dog
    - bicycle
    - truck
    - motorcycle
    - bus
    - horse
    - sheep
    - cow
    - bear
    - umbrella
    - handbag
    - suitcase
    - bottle
    - apple
    - cell phone

  filters:
    person:
      min_score: 0.5
      threshold: 0.7
    car:
      threshold: 0.70
    truck:
      threshold: 0.70

cameras:
  Cam1:
    ffmpeg:
       hwaccel_args: preset-intel-qsv-h264
       input_args: -avoid_negative_ts auto -fflags nobuffer+genpts+discardcorrupt -flags low_delay -rtsp_transport tcp -use_wallclock_as_timestamps 1 -timeout 2000000
       inputs:
         - path: rtsp://admin:admin@192.168.1.10/0/av1 # h264 MPEG-4 AVC (h264) 640x352
           roles:
             - detect
         - path: rtsp://admin:admin@192.168.1.10/0/av0 # h264 MPEG-4 AVC (h264 1920x1080
           roles:
             - record
    detect:
      width: 640
      height: 352
      fps: 5
    objects:
      track:
        - person
        - cat
        - dog
        - truck
    mqtt:
      height: 1080
      crop: False
    timestamp_style:
      position: "bl"
      format: "%H:%M:%S"
      color:
        red: 255
        green: 255
        blue: 255
      thickness: 5
      effect: "shadow"