O programie
MQTT, co oznacza Message Queuing Telemetry Transport, to lekki i wydajny protokół do przesyłania wiadomości szeroko używany w Internecie Rzeczy (IoT) do komunikacji między urządzeniami. Został zaprojektowany do pracy w warunkach ograniczonej przepustowości sieci i z urządzeniami o niskiej mocy, co czyni go idealnym do podłączania zdalnych czujników, urządzeń mobilnych i różnych małych gadżetów do internetu.
Agent DVR może zarówno publikować zdarzenia do MQTT, jak i odbierać polecenia za jego pośrednictwem, czyniąc go elastycznym mostem między kamerami a systemem inteligentnego domu lub automatyki domowej.
Łączenie
Połącz Agent DVR z serwerem MQTT za pomocą menu Ustawienia. Po połączeniu możesz skonfigurować akcje alertów, aby publikować komunikaty na serwerze MQTT. Patrz Ustawienia serwera MQTT, aby uzyskać szczegóły.
Aby to skonfigurować, edytuj urządzenie i wybierz Akcje w menu. Dodaj akcję dla alertu (lub innego zdarzenia) i wybierz MQTT jako typ zadania. Tutaj możesz określić temat i komunikat do opublikowania.
Określ temat, do którego chcesz publikować (na przykład Agent/alerts), i sformułuj swój komunikat odpowiednio.
Wysyłanie poleceń
Agent DVR może również odbierać i przetwarzać wiadomości MQTT na temacie SERWER/polecenia, gdzie SERWER to nazwa twojego serwera (wyświetlana w menu serwera, edytowalna w Ustawienia). Wszystkie ukośniki, podkreślenia i łączniki są usuwane z nazwy serwera dla tematów MQTT. Te polecenia są sformatowane podobnie do HTTP API. Wystarczy zastąpić /command tekstem cmd=:
Aby włączyć wszystkie urządzenia: cmd=allon.
Aby zrobić zdjęcie na konkretnym urządzeniu: cmd=snapshot&ot=2&oid=1.
Aby resetuj liczniki przekroczeń linii wyzwalającej na kamerze: cmd=resettripwires&ot=2&oid=1.
Używając mosquitto, możesz wysłać polecenie takie jak (zastąp SERWER nazwą swojego serwera):
mosquitto_pub -t 'SERWER/polecenia' -m 'cmd=record&ot=2&oid=1'.
Agent DVR wykonają polecenie i wyśle odpowiedź JSON na temat SERWER/odpowiedzi.
Automatyczne MQTT
Agent DVR zawiera automatyczną konfigurację MQTT, która wysyła domyślne zdarzenia, statusy i statystyki użycia. Aby aktywować tę funkcję, włącz opcję "MQTT Events" na karcie MQTT podczas edycji urządzenia.
Tematy są publikowane w formie SERWER/kamery/NAZWA/ lub SERWER/mikrofony/NAZWA/, gdzie SERWER to nazwa twojego serwera, a NAZWA to nazwa urządzenia (obydwie małymi literami, z usuniętymi ukośnikami). Konfiguracja ta zawiera flagi dla tematów takich jak ruch, połączono, alert, nagrywanie, przewijanie czasowe, alerty (stan uzbrojenia) i detektor (wykrywanie ruchu włączone lub wyłączone), plus wyniki JSON z rozpoznawania obiektów AI, twarzy, tablic rejestracyjnych i dźwięku.
Kamery używające detektora linii przekroczenia z włączonym Licznikiem publikują również (v7.7.4.0+):
- tripwire: jeden komunikat na każde liczone przekroczenie, np.
{"wire":1,"direction":"left","left":3,"right":2,"total":5} - tripwire_left, tripwire_right, tripwire_total: bieżące liczniki, przechowywane aby były dostępne zaraz po subskrypcji. Resetuj do 0 za pomocą przycisku Resetuj Licznik, polecenia resettripwires lub restartu kamery.
Jeśli korzystasz z Home Assistant, nie musisz pracować z tymi tematami bezpośrednio: zobacz Home Assistant, aby uzyskać automatyczną konfigurację.
Rozwiązywanie problemów
Jeśli napotkasz częste rozłączenia i ponowne połączenia w MQTT, zwykle oznacza to, że ID klienta określony w Ustawienia serwera w sekcji MQTT jest używany przez wielu klientów. Ważne jest zapewnienie, że każdy klient podłączony do MQTT ma unikatowy ID klienta.
Home Assistant
Agent DVR może automatycznie ogłaszać swoje urządzenia w Home Assistant przy użyciu odkrywania MQTT. Twoje kamery i mikrofony pojawią się następnie w Home Assistant jako urządzenia z czujnikami i przełącznikami, gotowe do użycia w pulpitach nawigacyjnych i automatyzacjach bez konfiguracji YAML.
Co otrzymujesz
- Czujnik ruchu: włączony, gdy detektor widzi aktywność.
- Czujnik alertu: włączony, gdy urządzenie wysyła alert.
- Czujnik połączenia: czy urządzenie jest w trybie online.
- Czujnik nagrywania: włączony, gdy urządzenie nagrywa.
- Przełącznik włączenia: włączaj lub wyłączaj urządzenie z Home Assistant.
- Przełącznik alertów: aktywuj lub dezaktywuj alerty z Home Assistant.
- Przełącznik detektora: włączaj lub wyłączaj detekcję ruchu z Home Assistant.
- Licznik Lewy, Licznik Prawo i Suma czujniki: liczniki przekroczeń dla kamer używających detektora linii wyzwalającej, do liczenia ludzi. (v7.7.4.0+)
Po włączeniu Wysyłaj statystyki serwer pojawia się również jako urządzenie z czujnikami użycia procesora, pamięci i dysku. Wszystkie jednostki wyświetlają się jako niedostępne w Home Assistant, gdy Agent DVR przejdzie do trybu offline.
Konfiguracja
Potrzebujesz brokera MQTT (zazwyczaj dodatku Mosquitto na twoim komputerze Home Assistant) i integracji MQTT Home Assistant połączonej z nim. Żadne dodatkowe porty nie muszą być otwarte dla Agent DVR: łączy się z brokerem dokładnie tak jak Home Assistant.
Przy nowej instalacji po prostu wpisz adres brokera i logowanie w obszarze Home Assistant na ekranie powitalnym. To wszystko: MQTT i odkrywanie są włączone dla ciebie, i każda kamera oraz mikrofon, który dodasz później, pojawią się w Home Assistant automatycznie.
Aby skonfigurować to później (lub w istniejącej instalacji), przejdź do Ustawienia serwera - MQTT, skonfiguruj brokera i włącz zarówno Włączone jak i Odkrywanie Home Assistant. Następnie włącz Zdarzenia MQTT na każdym urządzeniu, które chcesz opublikować (karta MQTT podczas edycji urządzenia). Urządzenia dodane, gdy odkrywanie jest włączone, mają zdarzenia MQTT włączone automatycznie; urządzenia, które istniały wcześniej, zachowują swoje bieżące ustawienie.
Uwagi
- Urządzenia pojawiają się w Home Assistant w ciągu kilku sekund od połączenia Agent DVR z brokerem. Zmiana nazwy urządzenia lub przełączenie zdarzeń MQTT aktualizuje Home Assistant automatycznie.
- Prefiks Odkrywania w zaawansowanych ustawieniach MQTT musi być zgodny z prefiksem odkrywania w integracji MQTT Home Assistant. Pozostaw oba na domyślnym (homeassistant), chyba że wiesz, że je zmieniłeś.
- Wyłączenie odkrywania Home Assistant usuwa jednostki z Home Assistant.
- Przełączniki używają poleceń MQTT Agent DVR w tle, więc cokolwiek innego w twojej sieci MQTT może wysyłać te same polecenia.