- PVSM.RU - https://www.pvsm.ru -
Довольно давно у меня появилась мысль установить управляющую панель, расположенную рядом с входной дверью внутри квартиры/дома.
Существует несколько вариантов реализации этой задумки:
Дополнительное требование, которое сразу ограничило выбор устройства: на панель управления автоматически должно выводиться изображение с наружной камеры при срабатывания датчика движения (и только в случае присутствия людей дома).
После того как требования четко сформировались, сразу отпали айпады, которыми я не знал как управлять извне (жаль, потому что для них есть большой выбор настенного крепежа) и устройства Nextion [1], поскольку на них изображение с камеры не вывести.
Один из вариантов iPad Wallmount от Loxone
И хотя на рынке сейчас появились и специализированные устройства, такие как:
Однако проблема с внешним управлением этими устройствами, насколько я понимаю, тоже остается и решена не полностью.
Помимо программной части панели, другая важная для меня часть — отсутствие “колхоза” при физическом закрепление этой панели на стене, что подразумевает подвод как минимум одного кабеля для питания устройства и монтажная распаячная коробка в стене достаточного размера, на месте установки этой панели, для скрытого размещения блока питания панели.
Монтажная распаячная коробка
Когда я снова вспомнил о своей идее в канун черной пятницы 2019 года, то решил купить что-нибудь недорогое для тестов. С пайкой и подключением сенсорной панели к Raspberry Pi мне заморачиваться не хотелось и выбор пал на планшет Amazon Fire 7 Tablet [5] за $29.99 (около 1 700 ₽). Я рассудил, что в багетной мастерской потом можно будет сделать соответствующее обрамление нужного размера для размещения планшета на стене.
Team Win Recovery Project (TWRP) на Amazon Fire 7 Tablet
Дальше следуя инструкциям [6], найденным на популярном ресурсе xda-developers.com мне удалось программным методом без физической разборки разблокировать загрузчик планшета Fire 7 и установить TWRP.
В процессе разблокировки Fire 7 (2019, mustang)
Хочу заметить, что инструкция изначально выглядела пугающе, но по итогу — там все описано довольно прозрачно. Поскольку изначально планов пользоваться Fire OS [7] у меня не было, то установил чистую LineageOS Android Distribution [8] без дополнительных приложений и без сервисов гугла, то есть без установки GApps.
LineageOS на на Amazon Fire 7 Tablet (2019, mustang)
Я хотел получить именно чистое устройство с минимумом программ, которое не привязано к какому-либо аккаунту.
Поскольку у меня на руках оказался рутованный (с полным доступом) планшет на Android, то проблем с выбором программ быть не должно.
Однако мне хотелось воспользоваться каким-нибудь стандартными средствами и поэтому остановился на ADB. Это работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем — достаточно нажимать несколько раз на пункт меню “Номер сборки” и откроется новый пункт меню “Для разработчиков”, где и производятся все настройки.
Поскольку мне надо было воспроизводить видео поток с IP-камеры (в моем случае VLC плейер [9], а еще Google Chrome [10] для полноэкранного отображение панели умного дома. Для того, чтобы произвести необходимые манипуляции с планшетом из терминала на компьютере надо выполнить нижеследующие команды.
Через командную строку установить приложение на планшете:
adb install VLC.apk
Через командную строку включить/выключить планшет:
adb shell input keyevent KEYCODE_POWER
Через командную строку запустить трансляцию с камеры:
adb shell am start -a android.intent.action.VIEW -d rtsp://login:pass@192.168.15.21:88/videoMain -t video/mp4
Через командную строку запустить панель управления умным домом в браузере:
adb shell am start -a android.intent.action.VIEW -d http://192.168.15.10:8123/lovelace/default_view
Для корректной работы задал настройки расширенного экрана — когда панели управления полностью скрываются.
Настройка LineageOS
И конечно же отключил блокировку экрана — без этого сложно что-то автоматизировать.
Настройка LineageOS
Вот небольшой лайфхак [11] как можно узнать список всех установленных приложений и команды для их запуска. Для начала войдите в консоль:
adb shell
а затем выполните:
pm list packages | sed -e "s/package://" | while read x; do cmd package resolve-activity --brief $x | tail -n 1 | grep -v "No activity found"; done
Это выведет список всех программ:
Выполнение команды на вывод всех программ на устройстве
Полученной информацией можно воспользоваться по своему усмотрению и, например, запустить часы:
adb shell am start -a android.intent.action.VIEW -d -n com.android.deskclock/.DeskClock
Всё вышеперечисленное было только подготовкой для автоматизации отображения камеры и программной панели управления на экране планшета. У меня есть два варианта камер над входной дверью в разных местах:
Для начала необходимо разрешить ADB по сети:
Настройка LineageOS
После этого планшет готов к удаленному управлению.
Поскольку я использую Hass.io [13], то воспользовался специальным дополнением ADB — Android Debug Bridge [14], которое позволяет управлять любым устройством, которое поддерживает управление по ADB. В конфигурации к этому дополнению указал своё единственное устройство:
{
"devices": [
"192.168.15.24"
],
"reconnect_timeout": 90
}
После этого немного странно, но все подобные устройства идут к настройке в Home Assistant как androidtv
.
media_player:
- platform: androidtv
name: Amazon Fire 7
host: 192.168.15.24
adb_server_ip: 127.0.0.1
Дальше финальный шаг — прописать автоматизацию, которая выводит на экран планшета камеру, затем закрывает приложение, а затем показывает панель управления Home Assistant и также через время интервал закрывает её:
###################################################
# #
# Управление android планшетом #
# #
###################################################
- alias: Amazon Fire 7 Mikhail
trigger:
- platform: state
entity_id: binary_sensor.kamera_u_liftov_pir_alarm
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: device_tracker.7c_xx_5c_b5_xx_1b #Михаил
state: 'home'
action:
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: input keyevent KEYCODE_POWER
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: am start -a android.intent.action.VIEW -d rtsp://login:pass@192.168.15.21:88/videoMain -t video/mp4
- delay: '00:00:30'
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: input keyevent KEYCODE_APP_SWITCH
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: input keyevent DEL
- delay: '00:00:01'
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: am start -a android.intent.action.VIEW -d http://192.168.15.10:8123/lovelace/default_view
- delay: '00:00:10'
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: input keyevent KEYCODE_APP_SWITCH
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: input keyevent DEL
- delay: '00:00:01'
- service: androidtv.adb_command
data:
entity_id: media_player.amazon_fire_7
command: HOME
Получившийся результат, пока не у двери, но на рабочем месте:
Вид сзади
Панель в действии я тоже снял, но не смог разобраться как на видео замазать все личные данные, а там их получилось достаточно много, поэтому привожу только вид сзади :)
Удалось создать физическую панель управления с заданными характеристиками. Из основных затрат — только лишь недорогой планшет. Осталось решить вопрос с качественной установкой на место использования, но это уже больше строительная тема.
Хочу поблагодарить Андрея Буртового и его сайт [15] за подсказку с микроволновыми датчиками движения.
Автор: Михаил Шардин [16],
4 января 2020 г.
Автор: Михаил
Источник [17]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/gadzhety/341999
Ссылки в тексте:
[1] Nextion: https://nextion.tech/
[2] Google Nest Hub: https://store.google.com/us/product/google_nest_hub?hl=en-US
[3] Portal from Facebook: https://www.facebook.com/PortalFromFacebook/
[4] Amazon Echo Show: https://www.amazon.com/Echo-Show-8/dp/B07PF1Y28C
[5] Amazon Fire 7 Tablet: https://www.amazon.com/gp/product/B07FKR6KXF/
[6] инструкциям: https://forum.xda-developers.com/amazon-fire/orig-development/fire-7-2019-mustang-unbrick-downgrade-t3944365
[7] Fire OS: https://ru.wikipedia.org/wiki/Fire_OS
[8] LineageOS Android Distribution: https://ru.wikipedia.org/wiki/LineageOS
[9] VLC плейер: https://yandex.ru/search/?text=vlc%20apk&lr=50
[10] Google Chrome: https://yandex.ru/search/?text=chrome%20apk&lr=50
[11] небольшой лайфхак: https://gist.github.com/mcfrojd/9e6875e1db5c089b1e3ddeb7dba0f304
[12] Ethernet-контроллеру MegaD-2561: https://www.ab-log.ru/smart-house/ethernet/megad-2561
[13] Hass.io: https://www.home-assistant.io/hassio/
[14] ADB — Android Debug Bridge: https://github.com/hassio-addons/addon-adb
[15] его сайт: https://www.ab-log.ru/
[16] Михаил Шардин: https://www.facebook.com/mikhail.shardin
[17] Источник: https://habr.com/ru/post/482800/?utm_source=habrahabr&utm_medium=rss&utm_campaign=482800
Нажмите здесь для печати.