Управление питанием и прочая автоматизация в 3D принтере

Собираем, настраиваем, печатаем, делимся опытом, помогаем новичкам

Модератор: Kaktus

schs
Сообщения: 350
Зарегистрирован: 15 сен 2017, 19:41
Имя: Сергей
Откуда: Apatity
Благодарил (а): 79 раз
Поблагодарили: 32 раза

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение schs » 26 дек 2019, 12:19

Stein писал(а):
26 дек 2019, 00:02
Я просто не совсем понимаю что это за команда)
В Octopint есть Events(события) по наступлению которых Octoprint может выполнять какие либо действия, в данном случае запускает программу, передавая ей параметр, который может быть у эвента. У этого эвента есть параметр - имя файла. При надобности в его использования в строке запуска программы указывается переменная {file}.
Эта переменная содержит имя файла.
Краткое описание - https://docs.octoprint.org/en/master/events/
Stein писал(а):
26 дек 2019, 00:02
За передачу параметров отвечает этот аргумент: {file}?
Одного параметра, имени файла.
Возможные параметры:
MetadataAnalysisStarted

The metadata analysis of a file has started.

Payload:

name: the file’s name
path: the file’s path within its storage location
origin: the file’s origin storage location
Stein писал(а):
26 дек 2019, 00:02
В скрипте должно быть #echo file: $1 и $1 вместо имени файла?
В bash скраптах строка с первым символом # закомментированная. т.е. не исполняется.
Смотрите на последнюю:
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"sele
ct", "print": true }' http://127.0.0.1:5000/api/files/local/$1
Она запускает печать.
Не забудьте вместо xx поставить свой API key.
Stein писал(а):
26 дек 2019, 00:02
event у вас один или два?
Один.
Stein писал(а):
26 дек 2019, 00:02
Или должно быть два скрипта? Автоматизация на включение и передача имени?
Один. Первая комманда в скрипте включает принтер.
/usr/local/bin/gpio write 25 1
В Вашем случае возможно нужно поправить pin, к которому подлючено реле.

Вторая команда делает реконнект после включения.
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"conn
ect" }' http://127.0.0.1:5000/api/connection
Не забудьте поправить API key

Ну и третья, как и писал запускает печать.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение Stein » 26 дек 2019, 12:41

schs, Спасибо! В принципе я так и делал, но почему-то не сработало. Попробую еще раз.

schs
Сообщения: 350
Зарегистрирован: 15 сен 2017, 19:41
Имя: Сергей
Откуда: Apatity
Благодарил (а): 79 раз
Поблагодарили: 32 раза

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение schs » 26 дек 2019, 19:14

На вкладке терминала в вэб интерфесе некоторые действия видны.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение Stein » 26 дек 2019, 21:02

schs писал(а):
26 дек 2019, 19:14
На вкладке терминала в вэб интерфесе некоторые действия видны.
Спойлер
Connection closed, closing down monitor
Changing monitoring state from "Operational" to "Offline"
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Error: Connection error, see Terminal tab"
Unexpected error while connecting to serial port: /tmp/printer SerialException: '[Errno 11] Could not exclusively lock port /tmp/printer: [Errno 11] Resource temporarily unavailable' @ comm.py:_openSerial:2661 (hook default)
Connecting to: /tmp/printer
Changing monitoring state from "Offline" to "Opening serial port"
Connected to: Serial<id=0x6cecce70, open=True>(port='/tmp/printer', baudrate=250000, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Changing monitoring state from "Opening serial port" to "Connecting"
Send: N0 M110 N0*125
Send: N0 M110 N0*125
Recv: ok
Changing monitoring state from "Connecting" to "Operational"
Send: N0 M110 N0*125
Recv: ok
Recv: ok
Send: N1 M115*39
Send: N2 M21*18
Recv: ok FIRMWARE_VERSION:v0.8.0-87-g0bfb655f FIRMWARE_NAME:Klipper
Recv: SD card ok
Send: M20
Recv: ok
Recv: Begin file list
Recv: CFFFP_head_duct_short_v2.gcode 905870
Recv: End file list
Мой скрипт:

Код: Выделить всё

#!/bin/sh
curl … Команда на запуск автоматизации в умном доме.
sleep 30s
curl -s -H "Content-Type: application/json" -H "X-Api-Key: ключ" -X POST -d '{ "command":"select", "print": true }' http://192.168.1.5:5000/api/files/local/$1
event:

Код: Выделить всё

events:
  enabled: true
  subscriptions:
  - command: home/pi/power_on.sh {file}
    event: MetadataAnalysisStarted
    type: system
Что не так не понимаю. Подозреваю, что все же не передается имя.

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение Stein » 27 дек 2019, 00:52

Попробовал разные события: Upload, FileAdded. Добавлял разные параметры: path, target, name. Менял права файла.
Ничего не помогает. не стартует печать

Странно, но когда принтер предварительно включен и из скрипта удалена команда на включение принтера, то печать стартует.
Но уже очевидно, что нельзя просто отправить команду на печать в любой момент. Из системы умного дома, как я планировал. Параметры передаются только при событии. Но я не понимаю почему скрипт не работает целиком. Логика которого следующая: отправляется команда на запуск автоматизации, в которой выполняется включение питания, команда октопринт коннект и firmware_restart. Все что занимает не больше 10 секунд. Вторая команда на выбор файла и печать. Между ними огромная задержка в 30 секунд.

schs
Сообщения: 350
Зарегистрирован: 15 сен 2017, 19:41
Имя: Сергей
Откуда: Apatity
Благодарил (а): 79 раз
Поблагодарили: 32 раза

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение schs » 27 дек 2019, 09:51

Stein писал(а):
27 дек 2019, 00:52
Ничего не помогает. не стартует печать
Попробуйте вручную команды, из консоли.
Сначала загрузите файл с простым именем вида "1.gcode" обычным образом.
Дайте команду на включение, проверьте по логам что всё исполнилось.
Дайте команду на печать вручную, из консоли:
curl -s -H "Content-Type: application/json" -H "X-Api-Key: ключ" -X POST -d '{ "command":"select", "print": true }' http://192.168.1.5:5000/api/files/local/$1
Посмотрите по логам, что произошло.

Может банально не хватает прав, если octoprint запущен от обычного пользователя а скрипт разрешён только root?
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение Stein » 27 дек 2019, 17:02

Разобрался. Все проблемы были от плагина OctoScreen через который я недавно подключил HDMI дисплей к принтеру. Оказывается плагин хочет постоянного соединения с принтером. Даже если контроллер отключен, плагин все равно вызывает подключение. Но я все же не понимаю почему это влияло на скрипт. Придется останавливать и запускать сервис OctoScreen...

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение Avtonomys » 11 фев 2020, 18:05

Управление питанием через Sonoff.

В моем случаи железяка: Sonoff Basic
Шил по инструкции с сайта 4pda: https://4pda.ru/forum/index.php?showtop ... ry70046399 (под спойлерами Backup и Sonoff-Tasmota)
Плагин OctoPrint: https://plugins.octoprint.org/plugins/tasmota/
Плагин OctoPrint через MQTT: https://plugins.octoprint.org/plugins/tasmota_mqtt/
UART: самый дешевый, главное что было 3.3v

Закрепил на блок питания:
Спойлер
UAlvOzX7d3c.jpg
G-yNI2Sfh2U.jpg
I86iyg7UdPc.jpg
ЗС если без OctoPrinta то можно и на стоковой остаться. через телефон, по таймеру и тд выключать/включать...

schs
Сообщения: 350
Зарегистрирован: 15 сен 2017, 19:41
Имя: Сергей
Откуда: Apatity
Благодарил (а): 79 раз
Поблагодарили: 32 раза

Re: Управление питанием и прочая автоматизация в 3D принтере

Непрочитанное сообщение schs » 11 фев 2020, 21:07

Avtonomys писал(а):
11 фев 2020, 18:05
ЗС если без OctoPrinta то можно и на стоковой остаться. через телефон, по таймеру и тд выключать/включать...
В самом БП место для платы из sonoff вполне хватит.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono

Ответить

Вернуться в «3D принтеры и 3D печать»

Яндекс.Метрика