OctoPrint in Home-Assistant einrichten

Ich zeige Euch wie man OctoPrint in Home-Assistant integriert.

Mit OctoPrint hat man die Möglichkeit seinen 3D-Drucker zu steuern. Dafür wird OctoPrint auf einem Raspberry PI installiert und konfiguriert. Eine Anleitung wie man OctoPrint installiert gibt es auf deren Webseite.

Im Folgenden gehe ich davon aus, dass OctoPrint installiert und konfiguriert ist. Sollte es jedoch dazu Probleme geben, schreibt mir in die Kommentare und ich werde schauen, dass ich ein ausführliches Tutorial schreibe (oder evtl. ein Video mache) wie man OctoPrint installiert und konfiguriert.

OctoPrint in Home-Assistant einrichten

Um OctoPrint in Home-Assistant einzurichten bedarf es mehrerer Schritte.

  • Hub einrichten
  • Sensoren einrichten
  • Binär-Sensoren einrichten
  • Kamera einrichten
  • Darstellung

Hub einrichten

Zu aller erst muss ein Hub eingerichtet werden. Dazu öffnen wir die Datei configuration.yaml und fügen den folgenden Code ein:

octoprint:
  host: DEIN_OCTOPRINT_HOST
  api_key: DEIN_OCTOPRINT_API_KEY
  bed: true
  number_of_tools: 1

Als host geben wir hier octopi oder die IP-Adresse unseres Raspberry PI ein.

Den API-Key finden wir im OctoPrint selber. Also rufen wir OctoPrint im Browser auf und melden uns an (Vorausgesetzt die Authentifizierung ist aktiv). Anschließend gehen wir oben in der Navigation auf den Schraubenschlüssel (siehe Screenshot).

OctoPrint
OctoPrint Einstellungen öffnen

In dem Fenster das sich jetzt geöffnet hat wählen wir in der Navigation ‘API’ aus und kopieren uns dort den API-Key heraus.

OctoPrint
API-Key herausfinden

Bei bed tragen wir true ein, wenn wir ein beheiztes und false wenn wir kein beheiztes Druckbett haben. Und ‘number_of_tools’ gibt die Anzahl unserer Nozzle an.

Sensoren einrichten

Im nächsten Schritt richten wir die Sensoren ein. Dazu tragen wir in der configuration.yaml folgendes ein:

sensor:
  - platform: octoprint
    name: Creality CR-10
    monitored_conditions:
      - Current State
      - Temperatures
      - Job Percentage
      - Time Elapsed
      - Time Remaining

Den Namen können wir frei wählen. Ich habe hier die Bezeichnug meines 3D-Druckers genommen. Bei monitored_conditions wählen wir aus, was als Sensor zur Verfügung stehen soll. In dem oberen Beispiel wurde alles ausgewählt.

Binär-Sensoren einrichten

Genau wie die normalen Sensoren müssen auch die Binär-Sensoren in der configuration.yaml definiert werden.

binary_sensor:
  - platform: octoprint
    name: Creality CR-10
    monitored_conditions:
      - Printing
      - Printing Error

Auch hier kann der Name freigewählt werden und bei monitored_conditions ausgewählt werden, was als Binär-Sensor zur Verfügung stehen soll.

Kamera einrichten

OctoPrint kommt standardmäßig mit einem Kamera-Stream, wenn eine Kamera angeschlossen ist. Dieser Stream lässt sich auch in Home-Assistant darstellen. Dazu tragen wir in der configuration.yaml folgendes ein:

camera:
  - platform: mjpeg
    mjpeg_url: http://[DEIN_OCTOPRINT_HOST]/webcam/?action=stream/
    name: Creality CR-10

Als Namen können wir hier wieder wählen was wir möchten. Als Host tragen wir hier unseren Hostnamen (octopi) oder die IP-Adresse des Raspberry PI ein. z.B.: http://octopi/webcam/?action=stream/

Darstellung

Was die Konfiguration angeht sind wir soweit durch. Nun können wir unser Home-Assistant neustarten, damit die Konfiguration auch übernommen wird. Anschließend sehen wir bei den States im Home-Assistant unsere neu angelegten Sensoren und die Kamera.

Home-Assistant
States in Home-Assistant

Diese können wir nun in der groups.yaml eintragen.

default_view:
  view: yes
  name: Home
  entities:
    - group.default_printer

default_printer:
  name: Drucker
  entities:
    - camera.creality_cr10
    - binary_sensor.creality_cr10_printing
    - binary_sensor.creality_cr10_printing_error
    - sensor.creality_cr10_actual_bed_temp
    - sensor.creality_cr10_actual_tool0_temp
    - sensor.creality_cr10_current_state
    - sensor.creality_cr10_job_percentage
    - sensor.creality_cr10_target_bed_temp
    - sensor.creality_cr10_target_tool0_temp
    - sensor.creality_cr10_time_elapsed
    - sensor.creality_cr10_time_remaining

Das wars auch schon. Jetzt nur noch die Konfiguration der Gruppen neu laden und fertig. Das geht im Home-Assistant unter:

Einstellungen -> Allgemein -> Gruppen neu laden
Home-Assistant Frontend
Darstellung im Frontend

Ich hoffe, dass der Artikel für den einen oder andern von euch nützlich ist. Ihr könnt mir gerne ein Kommentar da lassen, falls irgendetwas unklar ist.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.