Vamos a crear una tarjeta para impresora 3d, de forma que podamos visualizar toda la información y controlarla desde nuestro panel.
Índice
Requisitos previos
Para crear esta tarjeta para impresora 3d necesitas lo siguiente:
- Obviamente, una impresora 3d.
- Opcionalmente, un enchufe inteligente si quieres controlar el encendido y apagado remoto.
- Haber integrado OctoPrint en Home Assistant.
- Instalar a través de HACS las tarjetas de Card Mod, Bubble Card y Mushroom Cards.
Código de la tarjeta
A continuación puedes encontrar el código completo de mi tarjeta para impresora 3d (que tendrás que adaptar a tus entidades y preferencias). Además en los siguientes apartados te explicaré cómo funciona cada apartado.
type: vertical-stack cards: - type: custom:bubble-card card_type: pop-up hash: '#impresora3d' name: Impresora 3D icon: mdi:printer-3d - square: false columns: 2 type: grid cards: - type: custom:mushroom-template-card primary: Ender 3 v3 SE secondary: > {% if (states('switch.impresora3d')) =="on" %}Encendida {% else %}Apagada {% endif %} icon: mdi:power icon_color: > {% if (states('switch.impresora3d')) =="on" %}lime {% else %}red {% endif %} tap_action: action: call-service service: switch.toggle target: entity_id: switch.impresora3d card_mod: style: | ha-card { background: #222c40!important; } - type: custom:mushroom-template-card primary: OctoPrint secondary: > {% if (states('sensor.octoprint_current_state')) =="Operational" %}On line {% else %}Off line {% endif %} icon: mdi:server-network icon_color: > {% if (states('sensor.octoprint_current_state')) == "Operational" %}lime {% else %}red {% endif %} tap_action: action: call-service service: script.lanzar_octoprint target: {} card_mod: style: | ha-card { background: #222c40!important; } - type: custom:bubble-card card_type: separator name: Control de la impresora icon: mdi:camera-control - type: picture-entity camera_view: live entity: camera.octoprint_camera show_state: false show_name: false - square: false columns: 3 type: grid cards: - type: custom:mushroom-template-card icon: mdi:pause layout: vertical tap_action: action: call-service service: button.press target: entity_id: button.octoprint_pause_job card_mod: style: | ha-card { background: #222c40!important; } - type: custom:mushroom-template-card icon: mdi:play layout: vertical tap_action: action: call-service service: button.press target: entity_id: button.octoprint_resume_job card_mod: style: | ha-card { background: #222c40!important; } - type: custom:mushroom-template-card icon: mdi:stop layout: vertical tap_action: action: call-service service: button.press target: entity_id: button.octoprint_stop_job card_mod: style: | ha-card { background: #222c40!important; } - type: custom:bubble-card card_type: separator name: Información icon: mdi:chart-box - type: entities entities: - entity: sensor.octoprint_job_percentage name: Grado de avance icon: mdi:cog - entity: sensor.octoprint_estimated_finish_time name: Tiempo restante icon: mdi:timer-sand - entity: sensor.octoprint_actual_bed_temp name: Tª Cama icon: mdi:square - entity: sensor.octoprint_actual_tool0_temp name: Tª Extrusor icon: mdi:printer-3d-nozzle card_mod: style: | ha-card { background: transparent; box-shadow: none; margin-top: -25px; margin-bottom: -20px; margin-left: -16px; border: 0px; }
Apertura de la tarjeta
Primero vamos a definir cómo acceder a la para impresora 3d. Por supuesto, podrías crear simplemente una nueva vista dentro de tu panel de control y añadir ahí toda la información. No obstante, a largo plazo esta dinámica saturaría tu menú de muchas vistas con poca información.
En su lugar vamos a crear un elegante ‘pop-up’ utilizando la tarjeta Bubble Card, que además vamos a utilizar para definir las cabeceras de los apartados. Por lo demás no tiene nada de especial, y puedes crearlo siguiendo las instrucciones genéricas para crear pop-up personalizados.
💡 En mi caso voy a lanzar el pop-up desde una de mis tarjetas de habitación, desde la que controlo todos los elementos de mi casa. Además también me indicará visualmente si la impresora 3d está en pleno funcionamiento mediante el color y el movimiento del icono (utilizando el sensor de potencia del enchufe inteligente y sensor 'binary_sensor.octoprint_printing').
Información de estado
Lo primero que me interesa es saber si la impresora está encendida o apagada, y si el servidor de OctoPrint está online. Esta información la voy a reflejar con dos tarjetas «Mushroom Template». Como puedes observar tanto la información como el color del icono varía en función de los estados correspondientes (que puedes personalizar como quieras).
Además, también quiero tener el control de la impresora de forma remota. Esto me va a resultar de gran utilidad para poder actuar rápidamente incluso aunque esté fuera de casa. En concreto quiero que al pulsar en la tarjeta correspondiente provoque:
- Encendido y apagado remoto de la impresora. Esto me va a resultar de gran utilidad cuando me vaya de casa dejando una impresión en curso, para poder apagarla cuando termine. Para ello me voy a apoyar en el enchufe inteligente que tengo conectado a la impresora.
- Lanzar la aplicación de OctoPrint. Como ya te he contado antes, tengo el servidor de OctoPrint funcionando en un teléfono viejo, por lo que haciendo uso de los ‘intents’ de Android puedo lanzar la aplicación de forma remota. Si te interesa esta opción, aquí te dejo el script que he creado para ello.
alias: Lanzar OctoPrint sequence: - service: notify.mobile_app_DISPOSITIVO data: message: command_screen_on data: ttl: 0 priority: high - service: notify.mobile_app_DISPOSITIVO data: message: command_launch_app data: package_name: com.octo4a description: "" icon: mdi:printer-3d
Control de la impresora
Por supuesto, uno de los motivos para crear la tarjeta para impresora 3d es poder tener acceso directo a la cámara durante una impresión y pausarla, reanudar la impresión o detenerla si es necesario.
Para ello he incluido la imagen que me proporciona el teléfono (colocado sobre un trípode para enfocar al área de impresión) y unas tarjetas «Mushroom template» que actúan de controles.
Información de la impresión
Por último pero no menos importante, he añadido en una tarjeta del tipo «Entidades» alguna información que siempre nos resulta de interés a la hora de realizar una impresión. En mi caso he incluido el grado de avance, el tiempo estimado de finalización y la temperatura de la cama y el extrusor. No obstante puedes personalizar la tuya como quieras!
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