FHEM Tutorial-Reihe - Part 55: OctoPrint-Integration in FHEM

Jetzt wurden schon einige Videos in Sachen Vorbereitung für den 3D-Drucker getroffen. Das läuft auch alles wunderbar soweit. Ich kann über OctoPrint einen Druck anstoßen, alles per Webcam überwachen und mich ganz entspannt zurücklehnen, oder? Nicht ganz. Mein Drucker ist jetzt in den Keller gewandert. Dort habe ich natürlich keine Kontrolle mehr über den Druck. Die ganze Zeit den "Live-Stream" anschauen könnte ich natürlich machen. Wenn ich unterwegs bin, klappt das aber nicht mehr. Also musste eine Bedienung von unterwegs her. Diese habe ich gelöst, indem ich mir regelmäßig per Telegram Nachrichten zusende. Im Problemfall kann ich den Druck dann dank ReverseProxy (oder VPN) per FHEM-Modul einfach stoppen.

Das ist natürlich nur Schritt eins. Im nächsten Schritt möchte ich den Drucker komplett per FHEM steuern können. Das heißt, ich werde einen Zwischenstecker nutzen um den Drucker vom Strom zu trennen, wenn er fertig ist (bzw. anschalten, wenn es logehen soll). Dazu aber in einem weiteren Video später mehr.

Was wird benötigt?

  • Eine FHEM-Installation
  • Ein 3D-Drucker (in meinem Fall ein Anycubic i3 Mega)
  • Eine laufende OctoPrint-Installation (siehe Projekt-Beitrag)

Video

FHEM-Kurs

Befehle

Hier gibt es das OctoPrint-Modul zum Download. Der Rest wird im Video erklärt.

define KE_3DDrucker OctoPrint 192.168.178.21 5000
attr KE_3DDrucker apikey XXXXXXXXXXXXXXXXXX
attr KE_3DDrucker event-on-change-reading .*
attr KE_3DDrucker icon it_printer
attr KE_3DDrucker userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }

define KE_3DDruckerKamera IPCAM 192.168.178.21:8080
attr KE_3DDruckerKamera alias Kamera (3D-Drucker)
attr KE_3DDruckerKamera icon it_camera
attr KE_3DDruckerKamera path ?action=snapshot
attr KE_3DDruckerKamera storage ./www/snapshots

set WEB_Telegram sendImage ./www/snapshots/KE_3DDruckerKamera_snapshot.jpg

define n_KE_3dDruckerProgressTelegram notify KE_3DDrucker:progress_completion_percent:.* {}

{
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 20 == 0) {
            fhem("get KE_3DDruckerKamera image");
            fhem("sleep 2; set WEB_Telegram sendImage ./www/snapshots/KE_3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}

Newsletter

Trage Dich jetzt in meinen Newsletter ein und genieße dadurch viele Vorteile. Als Dankeschön erhältst Du Zugang zu exklusiven Inhalten!

Über diesen Weg verpasst Du keine Inhalte, bekommst jede Menge wertvolle Tipps und Informationen um Dein Zuhause smarter zu gestalten.

Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbare Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Hauptberuflich Softwareentwickler und Blogger, sowie Trainer im Bereich Smart Home.


** Wenn Du über einen dieser Links etwas kaufst, bekommen wir eine kleine Provision von Amazon. Das Produkt wird dadurch natürlich NICHT teurer.