directman

 
<<< Назад

Реализация сценария "кто-то пришел"

Сценарий звенит звонком, показывает на планшете с majordroid фото пришедшего, 60 секунд ждет нажатия кнопки открытия двери (ворот). Отправляет в телеграмм фотографию с камеры.

Требуемое оборудование
Для реализации данного сценария нам понадобятся:
1) Кнопка zigbee WXKG11LM из комплекта mihome.
2) Родной шлюз aqara с включенным режимом разработчика.
3) Видеокамера, видеоглазок, передающий картинку в потоке rtsp. Возможна вариация домофона, умеющая вызывать url или отправлять фотографии о звонке (перехватывается через модуль smtp proxy).
3) Настенный планшет с установленным приложением majordroid.
4) Электронный замок с возможностью удаленного открытия (z5r-web, matrix II).

Настройка:
1) В родном приложении Mihome добавляем кнопку WXKG11LM, прописываем нужную мелодиию и громкость при нажатии.
2) В Простых устройствах Majordomo добавляем два устройства типа Клавиша "Звонок в домофон", и "Кнопка выхода".
3) Подключаем настенный планшет, для крепления планшета на стене можно использовать магниты https://connect.smartliving.ru/profile/1502/compon..., для питания подходят гибкие провода на магните. Устанавливаем majordroid из маркета android. Если планшет сильно китайский или морально устарел, смотрим тут, как на нем можно запустить majordroid https://connect.smartliving.ru/profile/1502/blog31....
4) В модуле Mihome в мажордомо после тестового нажатия на кнопку должны появиться метрики, например click. Метрику click привязываем к методу Button08.Pressed (Звонок).
5) В методе Pressed объекта "кнопка выхода" прописываете свой код, по которому у вас будет открываться дверь/ворота.
6) В методе Pressed объекта "звонок" прописываем следующий код:

$title=$this->object_title.'_pressedtimer';

if (timeOutExists($title)==0) {

settimeout($title,'', 120);
$address='192.168.1.136'; // ip-адрес планшета
$service_port='7999';
$in='tts:Внимание! Кто-то пришел! Дверь открыть можно будет через приложение!'; // команда для отправки

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br/>\n";
    return 0;
}
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
    return 0;
}
socket_write($socket, $in, strlen($in));
socket_close($socket);

// для начала проверьте, поддерживает ли ваш планшет отображение rtsp потока из браузера, раскомментировав эту строку вместо следующей
//$in="rtsp://192.168.1.33:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream";
///если этот вариант не работает (нет кодека вашей камеры в браузере андройд), то переходим на домашнюю страницу, указанную ниже

$in="url:http://192.168.1.39/page/45.html";  //ссылка на домашнюю страницу

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br/>\n";
    return 0;
}
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
    return 0;
}
socket_write($socket, $in, strlen($in));
socket_close($socket);
}

//отправляем фотографию с камеры в телеграмм, опционально
$image_url="http://192.168.1.33/webcapture.jpg?command=snap&channel=0";
$result=getURL($image_url,0);
$save_to="./cms/cached/cam2.jpg"; // куда сохранять
SaveFile($save_to, $result);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$text="Звонок в дверь!!!";
$telegram_module->sendImageToAll($save_to,$text);

Тут стоить отметить, что нужно правильно указать ip адрес планшета, адрес домашней страницы или rtsp потока

Если планшет сможет самостоятельно показывать rtsp поток, то создаете домашнюю страницу типа html с кодом:
<a href="rtsp://192.168.1.33:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream?|/api/method/Button09.pressed;Открыть дверь;45">cam1</a>
В которой меняем ссылку rtsp на свой, вместо Button09.pressed замените на имена своих объектов "Кнопка выхода"

В случае, если браузер вашего планшета не может сам раскодировать поток, задачу транскодирования можно возложить на сервер мажордомо. У вас будет отображаться картинка с камеры в режиме слайд-шоу (у меня обновляется примерно раз 3-5 секунд)

Создаете домашнюю страницу html с кодом:

<script type="text/javascript">
ID=window.setTimeout("Update();",60000);
function Update(){
   javascript:history.back(-2); return false;
   }
</script>

<center> 
 <h1>Дверь около лифтов
  <a href="http://192.168.1.39/api/method/Button09.pressed" class="btn btn-default"> Открыть дверь</a>
  <a href="" class="btn btn-default" onclick="history.back(-2); return false"> Закрыть</a>
  </h1>

 [#module name="thumb" url="rtsp://192.168.1.33:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp?real_stream" username="admin" password=""  width="1000" enlarge="1" live="1"#]
</center> 

1

В данной странице замените адреса rtsp потока и объекта кнопки выхода на свой. Таймер закрытия окна можете заменить на свой во второй строке. По умолчанию установлено значение одной минуты в мс.

Итого:
Теперь при нажатии кнопки звонка:
1) У вас звучит родной шлюз aqara выбранноймелодией (у меня звук звонка)
2) На планшете, если открыт majordroid будет произнесена фраза "Внимание! Кто-то пришел! Дверь открыть можно будет через приложение!"
3) В окне мажордрода будет показана картинка камеры на одну минуту.
4) Если в течении этого времени будет нажата кнопка открыть дверь, дверь должны быть разблокирована.
5) Аналогично можно визуализировать нахождение людей на камерах, особенно вещающих свои статусы через onvif
6) Повторное открытие и проговаривание фразы возможно только через 2 минуты.

Полезные ссылки

обсуждение majordroid https://mjdm.ru/forum/viewtopic.php?f=5&t=518

Обсуждение (3) (13)

Смотрите так же:
02.03.2021 Добавляем новые или недостающие метрики управления устройств в модуле zigbee2mqtt
16.02.2021 Установка Majordomo на JetHUB D1
02.02.2021 Shelly 1
30.09.2020 Команды для назначения владельцев папок
16.09.2020 Собираем список ip вызывных панелей с поддержкой SIP
03.07.2020 Получаем безопасный доступ к Web странице MajorDoMo
24.04.2020 Установка MajorDoMo на synology в 3 клика
13.02.2020 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
13.02.2020 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
25.01.2020 Команды для настройки прав пользователей на папку с majordomo
23.01.2020 Отключаем строгий режим MYSQL штатными средствами
12.10.2019 Подключаем светодиодные ленты к контроллеру MegaD
11.10.2019 Варианты интеграции электроприводов
30.09.2019 Выбор источников сигнала телевизоров LG 2013
29.09.2019 Узнаем версию дистрибутива linux
24.09.2019 Установка необходимых пакетов в xpenology через docker
16.09.2019 Примеры разметки Markdown
14.09.2019 Краткий обзор выключателей, в том числе Sonoff T4EU1C
13.09.2019 Сценарий для канала @MajorDoMo_feed
26.03.2020 Опыт установки Synology DSM
09.09.2019 Делаем majordroid лаунчером андройд по-умолчанию.
02.09.2019 Отправляем график hightcharts свойства любого объекта в телеграмм
17.09.2019 Автономная сигнализация на базе контроллера megad-2561
27.08.2019 Управление громкостью терминалов через телеграмм
26.08.2019 Полноценная консоль в браузере (wetty)
16.08.2019 Точечное регулирование радиаторов отопления
18.08.2019 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
13.08.2019 Общедоступная ссылка с закатом, рассветом и текущей погодой
24.07.2019 Самый дешевый вариант видеонаблюдения
22.07.2019 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
22.07.2019 Запуск Majordroid на старом железе
15.07.2019 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
05.07.2019 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
04.07.2019 О приборах учета и удаленном снятии показаний (вода и газ)
04.07.2019 О приборах учета и удаленном снятии показаний (электричество)
03.07.2019 Конвертируем rs-485 в TCP-IP
24.06.2019 Наблюдение за радиационной обстановкой в регионе
06.06.2019 Меню пылесоса Xiaomi в телеграмм
06.06.2019 Удобный просмотр данных сенсоров через телеграмм
06.06.2019 Просмотр камер через телеграмм
06.06.2019 Управление светом через телеграмм
06.06.2019 Колор-пикер для телеграм
06.05.2019 Список символов emoji
17.04.2019 Установка z-way на Ubuntu
16.04.2019 Решение проблемы ERROR 1040 (HY000): Too many connections
09.09.2018 Список домофонов с IP интерфейсом
29.08.2018 Список кондиционеров с wifi
29.08.2018 Список доступных к покупке IP колонок
15.07.2018 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
13.06.2018 Полезные команды для работы с git
27.05.2018 преобразование html страниц в картинку и отправка в телеграмм
24.05.2018 Полезные sql запросы
23.05.2018 Создание образа nand памяти orange pi plus2
16.05.2018 Команды для работы с базой данных напрямую
13.04.2018 Индикаторы о заряде батареек без использования картинок
06.04.2018 Установка и настройка python на windows для работы систем распознавания
05.04.2018 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
04.04.2018 Управление таймерами выключения света
04.04.2018 Управление RGB контроллером на базе ESP8266
03.04.2018 Увеличение разрешения китайских камер на чипе hi3516c H264
13.03.2018 Использование колонки google home в качестве терминала Majordomo
13.03.2018 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
13.03.2018 Настройка брокера MQTT
17.02.2018 Проект "умная входная дверь"
11.02.2018 Отправка всех значений свойства объекта в телеграм
21.12.2017 получение адреса по GPS координатам
21.12.2017 получение / передача GPS координат сервису livegps.com
21.12.2017 чтение мгновенных данных U,P, I электросчетчика милур 104
21.12.2017 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66