Když už mám doma rozběhnutný BirdNet s automatickým rozpoznáváním hlasů ptáků, chtěl jsem si vyzkoušet i automatické rozpoznávání z obrazu. Dlouho to bylo jen ve formě nápadu, ale když se nakonec objevil projekt Ptákobouda, řekl jsem si, že to zkusím taky. Telefon, který jsem k tomuto projektu vytáhl z šuplíku, měl ale Android 7 a na něm jsem současnou verzi IFTTT nenainstaloval – telefon nesplňoval minimální požadavky a aplikace zkrátka v Google Play nebyla k nalezení. Mohl jsme sice nainstalovat některou ze starších verzí nebo použít některý alternativní zdroj balíčků, ale nakonec jsem šel jinou cestou.
Abych nemusel kupovat nic nového, využil jsem věci, co už doma běží. Mám Home Assistant, hardwarový akcelerátor Coral, Frigate, NodeRed, MQTT a bezpečnostní kameru, která původně hlídala dům, ale nahradil jsem ji jinou, kvůli lepší ohniskové vzdálenosti.
Mým plánem bylo zachování principu Ptákoboudy, ale řešení vystavět jiným principem. Teď vše běží takhle:
- Kamera posílá obraz na RTSP, vytváří 2 streamy obrazu (main a sub), jeden v lepší kvalitě a druhý v horší, který stačí pro automatické vyhodnocení obrazu a nezatěžuje tolik hardware
- RTSP stream vyhodnocuje software Frigate, doplněný o HW akcelerátor Coral
- Všechny události, které Frigate zaznamená, publikuje přes MQTT
- NodeRed čte události v MQTT a hledá informace o detekovaných objektech z konkrétní kamery
- V závislosti na splněných podmínkách pak tok v NodeRed publikuje přes Mastodon API různé texty a obrázky
- Všechno tohle běží na Home Assistant nainstalovaném na Raspberry Pi 5 s NVMe diskem
Pokud máte doma Home Assistant, velmi pravděpodobně tohle zvládnete také. Pro omezený počet kamer nebudete potřebovat ani Coral a RTSP stream vám může vytvořit klidně starý mobil (a s mnohem lepší kvalitou obrazu), jak je popsáno v prvním článku o Ptákoboudě.
Instalace krok za krokem
Připrav Mastodon účet a přístupové údaje pro Home Assistant
Založ si speciální Mastodon účet (já si založil „ptačí hlášení z kompostu“, čím ještě jednou děkuji za účet na instanci kompost).
Zvol si jakoukoliv instanci a na Mastodon webu běž do Předvolby (Preferences) → Vývoj (Development) a vytvoř Novou aplikaci (New application). Zaškrtni následující rozsahy (scopes): read:accounts, write:statuses, write:media

Následně si ulož:
- Instance URL (např. https://…)
- Klientský klíč (Client key)
- Klientský secret (Client secret)
- Váš přístupový token (Access token)
Přidej integraci do Home Assistant
Buď ručně přes menu Settings → Devices & services → Add integration → Mastodon a nebo přes tohle tlačítko
Vyplň URL + klíče/token z předchozího kroku. Můžeš vybrat oblast umístění a klikni na dokončit.

Importuj tok do NodeRed
Pokud nemáš NodeRed, tak ho nainstaluj.
Do NodeRed přidej tenhle tok (flow). Aby bylo plně funkční i tebe, musíš ručně pozměnit několik parametrů:
- YOUR_MQTT_BROKER_ID musíš v MQTT IN uzlu vybrat z rozbalováku (tvoje MQTT konfigurace v Node-RED).
- YOUR_HOME_ASSISTANT_SERVER_ID musíš v api-call-service uzlu vybrat svůj Home Assistant server (z rozbalováku).
- MASTODON_CONFIG_ENTRY_ID musíš upravit v kódu funkčního uzlu.
YOUR_MQTT_BROKER_ID
Dvojklikni na úplně první (světle fialový) uzel v toku pojmenovaný „Frigate events (frigate/events)“ a nastav server. Důležité je vyplnit „Connection“ a „Security“.


YOUR_HOME_ASSISTANT_SERVER_ID
V Home Assistant uzlech (světle modrých) musíš nastavit volbu „používat Home Assistant Add-on“

MASTODON_CONFIG_ENTRY_ID
V toku jsou 2 (světle oranžové) uzly pojmenované jako „Build snapshot URL + paths + post payload“, v nich je hned u komentáře 2) poznámka TODO. Tady vlož MASTODON_CONFIG_ENTRY_ID, které získáš z Home Assistant integrace.

Pak už jen klikni nahoře na červené tlačítko „Deploy“ a mělo by to běžet.
Závěr
Možná tě publikování fotek veřejně na Mastodon neláká a stačilo by ti odesílání fotek třeba jen do nějakého komunikátora. Tahle možnost tu také je. V NodeRed je potřeba upravit uzel, který sestavuje zprávu pro Mastodon a který následně provádí publikaci.
V Home Assistant existuje spousta integrací, které dokážou posílat zprávy na oblíbené komunikátory. Já mám takto propojenou chytrou domácnost s aplikací Telegram. Používám Telegram, protože mi umožňuje zpětné zadávání příkazů pomocí tlačítek v chatu. Můžu tak potvrzovat automaticky provedené akce. Částečně se o tom zmiňuji v článku o pravidelné dezinfekci vody ve studni.

