Довольно давно у меня появилась мысль установить управляющую панель, расположенную рядом с входной дверью внутри квартиры/дома.
Существует несколько вариантов реализации этой задумки:
- сенсорная панель оператора ПЛК;
- планшет;
- сенсорный дисплей, подключенный к микрокомпьютеру.
Дополнительное требование, которое сразу ограничило выбор устройства: на панель управления автоматически должно выводиться изображение с наружной камеры при срабатывания датчика движения (и только в случае присутствия людей дома).
1.Выбор девайса
После того как требования четко сформировались, сразу отпали айпады, которыми я не знал как управлять извне (жаль, потому что для них есть большой выбор настенного крепежа) и устройства HMI вроде Nextion, поскольку на них изображение с камеры не вывести.
Один из вариантов iPad Wallmount от Loxone
И хотя на рынке сейчас появились и специализированные устройства, такие как:
Однако проблема с внешним управлением этими устройствами, насколько я понимаю, тоже остается и решена не полностью.
Помимо программной части панели, другая важная для меня часть — отсутствие “колхоза” при физическом закреплении этой панели на стене, что подразумевает подвод как минимум одного кабеля для питания устройства и монтажная распаячная коробка в стене достаточного размера, на месте установки этой панели, для скрытого размещения блока питания панели.
Монтажная распаячная коробка
2. Влияние “чёрной пятницы” на выбор
Когда я снова вспомнил о своей идее в канун черной пятницы 2019 года, то решил купить что-нибудь недорогое для тестов. С пайкой и подключением сенсорной панели к Raspberry Pi мне заморачиваться не хотелось и выбор пал на планшет Amazon Fire 7 Tablet за $29.99 (около 1 700 ?). Я рассудил, что в багетной мастерской потом можно будет сделать соответствующее обрамление нужного размера для размещения планшета на стене.
Team Win Recovery Project (TWRP) на Amazon Fire 7 Tablet
Дальше следуя инструкциям, найденным на популярном ресурсе xda-developers.com мне удалось программным методом без физической разборки разблокировать загрузчик планшета Fire 7 и установить TWRP.
В процессе разблокировки Fire 7 (2019, mustang)
Хочу заметить, что инструкция изначально выглядела пугающе, но по итогу — там все описано довольно прозрачно. Поскольку изначально планов пользоваться Fire OS у меня не было, то установил чистую LineageOS Android Distribution без дополнительных приложений и без сервисов гугла, то есть без установки GApps.
LineageOS на Amazon Fire 7 Tablet (2019, mustang)
Я хотел получить именно чистое устройство с минимумом программ, которое не привязано к какому-либо аккаунту.
3. Удаленное управление через ADB
Поскольку у меня на руках оказался рутованный (с полным доступом) планшет на Android, то проблем с выбором программ быть не должно.
Однако мне хотелось воспользоваться какими-нибудь стандартными средствами и поэтому остановился на ADB. Это работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем — достаточно нажимать несколько раз на пункт меню “Номер сборки” и откроется новый пункт меню “Для разработчиков”, где и производятся все настройки.
Поскольку мне надо было воспроизводить видео поток с IP-камеры (в моем случае RTSP, то для этого мне понадобился VLC плейер, а еще Google Chrome для полноэкранного отображения панели умного дома. Для того, чтобы произвести необходимые манипуляции с планшетом из терминала на компьютере надо выполнить нижеследующие команды.
Через командную строку установить приложение на планшете:
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
Вот небольшой лайфхак как можно узнать список всех установленных приложений и команды для их запуска. Для начала войдите в консоль:
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
4. Home Assistant
Всё вышеперечисленное было только подготовкой для автоматизации отображения камеры и программной панели управления на экране планшета. У меня есть два варианта камер над входной дверью в разных местах:
- Камера Hikvision DS-2CD2463G0-IW вместе со встроенным датчиком движения.
- Купольная камера в паре с микроволновым датчиком движения, скрытым над подвесным потолком подъездного коридора и подключенным к многофункциональному Ethernet-контроллеру MegaD-2561. Датчик движения не видим глазом, но работает. Камера обычной, не скрытой, установки.
Для начала необходимо разрешить ADB по сети:
Настройка LineageOS
После этого планшет готов к удаленному управлению.
Поскольку я использую Hass.io, то воспользовался специальным дополнением ADB — Android Debug Bridge, которое позволяет управлять любым устройством, которое поддерживает управление по 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
Получившийся результат, пока не у двери, но на рабочем месте:
Вид сзади
Панель в действии я тоже снял, но не смог разобраться как на видео замазать все личные данные, а там их получилось достаточно много, поэтому привожу только вид сзади :)
Итог
Удалось создать физическую панель управления с заданными характеристиками. Из основных затрат — только лишь недорогой планшет. Осталось решить вопрос с качественной установкой на место использования, но это уже больше строительная тема.
Автор: Михаил Шардин,
4 января 2020 г.
Комментарии (56)
extempl
04.01.2020 07:55+1Панель в действии я тоже снял, но не смог разобраться как на видео замазать все личные данные, а там их получилось достаточно много, поэтому привожу только вид сзади :)
А вот лучше бы разобрались и таки выложили результат описанной работы, а не прикрепления планшета к рабочему месту :)
HellKaim
04.01.2020 08:43А мне вот интересно как к такому подключить выключатели на рэлекьро-адиаторы. Ок, можно даже через контакторы.
empenoso Автор
04.01.2020 14:07Ну через sonoff например наверное. Это же просто панель управления — не исполнительное устройство.
soir
04.01.2020 16:35Электрорадиаторами можно управлять из Hassio при помощи Sonoff S26 розеток, они более менее симпатичные, нежели остальные Sonoff реле.
slimper
04.01.2020 11:10+1Забавно, недавно переехал, и начал собирать свой умный дом. У меня выбор тоже пал на чернопятничный Fire, но HD10 2019 =)
Камеру вырубил для фото, там парадная.
Сборка бэкенда на OpenHab + Raspberry.
Этой ночью переводил все на ssl + пароли на все камеры, после скандала с xiaomi камерами озаботился.
Reshat
04.01.2020 16:28А можете ткнуть, о каком скандале речь?
slimper
04.01.2020 19:36Например, тут можно прочитать — www.androidpolice.com/2020/01/03/uh-oh-xiaomi-camera-feed-showing-random-homes-on-a-google-nest-hub-including-still-images-of-sleeping-people
А вообще писали на всех гиковских зарубежных сайтах.
AURodionov
04.01.2020 12:06Молодец, у самого панелька на выходе и не только, правда все крутится на iobroker
empenoso Автор
04.01.2020 14:08а что за панель?
AURodionov
05.01.2020 11:56Планшеты 10 и 7 дюймов, пока в «автокрепежах» но не нравится. Есть идея как сделать удобно
borisxm
04.01.2020 14:02Наверное традиционный вопрос — а что с питанием? Все время на зарядке?
empenoso Автор
04.01.2020 14:12Мне кажется вариантов не так много или надо ставить https://play.google.com/store/apps/details?id=com.thanksmister.iot.wallpanel&hl=en плюс https://github.com/resoai/TileBoard — из этой связки по MQTT можно заряд получать мне подсказывали, а по мере уменьшения заряда — надо физическое реле включать для зарядки и сответственно потом выключать.
Надо это надо заморочиться :)
vintage89
04.01.2020 14:12А я рассматриваю монитор с сенсорной панелью (те, что используются в терминалах типа киви и пр.). На Авито можно купить панель+монитор за 1к
Экран 15". Можно выводить графики и пр. Единственное и самое главное, что я до сих пор не определился нужен ли мне умный дом и если нужен, то зачемempenoso Автор
04.01.2020 14:13Если монитор с сенсорной панелью, то это ведь еще что-то типа Raspberry Pi надо ставить
ogolslava
04.01.2020 14:13Подскажите, чем обусловлен выбор VLC плеера вместо панели HA с видео потоком?
На первый взгляд это удобнее, потому так можно выводить элементы управления и видео с камер на одном экране.empenoso Автор
04.01.2020 14:15Мне надо было, чтобы HA запустил видео с камеры на весь экран планшета, а потом закрыл все приложения. Но Ваш вариант я не пробовал.
lingvo
04.01.2020 21:40У меня уже года четыре трудятся на стенках обыкновенные 7-дюймовые планшеты на Андроиде за 50 баксов. Питание — USB зарядка Apple за ними в подрозетнике + микроUSB плоский кабель
.
Не понимаю в чем проблема управления планшетами извне. Любой GUI софт (например я использую Commandfusion) помимо кнопочек и циферек, может выводить картинку RSTP с камер. Делаете эту картинку видимой в зависимости от какой-то переменной, которую вам меняет ваш ioBroker, OpenHAB или Home Assistant по MQTT или через Rest API и вуаля — можете показывать ее на планшете и скрывать в любой момент, хоть по датчику, хоть по автоматизации. И все это без хакинга или каких либо манипуляций на любом планшете — что Ipad, что Андроид.
У меня камер нет, но я таким образом внешне меняю яркость экранов на планшетах, переводя их в ночной/дневной режим в зависимости от показаний датчика освещенности. В итоге по ночам они не слепят.
Я тоже подумывал взять Fire себе для таких целей, но мне нужен был стандартный Андроид, и перепрошивкой я заморачиваться не хотел, поэтому отказался.
slimper
04.01.2020 22:07А я вот свой даже не прошивал, просто выключил все приблуды амазона и поставил гугл сервисы (ютубчик с рецептами на кухне). Все проги какие недоступны в обычном гугл плее — закинул по адб сайдлоад, все заняло минут 20-30. Не знаю, что все так не любят Fire OS, это тот же андроид.
fougasse
04.01.2020 23:02Страшновато в стену зарядные устройства монтировать.
Пока у самого дым не пошел из оригинального One Plus устройства при зарядке iPhone — тоже не заморачивался, что удивительно, задымило через час-полтора после подключения, успело оплавить провод usb.lingvo
05.01.2020 00:25Поэтому я и сую iPhoneовские зарядки. Там схемотехника хорошая.
fougasse
05.01.2020 20:05Есть основания утверждать, что у быстрых зарядок oneplus плохая схемотехника?
lingvo
05.01.2020 23:32Я не знаю, какая у Oneplus схемотехника. А у iPhone она известная:
http://www.righto.com/2012/05/apple-iphone-charger-teardown-quality.html
Плюс, не у всех зарядок она одинаковая:
http://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-is.html
aivs
05.01.2020 00:07После установки умного дома сразу понял, что нужна панель управления у входной двери.
Выбором девайса не заморачивался, абсолютно без разницы iOS или Android, главное внешний вид приложения. В итоге после покупки нового телефона остался без дела iphone 4. Уже 6 лет используется.
habr.com/ru/post/217765
juDge
05.01.2020 00:13В неспешной доработке самодельная панель на Raspberry Pi и тачь скрине. Все потраха уходят в стену. Интерфейс под нее самописный. Отчасти работает поверх Home Assistant и отчасти свой. Например Видео с домофона идет минуя HA. Опять же всплывают окна уведомления и предпросмотра, если домофон замечает движения перед дверью. Был вариант написать свой лаунчер под андроид чтобы запускало веб интерфейс вместо обоев… но пока остановился на таком варианте. Показан не весь функционал но суть понятна www.youtube.com/watch?v=92cfxMapaZY… пока больше еще пытаюсь сформировать саму автоматизацию на HA… а на экран выведу уже конкретные задачи… остальная часть будет просто работать в авто режиме.
empenoso Автор
05.01.2020 08:49Спасибо, но не понял — извне можно управлять или нет?
juDge
07.01.2020 02:30Почему нет. Автоматизация идет через HA… через стандартное их приложение если есть доступ до самого HA. А панель это удобоваримая комбинация разрозненных да и просто функционала с HA. Но при желании интерфейс можно открыть обычном браузере. Но особого смысла в этом нет. Тот же домофон через Астериск принимает вызовы с домофона напрямую в смарт.
Но не совсем понятно что там управлять… на то оно и умный дом, чтобы само решало что ему делать. HA Получает координаты от гугла и решает что надо все отключить… и свет и отопление. Либо по приходу хозяев до дома, запустить отопление в рабочий режим. Все остальное просто работает в авторежиме. Единственные выключатели которые по сути могут понадобиться это «Гостевой режим» (включение виртуального хозяина, оживляет дом как будто хозяева дома) и включение выключение автоматизации по датчикам движения (не всегда нужен)
sisaenkov
05.01.2020 04:11Тоже использовал несколько лет вяло планшет в прихожей, а сейчас отказался от этой идеи, ибо телефон всегда под рукой. При этом, у двух планшетов от такого режима сдохли батареи, пока не добавил отключение зарядки по расписанию.
empenoso Автор
05.01.2020 08:52А я по моему ваши статью про z-wave и кошачий туалет читал лет пять назад, когда только начинал увлекаться умными домами :)
sisaenkov
05.01.2020 08:56+1Было дело :)
Сейчас иногда в вялотекущем режиме что-то такое делаю:
www.youtube.com/watch?v=voNgwWWmwW8
buttons
05.01.2020 15:37Когда организовал у себя панель понял, что фиксированное управление ненужно из-за непрактичности. Когда в доме до*** и больше устройств (больше 100), то управление через экран парит. В большинстве ситуации всё равно управляешь голосом или автоматика работает. Поэтому это панели отказался и тупо вывел на неё камеру над входной дверью. Раз уж повесил. Сейчас бы я этого не делал
beho1der
А что за крепление для планшета к монитору?
empenoso Автор
тоже с черной пятницы: https://www.amazon.com/gp/product/B07Q6JY5FX/