Карточка 3DPrinter в Home Assistant через ESP3D
Наверно все слышали о проекте ESP3D который позволяет через WiFi управлять принтерами, сохранять и передавать файлы на печать.
кроме того там есть функционал отправки уведомлений например в телеграмм или Home Assistant (серевер домашней автоматизации)
Сейчас в Orca Slicer, ну и в Пруше наверно, появилось большое количество placeholders (не знаю как перевести) которые позволяют вставить в G-code различную информацию от номера текущего слоя до объема использованного материала. И теоретически используя стартовый, конечный и код смены слоя можно научить ESP3D передавать достаточно большое количество информации в HASS для создания полноценной карточки контроля процесса печати. В дальнейшем эту информацию можно обрабатывать, например суммировать общее количество истраченного материала, вести статистику по использованным пруткам или уведомлять за 10 минут до окончания печати или еще что нибудь.
Как я вижу данную карточку. Это некая карточка с прогресс баром и информацией об имени печатаемого файла (placeholder: input_filename_base) текущий слой (layer_num) и всего слоев (total_layer_count), объем или вес использованного прутка (extruded_volume[] или extruded_weight[]) Время печати (команды нет, надеюсь пока)
Теперь к уведомлениям.
Команда отправки уведомления в HASS выглядит следующим образом
[ESP600]/api/services/light/toggle#{"entity_id":"light.wintergarten_spots"}
или она же но вставленная в G-code
M118 P3 [ESP600]/api/services/light/toggle#{"entity_id":"light.wintergarten_spots"}
то есть M118 это отправка сообщения, а Р3 это отправка в порт куда подключен вайфай модуль, если использовать Р0 то команда отправится по всем портам и например высветится на экране.
как видим команда отправляется через REST API HASS и позволяет вызвать встроенную службу для изменения состояния любого объекта в HASS. Можно конечно через вспомогательные объекты или конфигурационный файл Home Assistant создать нужные объекты, но мне кажется это не удобное решение, так как для вспомогательных объектов они создадуться без привязки к какому-то устройству, а в случае конфигурации через yaml нужно будет при изменении каких-либо параметров перезапускать HASS.
ИМХО, удобнее всего интеграцию MQTT и в частности возможности MQTT discovery, что позволит создать устройство 3DPrinter с различными сенсорами. Создавать топики MQTT можно как через утилиту mosquitto_pub так и через терминал ESP3D, что позволит нам сразу проверять правильность команд. Отслеживать создание топиков лучше всего через дополнение MQTT Explorer
Ну а дальше я поплыл....
Не хватает знаний и понятий.
КМК, для начала нам надо создать топики устройства 3DPrinter с различными состояниями (Печатает/не печатает, текущий слой, всего слоев и etc)
[ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/status","payload":"Печатает","retain":true} [ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/layer","payload":1,"retain":true}[ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/layer_sum","payload":100,"retain":true}[ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/time","payload":"12:00","retain":true}
Тут все нормально и топики создались.
затем конфигурируем сенсор с несколькими объектами
[ESP600]/api/services/mqtt/publish#{"topic":"homeassistant/sensor/3DPrinter/state/config","payload":"{\"name\": \"3D Printer\", \"state_topic\": \"3dprinter/status\"}","retain":false}
эта команда отказалась работать, пробовал разные варианты и с одинарными кавычками
[ESP600]/api/services/mqtt/publish#{"topic":"homeassistant/sensor/3DPrinter/state/config","payload":'{"name": "3D Printer", "state_topic": "3dprinter/status"}',"retain":false}
я так думаю, здесь ограничение самого ESP3D это и не страшно, можно другими способами создать конфигурацию
Команда в начальный G-code со статусом принтер печатает
M118 P3 [ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/status","payload":"Печатает"}
Команда в конечный G-code со статусом принтер не печатает
M118 P3 [ESP600]/api/services/mqtt/publish#{"topic":"3dprinter/status","payload":"Не Печатает"}
Ну и так далее.
Все это сложно мне дается из-за недостатка знаний и времени, может кто что подскажет и вместе сделаем удобную карточку.
Комментарии и вопросы
На фото небольшой перехлест и....
Я вижу, что перехлест идет под...
Сопливит если пластик влажный,...
Всем привет, имеется принтер к...
при печати петг на подложке за...
Всем привет!Начал изучать 3D п...
Добрый день. Подскажите совето...