Como configurar o Octoprint (Impressoras 3D) (Actualizado)

A tecnologia cresce a olhos vistos e hoje já muitos de nós tem ou vai ter em breve impressoras 3D.
Para que não conhece o Octoprint pode ver AQUI do que se trata.

E podem ver este video como instalar o octoprint neste vídeo:

Basicamente o que conseguimos então fazer com o Home Assistant em relação a impressora?

Bom , para alem de a conseguirmos ligar e desligar remotamente quando queremos, conseguimos também vêr o estado das impressões como as temperaturas tanto da cama como do extursor, tempo decorrido tempo restante,evolução do estado da impressora, ver a impressão ao vivo, e ser notificado via telemovel ou por voz quando a impressão está a 50% ou até mesmo quando ela finalizou.

Com ajuda de algumas automações, já sabem que tudo é possível inventar…
Então deixo aqui a minha configuração para que sirva de base para as vossas, caso pretendam,

homeassistant:

###############################################################################
#                                                                             #
#                           C U S T O M I Z E                                 #
#                                                                             #
###############################################################################   
        
  customize:
 

    sensor.octoprint_actual_bed_temp:
      friendly_name: Temperatura Actual da cama
      icon: mdi:printer-3d
    sensor.octoprint_actual_tool0_temp:
      friendly_name: Temperatura Actual do Extursor
      icon: mdi:printer-3d
    sensor.octoprint_job_percentage:
      friendly_name: Evolução da impressão
      icon: mdi:printer-3d
    sensor.octoprint_target_bed_temp:
      friendly_name: Temperatura desejada da cama
      icon: mdi:printer-3d
    sensor.octoprint_target_tool0_temp:
      friendly_name: Temperatura desejada do Extursor
      icon: mdi:printer-3d
    sensor.octoprint_time_elapsed:
      friendly_name: Tempo consumido
      icon: mdi:printer-3d
    sensor.octoprint_time_remaining:
      friendly_name: Tempo Restante
      icon: mdi:printer-3d
    sensor.estadocurrente:
      icon: mdi:printer-3d

###############################################################################
#                                                                             #
#                           G R O U P                                         #
#                                                                             #
###############################################################################       
      
group:

  impressora3d:
    view: yes
    name: IMPRESSORA 3D
    entities:
      - group.impressora_3d
    
    
  impressora_3d:
    control: hidden
    name: Impressora 3D
    entities:
      - input_boolean.impressora3d
      - camera.impressora_3d
      - sensor.estadocurrente
      - sensor.octoprint_job_percentage
      - sensor.octoprint_actual_bed_temp
      - sensor.octoprint_target_bed_temp
      - sensor.octoprint_actual_tool0_temp
      - sensor.octoprint_target_tool0_temp
      - sensor.octoprint_time_elapsed
      - sensor.octoprint_time_remaining
      
###############################################################################
#                                                                             #
#                           S E N S O R S                                     #
#                                                                             #
###############################################################################  

sensor:      

  - platform: octoprint
    name: OctoPrint
    monitored_conditions:
      - Current State
      - Temperatures
      - Job Percentage  
      - Time Remaining
      - Time Elapsed    

  - platform: template
    sensors:
    #Estado do Tempo
      estadocurrente:
        friendly_name: 'Estado da Impressora'
        value_template: > 
         {%- if is_state('sensor.octoprint_current_state', 'unknown') -%}
          Desligada
         {%- elif is_state('sensor.octoprint_current_state', 'operational') -%}
          Pronta para Imprimir
         {%- elif is_state('sensor.octoprint_current_state', 'printing') -%}
          A imprimir ... 
         {%- endif -%}      
###############################################################################
#                                                                             #
#                         B I N A R Y _  S E N S O R S                        #
#                                                                             #
###############################################################################  

       
binary_sensor:
  - platform: octoprint
    monitored_conditions:
      - Printing
      - Printing Error
      
      
      
###############################################################################
#                                                                             #
#                           S W I T C H E S                                   #
#                                                                             #
###############################################################################  


switch:

###############################################################################
#                                                                             #
#                         I N P U T   B O O L E A N S                         #
#                                                                             #
###############################################################################      
        
    

input_boolean:
  impressora3d:
    name: Impressora 3D
    icon: mdi:printer-3d
    initial: off
    
