Autor Thema: [70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker  (Gelesen 45341 mal)

Offline raiderxxl

  • Full Member
  • ***
  • Beiträge: 291
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #180 am: 07 Mai 2021, 14:37:46 »
Hi,
ich komm leider nicht weiter... kann mir jemand helfen?

Ich habe ein Userreading das mir die Restzeit in Stunden und Minuten anzeigt.. funktioniert!

progress_printTimeLeftHMS {strftime('%H:%M:%S', gmtime(ReadingsNum($NAME, "progress_printTimeLeft", 0)))},


Jetzt hätte ich gerne diese Zeitangabe der Aktuellen Uhrzeit hinzugefügt damit ich sowas wie eine ETA bekomme...
Theoretisch könnte man auch die Sekunden des readings "progress_printTimeLeft" der Zeit hinzufügen...

Hat mir jemand nen Tip oder hat sowas bereits eingebaut?

Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1817
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #181 am: 08 Mai 2021, 10:46:23 »
Hat mir jemand nen Tip oder hat sowas bereits eingebaut?

Ich hab mir sowas gebaut. In meiner MyUtils:
sub remaining_time {
    my $name = shift // return q{[remaining_time] No device name given!};
    my $now = time;
    my $remaining_time = ::ReadingsVal($name, q{progress_printTimeLeft}, 0);
    return $now + $remaining_time;
}

Wird im Device in ein userReading geschrieben mit:
job_endtime:progress_printTimeLeft.* {
    remaining_time($name);
},


Und im stateFormat dann passend ausgegeben (auch eine Subroutine in MyUtils):
sub format_state {
    my $name  = shift // return q{[format_state] No device name given!};
    my $state = lc ::ReadingsVal($name, q{state}, q{});

    return q{Kein aktiver Druckvorgang} if ($state ne q{printing});

    return sprintf
        q{Drucke Objekt <strong>%s</strong>, abgeschlossen am <strong>%s</strong>, %s verbleibend},
        ::ReadingsVal($name, q{job_name}, q{mit unbekanntem Dateinamen}),
        POSIX::strftime(q{%A, den %d.%m.%Y, um %X}, localtime ::ReadingsVal($name, q{job_endtime}, 0)),
        ::ReadingsVal($name, q{job_time_left_hr}, q{keine Restlaufzeit kalkuliert})
    if ($state eq q{printing});
}

Relevant ist die Zeile mit job_endtime.

Offline Lallysoft

  • New Member
  • *
  • Beiträge: 3
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #182 am: 08 Mai 2021, 19:26:42 »
Warum das im Modul nicht geht, ist weiterhin rätselhaft...

Kurzes Feedback: Mein Rätsel hat sich geklärt. Das Verhalten hing offenbar mit einem Thread zusammen, den ich in meiner myUtils erzeuge. Aus dem Thread heraus habe ich einen Lese-Zugriff auf ein $defs Reading ausgeführt. Die Codestrecke gibt es zwar schon seit vielen Jahren bei mir und die hat noch nie Probleme gemacht, aber eben jetzt im Zusammenhang mit dem JSON Modul. Ich habe jetzt den Zugriff eliminiert und keine Probleme mehr.

Ralf

Offline JWRu

  • Full Member
  • ***
  • Beiträge: 422
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #183 am: 09 Mai 2021, 10:26:54 »
Habe gerade versucht, meinen neuen 3D-Drucker über das Modul in FHEM zu integrieren.
Bei der Definition des Device erhalte ich die Meldung: "Please install Perl XML::Simple to use module OctoPrint".
Ich wollte mich vor der Installation über das Modul informieren und finde in der Dokumentation folgendes
The use of this module in new code is strongly discouraged. Other modules are available which provide more straightforward and consistent interfaces. In particular, XML::LibXML is highly recommended and you can refer to Perl XML::LibXML by Example for a tutorial introduction.Ich zögere deshalb, das Modul zu installieren. Funktioniert OctoPrint auch mit dem genannten XML::LibXML?
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Offline michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1802
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #184 am: 10 Mai 2021, 13:23:24 »
Habe gerade versucht, meinen neuen 3D-Drucker über das Modul in FHEM zu integrieren.
Bei der Definition des Device erhalte ich die Meldung: "Please install Perl XML::Simple to use module OctoPrint".
Ich wollte mich vor der Installation über das Modul informieren und finde in der Dokumentation folgendes
The use of this module in new code is strongly discouraged. Other modules are available which provide more straightforward and consistent interfaces. In particular, XML::LibXML is highly recommended and you can refer to Perl XML::LibXML by Example for a tutorial introduction.Ich zögere deshalb, das Modul zu installieren. Funktioniert OctoPrint auch mit dem genannten XML::LibXML?
Doku findest du hier: https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

Offline JWRu

  • Full Member
  • ***
  • Beiträge: 422
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #185 am: 10 Mai 2021, 13:29:02 »
Zitat
Doku findest du hier: https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/
Das habe ich zu allererst gelesen.
Ich finde darin aber nichts darüber, dass ich vor der Nutzung von OctoPrint ein Perl-Modul installieren muss.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Offline michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1802
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #186 am: 10 Mai 2021, 13:35:41 »
Das habe ich zu allererst gelesen.
Ich finde darin aber nichts darüber, dass ich vor der Nutzung von OctoPrint ein Perl-Modul installieren muss.
Das Perl  XML::Simple wird vom Modul benötigt. Das musst du einfach nachinstallieren, dann kannst du das Modul ganz normal benutzen. Die Installation der Perl Modules hängt von Deinem eingesetzten Betriebssystem ab. Einfach mal Google fragen.

Offline JWRu

  • Full Member
  • ***
  • Beiträge: 422
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #187 am: 10 Mai 2021, 13:38:30 »
Danke.
Die Antwort auf meine Frage ist also, dass es mit Perl XML::LibXML nicht funktioniert.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Offline raiderxxl

  • Full Member
  • ***
  • Beiträge: 291
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #188 am: 10 Mai 2021, 14:25:53 »
Hi,
ich komm leider nicht weiter... kann mir jemand helfen?

Ich habe ein Userreading das mir die Restzeit in Stunden und Minuten anzeigt.. funktioniert!

progress_printTimeLeftHMS {strftime('%H:%M:%S', gmtime(ReadingsNum($NAME, "progress_printTimeLeft", 0)))},


Jetzt hätte ich gerne diese Zeitangabe der Aktuellen Uhrzeit hinzugefügt damit ich sowas wie eine ETA bekomme...
Theoretisch könnte man auch die Sekunden des readings "progress_printTimeLeft" der Zeit hinzufügen...

Hat mir jemand nen Tip oder hat sowas bereits eingebaut?

Grüßle

Pascal

Lösung für alle anderen:

eta {POSIX::strftime("%H:%M:%S",localtime(time+ ReadingsNum($NAME, "progress_printTimeLeft", 0)))}
Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline Marlen

  • Hero Member
  • *****
  • Beiträge: 1124
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #189 am: 25 August 2021, 11:42:20 »
Hallo,

sehr schönes Modul.
Gibt es eine Möglichkeit einen Druck über Fhem zu starten?

Also, ich möchte das ganze System zeitgesteuert starten (Drucker & Octopi) und dann einen Druck anstoßen?
Geht das irgendwie?

LG
  Marlen
Raspberry Pi 3;CUL; 4xRauchmelder HM-Sec-SD-2; 1xHM-MOD-EM-8; 3xHM-MOD-Re-8; 8xHM-Sec-SCo; 1-wire-USB-Bus; 1-wire-WLAN-Bridge; Telegram; MQTT; Sonoff; Xiaomi V1; AlexaFhem.....

Offline Joker82

  • Newbie
  • Beiträge: 1
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #190 am: 05 September 2021, 21:51:25 »
Hallo,

ich habe das Modul installiert. Allerdings habe ich time out Probleme? Was habe ich falsch gemacht?

Hier ein Ausschnitt aus dem Log:

2021.09.05 21:44:45 5: OctoPrint Maskierung [OctoPrint_HD_HandleCmdQueue] - send command data =
2021.09.05 21:44:45 5: OctoPrint Maskierung [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2021.09.05 21:44:47 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] called function
2021.09.05 21:44:47 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] Data =
2021.09.05 21:44:47 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2021.09.05 21:44:47 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2021.09.05 21:44:47 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] ERROR = connect to http://192.168.178.85:80 timed out


021.09.05 21:47:40 5: OctoPrint Maskierung [OctoPrint_HD_HandleCmdQueue] - send command data =
2021.09.05 21:47:40 5: OctoPrint Maskierung [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2021.09.05 21:47:42 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] called function
2021.09.05 21:47:42 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] Data =
2021.09.05 21:47:42 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2021.09.05 21:47:42 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2021.09.05 21:47:42 5: OctoPrint Maskierung [OctoPrint_ReceiveCommand] ERROR = connect to http://192.168.178.85:80 timed out

Habe die neueste Octoprint Version, sowie die neueste Version vom Modul. Online Status steht auch als false. Ab und ab empfängt FHEM aber Daten. Verbunden ist Octoprint via WLAN…
« Letzte Änderung: 05 September 2021, 21:54:12 von Joker82 »

Offline mizu

  • New Member
  • *
  • Beiträge: 6
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #191 am: 06 September 2021, 11:13:40 »
Hallo

mir kommt die Adresse komisch vor.
Meine Octoprint Adresse ist XXX.XXX.XXX.XXX : 5000 60
X = IP Adresse,  5000 = OctoPrint Port,  60 = alle 60 Sek. refresch.

Gruß Mike

Offline laberlaib

  • Full Member
  • ***
  • Beiträge: 229
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #192 am: 07 September 2021, 22:48:31 »
Gibt es eine Möglichkeit einen Druck über Fhem zu starten?
https://www.mwinklerblog.de/smarthome/eigene-module/octoprint/
Zitat
job    

    cancel
    start

   Hier kann ein Druck der aktuell ausgewählten Datei gestartet, oder abgebrochen werden.

Allerdings müsstest Du das Laden der Datei wohl vorher direkt in OctoPrint machen (das Aktensymbol in der Liste ist mit "Laden" beschriftet).
Und dann halt per DOIF o.ä. Schaltsteckdose des Druckers anschalten, warten bis Octoprint da ist und drucken.
Probiert hab ichs nicht, würde sich aber zumindest so lesen.

Hallo,

ich habe das Modul installiert. Allerdings habe ich time out Probleme? Was habe ich falsch gemacht?

Hier ein Ausschnitt aus dem Log:
[...]
Habe die neueste Octoprint Version, sowie die neueste Version vom Modul. Online Status steht auch als false. Ab und ab empfängt FHEM aber Daten. Verbunden ist Octoprint via WLAN…
Api-key und so alles eingetragen?

@michael.winkler:
Erstmal vielen Dank für das Modul - es ist ungemein praktisch sich via FHEM (Signal) über den Fortschritt unterrichten zu lassen und dann nach dem Druck alles automatisch abzuschalten - Fällt einem dann schon leichter, das DIng mal anzuschalten und kurz aus dem Haus zu gehen.
Ich hätte eine Featureanfrage: Kann man das Plugin GPIO-Control (https://plugins.octoprint.org/plugins/gpiocontrol/) irgendwie unterstützbar machen?
Hintergrund ist, dass mein drucker in einem dunkeln Raum steht und ich irgendwie Licht anschalten muss, um über die Kamera was zu sehen. Und dazu hab ich mir eine LED-Leiste an den Raspi gebastelt, die ich dann halt auch gerne direkt aus FHEM mitschalten würde z.B. vor dem Versenden von Fotos o.ä.

Edit:
Nach dem ich mir das Modul genauer angeschaut habe, denke ich, dass das Plugin ein API bereit stellen muss, was es nicht macht.
Allerdings gibt es andere GPIO-Kontrollen mit API, die werd ich mal angucken und dann mich nochmal melden.
« Letzte Änderung: 07 September 2021, 22:58:00 von laberlaib »
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Offline Dracolein

  • Full Member
  • ***
  • Beiträge: 469
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #193 am: 14 November 2021, 15:28:34 »
Grüße zusammen,

Frage wegen folgenden Problems:
Das Modul läuft anfangs bei mir, wenn ein Druckprojekt läuft.
Aber nach einer Weile ändern sich die Readings

"error" --> "Printer is not operational"
"online" --> "false"

während andere Readings weiterhin im 45-Sek Takt aktualisiert werden. Alle Readings namens progress* oder oder temperature* werden weiterhin aktualisiert.

Zitat
Internals:
   CFGFN     
   DEF        192.168.178.158
   FUUID      6190d023-f33f-4dec-e83e-960a3d3ae1b5bb6f
   INTERVAL   45
   NAME       AnyCubicI3MegaS
   NR         7667
   STATE      Printing
   TYPE       OctoPrint
   READINGS:
     2021-11-14 13:54:13   error           Printer is not operational
     2021-11-14 12:49:52   job_averagePrintTime 10392.917468993
     2021-11-14 15:27:40   job_estimatedPrintTime 24766.5814502716
     2021-11-14 15:27:40   job_filament_tool0_length 34098.0580499921
     2021-11-14 15:27:40   job_filament_tool0_volume 0
     2021-11-14 15:27:40   job_file_date   1636893786
     2021-11-14 15:27:40   job_file_display Schleich_Torbogen.gcode
     2021-11-14 15:27:40   job_file_name   Schleich_Torbogen.gcode
     2021-11-14 15:27:40   job_file_origin local
     2021-11-14 15:27:40   job_file_path   Schleich_Torbogen.gcode
     2021-11-14 15:27:40   job_file_size   8515079
     2021-11-14 12:49:52   job_lastPrintTime 10392.917468993
     2021-11-14 15:27:40   job_user        d......o
     2021-11-14 15:26:55   online          false
     2021-11-14 15:27:40   progress_completion 18.4254661642012
     2021-11-14 15:27:40   progress_completion_percent 18
     2021-11-14 15:27:40   progress_filepos 1568943
     2021-11-14 15:27:40   progress_printTime 5329
     2021-11-14 15:27:40   progress_printTimeLeft 23856
     2021-11-14 15:27:40   progress_printTimeLeftOrigin linear
     2021-11-14 15:27:40   state           Printing
     2021-11-14 15:27:40   temperature_bed_actual 60.5
     2021-11-14 15:27:40   temperature_bed_offset 0
     2021-11-14 15:27:40   temperature_bed_target 60
     2021-11-14 15:27:40   temperature_tool0_actual 204.6
     2021-11-14 15:27:40   temperature_tool0_offset 0
     2021-11-14 15:27:40   temperature_tool0_target 205
   helper:
     ADDRESS    192.168.178.158
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     658.............................94679B
   event-on-change-reading .*
   icon       it_printer
   room       3DDruck
   userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Offline Dracolein

  • Full Member
  • ***
  • Beiträge: 469
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #194 am: 18 November 2021, 08:30:24 »
Nochmal nachgefragt; bin ich der einzige mit der Problematik? Liegt das eventuell an meiner OctoPi / Octoprint Version ?(nutze es erst seit wenigen Tagen)
Bzgl. des sich nicht aktualisierenden Readings "online" habe ich zwischenzeitlich ältere Nachrichten in diesem Thread gesehen, konnte jedoch keinen Workaround finden.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

 

decade-submarginal