home assistantreolink

Home Assistant jako rejestrator kamer Reolink

Home Assistant jako rejestrator kamer Reolink

Do wykonania projektu potrzebne będzie:

  • komputer pełniący rolę serwera – ze względu na zawrotne ceny minikomputerów Raspberry Pi zdecydowałem się zakupić terminal Dell Wyse 5010 Dx0D z 4GB RAM i dyskiem SSD 16GB
  • zewnętrzny dysk HDD i adapter USB – SATA
  • kamera Reolink

 

Do pełnienia roli rejestratora kamer Reolink nie ma potrzeby instalacji Home Assistant, wystarczy sam Linux ze skonfigurowaną usługą FTP, lecz ze względu na rozwojowo-dydaktyczny charakter projektu podjąłem decyzję o zainstalowaniu tego oprogramowania. Rozwiązanie wspiera każdy rodzaj kamery, która posiada zapis do zewnętrznego zasobu poprzez protokół FTP.

Na komputerze zainstalowany został Linux Debian – server edition.

8.10.2023 – Aktualizacja Dla wersja Debiana 12 wymagany jest inny sposób instalacji. Instrukcja została opisana: https://community.home-assistant.io/t/installing-home-assistant-supervised-using-debian-12/200253

Jak wygląda proces instalacji i na co należy zwrócić uwagę odsyłam do https://hejdom.pl/blog/22-home-assistant/309-home-assistant-debian-supervisor-instalation.html (polecam zapoznać się z informacjami zawartymi do kroku „Instalacja Dockera”).

TIP:

W moim przypadku pojawił się problem „Package 'openssh-server’ has no installation candidate in Debian” podczas próby instalacji openssh-server. Rozwiązanie tego problemu znaleźć można na stronie https://www.cyberithub.com/solved-package-has-no-installation-candidate-in-debian/

Kolejnym etapem jest instalacja Dockera i Home Assistant. W tym celu należy zainstalować wymagane pakiety oraz przeprowadzić proces instalacji dockera.

sudo apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat wget udisks2 libglib2.0-bin network-manager
systemctl disable ModemManager
systemctl stop ModemManager
curl -fsSL get.docker.com | sh

Warto również po tych operacjach zrestartować komputer.

sudo reboot

Do poprawnego działania potrzebny jest OS-Agent. W tym celu należy pobrać najnowszą wersję dystrybucji (https://github.com/home-assistant/os-agent/releases/latest).

su -
wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_x86_64.deb
sudo dpkg -i os-agent_1.2.2_linux_x86_64.deb 

Oraz zainstalować Home Assistant

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb

Po instalacji można ponownie zrestartować komputer.

Zarządzanie Home Assistant odbywa się po przez przeglądarkę, aplikacja dostępna jest pod adresem http://adres-ip-home-assistant:8123

Address IP można poznać poprzez uruchomienie komendy:

hostname -I | awk '{print $1}'

 

Kolejnym krokiem jest zainstalowanie i uruchomienie pluginu FTP. W tym celu należy wejść w HA w „Konfiguracja” -> „Dodatki, kopie zapasowe oraz Supervisor”. Kliknąć w „Sklep z dodatkami”, wyszukać i zainstalować FTP. Po instalacji należy w zakładce konfiguracja ustawić username, password; włączyć allow_upload, allow_download, media oraz zapisać i uruchomić ponownie dodatek.

 

Teraz można przejść do podpięcia zewnętrznego dysku i skonfigurowanie go aby zapis danych z kamery odbywał się właśnie na ten dysk.

W tym celu należy wyszukać, który to dysk zewnętrzny

sudo fdisk -l 

Dodatkowo warto zatroszczyć się aby dysk podpinał się automatycznie po każdym restarcie systemu, do tego celu potrzebne jest poznanie jego uuid.

sudo ls -al /dev/disk/by-uuid/
sudo nano /etc/fstab

Należy dodać wpis (należy zwrócić uwagę na system plików na dysku – w moim przypadku FAT32 to vfat)

UUID=TWOJ_UUID /usr/share/hassio/media/ vfat dmask=000,fmask=111 0 0   

I po zapisie reboot w celu weryfikacji czy dysk się automatycznie podpiął.

Dodatkowo można od razu skonfigurować aby dane starsze niż 7 dni były automatycznie usuwane. Dlatego należy dodać wpis crontab.

sudo nano /etc/crontab

Wpis który należy dodać to „0 0 * * * root find /usr/share/hassio/media/* -mtime +6 -type f -delete”

sudo /etc/init.d/cron restart

 

Pozostało jeszcze skonfigurowanie kamery aby zapisywała na serwer po protokole FTP.

W aplikacji Reolink należy wejść w Ustawienia -> „Przesyłanie z FTP” -> „UstawieniaFTP”.

Należy wprowadzić nazwę użytkownika, hasło, zdalny katalog (proponuję ustawić subkatalog gdzie kamera ma zapisywać dane). Należy również zwrócić uwagę na harmonogram. Jeżeli wszystko poprawnie zostało skonfigurowane to naciśnięcie na przycisk „Test” będzie tylko formalnością 🙂

 

Jako dodatkową opcję można dodać panel z podglądem na żywo z kamery. Można to uczynić poprzez dodanie wpisu w configuration.yaml

sudo nano /usr/share/hassio/homeassistant/configuration.yaml

Należy dodać sekcję:

camera:
  - platform: generic
    name: cam1
    still_image_url: "http://192.168.1.66/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=YOUR_PASSWOR"
    stream_source: "rtsp://admin:YOUR_PASSWORD@192.168.1.66:554/h264Preview_01_main"

Hasło należy wprowadzić takie, które zostało ustawione w momencie dodawania kamery do aplikacji w telefonie.

Po tym kroku wymagane jest restart aplikacji Home Assistant.

W edycji dashboardu, można dodać panel z obrazem z kamery (należy wyszukać w zakładce encja – „cam1”).

A całość prezentuję się wtedy następująco 🙂

Udostępnij

5 komentarz

  1. Hassio mam na Proxmox a dostęp do konfigu i media przez sambę. Podłączyłem dysk usb 500 gb i do kilku dni szukam rozwiązania jak zapisywać nagrania z kamer na ten właśnie dysk. Na dysk systemowy bez problemu mi zapisuje ale dysk systemowy to tylko 120 gb

    1. dodanie wpisu w /etc/fstab
      z wartością UUID=TWOJ_UUID /usr/share/hassio/media/ vfat dmask=000,fmask=111 0 0
      nie działa?
      Zapewne przez ssh trzeba będzie połączyć się do serwera aby móc taki wpis zrobić.

      1. Dodam taki wpis i sprawdzę ale zastanawiam sie dlaczego dysk usb ma taki dziwny uuid
        lrwxrwxrwx 1 root root 10 Mar 3 17:37 DC3C8A693C8A3E90 -> ../../sdb1

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *