-
Posts
4 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by exared
-
-
В 27.06.2016 в 08:30, emlen сказал:
Доброго дня! А в этом боте можно свои кнопки сделать? Если да, то как?
Добавьте в скрипт приведенную ниже функцию, предварительно задав новую переменную KMSG_URL:
KMSG_URL=$URL'/sendMessage'
function send_keyboard { local text="$1"; shift 1; local keyboard=init OLDIFS=$IFS; IFS=$(echo -en "\"") for f in $*;do [ "$f" != " " ] && local keyboard="$keyboard, [\"$f\"]";done IFS=$OLDIFS; local keyboard=${keyboard/init, /} res=$(curl -s "$KMSG_URL" --header "content-type: multipart/form-data" -F "chat_id=$TARGET" -F "text=$text" -F "reply_markup={\"keyboard\": [$keyboard],\"one_time_keyboard\": false}") }
Скрытый текст
Аргументы функции: первый - сообщение в чате, последующие - надписи на кнопках. При нажатии на кнопку соответствующая надпись может быть использована как команда. Поэтому кириллица в аргументах функции (кроме первого) нежелательна.
Поле one_time_keyboard указывает клиенту скрыть или нет клавиатуру после использования (после нажатия на кнопку). Её по-прежнему можно будет открыть через иконку в поле ввода сообщения. По умолчаниюFalse
Пример использования:send_keyboard "I can help you find and share classical music" "Get random music" "Send music to friends"
- 3
-
Подскажите, как реализовать перенос строки в сообщениях от бота Telegram? Ни один из способов не работает: /n \n %0A /r/n
-
Цитата
Подскажите как правильно прикрутить - чтоб бот общалься с одни юзером, а остольным, кто пишет ему, отправлял определенное сообщение
Поздно заметил Ваш вопрос. Все-таки поделюсь.
В своем проекте использовал следующую простую конструкцию, помещенную в самом конце скрипта:[ $USER = $NAMEA ] || send_message "$TARGET" "Sorry. Private bot" [ $USER = $NAMEA ] && send_message "$TARGET" "$msg"
Заменив строку
send_message "$TARGET" "$msg"
Переменная NAMEA задается в начале скрипта и хранит значение Вашего username, взятого из Telegram - 1
Управление роутером по Telegram
in Каталог готовых решений Opkg
Posted · Edited by exared
Возможно, одной из интересных возможностей, которую можно добавить в функционал такого помощника, будет система домашней охранной сигнализации.
Реализация данной функции предполагает подключение (пайку) трех контактов простейшего датчика движения к монтажной плате роутера.
Соответственно, два контакта датчика должны быть подключены к питающему напряжению роутера, сигнальный контакт - к распаянной на плате функциональной кнопке.
Внимание! При осуществлении указанных здесь действий по аппаратной модернизации роутера вы лишаетесь гарантии на ваше устройство и рискуете вывести его из строя.
Если у вас нет необходимого навыка, паяльной станции и тестера, то лучше не рисковать работоспособностью устройства.
При грамотной доработке вашего роутера вы получаете вполне рабочую систему домашней охранной сигнализации, функционал которой включает в себя:
1. Отправку сообщения о наличии движения в ваше отсутствие в чат/чаты Telegram
2. Отправку в чат/чаты фотоснимка/серии снимков/видеозаписи интересующего вас участка квартиры после срабатывания датчика (требуется IP камера)
3. Автоматическое отключение/включение рассылки тревожных сообщений во время присутствия/отсутствия дома вас и ваших близких
4. Простейший лог тревожных событий
Установите недостающий пакет:
opkg install curl
Обеспечьте жизнеспособность вашего бота в изменчивом мире, следуя рекомендациям из этой темы:
Создайте на роутере файл /opt/etc/ndm/button.d/buttons.sh
со следующим содержимым:
Здесь CHAT_ID_1, CHAT_ID_2 - ID чатов, в которые отправляется тревожное сообщение
MACA, MACB - MAC адреса телефонов, при регистрации которых в домашней беспроводной сети, тревожные сообщения о движении не отправляются.
Сделайте скрипт исполняемым:
chmod +x /opt/etc/ndm/button.d/buttons.sh
Измените в интерфейсе роутера назначение задействованной в проекте кнопки на "OPKG - Запуск скриптов button.d"
Теперь при нажатии на клавишу роутера или при срабатывании датчика вам и вашим близким придет сообщение в чат Telegram.
При наличии свободной IP камеры, поддерживающей отправку фотоснимка через SFTP по команде, вы можете реализовать отправку в чат/чаты
фотоснимка/серии снимков/видеозаписи интересующего вас участка квартиры после срабатывания датчика. Я, например, реализовал эту функцию с помощью программы IP Webcam,
установленной на старый смартфон с Android на борту. Телефон, расположенный рядом с датчиком, в данном случае играет роль указанной выше IP камеры.
Конечно, большинство IP камер имеют собственный датчик движения, но приведенное здесь решение все же имеет ряд преимуществ.
В этом случае в скрипт могут быть добавлены несколько строк. В моем случае, к примеру:
Здесь MACD - MAC адрес телефона с установленной IP Webcam.
COM_URL - отправляемый для создания снимка HTTP запрос, в котором присутствуют данные для авторизации и IP адрес устройства.
Отправлять в чат различные графические файлы, полученные по SFTP, можно, к примеру, используя следующую конструкцию в основном скрипте bashbot.sh:
Здесь SDIR - папка, в которую складываются полученные по SFTP графические файлы.
Еще немного дополнив скрипт, можно добавить более точные и сложные условия отключения/включения рассылки тревожных сообщений или управлять этими условиями из чата,
включать бытовую технику с поддержкой WoL в момент вашего прихода домой, реализовать возможность использования нормально закрытых датчиков на герконах (электропитание им не требуется)
в дополнение к датчику движения (соответственно, может быть организовано до трех раздельных независимых зон охраны), и многое другое.
Удачи в ваших проектах!