SLACK решение для мгновенных уведомлений

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

SLACK решение для мгновенных уведомлений

Сообщение neromih » Ср авг 22, 2018 6:57 am

Предыстория.

* * *
Умный дом уже настроен, управляет нагрузками, охраняет дом и т.д.
Для уведомлений (мгновенных) был использован Телеграм. Хорошая штука с возможностью как получать уведомления, так и отправлять на сервер ту или иную команду. Но шло время, законодательство менялось и Телеграм стал жертвой законов. И в один прекрасный момент сервер перестал отвечать на запросы и отправлять сообщения в Телеграм. И начались муки в прикручивание 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 за что ему большое спасибо!
Последний раз редактировалось neromih Пт авг 24, 2018 7:01 am, всего редактировалось 1 раз.
За это сообщение автора neromih поблагодарил:
Yashalta (Чт дек 13, 2018 10:00 pm)
Рейтинг: 1.18%
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 689 раз
Контактная информация:

Re: SLACK решение для мгновенных уведомлений

Сообщение directman66 » Ср авг 22, 2018 7:46 am

В приведенном примере Slack используется только для отправки уведомлений, поэтому не особо отличается от имеющихся notify.events (в нём есть интеграция VIBER) и PushBullet. Главное приемущество телеграмм - возможность отправки медиа-контента и получения сообщений в обратную сторону (от клиента в МД).

Так как slack - это корпоративный месенджер, вроде есть возможность интеграции и в обратном направлении.

зыж Могу оформить приведенный код в виде модуля, но помоему есть в этом смысл только если реализовать получение сообщений от своего бота.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: SLACK решение для мгновенных уведомлений

Сообщение neromih » Ср авг 22, 2018 8:13 am

directman66 писал(а):
Ср авг 22, 2018 7:46 am
В приведенном примере Slack используется только для отправки уведомлений, поэтому не особо отличается от имеющихся notify.events (в нём есть интеграция VIBER) и PushBullet. Главное приемущество телеграмм - возможность отправки медиа-контента и получения сообщений в обратную сторону (от клиента в МД).

Так как slack - это корпоративный месенджер, вроде есть возможность интеграции и в обратном направлении.

зыж Могу оформить приведенный код в виде модуля, но помоему есть в этом смысл только если реализовать получение сообщений от своего бота.
А речь и не шла об двух сторонней связи, акцент шел именно об уведомлении.

PushBullet пропускает довольно много сообщений, в одно время у меня перестал работать.

Ну и главное простота скрипта.

Модуль было бы хорошо, сам не смогу сделать в конструкторе )))
Последний раз редактировалось neromih Ср авг 22, 2018 8:16 am, всего редактировалось 1 раз.
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 689 раз
Контактная информация:

Re: SLACK решение для мгновенных уведомлений

Сообщение directman66 » Ср авг 22, 2018 8:15 am

Ребята, посмотрел API - это же находка. Столько всего можно реализовать. Пошел писать модуль )
Последний раз редактировалось directman66 Ср авг 22, 2018 8:18 am, всего редактировалось 2 раза.
За это сообщение автора directman66 поблагодарил:
Igor.P (Ср авг 22, 2018 9:54 am)
Рейтинг: 1.18%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: SLACK решение для мгновенных уведомлений

Сообщение neromih » Ср авг 22, 2018 8:17 am

directman66 писал(а):
Ср авг 22, 2018 8:15 am
Ребята, посмотрел API - это же находка. Столько всего можно реализовать.
Местами он даже лучше viber whatsupp
Неужели я открыл что то стоящие ))))
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 689 раз
Контактная информация:

Re: SLACK решение для мгновенных уведомлений

Сообщение directman66 » Ср авг 22, 2018 11:16 pm

Всем доброй ночи. Slack бета версия модуля готова, можно подписываться на события, отправлять произвольные сообщения и картинки. Инструкция в хелпе к модулю. Модуль опубликован в маркете.
За это сообщение автора directman66 поблагодарили (всего 3):
semkyskov (Чт авг 23, 2018 12:58 am) • neromih (Чт авг 23, 2018 10:03 am) • lanket (Вт авг 28, 2018 9:14 pm)
Рейтинг: 3.53%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 689 раз
Контактная информация:

Re: SLACK решение для мгновенных уведомлений

Сообщение directman66 » Чт авг 23, 2018 7:52 am

Локальные картинки пока почему-то не отправляются. Только если нужную картинку сохранить на своем серваке и отправлять общедоступной ссылкой. Слак отличное хранилище снапшотов с видеокамер )
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: SLACK решение для мгновенных уведомлений

Сообщение neromih » Чт авг 23, 2018 10:03 am

directman66 писал(а):
Ср авг 22, 2018 11:16 pm
Всем доброй ночи. Slack бета версия модуля готова, можно подписываться на события, отправлять произвольные сообщения и картинки. Инструкция в хелпе к модулю. Модуль опубликован в маркете.
Очень оперативно! Спасибо!
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: SLACK решение для мгновенных уведомлений

Сообщение neromih » Чт авг 23, 2018 10:18 am

Не совсем уверен что он нужен
https://api.slack.com/custom-integrations/legacy-tokens
В настройках.
Для сообщений достаточно webhook
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 689 раз
Контактная информация:

Re: SLACK решение для мгновенных уведомлений

Сообщение directman66 » Чт авг 23, 2018 11:11 am

token я планирую использовать для подписки на сообщения. Пока изучаю api https://api.slack.com/events-api. Собственно это и есть главное приемущество шлака над другими информерами.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить