[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker

Begonnen von michael.winkler, 31 Dezember 2017, 16:56:28

Vorheriges Thema - Nächstes Thema

venuel79

Super Teil, doch leider hab ich seit einieger zeit das Problem das meine Prozent nicht mehr auf 100% springen,
somit ist auch mein doif nicht mehr zu gebrauchen :(
wenn ein druck fertig ist=

progress_completion  99.7024320860736 und
progress_completion_percent   99
Status springt wie gewohnt von printing auf Operational


Woran kann das liegen???

Martin2010

wenn ich in Fhem ein Octoprint Gerärt einrichten will, kommt diese Fehlermeldung: Cannot load module OctoPrint
Die .pm liegt im FHEM-Ordner!

Woran kann das liegen?

Esjay

Hast du einen Neustart gemacht? Wie hast du die Datei kopiert? Passen die Rechte auf die Datei?
Grüße

Martin2010

Habe den Fehler gefunden! Da ist wohl was beim kopieren der Datei schief gelaufen. ;D
es läuft!
Danke!!!

masterpete23

Moin,

ich weiß nicht, ob ich hier richtig bin aber hat mit Octoprint zu tun.
Derzeit lasse ich mir alle 20% eine Nachricht senden mit einem Bild der Kamera.
Leider kommt sie meistens nur bei 0%,20%,40%,60%,80% nicht aber bei 100% da er vermutlich dann von "printing" auf etwas anderes springt.
Kann mir wer helfen und einen Tipp geben wie ich auch bei "fertig" ein Notify erhalte.
Am besten mit der Veränderung des jetzigen
Internals:
   DEF        MarieLuise:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 20 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set teleBot sendImage ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}
   FUUID      5c49df8f-f33f-a3b0-191c-1e585c1a827b7c9b
   NAME       n_MarieLuiseProgressTelegram
   NOTIFYDEV  MarieLuise
   NR         602
   NTFY_ORDER 50-n_MarieLuiseProgressTelegram
   REGEXP     MarieLuise:progress_completion_percent:.*
   STATE      2019-12-20 04:39:24
   TRIGGERTIME 1576813164.90799
   TYPE       notify
   READINGS:
     2019-12-14 18:47:56   state           active
Attributes:
   group      Kellerlogik
   room       Logik


Der Drucker steht ja immer auf 100% somit geht es wohl nicht nur auf die 100 abzufragen.
Ich dachte schon, dass man den Wechsel von davor auf 100% abfragt - weiß nur nicht wie:
Internals:
   DEF        192.168.0.9 5000
   FUUID      5c49df8d-f33f-a3b0-2b3a-19e6ca6392d46b5e
   INTERVAL   45
   NAME       MarieLuise
   NR         596
   STATE      Operational
   TYPE       OctoPrint
   READINGS:
     2019-12-20 08:11:43   job_averagePrintTime 19404.4396391974
     2019-12-20 08:11:43   job_estimatedPrintTime 19272.4541983533
     2019-12-20 08:11:43   job_filament_tool0_length 14900.354248065
     2019-12-20 08:11:43   job_filament_tool0_volume 35.83955200998
     2019-12-20 08:11:43   job_file_date   1574892193
     2019-12-20 08:11:43   job_file_display AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_name   AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_origin local
     2019-12-20 08:11:43   job_file_path   AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_size   20951221
     2019-12-20 08:11:43   job_lastPrintTime 19417.6965084784
     2019-12-20 08:11:43   job_user        dummy
     2019-12-19 17:46:00   online          true
     2019-12-20 08:11:43   progress_completion 100
     2019-12-20 08:11:43   progress_completion_percent 100
     2019-12-20 08:11:43   progress_filepos 20951221
     2019-12-20 08:11:43   progress_printTime 19417
     2019-12-20 08:11:43   progress_printTimeLeft 0
     2019-12-20 04:38:39   progress_printTimeLeftOrigin genius
     2019-12-20 08:11:43   state           Operational
     2019-12-20 08:11:43   temperature_bed_actual 18.5
     2019-12-20 08:11:43   temperature_bed_offset 0
     2019-12-20 08:11:43   temperature_bed_target 0
     2019-12-20 08:11:43   temperature_tool0_actual 17.8
     2019-12-20 08:11:43   temperature_tool0_offset 0
     2019-12-20 08:11:43   temperature_tool0_target 0
   helper:
     ADDRESS    192.168.0.9
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     8F128FAE9D2346B6BFE01739FA1E8934
   event-on-change-reading .*
   icon       it_printer
   room       Keller
   userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }

Icinger

Einfach auf
     2019-12-20 08:11:43   state           Operational
triggern.....
Das sollte nur aufpoppen, wenn der Drucker von "printing" eben auf "operational" springt.
Naja, wird auch triggern, wenn du zB einen Druck abbrichst oder so, aber das ist ja verschmerzbar, oder?

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

masterpete23

Danke. Da muss ich mal nachlesen wie das funktioniert.

Gesendet von meinem POCO F1 mit Tapatalk


michael.winkler

Zitat von: masterpete23 am 20 Dezember 2019, 08:12:59
Moin,

ich weiß nicht, ob ich hier richtig bin aber hat mit Octoprint zu tun.
Derzeit lasse ich mir alle 20% eine Nachricht senden mit einem Bild der Kamera.
Leider kommt sie meistens nur bei 0%,20%,40%,60%,80% nicht aber bei 100% da er vermutlich dann von "printing" auf etwas anderes springt.
Kann mir wer helfen und einen Tipp geben wie ich auch bei "fertig" ein Notify erhalte.
Am besten mit der Veränderung des jetzigen
Internals:
   DEF        MarieLuise:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 20 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set teleBot sendImage ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}
   FUUID      5c49df8f-f33f-a3b0-191c-1e585c1a827b7c9b
   NAME       n_MarieLuiseProgressTelegram
   NOTIFYDEV  MarieLuise
   NR         602
   NTFY_ORDER 50-n_MarieLuiseProgressTelegram
   REGEXP     MarieLuise:progress_completion_percent:.*
   STATE      2019-12-20 04:39:24
   TRIGGERTIME 1576813164.90799
   TYPE       notify
   READINGS:
     2019-12-14 18:47:56   state           active
Attributes:
   group      Kellerlogik
   room       Logik


Der Drucker steht ja immer auf 100% somit geht es wohl nicht nur auf die 100 abzufragen.
Ich dachte schon, dass man den Wechsel von davor auf 100% abfragt - weiß nur nicht wie:
Internals:
   DEF        192.168.0.9 5000
   FUUID      5c49df8d-f33f-a3b0-2b3a-19e6ca6392d46b5e
   INTERVAL   45
   NAME       MarieLuise
   NR         596
   STATE      Operational
   TYPE       OctoPrint
   READINGS:
     2019-12-20 08:11:43   job_averagePrintTime 19404.4396391974
     2019-12-20 08:11:43   job_estimatedPrintTime 19272.4541983533
     2019-12-20 08:11:43   job_filament_tool0_length 14900.354248065
     2019-12-20 08:11:43   job_filament_tool0_volume 35.83955200998
     2019-12-20 08:11:43   job_file_date   1574892193
     2019-12-20 08:11:43   job_file_display AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_name   AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_origin local
     2019-12-20 08:11:43   job_file_path   AI3M_reno.gcode
     2019-12-20 08:11:43   job_file_size   20951221
     2019-12-20 08:11:43   job_lastPrintTime 19417.6965084784
     2019-12-20 08:11:43   job_user        dummy
     2019-12-19 17:46:00   online          true
     2019-12-20 08:11:43   progress_completion 100
     2019-12-20 08:11:43   progress_completion_percent 100
     2019-12-20 08:11:43   progress_filepos 20951221
     2019-12-20 08:11:43   progress_printTime 19417
     2019-12-20 08:11:43   progress_printTimeLeft 0
     2019-12-20 04:38:39   progress_printTimeLeftOrigin genius
     2019-12-20 08:11:43   state           Operational
     2019-12-20 08:11:43   temperature_bed_actual 18.5
     2019-12-20 08:11:43   temperature_bed_offset 0
     2019-12-20 08:11:43   temperature_bed_target 0
     2019-12-20 08:11:43   temperature_tool0_actual 17.8
     2019-12-20 08:11:43   temperature_tool0_offset 0
     2019-12-20 08:11:43   temperature_tool0_target 0
   helper:
     ADDRESS    192.168.0.9
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     8F128FAE9D2346B6BFE01739FA1E8934
   event-on-change-reading .*
   icon       it_printer
   room       Keller
   userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }


