Jak wysłać zdjęcie z kamery na komunikator Slack w momencie wciśnięcia przycisku dzwonka do drzwi?
Oczywiście można kupić i zainstalować gotowy video-domofon z wifi i używać apki producenta x, ale można również obsłużyć za pomocą kilku tańszych i uniwersalnych elementów.
Niezbędne do działania:
- dowolny dzwonek bezprzewodowy działający na 433Mhz,
np. taki z Biedronki:
- bramka Sonoff RF z wgranym alternatywnym oprogramowaniem AIS dom, na bazie Sonoff-Tasmota (szczegóły dotyczące konfiguracji bramki RF opisane są tu: https://sviete.github.io/AIS-docs/docs/en/next/ais_iot_gate_device_rf433.html#docsNav )
- zewnętrzna kamera IP
np. Yi Outdoor:
- konto na Slack
Opis działania w skrócie - musimy nauczyć bramkę RF naszego kodu z dzwonka i po jego wykryciu uruchomić automatyzację zapisującą zdjęcie z kamery i wysłanie komunikatu przez Slack.
- z konsoli bramki RF zapisujemy kod pod przyciskiem 16 komendą:
RfKey 2 16
lub uczymy bramkę RF wg instrukcji: https://sviete.github.io/AIS-docs/docs/en/next/ais_iot_gate_device_rf433.html#uczenie-bramki-kodow-rf - w configuration.yaml dodajemy nową encję (lub używamy dodanej wg powyższej instrukcji):
input_boolean: doorbell: name: Dzwonek do drzwi initial: off icon: mdi:doorbell-video
- konfigurujemy kamerę:
- w przypadku Yi Outdoor jest to nieco bardziej skomplikowane ponieważ trzeba wgrać dodatkowy software umożliwiający stream’owanie RSTP - GitHub - TheCrypt0/yi-hack-v4: New Custom Firmware for Xiaomi Cameras based on Hi3518e Chipset. It features RTSP, SSH, FTP and more!
- w configuration.yaml dodajemy (uzupełnij IP kamery w adresie rstp):
ffmpeg: camera: - platform: ffmpeg name: Yi_Outdor_Cam_Low input: -rtsp_transport tcp -i rtsp://CAMERA_IP_ADDRESS/ch0_1.h264
- konfigurujemy integrację Slack (Slack - Home Assistant)
- ustaw własną nazwę konta i domyślny kanał
- zdefiniuj hasło w pliku secrets.yaml
notify: - name: NOTIFIER_NAME platform: slack api_key: !secret slack_api_key default_channel: '#dom'
- dodajemy automatyzację w automations.yaml
- zamiast xxxxxx wstaw rozpoznany kod dzwonka - można go znaleźć w konsoli RF’a w polu Data:
20:11:38 MQT: RFBridge/tele/RESULT = {"Time":"2019-12-18T20:11:38","RfReceived":{"Sync":5110,"Low":180,"High":490,"Data":"xxxxxx","RfKey":16}}
- zamiast NOTIFIER_NAME wstaw nazwę konta w Slack
- id: 11111353bd7440dca318a33474bc1112 alias: Dzwonek do drzwi - wyślij zdjęcie na Slack initial_state: 'on' trigger: platform: mqtt topic: RFBridge/tele/RESULT condition: condition: template value_template: '{{ trigger.payload_json.RfReceived.Data == "xxxxxx" }}' action: - service: camera.snapshot data: entity_id: camera.yi_outdor_cam_low filename: /data/data/pl.sviete.dom/files/home/AIS/www/img/snapshot_camera.jpg - service: notify.NOTIFIER_NAME data_template: title: Dzwonek message: Ktoś dzwoni do drzwi! {{now().strftime("%H:%M:%S")}} data: file: path: /data/data/pl.sviete.dom/files/home/AIS/www/img/snapshot_camera.jpg
a dodając dodatkową akcję można wywołać powiadomienie głosowe:
- service: ais_ai_service.say_it data: text: Ktoś dzwoni do drzwi!
lub nawet w określonych godzinach zadzwonić dzwonkiem sąsiada, coby odebrał paczkę od listonosza
- id: 11111353bd7440dca318a33474bc3212 alias: Dzwonek do drzwi -> Dzwonek do sąsiada initial_state: 'on' trigger: platform: mqtt topic: RFBridge/tele/RESULT condition: - condition: template value_template: '{{ trigger.payload_json.RfReceived.Data == "xxxxxx" }}' - condition: time after: 08:00:00 before: '16:00:00' weekday: - mon - tue - wed - thu - fri action: - service: mqtt.publish data_template: topic: RFBridge/cmnd/RfKey13 payload: ''
W Asystencie może to wyglądać tak:
a na Slack’u dostajemy takie powiadomienie:
Powodzenia w kopiowaniu