###############################################################################
#                                                                             #
#                         A U T O M A T I O N S                               #
#                                                                             #
###############################################################################    
automation:

#Liga a impressora quando o botao do input_boolean está ON    
  - alias: 'ligar impressora botao on'
    initial_state: true
    trigger:
      - platform: state
        entity_id: input_boolean.impressora3d
        to: 'on'
    action:
      - service: shell_command.ligarimpressora
      
#Liga a impressora quando o botao do input_boolean está OFF          
  - alias: 'desligar a impressora botao off'
    initial_state: true
    trigger:
      - platform: state
        entity_id: input_boolean.impressora3d
        to: 'off'
    action:
      - service: shell_command.desligarimpressora
      
#Força o botao input_boolean a desligar quando o sistema detecta que a impressora não tem energia.   
  - alias: 'botao desligado energia desligada'
    initial_state: true
    trigger:
      platform: template
      value_template: >
          {%- if is_state("sensor.octoprint_current_state", "unknown") -%}
            true
           {% else %}
            false
          {% endif %}
    action:
      service: input_boolean.turn_off
      data:
        entity_id: input_boolean.impressora3d  

#Força o botao input_boolean a ligar quando o sistema detecta que a impressora tem energia. 
  - alias: 'botao ligado energia ligada'
    initial_state: true
    trigger:
      platform: template
      value_template: >
          {%- if is_state("sensor.octoprint_current_state", "Operational") -%}
            true
           {% else %}
            false
          {% endif %}
    action:
      service: input_boolean.turn_on
      data:
        entity_id: input_boolean.impressora3d         
        
        
#Informa o utilizador enviando uma notificação com foto que a impressão chegou aos 50%.                
  - alias: 'Informa estado 50'
    trigger:
      platform: numeric_state
      entity_id: sensor.octoprint_job_percentage 
      above: 50
    action:
      - service: notify.telegram
        data:
          title: ""
          message: ""
          data:
            photo:
              url: http://192.168.1.239:81/snapshot.cgi?user=admin&pwd=admin  
              caption: "A impressão chegou aos 50%"              


#Informa o utilizador enviando uma notificação com foto que a impressão chegou ao fim e desliga a impressora passado 2 min.      
  - alias: 'informa fim da impressao'
    trigger:
      platform: state
      entity_id: sensor.octoprint_current_state
      from: 'Printing'
      to: 'Operational'
    action:
      - service: notify.telegram
        data:
          title: ""
          message: ""
          data:
            photo:
              url: http://192.168.1.239:81/snapshot.cgi?user=admin&pwd=admin
              caption: "A impressão chegou ao fim"                
      - delay:
          minutes: 2   
      - service: input_boolean.turn_off
        data:
          entity_id: input_boolean.impressora3d           
           
###############################################################################
#                                                                             #
#                         S H E L L _ C O M M A N D S                         #
#                                                                             #
###############################################################################      
      
shell_command:
  ligarimpressora: curl -k "http://192.168.1.101:8080/22/on" 
  desligarimpressora: curl -k "http://192.168.1.101:8080/22/off"

Actualização
image

Depois de alguns meses voltei de novo a usar o octoprint, tinha deixado de usar a algum tempo.
Ao tentar de novo e passado algum tempo, decidi desta vez não usar a integração do home assistant mas sim directamente por MQTT, obrigado pela dica @maxcalavera .
Depois de exprimentar fiquei a constatar que a rapidez em que a informação chega ao HA é muito mais rápida para alem de termos uma variadade grande de sensores, binary_sensors, switch que depois podemos usar nas automações que poderemos criar.

Para usares o MQTT com o Octoprint, vais necessitar de dois plugins que deves instalar através do Plugin Manager do Octoprint.

No primeiro Plugin é só instalar não precisas de fazer mais nada.
Apenas tens que ter o discovery: activo no teu configuration.yaml no HA.

O segundo plugin a configuração é:


No final fazes save, não te esqueças que na integração do MQTT no HA também deves ter o discovery activo.

Após isso , quando o teu octoprint tiver conectado à tua impressora deverá ter todas estas entidades ao dispor.