Ich habe mir ein notify Device mit folgender DEF angelegt und lasse mich da mit Telegram benachrichtigen


Keller.3dDrucker:progress_completion:.100 {
my $GroupID   = "xyz";
        my $GroupChar = chr(64);
        fhem "set teleBot message $GroupChar$GroupID Drucker ist fertig";
}

masterpete23


StephanFHEM

Ich hatte heute ein komisches Verhalten mit dem Modul. Das Reading Online stand auf false obwohl ich über OctoPi Zugriff hatte und auch über das Modul alle Daten normal empfangen habe. Ist das so gewollt oder ein Fehler? Ich habe darauf in TabletUI eine Anzeige aufgebaut mit Ausblenden wenn Offline und müsste das dann komplett umbauen...

Frank_Huber

Nachdem Octoprint ein Update gezogen hat bekomme ich in FHEM keine Daten mehr.
laut Log scheint es am nicht vorhandenen API Key zu liegen.

2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_GetStatus] called function
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_SendCommand] called function CMD = 
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_SendCommand] using unencrypted connection via HTTP
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_SendCommand] - append to queue http://127.0.0.1:5000/api/job?&apikey=0
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command url  = http://127.0.0.1:5000/api/job?&apikey=0
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command data =
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_SendCommand] called function CMD = 
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_SendCommand] using unencrypted connection via HTTP
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_SendCommand] - append to queue http://127.0.0.1:5000/api/printer?exclude=state,sd&apikey=0
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] called function
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_job] Data = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>403 Forbidden</title>
<h1>Forbidden</h1>
<p>You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.</p>

2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_job] JSON =
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command url  = http://127.0.0.1:5000/api/printer?exclude=state,sd&apikey=0
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command data =
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] called function
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_printer] Data = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>403 Forbidden</title>
<h1>Forbidden</h1>
<p>You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.</p>

2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2020.03.17 10:56:56 5: OctoPrint OctoPrint [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA


Wie lässt sich das wieder zum laufen kriegen?

Frank_Huber

OK, gefunden.
Der API-Key kann per Attribut gesetzt werden.

Und schon läuft die Kiste wieder. :-)

Laserhelge

Ich hab auch schon, wie StefanFHEM, des öfteren beobachtet, dass das Reading "online" auf false steht während alle anderen Readings ganz normal aktualisiert werden.
Woran kann das liegen? Da ich das Reading dafür nutze, anzuzeigen ob der Drucker an oder aus ist, wird mir oft der falsche Zustand angezeigt.

Gruß, Klaus
FHEM auf Raspberry 4 / CUL / KNX / Loxone Miniserver

michael.winkler

Zitat von: Laserhelge am 24 April 2020, 08:19:55
Ich hab auch schon, wie StefanFHEM, des öfteren beobachtet, dass das Reading "online" auf false steht während alle anderen Readings ganz normal aktualisiert werden.
Woran kann das liegen? Da ich das Reading dafür nutze, anzuzeigen ob der Drucker an oder aus ist, wird mir oft der falsche Zustand angezeigt.

Gruß, Klaus
Welche Version hast Du im Einsatz?

Laserhelge

Ich hab  bei mir die v0.0.11 (12.10.2018). Hab bisher keine neuere Version gefunden.

Gruß, Klaus
FHEM auf Raspberry 4 / CUL / KNX / Loxone Miniserver