Shubot

Shubot

Владимир Шумов
Для тех, кто читает черновой документ. Не все сервисы доступны или будут работать без обновления прошивки и модуля WiFi. Точно так же могут возникнуть проблемы из-за известных событий в результате которых мы получили осложнение в доступе к ресурсам интернет.
Данный документ является черновиком. Реальная работа описанных возможностей может незначительно отличаться.

Графомания о SHUI

Телеграмм бот, с различными полезными и бесполезными функциями, дополняющими прошивку shui и чат shui-public

/help - справочные материал

Помощь в администрировании чатов

Бот может выполнять несложные функции администрирования чатов и контроля над сообщениями. Да! С этой версии вы можете запустить механизм ачивок в своем чате.

В зависимости от настроек, бот может удалять или перемещать сообщения в другой чат согласно заданному фильтру.

Фильтр может контролировать сообщения:

  • По содержанию (настраиваемый антимат)
  • По типу - голосовое, стикер и т.д
  • По автору. Участники чата могут быть добавлены в фильтрацию, при этом писать сообщения они могут, но бот автоматически удалит или перенаправит эти сообщения в другой чат

Команды:

Для того, чтобы не пояснять каждый раз, что команда может быть использовала как ответ на другое сообщение, команды буду помечать признаком [R]. Это означает, что информацию или действие команда применяет к пользователю, или сообщению в ответ на которое команда была введена. Вводить команду надо без этого признака 👹👹👹

Информация

/chat_id - возвращает информацию о текущем чате

[R] /id - возвращает информацию о текущем чате и пользователе

/time - текущее время

/time zone <Часовой пояс> - установка часового пояса. Эти данные используются в выводе полей времени, например, в списке файлов. Задается для пользователя индивидуально. По умолчанию используется +0300(MSK)

Права

Эти команды может выполнять только пользователь с правами создателя чата или наделенный правом superuser

[R] /roles - перечень прав пользователя

[R] /grant role1 [role2 role3 ...] - добавление роли, (права пользователю) [user_id]

[R] /revoke role1 [role2 role3 ...] - удаление роли (права пользователю) [user_id]

Ограничения

Эти команды может выполнять только пользователь с правами filter

[R] /filter add [user_id] - добавление пользователя к списку фильтрации

[R] /filter remove [user_id] - исключение пользователя из списка фильтрации

[R] /filter view - отобразить список пользователей включенных в фильтр

Администрирование

[R] /del - удаление сообщения, на которое был дан ответ. Требует наличие права delete

Ачивки, награды, пометки

Добавление пометок к пользователю. Не несут никакой функциональной нагрузки. Создано ради развлечения. Тем не менее, могут быть использованы для ранжирования пользователей. Добавлять и удалять пометки могут только пользователи с правами achievement, просматривать свои и чужие - все участники группы

[R] /ach - отобразить список ачивок

[R] /ach add 🎸 [📐 🛠 👹] - добавить ачивки пользователю. Разделяются пробелом

[R] /ach del 🎸 [📐 🛠 👹] - удалить ачивки у пользователя

[R] /ach clear - удалит все ачивки у пользователя

Бот может быть настроен таким образом, что пользователи будут автоматически получать ачивки за какие-то сообщения.

Связывание с учетной записью Яндекса

Некоторые сервисы требуют доступа к Яндекс диску или устройствам умного дома, поэтому требуется предоставить ключ доступа. Получить ключ можно здесь. Если ссылка не работает, а такое может быть если приложение SHUI сменит идентификатор, бот подскажет адрес.

Команды может выполнять только владелец чата.

/yandex key view - получение информации о настройках текущей интеграции, наличии ключа

/yandex key add <ключ доступа> - предоставление ключа доступа

/yandex key remove - удаление ключа доступа

Ключ доступа прикрепляется к учетной записи владельца чата, поэтому, нет необходимости выполнять эти операцию во всех чатах.

Связывание с учетной записью GITHUB

Процедура аналогична связыванию с учетной записью Яндекс, но используется команда

/git

Информирование о состоянии печати в Телеграмм

  • Создайте канал (не группу) в телеграмм, и пригласите туда бота https://t.me/shui_wifi_bot
  • Дайте боту права администратора, бот должен иметь возможность читать сообщения
  • Введите команду /chat_id в полученном ответе найдите числовой код чата. Часто это 12-значное положительное число. Но по прошествии какого-то времени телеграмм его заменяет на отрицательное 15-значное начинающееся на -100. Имейте это ввиду.
  • Полученный числовой код укажите в настройках Телеграмм в прошивке.

После выполнения этих действий в созданный ранее телеграмм канал будут присылаться сообщения о состоянии принтера и печати. Для этой задачи требуется минимум окружающих сервисов, так как отправка сообщения в телеграмм канал осуществляется непосредственно из модуля WiFi (только ESP32)

Телеметрия

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

Любая функциональность связанная с сервисами Яндекс требуют предоставления ключа достума (см. выше)

Добавление устройств Яндекс Умный Дом

Сервис телеметрии может публиковать данные для устройства умного дома. О их настройке и как получить приглашение - отдельная статья.

Команды может выполнять только владелец чата.

/yandex device add - добавить принтер связанный с текущим каналом телеграмм

/yandex device remove - удалить принтер связанный с текущим каналом телеграмм

/yandex device list - список подключенных каналов

Подробнее о возможности и наборе устройств

Телеграмм диск, управление файлами

/file или /files
/file list - список зарегистрированных файлов

/file get <index> - Запросить файл. Бот пришлет сообщение, содержащее указанный файл

/file del <index1>[index2] [index3] - удаление файлов. Эта операция не удаляет файлы из телеграмм канала, удаление происходит только в списке файлов зарегистрированных ботом.

SHUI Диск

Эта функциональность появилась, как расширение Телеграмм диска. Каталог файлов, имеющихся в канале ведет бот на выделенном ему сервере. Этот же сервер используется для загрузки файлов и передаче их модулю WiFi. Зачем ограничиваться только Телеграмм? Теперь все источники можно объединить в одном месте, выполнив их монтирование описанными ниже командами. Примерно так все и работало раньше, но только разбросано по разным кнопкам управления.

Важно! Текущая версия не поддерживает имена файлов и точек монтирования содержащих пробелы.

Источников файлов может быть несколько: Каналы телеграмм, в которых зарегистрирован бот, Яндекс диск и его публичные папки (свои и те, которыми кто-то поделился). github, dropbox. Кстати, авторский гитхаб с опубликованными версиями доступен в автоматически смонтированном разделе firmware, так что не перекрывайте его своими ресурсами.

Команды отмеченные знаком ❗️может выполнять только владелец чата.

❗️/disk mount <telegram|yandex|git> <ресурс> <раздел>

❗️/disk umount <ресурс>

/disk mount - показать перечень подключенных ресурсов

Монтирование дополнительного канала телеграмм
/disk mount telegram -10020332231 3dp
Монтирование публичного каталога Яндекс диска
/disk mount yandex https://disk.yandex.ru/d/AXI7sKW73vzaLA tools
Монтирование публичного репозитория git
/disk mount git shum-vlad/test test

Репозитории git могут быть смонтированы только в том случае, если ранее было произведено связывание учетных записей

/disk dir <путь> - содержимое ресурса. Допустимо указывать внутренние каталоги

Пример:

/disk dir firmware/FIRMWARE/RN12

/disk get <путь> - получить файл в телеграмм канал

/disk get firmware/FIRMWARE/RN12/Robin_nano35.bin

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

❗️/disk filter GCO|gcode|BIN|PCH|tg|ya

Для тех, кто знает о регулярных выражениях, заданный фильтр в итоге будет представлен в виде ^.*\.(GCO|gcode|BIN|PCH|tg|ya)$

❗️/disk rfilter <regexp> - задать фильтр в виде регулярного выражения

Запрос прошивки

В авторском репозитории на git можно найти текущие версии прошивки, но можно обратиться за помощью к боту

/firmware - возвращает меню, которое поможет получить текущие версии прошивки.

Создание файла заставки

Если в чат прислать картинку размером 480x320 и подписать ее logo бот создаст из нее патч ресурсов.
В пожеланиях от автора прошивки: В файле заставке должна присутствовать надпись SHUI, и может (желательно) присутствовать подпись автора картинки.

Управление принтером

Панель управления принтером

2 бота могут обмениваться сообщениями. Ваш собственный бот, алгоритмы которого расположены в модуле ESP32 может получать сообщения от бота SHUBOT, расположенного на специальном сервере.

/snippets - вызов панели управления принтером

Панель управления может быть изменена по желанию пользователя. О том, как ее настроить, см. раздел Конфигурирование бота

Конфигурирование бота

Конфигурирование бота осуществляется путем загрузки фалов в канал. Имя файла определяет раздел конфигурации. Формат файла всегда json.

Для выполнения команд конфигурирования пользователь должен быть либо владельцем чата, либо иметь роль config

/config get <раздел> - запрос конфигурации. В ответ бот отправит json файл запрошенного раздела конфигурации.

Разделы конфигурации

  • snippets - настройка меню /snippets, позволяет определить набор кнопок, подписи к ним и выполняемые действия - передаваемый на принтер G код
  • auto-ach - автоматические ачивки
  • message-filter - правила фильтрации сообщений



Report Page