Botão de telegrama
| Função / Recurso | Plug-in de notificação | Moonraker Telegram Bot | Moonraker Telegram Bot | | :--- | :---: | :---: | | Requer servidor externo | - | + | | | Controle remoto da impressora | - (pode ser feito via zmod.link) | + | | | Criar lapso de tempo | - (pode ser feito via timelapse | + | | | | Imprimir informações do evento (início, pausa, cancelamento, fim) | + | + | | | | + | | Informações do sensor de filamento | + | + | + | | | | Imprimir informações de progresso em porcentagem | + | + | | + | | | | Trabalho com várias impressoras por meio de um bot | + | | | - | | | | | Informar através de outros serviços | + | | - | | | | | Splooman | | - | + | |
Se você precisar apenas de notificações do Telegram, [use o plug-in Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md).
Bot do Telegram¶
Descrição¶
Se apenas as notificações do Telegram forem suficientes para você, então [use o plugin Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md)
A essência: Temos um ferro muito lento e pouca memória. Portanto, não faz sentido executar o moonraker-telegram-bot no hardware. Mas podemos executá-lo em um servidor externo. Para isso, precisamos de qualquer servidor (real/virtual) que possa ser acessado pela impressora via SSH.
A nova versão cria automaticamente chaves SSH (elas são usadas para autorização sem senhas).
As chaves podem ser encontradas aqui:
/mod_data/ssh.pub.txt- essa é uma chave pública. O texto dela deve ser colocado no servidor no arquivo~/.ssh/authorised_keys/mod_data/ssh.keyé a chave privada. Ela é usada pela impressora para se conectar ao servidor.
Na verdade, você não precisa das chaves em si. Você só precisa chamar a macro ZSSH_ON passando os seguintes parâmetros:
- SSH_SERVER - ip ou nome do seu servidor
- SSH_PORT - porta ssh no servidor - geralmente 22
- SSH_USER - nome de usuário no servidor ssh
- VIDEO_PORT - porta que será usada no servidor para receber dados de vídeo da câmera (8080)
- MOON_PORT - porta que será usada no servidor para receber dados do moonraker (7125).
- REMOTE_RUN - comando a ser chamado no servidor remoto
A execução do ssh consome cerca de 300 kilobytes de memória.
Se a impressora e o servidor estiverem na mesma rede, não será necessário usar o SSH. Leia o arquivo de configuração telegram.conf Sample-config.
O arquivo de configuração pode ser baixado da impressora mod/telegram/.
Registre o bot¶
Como registrar seu bot
- vá para [@BotFather] (https://t.me/BotFather).
/newbot.- Digite o nome que desejar
- Digite o nome do bot ff5msuper_bot - não se esqueça de colocar _bot no final.
- Obtenha um ID longo - ele precisará ser escrito nas configurações do bot no parâmetro bot_token
Implementação do servidor¶
Instale o bot do Telegram com um único comando no Debian¶
Se você só precisa de notificações do Telegram, então [use o plugin Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md).
Instale o bot do Telegram [com um comando] (https://github.com/ghzserg/zmod_ff5m/blob/1.6/telegram/telegram.sh) no Debian:
Execute com o usuário `root
bash <(wget --cache=off -q -O - https://github.com/ghzserg/zmod_ff5m/raw/refs/heads/1.6/telegram/telegram.sh)
Se você não tiver o wget
apt update && apt install wget -y
Este script:
- Instalar o docker
- Faça o download de docker-compose.yml e telegram.conf. Sample-config
- Crie o usuário tbot
- Escreverá instruções para registrar o bot do telegram e solicitar o
bot_token. - Escreverá instruções para obter o
chat_ide solicitará ochat_id. - Instalará o [ff5m.sh] (https://github.com/ghzserg/zmod_ff5m/blob/1.6/telegram/ff5m.sh)
Você precisará adicionar a chave ssh por conta própria
Instalação do bot do Telegram por etapas¶
Se você só precisa de notificações no Telegram - então [use o plugin Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md)
Pegue o arquivo docker-compose.yml de mod/telegram/ c printer.
Instale o docker e siga as instruções para o Debian
apt update
apt upgrade -y
apt install docker.io docker-compose docker apparmor -y
Crie um diretório para o bot.
mkdir bot1
cd bot1
Coloque docker-compose.yml lá.
Crie subdiretórios
mkdir config log timelapse_finished timelapse
chmod 777 config log timelapse_finished timelapse
Coloque o telegram.conf de mod/telegram/ no diretório config e modifique-o de acordo com suas necessidades.
Você pode ler mais informações sobre a configuração do bot aqui
No diretório bot1, execute
docker-compose up -d
Adicione um usuário e dê a ele o direito de executar o docker-compose por conta própria.
useradd tbot
usermod -a -G docker tbot
Adicionando chaves ssh¶
-
Faça login como usuário
tbot. ``bash su - tbot ``` -
Escreva as chaves ssh:
mkdir .ssh cat >.ssh/authorised_keys
Digite a chave pública do arquivo mod_data/ssh.pub.txt. Em seguida, Ctrl + d
Execute o ZSSH na impressora¶
Em seguida, execute ZSSH_ON na impressora com os parâmetros necessários.
Depois de cada reinicialização, o ssh será iniciado automaticamente após 3 minutos.
TimeZone¶
Edite o arquivo [docker-compose.yml] (https://github.com/ghzserg/zmod_ff5m/blob/1.6/telegram/docker-compose.yml)
Especifique seu fuso horário. O arquivo de exemplo especifica `TZ=Asia/Yekaterinburg.
`docker-compose down && docker-compose up -doudocker compose down && docker compose up -d````
Spoolman¶
Edite o arquivo [docker-compose.yml] (https://github.com/ghzserg/zmod_ff5m/blob/1.6/telegram/docker-compose.yml)
Adicione:
spoolman:
imagem: ghcr.io/donkie/spoolman:latest
restart: unless-stopped
volumes:
- ./spoolman:/home/app/.local/share/spoolman
portas:
- "7912:8000"
ambiente:
- TZ=Asia/Yekaterinburg
Abra a porta em seu firewall, se estiver usando-o.
`iptables -I INPUT -p tcp --dport 7912 -j ACCEPT
Crie uma pasta spoolman.
mkdir spoolman
chmod 777 spoolman
Reinicie o docker:
`docker-compose down && docker-compose up -d ou docker compose down && docker compose up -d
Na impressora, escreva em mod_data/user.moonraker.conf
external_IP - o IP externo do servidor no qual o docker está sendo executado
A impressora DEVE ter acesso a esse IP
[spoolman]
servidor: http://external_IP:7912
sync_rate: 5
Instalação e configuração para armbian (por noyhay)¶
Se apenas as notificações do Telegram forem suficientes para você, então [use o plugin Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md)
Faça o download das imagens do Debian Minimal/IOT com o Armbian em [https://www.armbian.com/download/] (https://www.armbian.com/download/)
Instale o Armbian no sdcard usando o balenaEtcher em https://etcher.balena.io/.
Inicie o sistema, crie uma senha de root e um novo usuário
De agora em diante, faremos tudo com o usuário root
su - root
Configure o wi-fi, caso não o tenha configurado após criar um novo usuário
sudo armbian-config
Atualizar o sistema
sudo apt update && sudo apt upgrade -y
Instalar o módulo de segurança do kernel do Linux apparmor
sudo apt install -y apparmor apparmor-utils
Instalar o bot do telegrama
bash <(wget --cache=off -q -O - https://github.com/ghzserg/zmod_ff5m/raw/refs/heads/1.6/telegram/telegram.sh)
Adicionar chaves ssh: Fazer login do usuário root para o usuário tbot
su - tbot
Gravar chaves ssh:
mkdir -p .ssh
cat >.ssh/authorised_keys
Reinicialize o sistema
``sudo reboot
Instalação do bot do telegrama via helm no kubernetes (de aldiserg)¶
Se apenas as notificações do Telegram forem suficientes para você, então [use o plugin Notify] (https://github.com/ghzserg/notify/blob/main/Readme_ru.md)
Faça o download do helm e instale-o em seu computador [https://helm.sh/docs/intro/install/] (https://helm.sh/docs/intro/install/)
Clone o repositório com o gráfico do helm
git clone https://github.com/aldiserg/zmod_ff5m_tg_bot.git
-
persistence.enabled altere para false se você não planeja armazenar timelapses por um longo período
-
persistence.volumes...storageClass se for usar um armazenamento externo para timelapses
-
configMapAsFile.data.telegram.conf - nossa configuração principal, aqui precisamos alterar os campos:
Como obter bot_token e chat_id, veja aqui[bot] server: 3D_printer_host:7125 bot_token: 1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA chat_id: 111111111 [câmera] host: http://3D_printer_host:8080/?action=stream host_snapshot: http://3D_printer_host:8080/?action=snapshot
Instalação:
Os comandos devem ser executados no diretório em que o gráfico está localizado
helm upgrade --install zmod_ff5m_tg_bot ./ -n default -f values.yaml
Solução de um problema ao conectar a impressora ao servidor via SSH¶
Após reinstalar o sistema operacional no servidor, as chaves de host SSH são alteradas e a impressora se recusa a se conectar com um erro:
ssh-ed25519 host key mismatch ...
Solução¶
1. Limpar as chaves salvas na impressora¶
Conecte-se à impressora via SSH:
ssh root@<<IP_printer> -p 22
Senha padrão:
root
Em seguida, execute os comandos:
cd ~/.ssh
rm -f know
Isso removerá as antigas chaves de host salvas do servidor.
2. Crie novamente o par de chaves SSH na impressora (se necessário)¶
Se quiser gerar um novo par de chaves, você deverá excluir os arquivos antigos:
cd ~/mod_data
rm -f ssh.pub.txt ssh.key
Após a reinicialização, o serviço criará automaticamente novas chaves.
A chave pública (ssh.pub.txt) precisará ser adicionada novamente ao servidor em um arquivo:
~/.ssh/authorised_keys
tbot).
3. Verificação da conexão¶
Depois de limpar as chaves na impressora e atualizar as authorised_keys no servidor
servidor --- execute a macro ZSSH na impressora.
A conexão deverá ser estabelecida sem erros.