binary_sensor.octoprint_connected
binary_sensor.octoprint_printing
sensor.octoprint_bed_target
sensor.octoprint_bed_temperature
sensor.octoprint_current_z
sensor.octoprint_last_event
ensor.octoprint_print_estimated_time
sensor.octoprint_print_file
sensor.octoprint_print_progress
sensor.octoprint_print_status
sensor.octoprint_print_time
sensor.octoprint_print_time_left
sensor.octoprint_slicing_file
sensor.octoprint_slicing_progress
sensor.octoprint_soc_temperature
sensor.octoprint_tool_0_target
sensor.octoprint_tool_0_temperature
sensor.sensor_octoprint_bed_target
switch.octoprint_cancel_print
switch.octoprint_emergency_stop
switch.octoprint_pause_print
switch.octoprint_shutdown_system

Com estes sensores, vocês podem criar as automações directamente via UI, ou usarem NodeRed.

Ok , no cartão lovelace que viste acima mostro-te só uma ideia base de como, poderás ter disponível a informação da tua impressora, obviamente que tu crias e visualizas da maneira que tu preferires, gostos não se discutem :wink:

Além da informação que tens disponível, podes adicionar mais informação como:

Gastos de electricidade do mês
Gastos de electricidade do dia
Gastos de electricidade da impressão etc etc…

Ok em relação às automações podes como disse acima, ou criares via UI ou Nodered, se chegaste aqui de paraquedas e não sabes ainda o que é o Home Assistant, convido-te a perderes um bocado do tempo tempo e lêr o conteúdo do fórum, que acredito que te vai impressionar, para além de obviamente dares uma nova vida à tua impressoa, e um novo poder de controlo.

Exemplos de automações:

1.Impressora desligar-se quando acaba uma impressão.
2.Agendamento de tarefas.
3.Avisos sonoros, via Alexa ou Google Home de quando uma impressão começa, acaba, possíveis 4.erros, (fica a tua imaginação) do que queres ser alertado.
5.Possibilidade de veres a tua impressão na TV
6. Combinações diferentes entre outros equipamentos que tens em casa, consoante o estado da impressora, nomeadamente mudanças de cor caso uses fitas de leds.
7. Avisos da impressão, seja percentagem, tempo de impressão, temperaturas, com um grande leque de aplicações… messenger, whattsapp, telegram… (sim o telegram já tem um plugin) que podes fazer à semelhança do HA, contudo o HA dá-te mais liberdade de dares continuação aos teus alertas.
8.Alertas, de diferenças de temperatura, janelas portas abertas…
9. Alertas, de excesso de consumo de energia no corrente mês.
10. Saberes que o teu quadro está no limite , e prevenires que a tua impressão fique estragada devido ao dijuntor ter disparado, porque alguém se lembrou de ligar todas as máquinas na cozinha.

Estas são algumas ideias :slight_smile:

Código do card:

elements:
  - type: state-label
    prefix: ''
    entity: sensor.octoprint_tool_0_temperature
    style:
      top: 52%
      left: 46%
      font-size: 100%
      color: white
  - type: state-label
    prefix: ''
    entity: sensor.octoprint_bed_temperature
    style:
      top: 69%
      left: 46%
      font-size: 100%
      color: white
  - type: state-label
    prefix: ''
    entity: sensor.octoprint_print_time
    style:
      top: 19%
      left: 87%
      font-size: 90%
      color: white
  - type: state-label
    prefix: ''
    entity: sensor.octoprint_print_time_left
    style:
      top: 31%
      left: 94%
      font-size: 90%
      color: white
  - type: state-label
    prefix: ''
    entity: sensor.octoprint_print_progress
    style:
      top: 42%
      left: 85%
      font-size: 90%
      color: white
  - type: state-label
    prefix: ''
    entity: sensor.tomada_3d_energy_power
    style:
      top: 8%
      left: 83%
      font-size: 90%
      color: white
  - entity: switch.tomada_3d
    state_image:
      'off': /local/impressoraligar.png
      'on': /local/impressoraligar.png
    style:
      left: 56%
      top: 89%
      width: 5px
    tap_action:
      action: toggle
    type: image
image: /local/biqu.jpg
type: picture-elements

Alguma dúvida comenta, ou aparece no discord.

4 Curtiram

4 mensagens foram unidas em um tópico existente: Como configurar o Octoprint (para Impressoras 3D)

Para comentar este tópico, por favor utilizem o tópico abaixo


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade