Telegram_ru - ghzserg/zmod GitHub Wiki

Telegram Bot

Read in English

Макрос - это небольшая программа на языке Klipper/Gcode.

Он может вызываться:

  • Из файла GCODE
  • Из консоли Fluidd/Mainsaill (нажать английскую букву C в fluidd)

Note

Значение указанное в скобках - это значение по умолчанию


🔷 Telegram Bot 🔷

Описание Регистрация бота
Установка бота телеграмм одной командой на Debian Установка бота телеграмм пошагово
Добавление ключей ssh Запуск ZSSH на принтере
Установка Time Zone Для Armbian
Spoolman Web Timelaps

Telegram Bot

Описание

Суть: У нас очень медленное железо и очень мало памяти. Поэтому на железе запускать moonraker-telegram-bot нет смысла. Но мы его можем запустить на внешнем сервере. Для этого нужен любой сервер (реальный/виртуальный), до которого сможет достучаться принтер по SSH.

Новая версия автоматом создает SSH ключи (они используются для авторизации без паролей).

Ключи лежат тут:

  • ‎/mod_data/ssh.pub.txt - это открытый ключ. Текст из него необходимо поместить на сервере в файл ~/.ssh/authorized_keys
  • ‎/mod_data/ssh.key - закрытый ключ. Используется принтером для подключения к серверу.

Сами ключи вам по сути не нужны. Вам достаточно вызвать макрос ZSSH_ON передав следующие параметры:

  • SSH_SERVER - ip или имя вашего сервера
  • SSH_PORT - порт ssh на сервере - обычно 22
  • SSH_USER - имя пользователя на ssh сервере
  • VIDEO_PORT - порт который будет использоваться на сервере для приема видеоданных с камеры (8080)
  • MOON_PORT - порт который будет использоваться на сервере для приема данных от moonraker (7125).
  • REMOTE_RUN - команда, которую нужно вызывать на удаленном сервере

Запуск ssh съедает около 300 килобайт памяти.

Если принтер и сервер находятся в одной сети, то использовать SSH не обязательно. Читайте файл конфигурации telegram.conf Sample-config Файл конфигурации можно скачать с принтера mod/telegram/.

Top


Регистрация бота

Как зарегистрировать свой бот

  1. Идете к @BotFather
  2. /newbot
  3. Вводите любое имя, которое вам нравится
  4. Вводите имя бота ff5msuper_bot - обязательно _bot в конце.
  5. Получаете длинный ID - его нужно будет прописать в настройках бота в параметр bot_token

Top


Развертывание сервера

Установка телеграмм бота одной командой на Debian

Установка телеграмм бота одной командой на Debian:

Выполнять под пользователем root

bash <(wget --cache=off -q -O - https://github.com/ghzserg/zmod_ff5m/raw/refs/heads/1.5/telegram/telegram.sh)

Если у вас нет wget

apt update && apt install wget -y

Этот скрипт:

  1. Установит docker
  2. Скачает docker-compose.yml и telegram.conf. Sample-config
  3. Создаст пользователя tbot
  4. Напишет инструкцию по регистрации телеграмм бота и запросит bot_token
  5. Напишет инструкцию по получению chat_id и запросит chat_id
  6. Установит ff5m.sh

Добавить ssh ключ нужно будет самостоятельно

Top


Установка телеграмм бота по шагам

Берете файл docker-compose.yml из mod/telegram/ c принтера.

Устанавливаете docker, далее инструкция для Debian

apt update 
apt upgrade -y
apt install docker.io docker-compose docker apparmor -y

Создаете каталог для бота.

mkdir bot1
cd bot1

Помещаете туда docker-compose.yml

Создаете подкаталоги

mkdir config log timelapse_finished timelapse
chmod 777 config log timelapse_finished timelapse

В каталог config помещаете telegram.conf из mod/telegram/ и правите его под себя.

Sample-config

Больше информации о настройке бота можно почитать тут

Из каталога bot1 запускаете

docker-compose up -d

Добавляете пользователя и даем ему право самому запускать docker-compose

useradd tbot
usermod -a -G docker tbot

Top


Добавление ssh ключей

  1. Заходим под пользователем tbot

    su - tbot
  2. Прописываем ssh ключи:

    mkdir  .ssh
    cat >.ssh/authorized_keys

    Вводите открытый ключ из файла mod_data/ssh.pub.txt. Потом Ctrl + d

Top


Запуск ZSSH на принтере

После этого запускаете на принтере ZSSH_ON c необходимыми параметрами.

После каждой перезагрузки ssh, будет запускаться автоматически через 3 минуты.

Top

TimeZone

Отредактируйте файл docker-compose.yml

Укажите вашу временную зону. В примере файла указана TZ=Asia/Yekaterinburg

docker-compose down && docker-compose up -d или docker compose down && docker compose up -d

Top

Spoolman

Отредактируйте файл docker-compose.yml

Добавьте:

  spoolman:
    image: ghcr.io/donkie/spoolman:latest
    restart: unless-stopped
    volumes:
      - ./spoolman:/home/app/.local/share/spoolman
    ports:
      - "7912:8000"
    environment:
      - TZ=Asia/Yekaterinburg

Откройте порт в фаерволе если он у вас используется iptables -I INPUT -p tcp --dport 7912 -j ACCEPT

Создайте папку spoolman

mkdir spoolman
chmod 777 spoolman

Перезапустите docker: docker-compose down && docker-compose up -d или docker compose down && docker compose up -d

На принтере пропишите в mod_data/user.moonraker.conf

external_IP - внешний ИП сервера на котором стоит docker

У принтера ДОЛЖЕН быть доступ к этому IP

[spoolman]
server: http://external_IP:7912
sync_rate: 5

Top

Установка и настройка для armbian (от noyhay)

Скачиваем Debian Minimal/IOT images with Armbian с сайта https://www.armbian.com/download/

Устанавливаем Armbian на sdcard с помощью balenaEtcher с сайта https://etcher.balena.io/

Запускаем систему, создаем пароль root и нового пользователя

В дальнейшем все делаем под пользователем root

su - root

Настраиваем wi-fi, если не настроили после создания нового пользователя

sudo armbian-config

Обновляем систему

sudo apt update && sudo apt upgrade -y

Устанавливаем apparmor модуль безопасности ядра Linux

sudo apt install -y apparmor apparmor-utils

Устанавливаем бот telegram

bash <(wget --cache=off -q -O - https://github.com/ghzserg/zmod_ff5m/raw/refs/heads/1.5/telegram/telegram.sh)

Добавление ssh ключей: Заходим из под пользователя root в пользователя tbot

su - tbot

Прописываем ssh ключи:

mkdir -p .ssh
cat >.ssh/authorized_keys

Вводите открытый ключ из файла в системе корневой системе mod_data/ssh.pub.txt. Потом CTRL+D

Перезагружаем систему sudo reboot


Back Top Forward

⚠️ **GitHub.com Fallback** ⚠️