Инструкция: дверной звонок с уведомлениями в Slack Статьи редакции

Коллеги в офисе попросили что-нибудь придумать с дверным звонком — чтобы он не шумел на весь офис, но при этом можно было легко узнать о том, что кто-то пришел. Были и другие ограничения: две входных двери, нет возможности провести какие-либо провода к звонку.

Лучше всего под такие ограничения подошла кнопка Amazon Dash для мгновенного заказа товаров в интернет-магазине. Она работает на батарейках и подключается к Wi-Fi. Плюс в интернете есть много инструкций по её непрямому использованию 😄.

Итак, что нужно:

  • Кнопка Amazon Dash, которая будет выполнять функции дверного звонка.
  • Компьютер Raspberry Pi, который будет отправлять сообщение в Slack.

Сценарий такой: Raspberry видит сигнал, который отправляет Amazon Dash при нажатии на кнопку, и запускает скрипт, который отправляет сообщение в Slack.

1. Готовим Raspberry

Сначала на компьютере записываем образ с операционной системой на SD-карту. Для этого в Terminal на macOS нужно ввести последовательно команды:

df -h

Смотрим номер, который соответствует SD-карте. В моём случае это disk2s1, поэтому вместо N в коде ниже подставляю 2.

sudo diskutil unmount /dev/diskNs1 sudo dd bs=1m if=./name.img of=/dev/rdiskN sudo diskutil eject /dev/rdiskN

Вставляем SD-карту в Raspberry и ждем установки.

2. Устанавливаем Node.js

Наш скрипт, который будет отслеживать сигнал и отправлять сообщение в Slack, работает на Node.js. Поэтому первым делом ставим его.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install nodejs

3. Устанавливаем библиотеку для мониторинга сети

Библиотека libpcap нужна для того, чтобы отслеживать в локальной сети пакеты данных, которые отправляет Amazon Dash.

sudo apt-get install libpcap-dev -y

4. Устанавливаем скрипт для работы звонка

На GitHub можно найти много готовых скриптов для работы с Amazon Dash и Slack. Я взял dashdong за основу, адаптировав несколько параметров для нашего офиса.

Копируем любой из этих скриптов на Raspberry и устанавливаем.

git clone https://github.com/kontsarenko/amazon-dash-doorbell/ cd amazon-dash-doorbell sudo npm install

5. Подключаем кнопку через приложение Amazon

Теперь нужно подключить Amazon Dash к Wi-Fi. В приложении Amazon заходим в настройки профиля и добавляем новое устройство.

Следуя инструкции вводим пароль от Wi-Fi, подключаем кнопку к сети и доходим до вот этого экрана с выбором продукта:

Здесь ничего не нажимаем и принудительно закрываем приложение.

6. Ищем MAC-адрес кнопки

Amazon Dash подключена к сети. Теперь нужно узнать её Mac-адрес. Вводим на Raspberry команду:

sudo node node_modules/node-dash-button/bin/findbutton

Скрипт начнет сканирование и выведет список всех устройств, обнаруженных в сети. Нажимаем на кнопку, чтобы она отправила запрос и ищем вот такую строчку:

Possible dash hardware address detected: MM:MM:MA:AA:AC:CC Manufacturer: Amazon Technologies Inc. Protocol: udp

Сохраняем MAC-адрес.

7. Подключаем Slack

Заходим в настройки Slack и создаём новую интеграцию: выбираем канал, в который нужно отправлять сообщения, и копируем Webhook URL.

8. Создаём файл с настройками

Возвращаемся к Raspberry, создаем файл с настройками config.json, вставляем в него следующее:

{ "settings": { "logging": { "url": "http://dot.com", "token": "look-a-me-im-a-token", "client-id": "CLIENTID", "client-secret": "CLIENTSECRET", "enabled": true } }, "buttons": [{ "name": "Doorbell", "id": "MAC-АДРЕС", "action": "post", "post": { "url": "WEBHOOK-ИЗ-SLACK", "headers": {"Content-type": "application/json"}, "json": {"text": ":fist: Кто-то стучится в дверь"} } }] }

Вместо MAC-АДРЕС — то, что получили на 4-м шаге. Вместо WEBHOOK-ИЗ-SLACK — то, что скопировали на 6-м шаге.

Если нужно установить кнопки на несколько дверей, то добавляем в config.json сразу несколько конфигураций:

{ "settings": { "logging": { "url": "http://dot.com", "token": "look-a-me-im-a-token", "client-id": "CLIENTID", "client-secret": "CLIENTSECRET", "enabled": true } }, "buttons": [{ "name": "Doorbell 1", "id": "MAC-АДРЕС-1", "action": "post", "post": { "url": "WEBHOOK-ИЗ-SLACK-1", "headers": {"Content-type": "application/json"}, "json": {"text": ":fist: Кто-то стучится во входную дверь"} } },{ "name": "Doorbell 2", "id": "MAC-АДРЕС-2", "action": "post", "post": { "url": "WEBHOOK-ИЗ-SLACK-2", "headers": {"Content-type": "application/json"}, "json": {"text": ":fist: Кто-то стучится в дверь на крыше"} } }] }

9. Запускаем

Всё готово. Но нужно ещё сделать так, чтобы скрипт работал постоянно — даже после перезагрузки Raspberry. Для этого устанавливаем supervisor и открываем файл с настройками.

pip install supervisor sudo nano /etc/supervisor/supervisord.conf

В настройках указываем путь к скрипту.

[program:doorbell] command=/usr/bin/node /home/pi/amazon-dash-button/index.js directory=/home/amazon-dash-button/ autostart=true autorestart=true startretries=3 stderr_logfile=/var/log/supervisor/amazon-dash-button.err.log stdout_logfile=/var/log/supervisor/amazon-dash-button.out.log user=root

Сохраняемся. Запускаемся.

supervisorctl start

10. Проверяем

Жмём.

Смотрим:

0
16 комментариев
Популярные
По порядку
Написать комментарий...
Андрей Чуль

Хабрахабр переехал на vc?)

Ответить
8
Развернуть ветку
Denis Shiryaev

Добро пожаловать на https://vc.ru/dev :)

Ответить
6
Развернуть ветку
Sergionn Rad

Как-то все просто, надо было через IBM Watson попробовать

Ответить
4
Развернуть ветку
Дмитрий Гладышев

Берём ESP8266 (150 руб на али), берём ОБЫЧНУЮ кнопку за 20 руб. И отправляем сообщения куда угодно: VK, Телеграм, Push-сервисы, СМС и т.д.

Ответить
0
Развернуть ветку
Кирилл Уксусов

Делал такое у себя на Wemos (китайский ардуино за 150 руб) + обычная кнопка: https://github.com/UksusoFF/wemos-doorbell Сейчас все равно пришлось прикрутить RPI чтобы еще и картинку с камеры приклеивала.

Ответить
2
Развернуть ветку
Temporello

А сколько месяцев от батареи у вас этот звонок проживет?

Ответить
0
Развернуть ветку
Anthony Marchenko

VC спасибо, это крутая рубрика :)

Ответить
2
Развернуть ветку
passer2003

Вообще непонятно, зачем тут Raspberry?
Это кнопка из коробки работает с AWS, а оттуда можно слать пуши, смскиа на телефон, в Saleforce сообщения и еще много чего.

Ответить
1
Развернуть ветку
Филипп Концаренко

AWS уже три месяца как нельзя купить: https://www.amazon.com/dp/B01KW6YCIM.

Вероятно, они свернули производство — на письма о кнопке как минимум не отвечают.

Ответить
0
Развернуть ветку
passer2003

странно

Ответить
0
Развернуть ветку
Филипп Концаренко

Нажмите «Купить» — так уже где-то с октября-ноября.

Ответить
0
Развернуть ветку
passer2003

Я читал что они начали кнопки на 4Г делать вместо вайфая и этот 4Г подвязан на мобильного оператора AT&T.
Может они хотят все так перевести?

Ответить
1
Развернуть ветку
Филипп Концаренко

Воу. Надеюсь, что выпустят!

Ответить
0
Развернуть ветку
Viacheslav B

Не будет эта связка работать!
Просто потому что кнопку спи....унесут.

Ответить
1
Развернуть ветку
Матвей Кондаков

хаха))

Ответить
0
Развернуть ветку

Комментарий удален

Развернуть ветку
Илья Фадеев

блин, реально интересная тема! главное, без особой зауми!

Ответить
0
Развернуть ветку
Читать все 16 комментариев
Винни-Пух и всё: герой детских рассказов больше не принадлежит Disney

Объясняем на динозаврах, стоит ли переживать за известную анимационную студию.

Иллюстрация к первому изданию книги Алана Милна. Автор: Эрнест Хауэрд Шепард
Я запущу 12 стартапов за 12 месяцев

Привет! Меня зовут Коля и в этом году я решил принять участие в популярном челлендже: запустить 12 проектов за 12 месяцев.

Доходы Yota от роуминга выросли в 1,6 раз

Ковидные ограничения стали испытанием для мобильных операторов, которые недополучили доход от роуминга в 2020 году. В Yota в 2020 году выручка от роуминга сократилась в два раза по сравнению с 2019 годом.

Три простых правила для закрепления привычек

Чуть больше года назад я решил первый раз в своей жизни закрепить полезные привычки. Полный мотивации и намерений изменить свою жизнь, каждый день я вставал в 6 утра, занимался спортом, читал книги по 30 минут и даже начал медитировать.

От техподдержки через переводчик до главного канала продаж

Как изменился «AliExpress Россия»: рассказывают «старички» маркетплейса.

На Wildberries стало невыгодно работать: 2500 селлеров, сотни ПВЗ и даже курьеры готовят бунт на корабле WB

Самое время Еноту сказать «А я говорил».

Субботний самопиар на vc.ru

Делимся в комментах ссылками на свои проекты и скидками для читателей vc.ru!

Просмотр сетки ордеров
С днём рождения, NTA!
Биржевой стакан в мобильном приложении БКС Мир инвестиций
Успешные стартапы — 4 признака, глазами разработчика

Моя команда занимается разработкой мобильных приложений и сложных веб-сервисов. За разработкой к нам обращается довольно много основателей стартапов, я всегда стараюсь отслеживать судьбу каждого проекта. Делал для себя сводку по ним и решил поделиться ключевыми признаками, которые влияют на то будет жить проект или нет.

null