* * *
Умный дом уже настроен, управляет нагрузками, охраняет дом и т.д.
Для уведомлений (мгновенных) был использован Телеграм. Хорошая штука с возможностью как получать уведомления, так и отправлять на сервер ту или иную команду. Но шло время, законодательство менялось и Телеграм стал жертвой законов. И в один прекрасный момент сервер перестал отвечать на запросы и отправлять сообщения в Телеграм. И начались муки в прикручивание xmpp, irc и т.д. к Мажардому. В первое время было интересно поднимать и настраивать у себя свои сервера этих по сути чатов, но дело по интеграции в систему Мажардом не продвинулось. Большим минусом было отсутствие нормальных клиентов. И пришлось все же отказаться от настройки своего сервера сообщений и использовать сторонний ресурс. К тому времени управление через мессенджер мне стало не нужно, и идея стала только в том что бы прикрутить к Мажордомо нотификацию и желательно мгновенную. Мне не нужны были сообщения о том что сейчас 10-00 или что свет включен, нужны были сообщения об критических ситуациях таких как: проникновение в помещение, возникновение протечки, отсутствие электроэнергии и т.д.
Долго шел поиск нужного мне продукта, и тут был найден SLACK!
* * *
Что это есть?
Slack - это по сути чат для командной работы с широким функционалом. Существуют интересные особенности от основных мессенджеров:
- для каждой темы можно создать отдельный чат.
- ссылки на ресурсы и картинки сами подгружаются и отображаются
- дают пять гигабайт места под файлы в общий доступ.
- интеграция с большим количеством внешних сервисов.
- есть клиенты под Android и под iOS.
- весь архив сообщений доступен всегда.
- поиск по всему архиву сообщений, плюс по тексту внутри сохранённых PDF
И многое другое.
Почему именно Slack?
Являясь самоучкой без глубоких познаний языков программирования, стремление упростить задачу становиться навязчивым...
Нужно было без лишней возни на сервере сделать оповещение на телефон.
Начало=инструкция
Регистрация. Бот
1. Регистрируемся
https://api.slack.com/
2. Переходим и создаем новое приложение
https://api.slack.com/apps/new
AppName — название приложения.
Short description — краткое описание приложения.
Describe what your app does on Slack — полное описание приложения.
Link to clear instructions on how to install your Slack app.
Link to support for your Slack app — две ссылки на страницы с описанием установки и использования данного приложения.
На вкладке Basic Information выбираем Add features and functionality, далее Incoming Webhooks, и включаем Activate Incoming Webhooks
На странице Activate Incoming Webhooks на нужно Webhook URLs for Your Workspace
Webhook имеет формат:
https://hooks.slack.com/services/T00000 ... XXXXXXXXXX
Отправка оповещения на Slack из Мажордомо
Скрипт отправки прост, и его можно прикрутить к любому событию, нагрузка при выполнении на сервер минимальна.
Собственно сам скрипт:
Код: Выделить всё
define('SLACK_WEBHOOK', 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'); // это не забудьте поменять на свое
$message = array('payload' => json_encode(array('text' => 'Проверка'))); // 'text' => 'Проверка' - текст сообщения, в данном случае нам придет - Проверка
$c = curl_init(SLACK_WEBHOOK);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $message);
curl_exec($c);
curl_close($c);
https://majordomo.smartliving.ru/forum/ ... f=5&t=5651 реализовано в модуль directman66 за что ему большое спасибо!