FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: michael.winkler am 31 Dezember 2017, 16:56:28

Titel: [70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 31 Dezember 2017, 16:56:28
Hallo,

ich habe zum Steuern von OctoPrint ein neues Modul erstellt.

Beschreibung Installation & Konfiguration Octoprit https://mwinkler.jimdo.com/anet-a8/software/octoprint/
Beschreibung Integration Octoprint & Webcam https://mwinkler.jimdo.com/smarthome/sonstiges/octoprint/

Beschreibung vom Modul findet Ihr hier https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

Diese Modul befindet sich aktuell im BETA Status. Benutzung nur auf eigene Gefahr!

Definition in FHEM
Zum Anlegen eines OctoPrint Devices könnt Ihr folgende Definitionen verwenden:
define <Name> OctoPrint <IP-Adresse> [ <port> [ <poll-interval> ]]

Aktuell werden nur ein paar Readings ausgelesen. Zusätzlich können ein paar Funktionen ausgeführt werden.

############################################################################
# 2018-10-12, v0.0.11
#
# v0.0.11
# - BUGFIX:  https://forum.fhem.de/index.php/topic,81929.msg844975.html#msg844975
#
# v0.0.10
# - BUGFIX:  Readings mit 0 wurden nicht geschrieben
# - CHANGE:  readingsBulkUpdateIfChanged to readingsBulkUpdate
#
# v0.0.9
# - BUGFIX:  Reading "online"
#
# v0.0.8
# - FEATURE: Reading "online"
#
# v0.0.7
# - BUGFIX:  Logeinträge PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4547
#
# v0.0.6
# - BUGFIX:  https://forum.fhem.de/index.php/topic,81929.msg780110.html#msg780110
#
# v0.0.5
# - BUGFIX:  https://forum.fhem.de/index.php/topic,81929.msg756900.html#msg756900
#
# v0.0.3
# - BUGFIX:  Readings anzeigen von Umlauten
# - CHANGE:  Send Data nonBlocking
# - FEATURE: Add Support psucontrol inkl. set Befehle turnPSUOn, turnPSUOff und togglePSU (Aktivierung über Attribut "plugin_psucontrol")
#            Neue Set Befehle move_axis_x, move_axis_y, move_axis_z und extrude
#
# v0.0.2 BETA
# - FEATURE: Navigieren (gohome)
#            Shutdown / Reboot / Restart (OctoPrint)
#            send_gcode z.B. M500
#
# v0.0.1 BETA
# - FEATURE: Read div. Readings
#            start/stop/connect/disconnect printer

Gruß
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 31 Dezember 2017, 17:06:10
Ich hab heute begonnen, Octo über MQTT an FHEM zu binden :)


   IODev      myMQTT
   NAME       CrealityCR10s
   NOTIFYDEV  octoprint
   NR         1055759
   STATE      incoming publish received
   TYPE       MQTT_DEVICE
   READINGS:
     2017-12-31 17:04:22   Print           {"progress": 53, "location": "local", "path": "money_cat.gco"}
     2017-12-31 17:04:22   Print_location  local
     2017-12-31 17:04:22   Print_path      money_cat.gco
     2017-12-31 17:04:22   Print_progress  53
     2017-12-31 15:54:15   TBed            {"actual": 70.0, "target": 70.0}
     2017-12-31 15:54:15   TBed_actual     70
     2017-12-31 15:54:15   TBed_target     70
     2017-12-31 15:54:09   TTool0          {"actual": 210.0, "target": 210.0}
     2017-12-31 15:54:09   TTool0_actual   210
     2017-12-31 15:54:09   TTool0_target   210
     2017-12-31 17:04:22   transmission-state incoming publish received
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 31 Dezember 2017, 17:20:40
Kannst du da auch Befehle an OctoPrint schicken?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 31 Dezember 2017, 17:26:29
Theoretisch ja, wenn ich die mittels publishSet Topics rüberschicke......
Hab ich allerdings noch nicht probiert, da mein Drucker noch in Hongkong auf seinen Flug wartet :D

lg, Stefan
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 01 Januar 2018, 23:17:58
Das erste Update ist da. Download ist im ersten Post dieses Threads
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 02 Januar 2018, 01:29:47
Wow, awesome!  :D

Danach habe ich schon länger gesucht  8)

Werde ich gleich mal testen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: oli82 am 10 Januar 2018, 13:05:40
Sehr interessantes Modul.
Was halt toll wäre, wenn man die GPIO des Raspberry über das Modul steuern könnte.
Ich schalte meinen Drucker über das PSU Plugin ein (setzt und list GPIOs) oder die Beleuchtung über custom Commands.
Evtl lässt sich das ja abbilden
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Januar 2018, 13:55:23
Sehr interessantes Modul.
Was halt toll wäre, wenn man die GPIO des Raspberry über das Modul steuern könnte.
Ich schalte meinen Drucker über das PSU Plugin ein (setzt und list GPIOs) oder die Beleuchtung über custom Commands.
Evtl lässt sich das ja abbilden
Wenn ich das PlugIn richtig gelesen habe, müsste das über einen set send_gcode schon gehen. Hier kannst du gcodes an den Drucker senden. z.B M80

Kannst Du das mal probieren?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: oli82 am 10 Januar 2018, 14:40:52
Gerne!

Geht leider nicht, da OctoPrint nur auf GCode reagiert, wenn der Drucker verbunden ist.
Das ist er hier ja leider nicht :(
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Esjay am 13 Januar 2018, 11:36:19
Guten Morgen Michael,
du gehst ja gerade ganz schon vorwärts. Das Modul hier, Echo Dot Modul übernommen, ein haufen Blog einträge usw.
Mein 3D Drucker druckt sich gerade ein, und nebenbei werde ich OctoPrint ebenfalls einrichten, deswegen hier schonmal vielen Dank, dass du ein Modul dafür entwickelst.
Bin gespannt, was noch alles so kommt.

Grüße
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Esjay am 18 Januar 2018, 20:34:02
Guten Abend,
ich habe das Modul bei mir nun auch im Einsatz. Bisher ohne Probleme. Ich hätte allerdings noch eine Frage. Gibt es eigentlich einen state, der signalisiert, dass der Druck fertig ist? Bei mir ist state dauerhaft "Operational", auch nachdem der Druck fertig ist. Vll habe ich auch noch etwas übersehen.

Grüße

Edit: Ich vermute ich nehme alles zurück, und behaupte das Gegenteil. Habe eben noch nicht ganz den Ablauf verstanden, und hatte den Druck manuell über den Drucker gestartet. Nun da ich ihn direkt über den Server gejagd habe habe ich das reading Printing, daher gehe ich davon aus, dass das finish auch angezeigt wird.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 24 Januar 2018, 17:47:08
Hi,

was ich mir noch wünschen würde, ist dass die Kosten von dem Kosten Plugin nach dem Druck gespeichert werden.

Ich würde nämlich gerne mit einer Funksteckdose den Drucker abschalten. Allerdings verschwindet, sobald der Drucker keinen Strom mehr hat in Octoprint die Kosten. Es wäre somit also schön diese vorher in einem Reading zu speichern und anschließend die Steckdose zu triggern.

Wäre super, wenn das machbar wäre!

Danke und Gruß,

Fixel
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 24 Januar 2018, 18:50:38
Hi,

was ich mir noch wünschen würde, ist dass die Kosten von dem Kosten Plugin nach dem Druck gespeichert werden.

Ich würde nämlich gerne mit einer Funksteckdose den Drucker abschalten. Allerdings verschwindet, sobald der Drucker keinen Strom mehr hat in Octoprint die Kosten. Es wäre somit also schön diese vorher in einem Reading zu speichern und anschließend die Steckdose zu triggern.

Wäre super, wenn das machbar wäre!

Danke und Gruß,

Fixel
Welche PlugIn verwendest du hier? Kannsz Du mir die Webadresse des PlugIns zukommen lassen?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 24 Januar 2018, 18:53:16
Welche PlugIn verwendest du hier? Kannsz Du mir die Webadresse des PlugIns zukommen lassen?

Gerne doch:

https://plugins.octoprint.org/plugins/costestimation/

Ich nutze dieses, es gibt allerdings auch noch ein weiteres Plugin mit fast gleichem Namen (Vorsicht!).
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 24 Januar 2018, 23:23:57
Hallo,

auf Seite1 habe ich Euch eine neue Version des Modules.

Bitte beachtet auch die angepasste Dokumentation https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

# 2018-01-24, v0.0.3
#
# v0.0.3
# - BUGFIX:  Readings anzeigen von Umlauten
# - CHANGE:  Send Data nonBlocking
# - FEATURE: Add Support psucontrol inkl. set Befehle turnPSUOn, turnPSUOff und togglePSU (Aktivierung über Attribut "plugin_psucontrol")
#            Neue Set Befehle move_axis_x, move_axis_y, move_axis_z und extrude

Sehr interessantes Modul.
Was halt toll wäre, wenn man die GPIO des Raspberry über das Modul steuern könnte.
Ich schalte meinen Drucker über das PSU Plugin ein (setzt und list GPIOs) oder die Beleuchtung über custom Commands.
Evtl lässt sich das ja abbilden
Ist jetzt eingebaut. Aktivierung siehe Doku.

Gerne doch:

https://plugins.octoprint.org/plugins/costestimation/

Ich nutze dieses, es gibt allerdings auch noch ein weiteres Plugin mit fast gleichem Namen (Vorsicht!).
PlugIn habe ich mir angeschaut. Leider gibt es keine Möglichkeit diese Information über die OctoPrint API abzurufen. Vielleicht kannst Du mal auf den Entwickler des PlugIns zugehen, der hat dann eventuell die Möglichkeit eine API für sein PlugIn bereitzustellen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 24 Januar 2018, 23:29:11
Zitat
PlugIn habe ich mir angeschaut. Leider gibt es keine Möglichkeit diese Information über die OctoPrint API abzurufen. Vielleicht kannst Du mal auf den Entwickler des PlugIns zugehen, der hat dann eventuell die Möglichkeit eine API für sein PlugIn bereitzustellen.

Sehr schade, danke für deine Mühe! Werde das mal auf meine Liste setzen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: oli82 am 25 Januar 2018, 11:36:29
# 2018-01-24, v0.0.3
#
# v0.0.3
# - BUGFIX:  Readings anzeigen von Umlauten
# - CHANGE:  Send Data nonBlocking
# - FEATURE: Add Support psucontrol inkl. set Befehle turnPSUOn, turnPSUOff und togglePSU (Aktivierung über Attribut "plugin_psucontrol")
#            Neue Set Befehle move_axis_x, move_axis_y, move_axis_z und extrude
Ist jetzt eingebaut. Aktivierung siehe Doku.
Geiler Sch****!
Danke für die Umsetzung.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 28 Januar 2018, 04:04:49
Habe mein LogFile länger nicht gecheckt.

Habe Seit mehreren Tagen recht häufig diese Log Einträge im Fhem Log:

2018.01.28 04:02:30 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4424.
2018.01.28 04:02:30 1: stacktrace:
2018.01.28 04:02:30 1:     main::__ANON__                      called by fhem.pl (4424)
2018.01.28 04:02:30 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_OctoPrint.pm (467)
2018.01.28 04:02:30 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (458)
2018.01.28 04:02:30 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (242)
2018.01.28 04:02:30 1:     main::OctoPrint_ReceiveCommand      called by FHEM/HttpUtils.pm (576)
2018.01.28 04:02:30 1:     main::__ANON__                      called by fhem.pl (686)

Ist das bekannt?

PS: Habe mir eben die neue Version geladen, um das aus zu schließen.

EDIT: Um die Meldungen zu stoppen, wollte ich das attr disable setzen. Scheint in dem Modul wohl noch nicht implementiert zu sein. Wäre wahrscheinlich nicht schlecht dies bei Gelegenheit zu erweitern. :)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 28 Januar 2018, 16:38:00
Habe mein LogFile länger nicht gecheckt.

Habe Seit mehreren Tagen recht häufig diese Log Einträge im Fhem Log:

2018.01.28 04:02:30 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4424.
2018.01.28 04:02:30 1: stacktrace:
2018.01.28 04:02:30 1:     main::__ANON__                      called by fhem.pl (4424)
2018.01.28 04:02:30 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_OctoPrint.pm (467)
2018.01.28 04:02:30 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (458)
2018.01.28 04:02:30 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (242)
2018.01.28 04:02:30 1:     main::OctoPrint_ReceiveCommand      called by FHEM/HttpUtils.pm (576)
2018.01.28 04:02:30 1:     main::__ANON__                      called by fhem.pl (686)

Ist das bekannt?

PS: Habe mir eben die neue Version geladen, um das aus zu schließen.

EDIT: Um die Meldungen zu stoppen, wollte ich das attr disable setzen. Scheint in dem Modul wohl noch nicht implementiert zu sein. Wäre wahrscheinlich nicht schlecht dies bei Gelegenheit zu erweitern. :)
Ja das kann ich noch einbauen. Sind die log Einträge mit der neuen Version weg?


Gesendet von iPhone mit Tapatalk
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 28 Januar 2018, 17:42:37
Ja das kann ich noch einbauen. Sind die log Einträge mit der neuen Version weg?


Gesendet von iPhone mit Tapatalk

Nein, habe die Def nun auch erstmal gelöscht, da die log Einträge minütlich waren.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 28 Januar 2018, 23:30:33
Nein, habe die Def nun auch erstmal gelöscht, da die log Einträge minütlich waren.
Habe das Modul aktualisiert. Kannst du es noch mal herunterladen und testen? Download wie immer auf Seite 1
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 29 Januar 2018, 15:46:11
Habe das Modul aktualisiert. Kannst du es noch mal herunterladen und testen? Download wie immer auf Seite 1

Danke für die schnelle Hilfe.

Hat aber anscheinend nichts gebracht :(

2018.01.29 15:44:16 1:     main::__ANON__                      called by fhem.pl (4437)
2018.01.29 15:44:16 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_OctoPrint.pm (469)
2018.01.29 15:44:16 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (460)
2018.01.29 15:44:16 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (244)
2018.01.29 15:44:16 1:     main::OctoPrint_ReceiveCommand      called by FHEM/HttpUtils.pm (576)
2018.01.29 15:44:16 1:     main::__ANON__                      called by fhem.pl (686)

Edit: Sag bescheid, falls du noch verbose 5 Logs etc brauchst.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 29 Januar 2018, 16:32:50
Danke für die schnelle Hilfe.

Hat aber anscheinend nichts gebracht :(

2018.01.29 15:44:16 1:     main::__ANON__                      called by fhem.pl (4437)
2018.01.29 15:44:16 1:     main::readingsBulkUpdateIfChanged   called by ./FHEM/70_OctoPrint.pm (469)
2018.01.29 15:44:16 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (460)
2018.01.29 15:44:16 1:     main::OctoPrint_expandJSON          called by ./FHEM/70_OctoPrint.pm (244)
2018.01.29 15:44:16 1:     main::OctoPrint_ReceiveCommand      called by FHEM/HttpUtils.pm (576)
2018.01.29 15:44:16 1:     main::__ANON__                      called by fhem.pl (686)

Edit: Sag bescheid, falls du noch verbose 5 Logs etc brauchst.
Funktioniert das Modul ansonsten? Bekommst Du Readings vom OctoPrint rein?

Schick mir mal ein Log mit Verbose 5 zu. Eventuell fällt mir da noch was auf.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 29 Januar 2018, 17:08:42
Funktioniert das Modul ansonsten? Bekommst Du Readings vom OctoPrint rein?

Readings kommen an.

Hier das Verbose 5 Log (Der Drucker ist aus, die Log Einträge kommen aber auch bei ausgeschaltem Drucker.)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 30 Januar 2018, 23:41:30
Readings kommen an.

Hier das Verbose 5 Log (Der Drucker ist aus, die Log Einträge kommen aber auch bei ausgeschaltem Drucker.)
Habe das Modul aktualisiert. Kannst du es noch mal herunterladen und testen? Download wie immer auf Seite 1
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 30 Januar 2018, 23:59:18
Hey,

leider habe ich auch in der Version einige Warnings im Log. (Siehe Anhang)

Hat denn niemand anderes ähnliche Log-Einträge?


Danke nochmal für die Bemühungen!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 31 Januar 2018, 00:02:23
Hey,

leider habe ich auch in der Version einige Warnings im Log. (Siehe Anhang)

Hat denn niemand anderes ähnliche Log-Einträge?


Danke nochmal für die Bemühungen!
Laut Log ist der Fehler immer noch an der gleichen Stelle. Was aber nicht mehr sein kann, da sich einige Zeilen verschoben haben. Bist du Dir sicher dass du die richtige Version eingespielt hast? Eventuell musst du noch ein Shutdown restart ausführen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 31 Januar 2018, 00:06:06
Laut Log ist der Fehler immer noch an der gleichen Stelle. Was aber nicht mehr sein kann, da sich einige Zeilen verschoben haben. Bist du Dir sicher dass du die richtige Version eingespielt hast? Eventuell musst du noch ein Shutdown restart ausführen.

Argh! Hab vergessen das Modul zu reloaden... scheint die ersten Paar sekunden keine Einträge zu erstellen. Sieht gut aus.

Sorry für den dummen Fehler...

Werde mich Notfalls morgen nochmal Melden. Geht nun erstmal ins Bett.  ;D

Edit: Danke nochmal für den schnellen fix! :)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 13 Februar 2018, 16:51:54
Blöde Frage, aber welches event wird denn generiert, wenn ein druck fertig ist?

Bin gerade am drucken und hätte gerne, dass die Steckdose automatisch aus geht, wenn der Druck fertig ist  ;D
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 13 Februar 2018, 16:55:36
Blöde Frage, aber welches event wird denn generiert, wenn ein druck fertig ist?

Bin gerade am drucken und hätte gerne, dass die Steckdose automatisch aus geht, wenn der Druck fertig ist  ;D
der State sollte sich ändern. Bzw. progress_completion sollte bei 100 sein. Drucke gerade selber, kann es Dir in ca. 90 Minuten ganz genau sagen ;-)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 13 Februar 2018, 17:52:56
Blöde Frage, aber welches event wird denn generiert, wenn ein druck fertig ist?

Bin gerade am drucken und hätte gerne, dass die Steckdose automatisch aus geht, wenn der Druck fertig ist  ;D
ok! State spring von Printing auf Operational und progress_completion auf 100. Beides kannst du verwenden um dann eine Aktion auszuführen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fixel2012 am 13 Februar 2018, 18:07:17
ok! State spring von Printing auf Operational und progress_completion auf 100. Beides kannst du verwenden um dann eine Aktion auszuführen.
Danke schön!

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: justme1968 am 06 März 2018, 14:27:26
hallo michael,

ich verwende seit ein paar tagen auch dein modul und es funktioniert sehr gut.

vielleicht kannst du zusätzlich zu state noch ein reading einbauen das den letzen zustand hat. also bevor state neu geschrieben wird den alten wert in das zusätzlich reading stecken. natürlich nur bei änderung.

das würde es einfacher machen in einem notify zu unterscheiden ob der drucker mit drucken fertig ist oder ob er nach dem einschalten gerade online gekommen ist.
 
gruss
  andre
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 07 März 2018, 09:38:31
hallo michael,

ich verwende seit ein paar tagen auch dein modul und es funktioniert sehr gut.

vielleicht kannst du zusätzlich zu state noch ein reading einbauen das den letzen zustand hat. also bevor state neu geschrieben wird den alten wert in das zusätzlich reading stecken. natürlich nur bei änderung.

das würde es einfacher machen in einem notify zu unterscheiden ob der drucker mit drucken fertig ist oder ob er nach dem einschalten gerade online gekommen ist.
 
gruss
  andre
Das wäre natürlich möglich. Nur wo fängt man an und wo hört man auf!

Hilft Dir dieser Thread Eintrag eventuell weiter? https://forum.fhem.de/index.php/topic,81929.msg765968.html#msg765968

Gruß
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Jam2 am 11 März 2018, 22:10:40
Vielen Dank für die Integrierung.

Beim send_gcode wird leider nur das erste Element im Array gesendet (Bspw. G28 X - wird zu G28)

Ich hab leider noch keine Ahnung von Perl und FHEM und hab daher nicht gewusst ob ich den Array anderweitig beeinflussen kann. Ich habe es so gelöst:
elsif ( lc( $a[1] ) eq "send_gcode" ) {
my $gcode = "";
foreach my $i (2 .. $#a) {
  $gcode = $gcode . $a[$i]. ' '
}
OctoPrint_SendCommand( $hash, "send_gcode", $gcode );
    }
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 12 März 2018, 10:06:06
Vielen Dank für die Integrierung.

Beim send_gcode wird leider nur das erste Element im Array gesendet (Bspw. G28 X - wird zu G28)

Ich hab leider noch keine Ahnung von Perl und FHEM und hab daher nicht gewusst ob ich den Array anderweitig beeinflussen kann. Ich habe es so gelöst:
elsif ( lc( $a[1] ) eq "send_gcode" ) {
my $gcode = "";
foreach my $i (2 .. $#a) {
  $gcode = $gcode . $a[$i]. ' '
}
OctoPrint_SendCommand( $hash, "send_gcode", $gcode );
    }

Danke für den Hinweis. Auf Seite 1 gibt es eine neue Version.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: sbiermann am 20 März 2018, 10:47:41
Kleine Fragen zu dem Modul, um zu entscheiden ob das in meinen geplanten Anwendungsfall Sinn macht oder nicht.
Ich werde meinen CR-10 Drucker mit einen neuen Pi 3B+ Modell ausstatten um dann mittels Octoprint und einer Webcam den Druck zu überwachen. Beide Geräte kommen beide an eine SonOff S20 Funksteckdose, das heißt beide Geräte sind in der Regel aus, nur wenn ich drucken will schalte ich mittels FHEM die Steckdose ein und beide Geräte fahren hoch.
Wenn ich nun das Modul nutze und der Dauerzustand des Octoprint Pi ist nicht erreichbar, bekomme ich da Performance Issues in FHEM? Sprich blockiert FHEM? Wird das Log geflutet mit nicht Erreichbarkeitsmeldungen? Reconnect klappt dann auch?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 20 März 2018, 10:54:12
Kleine Fragen zu dem Modul, um zu entscheiden ob das in meinen geplanten Anwendungsfall Sinn macht oder nicht.
Ich werde meinen CR-10 Drucker mit einen neuen Pi 3B+ Modell ausstatten um dann mittels Octoprint und einer Webcam den Druck zu überwachen. Beide Geräte kommen beide an eine SonOff S20 Funksteckdose, das heißt beide Geräte sind in der Regel aus, nur wenn ich drucken will schalte ich mittels FHEM die Steckdose ein und beide Geräte fahren hoch.
Wenn ich nun das Modul nutze und der Dauerzustand des Octoprint Pi ist nicht erreichbar, bekomme ich da Performance Issues in FHEM? Sprich blockiert FHEM? Wird das Log geflutet mit nicht Erreichbarkeitsmeldungen? Reconnect klappt dann auch?
FHEM sollte nicht blockiert werden. Es sollte auch keine Meldungen im LOG erscheinen.

Gruß
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 31 März 2018, 19:57:36
Hallo Michael,

ich würde gerne dein tolles Modul verwenden. Bekomme aber keine korrekte Verbindung (STATE=???). Wenn ich DEF erneut aufrufe erhalten ich diesen Log:

2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/job?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:5000/api/job?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/printer?exclude=state,sd&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/plugin/psucontrol?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 0: OctoPrint AnyCubicI3 [OctoPrint_Define] start device
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1522516336,
      "display": "2 x side.gcode",
      "name": "2_x_side.gcode",
      "origin": "local",
      "path": "2_x_side.gcode",
      "size": 4873708
    },
    "lastPrintTime": null
  },
  "progress": {
    "completion": 33.47857524496749,
    "filepos": 1631648,
    "printTime": 2136,
    "printTimeLeft": 2799,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON =
Can't use an undefined value as an ARRAY reference at ./FHEM/70_OctoPrint.pm line 424.

Ohne verbose=5 erhalte ich keine Meldung. Kannst du mir einen Tipp geben? JSON liefert zumindest ein Ergebnis.

Gruß Frank
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 April 2018, 08:38:46
Hallo Michael,

ich würde gerne dein tolles Modul verwenden. Bekomme aber keine korrekte Verbindung (STATE=???). Wenn ich DEF erneut aufrufe erhalten ich diesen Log:

2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/job?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:5000/api/job?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/printer?exclude=state,sd&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:5000/api/plugin/psucontrol?&apikey=D9F0F673CEEF4FBFBF9D96C69FCF06F2
2018.03.31 19:48:22 0: OctoPrint AnyCubicI3 [OctoPrint_Define] start device
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1522516336,
      "display": "2 x side.gcode",
      "name": "2_x_side.gcode",
      "origin": "local",
      "path": "2_x_side.gcode",
      "size": 4873708
    },
    "lastPrintTime": null
  },
  "progress": {
    "completion": 33.47857524496749,
    "filepos": 1631648,
    "printTime": 2136,
    "printTimeLeft": 2799,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.03.31 19:48:22 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON =
Can't use an undefined value as an ARRAY reference at ./FHEM/70_OctoPrint.pm line 424.

Ohne verbose=5 erhalte ich keine Meldung. Kannst du mir einen Tipp geben? JSON liefert zumindest ein Ergebnis.

Gruß Frank
Hi Frank,

das LOG sieht komisch aus. Eigentlich erhält FHEM die Daten, kann Sie aber dann nicht ins richtige Format umwandeln. Ist dein FHEM Server aktuell? Kannst Du mir noch ein "list" von deinem Drucker zuschicken?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 03 April 2018, 09:12:00
Gerne:

Internals:
 CHANGED
 DEF 10.0.0.164 5000
 INTERVAL 45
 NAME AnyCubicI3
 NR 211
 STATE ???
 TYPE OctoPrint
 READINGS:
 helper:
ADDRESS 10.0.0.164
PORT 5000
RUNNING_REQUEST 0
CMD_QUEUE:
Attributes:
apikey D9F0F673CEEF4FBFBF9D96C69FCF06F2
icon it_printer
plugin_psucontrol 1
room 1.3 Haus
verbose 0

FFHEM sollte halbwegs aktuell sein: Version 16478
Ich verwende VMs und hab auf 2 Instanzen getestet.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 April 2018, 09:27:04
Gerne:

Internals:
 CHANGED
 DEF 10.0.0.164 5000
 INTERVAL 45
 NAME AnyCubicI3
 NR 211
 STATE ???
 TYPE OctoPrint
 READINGS:
 helper:
ADDRESS 10.0.0.164
PORT 5000
RUNNING_REQUEST 0
CMD_QUEUE:
Attributes:
apikey D9F0F673CEEF4FBFBF9D96C69FCF06F2
icon it_printer
plugin_psucontrol 1
room 1.3 Haus
verbose 0

FFHEM sollte halbwegs aktuell sein: Version 16478
Ich verwende VMs und hab auf 2 Instanzen getestet.
Dein OctoPrint scheint auf Port 5000 zu laufen. Gibt es hierfür einen Grund? Welche Version setzt Du als OctoPrint ein?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 03 April 2018, 11:39:06
Habe diese Anleitung von Matthias Kleine verwendet:

https://haus-automatisierung.com/projekt/2018/02/28/projekt-octoprint-3d-druck.html (https://haus-automatisierung.com/projekt/2018/02/28/projekt-octoprint-3d-druck.html)

Wobei mir nicht klar ist wo der Unterschied zwischen Port 80 und 5000 sein sollte.

Was fehlt dem JSON String?

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 03 April 2018, 14:04:42
Hallo,

ich versuche mit: set Octoprint send_gcode M280 P0 S0

Das Licht an meinen Drucker einzuschalten. Leider funktioniert das nicht.
Ich habe am Servoausgang die Lichtsteuerung und mit M280 P0 S0 schalte ich diesen Servoausgang.

Laut Log wird wohl nur M280 gesendet.
OctoPrint Octoprint [OctoPrint_HD_HandleCmdQueue] - send command data = {"command": "M280"}
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 April 2018, 14:07:36
Habe diese Anleitung von Matthias Kleine verwendet:

https://haus-automatisierung.com/projekt/2018/02/28/projekt-octoprint-3d-druck.html (https://haus-automatisierung.com/projekt/2018/02/28/projekt-octoprint-3d-druck.html)

Wobei mir nicht klar ist wo der Unterschied zwischen Port 80 und 5000 sein sollte.

Was fehlt dem JSON String?
Stell doch das Modul mal auf Port 80 um, und versuch es dann noch mal.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 April 2018, 14:08:13
Hallo,

ich versuche mit: set Octoprint send_gcode M280 P0 S0

Das Licht an meinen Drucker einzuschalten. Leider funktioniert das nicht.
Ich habe am Servoausgang die Lichtsteuerung und mit M280 P0 S0 schalte ich diesen Servoausgang.

Laut Log wird wohl nur M280 gesendet.
OctoPrint Octoprint [OctoPrint_HD_HandleCmdQueue] - send command data = {"command": "M280"}
Hast du die aktuelleste Version im Einsatz?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 03 April 2018, 14:29:38
Hast du die aktuelleste Version im Einsatz?

Peinlich, :-)
Hatte noch die 0.0.5 im Einsatz mit der Neuen geht es. Hatte gedacht ich hätte die Neuste drauf.
Hab mittlerweile einige Plugins die nicht über FHEM aktualisiert werden. Leider geht einem dann schonmal ein update durch.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 03 April 2018, 15:34:00
Mache ich. Wird aber Wochenende. Danke schon mal :)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: MarkusHiba am 24 Mai 2018, 18:24:09
Hallo,
wenn der Drucker ausgeschaltet ist bekomme ich folgende Meldung:

 STATE Offline (Error: SerialException: 'device reports readiness to read but returned no data (device disconnected or multiple access on port?)' @ comm.py:_readline:2417)

Ist die Meldung so richtig oder müsste nicht dort bloß offline stehen?

Gesendet von meinem G8141 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: oli82 am 25 Mai 2018, 08:44:17
Guten Morgen.

Das ist die Meldung, die du auch über das WebIf von Octoprint siehst.
Diese wird 1:1 durchgereicht.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Tom71 am 10 Juni 2018, 19:54:34
Hallo,
vielen Dank für das Modul. Es klappt prima. Ich möchte nun den Drucker nach der Fertigstellung ausschalten. Dazu habe ich eine Sonoff-Steckdose per MQTT eingebunden. Auf welches Ereignis vom OctoPrint müsste ich lauschen, um über notify die Sonoff-Steckdose zu schalten? Auf progress_completion = 100 % ?

Update: Ich habe es jetzt über MQTT gelöst. Ich subscribe das octoprint topic und erstelle dann einen Timer (5min) um nach einem PrintDone den Drucker auszuschalten. Bin mir nicht sicher, ob der State (PrintDone) auch bei dem Modul 70_OctoPrint.pm erscheint. Hier wird die Api gepollt, oder? Dann kann dieser state schon mal durchrutschen. Bei mir steht immer nach dem Druck: Operational.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 11 Juni 2018, 11:04:30
progress_completion = 100 %
Das kannst du verwenden. Wenn der Druck fertig ist, steht dieser Wert auf 100.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: derSassi am 14 Juni 2018, 16:59:28
Hallo,

Ich habe genau das gleiche Problem wie JamesB.
Status=???
Mit verbose=5 sehe ich im Log dass Daten ankommen, aber anscheinend nicht richtig verarbeitet werden.
Wenn ich den Port ändere, dann werden keine Druckerdaten im Log angezeigt. Also sollte der Port 80 korrekt sein.
Was kann ich noch versuchen?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mbrak am 28 Juni 2018, 07:07:01
Hallo

Ich hatte gestern Abend ein kleines Phänomen. Ich habe meinen Drucker gestartet und mit CURA einen Gcode zu Octoprint übertragen. Kurz danach bemerkte ich am HM-LAN Adapter, das FHEM nicht mehr läuft. Der fängt an zu blinken wenn er 60s kein Live-Bit von Fhem bekommt. Das ganze habe ich zuerst nicht in einen Zusammenhang gebracht. Also Backup Image auf eine neue SD Karte und rein in den Raspi. Fhem stürzte immer so nach ca. 40 Sekunden Laufzeit ab.
Im LOG fand ich immer als letzte Zeile dieses hier:

Wide character in subroutine entry at /usr/lib/arm-linux-gnueabihf/perl/5.20/Encode.pm line 177.
Problem war der Dateiname des Gcodes, welcher im Octoprint_Modul angezeigt wird. Dieser hat bei meiner Datei, welche von Thingiverse stammt einige Sonderzeichen enthalten. Hab mir beim slicen nichts dabei gedacht. Fhem fand das nicht so lustig.....

Es handelt sich um dieses Teil. https://www.thingiverse.com/thing:1845113 Die STL-Datei da drin enthält tolle Sonderzeichen.

Kannst Du das evtl. im Modul abfangen?

Gruß Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 30 Juni 2018, 08:05:12
Hallo

Ich hatte gestern Abend ein kleines Phänomen. Ich habe meinen Drucker gestartet und mit CURA einen Gcode zu Octoprint übertragen. Kurz danach bemerkte ich am HM-LAN Adapter, das FHEM nicht mehr läuft. Der fängt an zu blinken wenn er 60s kein Live-Bit von Fhem bekommt. Das ganze habe ich zuerst nicht in einen Zusammenhang gebracht. Also Backup Image auf eine neue SD Karte und rein in den Raspi. Fhem stürzte immer so nach ca. 40 Sekunden Laufzeit ab.
Im LOG fand ich immer als letzte Zeile dieses hier:

Wide character in subroutine entry at /usr/lib/arm-linux-gnueabihf/perl/5.20/Encode.pm line 177.
Problem war der Dateiname des Gcodes, welcher im Octoprint_Modul angezeigt wird. Dieser hat bei meiner Datei, welche von Thingiverse stammt einige Sonderzeichen enthalten. Hab mir beim slicen nichts dabei gedacht. Fhem fand das nicht so lustig.....

Es handelt sich um dieses Teil. https://www.thingiverse.com/thing:1845113 Die STL-Datei da drin enthält tolle Sonderzeichen.

Kannst Du das evtl. im Modul abfangen?

Gruß Michael
Ja schaue ich mir an
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christian72D am 06 August 2018, 13:11:41
Das Plugin läuft super bei mir, danke.

EIN Reading würde ich mir noh wünsche: den aktuellen Z Wert, ist für mich (spezeill wenn ich im Vasen Modus drucke" ein besserer Indikator wie weit der Druck ist als die ganze Zeit Abschätzung von OP und die Prozent Angaben.
Apropos Prozent: wieso SO viele Nachkommastellen? :D

UND: beim Namen: daß wir ein .gcode File drucken wissen wir wohl alle, kann man die Endung nicht auch direkt im Modul abschneiden? Macht zumindest aus meiner Sicht Sinn.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 08 August 2018, 16:25:53
Das Plugin läuft super bei mir, danke.

EIN Reading würde ich mir noh wünsche: den aktuellen Z Wert, ist für mich (spezeill wenn ich im Vasen Modus drucke" ein besserer Indikator wie weit der Druck ist als die ganze Zeit Abschätzung von OP und die Prozent Angaben.
Apropos Prozent: wieso SO viele Nachkommastellen? :D

UND: beim Namen: daß wir ein .gcode File drucken wissen wir wohl alle, kann man die Endung nicht auch direkt im Modul abschneiden? Macht zumindest aus meiner Sicht Sinn.
Bin gerade im Urlaub. Kann es mir nächste Woche mal anschauen.

Gruß
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: lenn1 am 17 August 2018, 16:08:31
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1534512485,
      "display": "Solartra\u0308ger-3h.gcode",
      "name": "Solartrager-3h.gcode",
      "origin": "local",
      "path": "Solartrager-3h.gcode",
      "size": 4434317
    },
    "lastPrintTime": null,
    "user": "lenn1"
  },
  "progress": {
    "completion": 1.4502346133575925,
    "filepos": 64308,
    "printTime": 1685,
    "printTimeLeft": 103503,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.08.17 15:56:23 5: OctoPrint octoprint [OctoPrint_ReceiveCommand] [readings_job] JSON = HASH(0x56464649cc10)
Wide character in subroutine entry at /usr/lib/x86_64-linux-gnu/perl/5.24/Encode.pm line 202.



Aus dem Log im Verbose 5.

Meine Vermutung: Ich denke das  Ä ( im Wort Solarträger) ist ein Problem und dass das Modul damit nicht um kann.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 18 August 2018, 08:20:26
2018.08.17 15:56:23 5: OctoPrint octoprint [OctoPrint_ReceiveCommand] [readings_job] JSON = HASH(0x56464649cc10)
Wide character in subroutine entry at /usr/lib/x86_64-linux-gnu/perl/5.24/Encode.pm line 202.[/code]
Aus dem Log im Verbose 5.
Meine Vermutung: Ich denke das  Ä ( im Wort Solarträger) ist ein Problem und dass das Modul damit nicht um kann.

Hallo

Ich hatte gestern Abend ein kleines Phänomen. Ich habe meinen Drucker gestartet und mit CURA einen Gcode zu Octoprint übertragen. Kurz danach bemerkte ich am HM-LAN Adapter, das FHEM nicht mehr läuft. Der fängt an zu blinken wenn er 60s kein Live-Bit von Fhem bekommt. Das ganze habe ich zuerst nicht in einen Zusammenhang gebracht. Also Backup Image auf eine neue SD Karte und rein in den Raspi. Fhem stürzte immer so nach ca. 40 Sekunden Laufzeit ab.
Im LOG fand ich immer als letzte Zeile dieses hier:

Wide character in subroutine entry at /usr/lib/arm-linux-gnueabihf/perl/5.20/Encode.pm line 177.
Problem war der Dateiname des Gcodes, welcher im Octoprint_Modul angezeigt wird. Dieser hat bei meiner Datei, welche von Thingiverse stammt einige Sonderzeichen enthalten. Hab mir beim slicen nichts dabei gedacht. Fhem fand das nicht so lustig.....

Es handelt sich um dieses Teil. https://www.thingiverse.com/thing:1845113 Die STL-Datei da drin enthält tolle Sonderzeichen.

Kannst Du das evtl. im Modul abfangen?

Gruß Michael

Ich habe mir das Thema heute angeschaut, konnte es bei mir aber nicht nachstellen. Aus diesem Grund brauche ich mehr Informationen von Euch.

Bitte schickt mir mal folgende Infos:

Gruß
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 18 August 2018, 08:38:19
Das Plugin läuft super bei mir, danke.

EIN Reading würde ich mir noh wünsche: den aktuellen Z Wert, ist für mich (spezeill wenn ich im Vasen Modus drucke" ein besserer Indikator wie weit der Druck ist als die ganze Zeit Abschätzung von OP und die Prozent Angaben.
Apropos Prozent: wieso SO viele Nachkommastellen? :D

UND: beim Namen: daß wir ein .gcode File drucken wissen wir wohl alle, kann man die Endung nicht auch direkt im Modul abschneiden? Macht zumindest aus meiner Sicht Sinn.
Octoprint liefert leider keine Werte über die Positionen, daher kann FHEM diese auch nicht anzeigen.

Die vielen Nachkommastellen kommen direkt von Octoprint. Diese habe ich nicht angepasst. Auch der Dateiname wird so von Octoprint geliefert.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christian72D am 18 August 2018, 09:57:21
Octoprint liefert leider keine Werte über die Positionen, daher kann FHEM diese auch nicht anzeigen.

Die vielen Nachkommastellen kommen direkt von Octoprint. Diese habe ich nicht angepasst. Auch der Dateiname wird so von Octoprint geliefert.
Also der GCODE Viewer zeigt mit doch die aktuelle Höhe und die Schicht Nummer an, also die Daten liegen eigentlich schon irgendwie vor.

Ja, aber macht es nicht trotzdem Sinn, diese einzukürzen? Beim Namen denke ich macht es für niemand Sinn das ".gcode" drin zu haben, bei den Prozenten könnte man sich evtl. über die Anzahl Nachkommen Stellen "streiten" die man angezeigt bekommen möchte.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 18 August 2018, 10:10:14
Zitat
Also der GCODE Viewer zeigt mit doch die aktuelle Höhe und die Schicht Nummer an
Das heisst aber nicht, dass Octo die Daten auch über die API rausgibt.

Zitat
Ja, aber macht es nicht trotzdem Sinn, diese einzukürzen? Beim Namen denke ich macht es für niemand Sinn das ".gcode" drin zu haben, bei den Prozenten könnte man sich evtl. über die Anzahl Nachkommen Stellen "streiten" die man angezeigt bekommen möchte.

Was spricht gegen userReadings, die du dann so formatieren und verwenden kannst, wie du möchtest?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: lenn1 am 18 August 2018, 18:44:41
Ich habe mir das Thema heute angeschaut, konnte es bei mir aber nicht nachstellen. Aus diesem Grund brauche ich mehr Informationen von Euch.

Bitte schickt mir mal folgende Infos:
  • Octoprint Version
  • FHEM Octoprint Modulversion

Gruß
Michael


Octoprint Version 1.3.9 (octopi)

Modulversion v0.0.6









Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christian72D am 19 August 2018, 14:04:13
Das heisst aber nicht, dass Octo die Daten auch über die API rausgibt.
Wie machen daß dann die Android Programme wie Printoid?

Was spricht gegen userReadings, die du dann so formatieren und verwenden kannst, wie du möchtest?
OK, kannst du mir EINEN einzigen Grund nnnen wieso das ".gcode" in FHEM relevant sein könnte?

Ich denk es macht mehr Sinn sowas direkt im Modul abzufangen, statt daß JEDER User der damit arbeitt sich seine UserReadings anlgt...
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 19 August 2018, 19:39:42
Zitat
Wie machen daß dann die Android Programme wie Printoid?
Keine Ahnung, war auch nur eine Vermutung.

Zitat
OK, kannst du mir EINEN einzigen Grund nnnen wieso das ".gcode" in FHEM relevant sein könnte?
Nein, aber es stört mich auch nicht. Und der Modulautor wird schon seinen Grund haben, warum er das so macht und nicht anders.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 19 August 2018, 23:02:08
Nein, aber es stört mich auch nicht. Und der Modulautor wird schon seinen Grund haben, warum er das so macht und nicht anders.
Die Werte werde so von Octoprint geliefert. Keines der Readings wurde von mir abgeändert. Aus meiner Sicht macht es auch keinen Sinn hier etwas zu kürzen. Jeder kann über die userReadings seine eigenen Readings bauen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christian72D am 23 August 2018, 16:27:54
Wie kann ich denn ein bedingtes UserReading machen? Also ich habe ja schon mal "gerne" Drucke die xx Stunden gehen.
Da finde ich meine Minuten Anzeige fast sinnfrei.

Als Reading habe ich mir angelegt:

progress_printTimeLeftMinutes {sprintf("%.1f",ReadingsVal("Anycubic","progress_printTimeLeft",0)/60)}
Ich würde es nach diesem Schema machen wollen, aber das klappt nicht.

RestZeit {if(ReadingsVal("Anycubic","progress_printTimeLeft","") gt 86400) {return progress_printTimeLeft / 86400} elsif (ReadingsVal("Anycubic","progress_printTimeLeft","") gt 3600) {return progress_printTimeLeft / 3600} elsif (ReadingsVal("Anycubic","progress_printTimeLeft","") gt 60) {return return progress_printTimeLeft / 60} }
Kann mir einer der Profis das evtl. umstellen? Und gerne auch wieder inkl. Formatierung auf eine Nachkommastelle.

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Skjall am 23 August 2018, 17:17:43
Hallo Michael,
schönes Modul. Danke dafür.
Ich hatte vorhin einen Fehler, der das FHEM abstürzen lies:

2018.08.23 17:06:16 0: OctoPrint 21302.OctoPrint.1 [OctoPrint_Define] start device
Can't use an undefined value as an ARRAY reference at ./FHEM/70_OctoPrint.pm line 424.

Zumindest war das die letzte Meldung im Log. Ich habe deine aktuelle Version und OP 1.3.9.

Viele Grüße

Jan
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 26 August 2018, 08:52:47
Hallo Michael,
mir würde noch ein Reading fehlen, dass anzeigt ob Octoprint läuft oder nicht.
state bleibt auch nach dem runterfahren von Octoprint auf "Operational"
Aktuell ist das das einzige was ich noch über MQTT abfrage. 
VG HW1
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 28 August 2018, 13:35:06
Hallo,

auf Seite1 habe ich Euch eine neue Version des Modules.

Bitte beachtet auch die angepasste Dokumentation https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

# 2018-08-28, v0.0.8
#
# v0.0.8
# - FEATURE: Reading "online"
#
# v0.0.7
# - BUGFIX:  Logeinträge PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4547
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 29 August 2018, 15:40:29

# v0.0.8
# - FEATURE: Reading "online"

super, das Du es eingebaut hast.
Mit der 0.0.8 Version habe ich allerdings ein Problem das ich vorher nicht hatte. Es wird keine Verbindung zu Octoprint aufgebaut. Erst wenn ich FHEM neu starte während Octoprint läuft werden die Readings aktualisiert. Nach einen shutdown von Octoprint und Neustart von Octoprint werden wieder keinen Readings aktualisiert. Bis das FHEM wieder neu gestartet wird.

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 29 August 2018, 20:10:18
super, das Du es eingebaut hast.
Mit der 0.0.8 Version habe ich allerdings ein Problem das ich vorher nicht hatte. Es wird keine Verbindung zu Octoprint aufgebaut. Erst wenn ich FHEM neu starte während Octoprint läuft werden die Readings aktualisiert. Nach einen shutdown von Octoprint und Neustart von Octoprint werden wieder keinen Readings aktualisiert. Bis das FHEM wieder neu gestartet wird.
Dann muss ich es mir noch mal anschauen. Melde mich wieder.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 30 August 2018, 08:06:32
super, das Du es eingebaut hast.
Mit der 0.0.8 Version habe ich allerdings ein Problem das ich vorher nicht hatte. Es wird keine Verbindung zu Octoprint aufgebaut. Erst wenn ich FHEM neu starte während Octoprint läuft werden die Readings aktualisiert. Nach einen shutdown von Octoprint und Neustart von Octoprint werden wieder keinen Readings aktualisiert. Bis das FHEM wieder neu gestartet wird.
Auf Seite 1 gibt es wieder eine neue Version

# 2018-08-30, v0.0.9
#
# v0.0.9
# - BUGFIX:  Reading "online"
#

Jetzt sollte es wieder gehen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 01 September 2018, 08:40:58
Jetzt sollte es wieder gehen.

Jawohl, funktioniert!

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 05 September 2018, 18:05:21
Hab noch einen Bug gefunden, temperature_bed_target und temperature_tool0_target gehen nicht mehr auf 0 wenn in Octoprint die Soll Temperaturen auf "Aus" gestellt werden.  Wenn ich auf 1 Grad stelle, wird die Temperatur aktualisiert. Das "Aus" schein nicht als Änderung erkannt zu werden.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 05 September 2018, 18:43:50
Hab noch einen Bug gefunden, temperature_bed_target und temperature_tool0_target gehen nicht mehr auf 0 wenn in Octoprint die Soll Temperaturen auf "Aus" gestellt werden.  Wenn ich auf 1 Grad stelle, wird die Temperatur aktualisiert. Das "Aus" schein nicht als Änderung erkannt zu werden.
OK, muss ich mir anschauen was die API hier zurück liefert.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 05 September 2018, 19:03:54
Hallo,

auf Seite1 habe ich Euch eine neue Version des Modules.

Bitte beachtet auch die Dokumentation https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

# 2018-09-05, v0.0.10
#
# v0.0.10
# - BUGFIX:  Readings mit 0 wurden nicht geschrieben
# - CHANGE:  readingsBulkUpdateIfChanged to readingsBulkUpdate
#
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 06 September 2018, 21:21:04

# - BUGFIX:  Readings mit 0 wurden nicht geschrieben



Klappt jetzt !!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Laire am 16 September 2018, 16:52:50
Ist es möglich die aktuelle Prozentzahl des Fortschritts als Reading zu bekommen?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Gasmast3r am 16 September 2018, 18:32:45
Ist doch vorhanden oder ?? Ich meine ja
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Laire am 16 September 2018, 19:11:06
Ja Wert gerade gefunden ;-)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: tndx am 08 Oktober 2018, 17:51:16
Hallo zusammen,

versuche meinen 3D-Drucker einzubinden, der State bleibt aber auf "???" (3x?), habe ich irgendwas übersehen:

Internals:
   CFGFN     
   CHANGED   
   DEF        192.168.178.26
   INTERVAL   45
   NAME       AnetA8
   NR         814
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-10-08 17:40:39   online          true
   helper:
     ADDRESS    192.168.178.26
     PORT       80
     RUNNING_REQUEST 1
     CMD_QUEUE:
       HASH(0x4ecb870)
     HTTP_CONNECTION:
       FD         104
       NAME       
       addr       http://192.168.178.26:80
       auth       0
       buf       
       cmd       
       compress   1
       data       
       displayurl http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
       header     Content-Type: application/json
       host       192.168.178.26
       hu_blocking 0
       hu_port    80
       hu_portSfx
       keepalive  0
       loglevel   4
       method     GET
       noshutdown 0
       path       /api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
       protocol   http
       redirects  0
       service    readings_job
       timeout    2
       type       
       url        http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
       hash:
       sslargs:
Attributes:
   apikey     5CF27CE385B240CC9ED2DB1B073BFE5D
   event-min-interval online:3600
   event-on-change-reading online
   event-on-update-reading online
   icon       it_printer

Modul-Version: # 2018-09-05, v0.0.10
OctoPrint: 1.3.9
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Esjay am 08 Oktober 2018, 18:57:25
Doofe Frage,aber hast du mal einen Druck gestartet?
Grüße
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Gasmast3r am 08 Oktober 2018, 19:23:36
Must der port nicht auch angegeben werden ???

Ok grad gesehen 80,bei mir ist es 888 bin mir aber nicht mehr sicher ob ich den selber geändert habe.
Aber je nach image oder selbst isttalation ist der port auch anders
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: tndx am 08 Oktober 2018, 19:46:05
Ein Druckjob läuft gerade, aber auch ohne dass ein Druck läuft, sollte doch im Status was Sinnvolles stehen?!

Port habe ich nicht geändert, installiert ist ein Standard-OctoPi-Image, immerhin erkennt ja FHEM, dass der Server online ist. In der OctoPrint-Oberfläche kann ist den Port auch gar nicht ändern, oder?

Muss das Modul Benutzer-Credentials kennen, oder authentifiziert sich das Modul über den API-Key?

EDIT: ich habe gerde, nachdem ich den Drucker eingeschaltet habe, über FHEM
set AnetA8 printer connectabgesetzt, hat ohne Probleme funktioniert. Die Kommunikation scheint grundsätzlich zu funktionieren, nur wo bleibt der "State"?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Oktober 2018, 07:02:27
Ein Druckjob läuft gerade, aber auch ohne dass ein Druck läuft, sollte doch im Status was Sinnvolles stehen?!

Port habe ich nicht geändert, installiert ist ein Standard-OctoPi-Image, immerhin erkennt ja FHEM, dass der Server online ist. In der OctoPrint-Oberfläche kann ist den Port auch gar nicht ändern, oder?

Muss das Modul Benutzer-Credentials kennen, oder authentifiziert sich das Modul über den API-Key?

EDIT: ich habe gerde, nachdem ich den Drucker eingeschaltet habe, über FHEM
set AnetA8 printer connectabgesetzt, hat ohne Probleme funktioniert. Die Kommunikation scheint grundsätzlich zu funktionieren, nur wo bleibt der "State"?
Hi,

Hast du schon die Doku gelesen? https://mwinkler.jimdo.com/smarthome/eigene-module/octoprint/

Stelle doch mal das Gerät auf Verbose 5 und schau mal was im Log passiert.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: tndx am 10 Oktober 2018, 10:25:34
Das bekomme ich nach einem FHEM Neustart im Log angezeigt:

2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = Invalid API key
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=0
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:13:37.252 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = Invalid API key
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_GetStatus] called function
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1539155075,
      "display": "XXX.gcode",
      "name": "XXX.gcode",
      "origin": "local",
      "path": "XXX.gcode",
      "size": 4280069
    },
    "lastPrintTime": null,
    "user": "XXX"
  },
  "progress": {
    "completion": 16.029227566191107,
    "filepos": 686062,
    "printTime": 4172,
    "printTimeLeft": 16001,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:14:22.031 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:22.032 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:14:22.032 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 80.1,
      "offset": 0,
      "target": 80.0
    },
    "tool0": {
      "actual": 219.9,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_GetStatus] called function
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:15:06.988 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:15:06.988 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:15:06.989 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:15:06.989 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1539155075,
      "display": "XXX.gcode",
      "name": "XXX.gcode",
      "origin": "local",
      "path": "XXX.gcode",
      "size": 4280069
    },
    "lastPrintTime": null,
    "user": "XXX"
  },
  "progress": {
    "completion": 16.38931521898362,
    "filepos": 701474,
    "printTime": 4218,
    "printTimeLeft": 15812,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 80.2,
      "offset": 0,
      "target": 80.0
    },
    "tool0": {
      "actual": 220.2,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA

Zunächst erscheint da "2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = Invalid API key", erst wenn ich das Attribut mit dem dort hinterlegten Key erneut aktualisiere (d.h. der Key wird nicht geändert), kommt es zu der weiteren Kommunikation (ein Paar nicht relevante Sachen ausge-X-t). Der Status bleibt aber trotzdem auf
STATE                      ???stehen.

Und ja, die Doku hatte ich gelesen, habe ich irgendeine relevante Stelle überlesen?

Danke im Voraus!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Oktober 2018, 18:52:47
Das bekomme ich nach einem FHEM Neustart im Log angezeigt:

2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = Invalid API key
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=0
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:13:37.222 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:13:37.252 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = Invalid API key
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:13:37.253 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_GetStatus] called function
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:14:21.985 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:14:21.986 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1539155075,
      "display": "XXX.gcode",
      "name": "XXX.gcode",
      "origin": "local",
      "path": "XXX.gcode",
      "size": 4280069
    },
    "lastPrintTime": null,
    "user": "XXX"
  },
  "progress": {
    "completion": 16.029227566191107,
    "filepos": 686062,
    "printTime": 4172,
    "printTimeLeft": 16001,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:14:22.029 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:14:22.031 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:14:22.032 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:14:22.032 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 80.1,
      "offset": 0,
      "target": 80.0
    },
    "tool0": {
      "actual": 219.9,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:14:22.066 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_GetStatus] called function
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/job?&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:06.987 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:15:06.988 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:15:06.988 5: OctoPrint AnetA8 [OctoPrint_SendCommand] called function CMD = 
2018.10.10 10:15:06.989 5: OctoPrint AnetA8 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.10.10 10:15:06.989 5: OctoPrint AnetA8 [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": 1539155075,
      "display": "XXX.gcode",
      "name": "XXX.gcode",
      "origin": "local",
      "path": "XXX.gcode",
      "size": 4280069
    },
    "lastPrintTime": null,
    "user": "XXX"
  },
  "progress": {
    "completion": 16.38931521898362,
    "filepos": 701474,
    "printTime": 4218,
    "printTimeLeft": 15812,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.10.10 10:15:07.026 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.26:80/api/printer?exclude=state,sd&apikey=5CF27CE385B240CC9ED2DB1B073BFE5D
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.10.10 10:15:07.027 5: OctoPrint AnetA8 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] called function
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 80.2,
      "offset": 0,
      "target": 80.0
    },
    "tool0": {
      "actual": 220.2,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.10.10 10:15:07.064 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA

Zunächst erscheint da "2018.10.10 10:13:37.221 5: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] [readings_job] Data = Invalid API key", erst wenn ich das Attribut mit dem dort hinterlegten Key erneut aktualisiere (d.h. der Key wird nicht geändert), kommt es zu der weiteren Kommunikation (ein Paar nicht relevante Sachen ausge-X-t). Der Status bleibt aber trotzdem auf
STATE                      ???stehen.

Und ja, die Doku hatte ich gelesen, habe ich irgendeine relevante Stelle überlesen?

Danke im Voraus!

Laut Log kommen ja Readings an. Wird der State richtig geschrieben wenn der Drucker auch aktiv mit Octoprint verbunden ist?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: tndx am 10 Oktober 2018, 20:24:28
Laut Log kommen ja Readings an. Wird der State richtig geschrieben wenn der Drucker auch aktiv mit Octoprint verbunden ist?

Leider nicht, im State stand noch nie was außer der 3 "?". Der Log-Auszug war ja während eines laufenden Druckjobs.

Habe das gerade auch noch mal mit meinem Test-FHEM reproduzieren können.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 11 Oktober 2018, 07:04:01
Leider nicht, im State stand noch nie was außer der 3 "?". Der Log-Auszug war ja während eines laufenden Druckjobs.

Habe das gerade auch noch mal mit meinem Test-FHEM reproduzieren können.

Kannst Du mal folgende Zeile in die Zeilennummer 248 Schreiben?

if  (eval {require JSON;1;} ne 1) {Log3 $name, 3, "OctoPrint $name [OctoPrint_ReceiveCommand] missing JSON modul";}

Danach einen Shutdown restart ausführen und mal in das LOG schauen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: smoudo am 11 Oktober 2018, 23:01:22
Hi,

ich nutze seit März/April das Octoprint Modul und bisher lief es auch sehr zuverlässig.
Eben habe ich meinen Drucker angeworfen und musste feststellen das fhem nicht mehr erreichbar ist.
Der Host läuft aber. nachdem ich den service fhem neu gestartet hatte lief das ganze ca. 30 sek und blieb wieder stehen.
Nachdem ich global verbose 5 aktiviert habe kommt folgende ausgabe bevor fhem abstürzt:

2018.10.11 22:43:00 5: OctoPrint i3Mega [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": 18041.805398529636,
    "filament": {
      "tool0": {
        "length": 13527.160430004453,
        "volume": 0.0
      }
    },
    "file": {
      "date": 1539286647,
      "display": "AI3M_Body_gro+\u0192ereMutter.gcode",
      "name": "AI3M_Body_gro-fereMutter.gcode",
      "origin": "local",
      "path": "AI3M_Body_gro-fereMutter.gcode",
      "size": 12426092
    },
    "lastPrintTime": null,
    "user": "dummy"
  },
  "progress": {
    "completion": 3.906272382338711,
    "filepos": 485397,
    "printTime": 3081,
    "printTimeLeft": 19507,
    "printTimeLeftOrigin": "mixed-analysis"
  },
  "state": "Printing"
}
2018.10.11 22:43:00 5: OctoPrint i3Mega [OctoPrint_ReceiveCommand] [readings_job] JSON = HASH(0x58ef2940)
Wide character in subroutine entry at /usr/lib/i386-linux-gnu/perl/5.24/Encode.pm line 202.

hat jemand schonmal ähnliches Phänomen gehabt? Ich habe den Drucker in der fhem.cfg jetzt mal auskommentiert und fhem stürzt nicht mehr ab.

Für tips währe ich sehr dankbar. Octoprint neustart werde ich noch machen nachdem der druck fertig ist.

Viele Grüße

Matze
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 12 Oktober 2018, 07:21:44
Hi,

ich nutze seit März/April das Octoprint Modul und bisher lief es auch sehr zuverlässig.
Eben habe ich meinen Drucker angeworfen und musste feststellen das fhem nicht mehr erreichbar ist.
Der Host läuft aber. nachdem ich den service fhem neu gestartet hatte lief das ganze ca. 30 sek und blieb wieder stehen.
Nachdem ich global verbose 5 aktiviert habe kommt folgende ausgabe bevor fhem abstürzt:

2018.10.11 22:43:00 5: OctoPrint i3Mega [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": 18041.805398529636,
    "filament": {
      "tool0": {
        "length": 13527.160430004453,
        "volume": 0.0
      }
    },
    "file": {
      "date": 1539286647,
      "display": "AI3M_Body_gro+\u0192ereMutter.gcode",
      "name": "AI3M_Body_gro-fereMutter.gcode",
      "origin": "local",
      "path": "AI3M_Body_gro-fereMutter.gcode",
      "size": 12426092
    },
    "lastPrintTime": null,
    "user": "dummy"
  },
  "progress": {
    "completion": 3.906272382338711,
    "filepos": 485397,
    "printTime": 3081,
    "printTimeLeft": 19507,
    "printTimeLeftOrigin": "mixed-analysis"
  },
  "state": "Printing"
}
2018.10.11 22:43:00 5: OctoPrint i3Mega [OctoPrint_ReceiveCommand] [readings_job] JSON = HASH(0x58ef2940)
Wide character in subroutine entry at /usr/lib/i386-linux-gnu/perl/5.24/Encode.pm line 202.

hat jemand schonmal ähnliches Phänomen gehabt? Ich habe den Drucker in der fhem.cfg jetzt mal auskommentiert und fhem stürzt nicht mehr ab.

Für tips währe ich sehr dankbar. Octoprint neustart werde ich noch machen nachdem der druck fertig ist.

Viele Grüße

Matze
Hi

kannst Du mal die angehängte Version ausprobieren?

Danke
Michael
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: smoudo am 13 Oktober 2018, 11:28:02
Hallo Michael,

sieht schon gut aus. Werde Dir nochmal feedback geben wenn ich etwas gedruckt habe.

Vielen Dank für die schnelle Antwort

Grüße

Matze
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: MarkusHiba am 13 Oktober 2018, 20:12:56
Hallo,

könnte man weitere plugins integrieren wie zum Beispiel LEDstrip schalten?

Grüße

MarkusHiba

Gesendet von meinem G8141 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: smoudo am 14 Oktober 2018, 12:43:20
Wo hast du denn den Strom für den Strip her?
Ich habe den an einem Schaltaktor, frage den Status des Druckers ab und lasse per doif das Licht an und aus gehen, sowie Bilder der Webcam schießen


Grüße

Matze
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: MarkusHiba am 14 Oktober 2018, 13:20:16
Vom Netzteil der den Raspberry mit Octoprint betreibt die Strips hängen an einen Relais und einen Stepup converter


Gesendet von meinem G8141 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: tndx am 14 Oktober 2018, 17:22:30
Hi,

Kannst Du mal folgende Zeile in die Zeilennummer 248 Schreiben?

if  (eval {require JSON;1;} ne 1) {Log3 $name, 3, "OctoPrint $name [OctoPrint_ReceiveCommand] missing JSON modul";}

Danach einen Shutdown restart ausführen und mal in das LOG schauen.

Folgendes kommt danach im Log an:

2018.10.14 17:10:29 3: OctoPrint AnetA8 [OctoPrint_ReceiveCommand] missing JSON modul
Also auf Verdacht

sudo apt-get install libjson-perl
et voilà

STATE      Operational
Da das Modul offenbar nicht zur FHEM-Grundausstattung gehört, ergänze bitte einen Hinweis darauf in Deiner Doku  ;)

Danke für Deine Arbeit und Deine Hilfe!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mbenker am 23 Oktober 2018, 15:35:39
Hallo,

ich habe heute mal versucht das Modul Octoprint einzurichten.
ALso Modul heruntergeladen und auf den Server geschoben.
SHutdown restart..

Wenn ich jedoch einen Server definieren will meldet er :

Please install Perl XML::Simple to use module OctoPrint

Da ich nicht der große Linux Crack bin habe ich nach ein wenig googlen folgendes gefunden :

perl -MCPAN -e shell
  cpan> install XML::Simple

das ausgegührt.
Lief auch ohne erkennbare FEhler durch, allerdings meldet das Modul immer noch das ihm PERL XML::SIMPLE fehlen würde.

Eventuell hat ja jemand einen Tip für mich oder kann mir helfen ? (gerne auch per Nachricht falls es nicht in diesen Thread passt)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 23 Oktober 2018, 17:23:14
Eventuell hat ja jemand einen Tip für mich oder kann mir helfen ? (gerne auch per Nachricht falls es nicht in diesen Thread passt)

FHEM danach neu gestartet?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mbenker am 24 Oktober 2018, 00:02:07
Ja habe den ganzen raspi gebootet.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 24 Oktober 2018, 07:41:36
Alternativ würde ich das Paket vom Betriebssystem versuchen. Im Falle Raspbian (und anderer Debian-Derivate) ist das libxml-simple-perl.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mbenker am 24 Oktober 2018, 09:24:16
Danke das hat geholfen.
zumindest kann ich den jetzt definieren und weiter schauen :)
Titel: [70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fhemschorsch am 02 November 2018, 09:46:26
Ich hab gestern das Modul vom ersten Post des Threads installiert (müsste dann aktuell sein? Ein Abruf der Version meldet Rev 15133 vom 24.09.2017). Leider meldet er auch 3 Fragezeichen. Ich hab im DEF den Post 80 gesetzt und die API reinkopiert. Das Reading online sagt true, aber mehr passiert leider nicht.
Libxml-simple-perl ist drauf, libjson-perl auch. Durchgestartet habe ich mehrmals, leider tut sich nix
Octoprint ist Version 1.3.9 und funktioniert einwandfrei
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 02 November 2018, 10:05:36
Ich hab gestern das Modul vom ersten Post des Threads installiert (müsste dann aktuell sein? Ein Abruf der Version meldet Rev 15133 vom 24.09.2017). Leider meldet er auch 3 Fragezeichen. Ich hab im DEF den Post 80 gesetzt und die API reinkopiert. Das Reading online sagt true, aber mehr passiert leider nicht.
Libxml-simple-perl ist drauf, libjson-perl auch. Durchgestartet habe ich mehrmals, leider tut sich nix
Octoprint ist Version 1.3.9 und funktioniert einwandfrei
Ein list vom Device und ein Log mit Verbose 5 wäre mal hilfreich
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Fhemschorsch am 02 November 2018, 13:20:13
Einsicht ist der erste Weg zur Besserung:

2018.11.02 13:23:31 5: OctoPrint 3DDrucker [OctoPrint_ReceiveCommand] [readings_printer] Data = Invalid API key

hat mich darauf gebracht, mal den stumpf mit dem iPad rüberkopierten API Key manuell zu prüfen und dabei ist mir aufgefallen, dass vorne noch eine Ziffer zuviel im Attribut-Feld war. Der API-Key war dann tatsächlich falsch  :o.

Nun meldet er  "Error: Failed to autodetect serial port, please set it manually". Was ja korrekt ist, der Drucker ist nämlich grad aus.

Danke, Gruß und ich hab nix gesagt  ::)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Micky79 am 25 November 2018, 00:25:09
Hallo zusammen.
Ich habe auch gerade eben das Modul installiert. Leider wird bei mir auch kein Status angezeigt sondern nur "??".
Bei online steht true.

Die set Kommandos gehen aber. Also Printer auf Home fahren etc.

Hier mal ein Verbos 5:

2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_GetStatus] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] called function CMD = 
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.219:5000/api/job?&apikey=Xxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.219:5000/api/job?&apikey=xxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] called function CMD = 
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.219:5000/api/printer?exclude=state,sd&apikey=xxxxxxxxxxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": null,
      "display": null,
      "name": null,
      "origin": null,
      "path": null,
      "size": null
    },
    "lastPrintTime": null,
    "user": null
  },
  "progress": {
    "completion": null,
    "filepos": null,
    "printTime": null,
    "printTimeLeft": null,
    "printTimeLeftOrigin": null
  },
  "state": "Operational"
}
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.219:5000/api/printer?exclude=state,sd&apikey=xxxxxxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 17.6,
      "offset": 0,
      "target": 0.0
    },
    "tool0": {
      "actual": 17.1,
      "offset": 0,
      "target": 0.0
    }
  }
}
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA



Komisch ist, dass er die Daten findet, Aber kein Reading anlegt.

Woran kann das denn liegen?


Viele Grüße Micky
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 26 November 2018, 08:30:17
Hallo zusammen.
Ich habe auch gerade eben das Modul installiert. Leider wird bei mir auch kein Status angezeigt sondern nur "??".
Bei online steht true.

Die set Kommandos gehen aber. Also Printer auf Home fahren etc.

Hier mal ein Verbos 5:

2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_GetStatus] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] called function CMD = 
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.219:5000/api/job?&apikey=Xxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.219:5000/api/job?&apikey=xxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] called function CMD = 
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_SendCommand] - append to queue http://192.168.178.219:5000/api/printer?exclude=state,sd&apikey=xxxxxxxxxxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": null,
    "estimatedPrintTime": null,
    "filament": null,
    "file": {
      "date": null,
      "display": null,
      "name": null,
      "origin": null,
      "path": null,
      "size": null
    },
    "lastPrintTime": null,
    "user": null
  },
  "progress": {
    "completion": null,
    "filepos": null,
    "printTime": null,
    "printTimeLeft": null,
    "printTimeLeftOrigin": null
  },
  "state": "Operational"
}
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.178.219:5000/api/printer?exclude=state,sd&apikey=xxxxxxxxxxxxxxxxxxx
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] called function
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 17.6,
      "offset": 0,
      "target": 0.0
    },
    "tool0": {
      "actual": 17.1,
      "offset": 0,
      "target": 0.0
    }
  }
}
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.11.25 00:16:07 5: OctoPrint 3D_Drucker [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA



Komisch ist, dass er die Daten findet, Aber kein Reading anlegt.

Woran kann das denn liegen?


Viele Grüße Micky
Kannst du mal ein List von deinem Device schicken?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Micky79 am 26 November 2018, 20:39:59
Klar, hier bitte:

nternals:
   CHANGED   
   DEF        192.168.178.219 5000
   INTERVAL   45
   NAME       3D_Drucker
   NR         167
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-11-26 20:37:22   online          true
     2018-11-26 20:37:22   progress_completion_percent 0
   helper:
     ADDRESS    192.168.178.219
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey    xxxxx
   event-on-change-reading .*
   icon       it_printer
   room       Werkzeugkeller
   userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 26 November 2018, 20:48:44
Klar, hier bitte:

nternals:
   CHANGED   
   DEF        192.168.178.219 5000
   INTERVAL   45
   NAME       3D_Drucker
   NR         167
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-11-26 20:37:22   online          true
     2018-11-26 20:37:22   progress_completion_percent 0
   helper:
     ADDRESS    192.168.178.219
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey    xxxxx
   event-on-change-reading .*
   icon       it_printer
   room       Werkzeugkeller
   userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }
Auf Seite 1 habe ich die aktuelle Version hochgeladen. Ich schätze mal dass du noch die 0.0.10er Version verwendest. Falls es damit immer noch nicht funktioniert solltest du noch mal ein Verbose 5 Log erstellen und mir zuschicken.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: DoubleD am 26 November 2018, 21:29:40
@michael.winkler

könnte man die aktuelle Z-Position mit in die Readings mit aufnehmen?

Ich finde das Modul super habe aber nur wegen der Z-Position zusätzlich ein MQTT laufen. Das würde ich gerne los werden. ;-)

Vielen Dank für die tolle Arbeit

Gruß
Daniel
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 26 November 2018, 22:48:15
@michael.winkler

könnte man die aktuelle Z-Position mit in die Readings mit aufnehmen?

Ich finde das Modul super habe aber nur wegen der Z-Position zusätzlich ein MQTT laufen. Das würde ich gerne los werden. ;-)

Vielen Dank für die tolle Arbeit

Gruß
Daniel
Wie kommst du an diesen Wert?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: DoubleD am 28 November 2018, 12:04:28
@michael.winkler
Über das mqtt plugin.
Die ZPosition gibt es dort als reading.
Ich hatte gehofft das es den Wert auch in der API gibt und Du ihn im Modul nur nicht auswertest.

Gruß Daniel
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: DasQ am 28 November 2018, 14:51:30
Hab das Plugin auch installiert und läuft 1A, Danke dafür!  ;) :)

etwasw OT: gibts da irgend eine möglichkeit das mit dem MQTT2 server zu kombinieren?
mir erstellt es jedesmal ein neues MQTT2_device

anbei meine readings da raus

defmod MQTT2_3XSei5RXFLMaGu29ehJjQb MQTT2_DEVICE 3XSei5RXFLMaGu29ehJjQb
attr MQTT2_3XSei5RXFLMaGu29ehJjQb IODev MQTT2_Broker
attr MQTT2_3XSei5RXFLMaGu29ehJjQb readingList 3XSei5RXFLMaGu29ehJjQb:octopi/temperature/bed:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/temperature/bed:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/ZChange:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/CaptureStart:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/CaptureDone:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/temperature/tool0:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/progress/printing:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrintCancelling:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrinterStateChanged:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/MetadataAnalysisStarted:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrintCancelled:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/MetadataStatisticsUpdated:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrintFailed:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/MovieRendering:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/MovieDone:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/MetadataAnalysisFinished:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/FileAdded:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/UpdatedFiles:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/UpdatedFiles:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/FileSelected:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrintStarted:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Upload:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PositionUpdate:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Home:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrinterReset:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Disconnecting:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Disconnected:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Connecting:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Connected:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/FirmwareData:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/ClientClosed:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/ClientOpened:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/PrintDone:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/SettingsUpdated:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/event/Error:.* { json2nameValue($EVENT) }\
3XSei5RXFLMaGu29ehJjQb:octopi/mqtt:.* mqtt
attr MQTT2_3XSei5RXFLMaGu29ehJjQb room MQTT2_DEVICE
attr MQTT2_3XSei5RXFLMaGu29ehJjQb stateFormat state_id

setstate MQTT2_3XSei5RXFLMaGu29ehJjQb OPERATIONAL
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:24 _event MovieDone
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:46:40 _timestamp 1542653200
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:46:40 actual 29.62
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:44 baudrate 0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:21:32 config_hash dc6b3f08b9e84b098176330fd8c76f74
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_EXTRUDER_COUNT 1
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_FIRMWARE_NAME Marlin 1.1.8 (Github)
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_MACHINE_TYPE 3D Drucker
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_PROTOCOL_VERSION 1.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_SOURCE_CODE_URL https://github.com/MarlinFirmware/Marlin
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:55 data_UUID cede2a2f-41a2-4748-9b12-c55c62f367ff
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 e 0.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:21:32 effective_hash 59effdfda2585fa8eb4dce6810abf53e
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:26:44 error Printer requested line 1 but no sufficient history is available, can't resend
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 f 6000.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 file /home/pi/.octoprint/uploads/CFFFP_cul_case_deckel.gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 filename CFFFP_cul_case_deckel.gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:24 gcode CFFFP_cul_case_deckel.gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 13:04:45 idle false
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 location local
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:24 movie /home/pi/.octoprint/timelapse/CFFFP_cul_case_deckel_20181119184948.mpg
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:24 movie_basename CFFFP_cul_case_deckel_20181119184948.mpg
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:24 movie_prefix CFFFP_cul_case_deckel_20181119184948
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:48:17 mqtt disconnected
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 name CFFFP_cul_case_deckel.gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:18 new 10.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:18 old 6.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 origin local
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 path CFFFP_cul_case_deckel.gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:27:44 port AUTO
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 progress 100
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 15:26:44 reason error
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:45:00 remoteAddress 192.168.1.57
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_dimensions_depth 100.70500000000001
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_dimensions_height 5.8
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_dimensions_width 48.474999999999994
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_estimatedPrintTime 3209.2534963811695
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_filament_tool0_length 3640.41381
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_filament_tool0_volume 0.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_maxX 134.237
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_maxY 155.347
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_maxZ 6.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_minX 85.762
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_minY 54.642
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:59:04 result_printingArea_minZ 0.2
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 size 265382
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 state_id OPERATIONAL
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 state_string Operational
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 storage local
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 t 0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:46:40 target 0.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 19:35:22 time 2733.7367238998413
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:58:59 type gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:08:32 type_1 machinecode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 17:08:32 type_2 gcode
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 x 220.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 y 210.0
setstate MQTT2_3XSei5RXFLMaGu29ehJjQb 2018-11-19 18:54:30 z 12.77

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Micky79 am 29 November 2018, 16:42:15
Danke. Die aktuelle Version funktioniert jetzt einwandfrei.

 :)

Viele Grüße Micky
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 29 November 2018, 16:47:49
@michael.winkler
Über das mqtt plugin.
Die ZPosition gibt es dort als reading.
Ich hatte gehofft das es den Wert auch in der API gibt und Du ihn im Modul nur nicht auswertest.

Gruß Daniel
Nein, über die API steht dieser Wert leider nicht zur Verfügung.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 02 Dezember 2018, 15:45:17
Servus Michael,

hab mit meiner Installation noch mal getestet. Es scheint einiges zu funktionieren. Aber STATE bleibt immer noch auf ???

Internals:
   DEF        10.0.0.164
   INTERVAL   45
   NAME       AnyCubicI3
   NR         211
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-12-02 15:37:02   online          true
   helper:
     ADDRESS    10.0.0.164
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     27F...
   icon       it_printer
   room       1.3 Haus
   verbose    5

2018.12.02 15:38:32 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.02 15:38:32 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_GetStatus] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:80/api/job?&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:80/api/job?&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:80/api/printer?exclude=state,sd&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": 12069.247750401497,
    "estimatedPrintTime": 8416.80638152569,
    "filament": {
      "tool0": {
        "length": 4139.749620000004,
        "volume": 0.0
      }
    },
    "file": {
      "date": 1543688909,
      "display": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "name": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "origin": "local",
      "path": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "size": 4074073
    },
    "lastPrintTime": 12015.591122865677,
    "user": "dummy"
  },
  "progress": {
    "completion": 66.81986307069117,
    "filepos": 2722290,
    "printTime": 8611,
    "printTimeLeft": 4058,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:80/api/printer?exclude=state,sd&apikey=27FA...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 90.1,
      "offset": 0,
      "target": 90.0
    },
    "tool0": {
      "actual": 220.1,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 Dezember 2018, 17:28:56
Servus Michael,

hab mit meiner Installation noch mal getestet. Es scheint einiges zu funktionieren. Aber STATE bleibt immer noch auf ???

Internals:
   DEF        10.0.0.164
   INTERVAL   45
   NAME       AnyCubicI3
   NR         211
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-12-02 15:37:02   online          true
   helper:
     ADDRESS    10.0.0.164
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     27F...
   icon       it_printer
   room       1.3 Haus
   verbose    5

2018.12.02 15:38:32 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.02 15:38:32 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_GetStatus] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:80/api/job?&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:80/api/job?&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] called function CMD = 
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_SendCommand] - append to queue http://10.0.0.164:80/api/printer?exclude=state,sd&apikey=27F...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] Data = {
  "job": {
    "averagePrintTime": 12069.247750401497,
    "estimatedPrintTime": 8416.80638152569,
    "filament": {
      "tool0": {
        "length": 4139.749620000004,
        "volume": 0.0
      }
    },
    "file": {
      "date": 1543688909,
      "display": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "name": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "origin": "local",
      "path": "AI3M_FZ_Konsole_A_07_00-Halterung-Lager-2x.gcode",
      "size": 4074073
    },
    "lastPrintTime": 12015.591122865677,
    "user": "dummy"
  },
  "progress": {
    "completion": 66.81986307069117,
    "filepos": 2722290,
    "printTime": 8611,
    "printTimeLeft": 4058,
    "printTimeLeftOrigin": "estimate"
  },
  "state": "Printing"
}
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://10.0.0.164:80/api/printer?exclude=state,sd&apikey=27FA...
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] called function
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] Data = {
  "temperature": {
    "bed": {
      "actual": 90.1,
      "offset": 0,
      "target": 90.0
    },
    "tool0": {
      "actual": 220.1,
      "offset": 0,
      "target": 220.0
    }
  }
}
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.02 15:38:51 5: OctoPrint AnyCubicI3 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
Welche Version hast du im Einsatz?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: jeti am 03 Dezember 2018, 21:26:28
Hallo zusammen
bei mir läuft nun die v0.0.11 aber ich bekomme gar keine Verbindung...
Device sieht so aus:
Internals:
   DEF        192.168.1.189 5000
   INTERVAL   45
   NAME       JGaurora
   NR         69
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-12-03 21:20:09   online          false
   helper:
     ADDRESS    192.168.1.189
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   DbLogExclude .*
   apikey     D1CBF2F26A9C418BB070F1EFD262D5A2
   icon       it_printer
   room       Technik

IP stimmt  ;D und API Key auch, ich hatte vor kurzem ein ältere Version am laufen, habe dann mit MQTT experimentiert und das frühere device gelöscht...
Wohin muss ich noch gucken?

Danke und Gruß
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 04 Dezember 2018, 22:07:37
Ich verwende diese Version: 2018-10-12, v0.0.11
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 06 Dezember 2018, 07:19:28
Hallo zusammen
bei mir läuft nun die v0.0.11 aber ich bekomme gar keine Verbindung...
Device sieht so aus:
Internals:
   DEF        192.168.1.189 5000
   INTERVAL   45
   NAME       JGaurora
   NR         69
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2018-12-03 21:20:09   online          false
   helper:
     ADDRESS    192.168.1.189
     PORT       5000
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   DbLogExclude .*
   apikey     D1CBF2F26A9C418BB070F1EFD262D5A2
   icon       it_printer
   room       Technik

IP stimmt  ;D und API Key auch, ich hatte vor kurzem ein ältere Version am laufen, habe dann mit MQTT experimentiert und das frühere device gelöscht...
Wohin muss ich noch gucken?

Danke und Gruß
Bist du dir sicher dass der Port 5000 stimmt? Ansonsten mal ein Verbose 5 LOG erstellen
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 06 Dezember 2018, 07:20:49
Ich verwende diese Version: 2018-10-12, v0.0.11
Hast du das JSON Modul installiert?

Wenn nicht probier mal

sudo apt-get install libjson-perl
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: jeti am 06 Dezember 2018, 17:02:19
Bist du dir sicher dass der Port 5000 stimmt? Ansonsten mal ein Verbose 5 LOG erstellen
Wo kann ich den Port auf Octoprint nachsehen??? Ich finde es gerade nicht mehr  :o

und anbei der log:

Zitat
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command url = http://192.168.1.189:5000/api/printer?exclude=state,sd&apikey=xxx
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.06 17:07:31 4 : IP: 192.168.1.189 -> 192.168.1.189
2018.12.06 17:07:31 4 : HttpUtils: 192.168.1.189: Connection refused
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] called function
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] Data =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] ERROR = 192.168.1.189: Connection refused


 :-\ jetzt gehts, der Port 5000 war falsch, ohne Port Angabe gehts nun... Danke für den Tip!!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 09 Dezember 2018, 06:18:46
Ja das Modul sollte richtig installiert sein:

libjson-perl ist schon die neueste Version (2.90-1).
Diesen Log habe ich mit Verbose=5 erstellt:

https://forum.fhem.de/index.php/topic,81929.msg866795.html#msg866795 (https://forum.fhem.de/index.php/topic,81929.msg866795.html#msg866795)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JamesB am 09 Dezember 2018, 16:03:38
Problem Eingeschränkt. Der JSON String kann nicht dekodiert werden.

Fehler:
JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at ./FHEM/70_OctoPrint.pm line 258
Das dürfte im Zusammenhang mit dem HMCCU RPC-Server stehen. Auf einer 2. Maschine läuft das Modul. Den Fehler hatte ich schon mal in ähnlicher Form.


Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 16 Januar 2019, 11:45:14
ich würde gerne ein Notify nutzen.
Derzeit bekomme ich bei 0% 20% 40% 60% und 80% nen Bild der Cam.


Anscheinend springt er bei 100% gleicht auf fertig.
Was habt ihr für gute Ideen / Umsetzungen zum Notify DOIFs etc?
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 %");
        }
    }
}
   NAME       n_MarieLuiseProgressTelegram
   NOTIFYDEV  MarieLuise
   NR         603
   NTFY_ORDER 50-n_MarieLuiseProgressTelegram
   REGEXP     MarieLuise:progress_completion_percent:.*
   STATE      2019-01-16 08:40:10
   TRIGGERTIME 1547624410.84923
   TYPE       notify
   READINGS:
     2019-01-07 09:28:32   state           active
Attributes:
   group      Kellerlogik
   room       Logik
Userreading vom Drucker
userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 16 Januar 2019, 15:43:48
ich würde gerne ein Notify nutzen.
Derzeit bekomme ich bei 0% 20% 40% 60% und 80% nen Bild der Cam.

Steig auf DOIF um und nutze das State-Machine-Feature um ein Bild bei 0,20,40,..,100% zu schicken, aber bei 100%/fertig nur wenn vorher der 80%-Status wahr war.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 17 Januar 2019, 11:32:56
Ho das klingt kompliziert? Hättest du einen hilfreichen abwandelbaren Codeschnipsel?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 17 Januar 2019, 12:12:06
Ho das klingt kompliziert? Hättest du einen hilfreichen abwandelbaren Codeschnipsel?

Eigentlich ist das sogar ziemlich einfach ;). Ich hab hier einen Briefkasten mit zwei Sensoren (Klappe oben, Klappe unten). Wenn Post eingworfen wird (Klappe oben = auf) soll eine Nachricht gepusht und ein Todoist-Task angelegt werden. Aber: Wenn unten geöffnet wird und Post drin war, soll der Status zurück auf "leer" gesetzt werden (und eine Nachricht gepusht werden, dass sich jemand erbarmt hat den allfälligen Papiermüll zu entsorgen). Ich möchte aber auch keine Nachricht/Task haben jedesmal wenn Post nachträglich eingeworfen wird und noch keiner geleert hat, einmal reicht. Also muss man den Status des ganzen irgendwie vorhalten. Hier meine Lösung (das ist Version 2, Version 1 war ohne state machine fünfmal so umfangreich und immer buggy):

(ich konne die Definition (https://gist.github.com/christoph-morrison/6fa21d9d7386cb5b5ec065ec304cd00c) hier eben nicht posten, da das Forum den Quellcode irgendwie bemängelt hat, aber mir nicht verraten wollte, wieso)

Der entscheidende Teil ist $cmd=~"0|2" - hiermit nagelst du den Automaten darauf fest, dass der Zustand nur geändert wird, wenn vorher ein anderer (0 = kein Zustand, 2 = ist leer) wahr war. Mit $cmd=~"1" lege ich fest, dass der zweite Teil nur dann wahr werden kann wenn auch Post eingeworfen wurde.

Die Abwandlung für den Drucker wäre, dass man jeweils prüft ob (progress = 20% und vorheriger status bzw. cmd_x == 0), (progress = 40% und vorheriger status bzw. cmd_x == 20% ), usw. Die state machine läuft dann immer nur von 0 bis 100 durch und fängt dann wieder von vorne an (deswegen nennt man die Dinger auch finite state machine (fsm) - endlicher Automat (https://de.wikipedia.org/wiki/Endlicher_Automat)).
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: retikulum am 22 Januar 2019, 12:28:34
Hi.
Ich nutze dein Modul regelmäßig. Einfach klasse!

Ich hätte aber ein Feature-Request:
Es wäre super, wenn es ein "set reset" geben würde, um ein Teil der Readings zurückzusetzen (Temperatur, Progress, job_file_xxx,...).
Oder, dass das automatisch zurückgesetzt wird, wenn Octoprint offline ist.
Momentan mache ichs mittels DOIF jeden einzelnen Wert zurücksetzen, wenn das Reading "online" dann "false" ausspuckt.

Ist nur, um die cfg ein wenig aufgeräumter zu halten :-)

Sorry, falls dieser Request hier bereits existiert und ichs überlesen haben sollte.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: retikulum am 22 Januar 2019, 12:32:59
Ich hab hier einen Briefkasten mit zwei Sensoren (Klappe oben, Klappe unten).

Ui, ich habs bisschen einfacher... Ein Sensor am Boden.. ein ausgeleierter Endstop meines Druckers. Und ein Stück Pappe drauf zugeschnitten als Boden.
Wenn Brief reinfällt wird der Sensor ausgelöst, wenn Briefkasten leer wird, entspannt sich der Sensor wieder. Über event-on-change-reading und schon hat man zwei Zustände gelesen/geloggt.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mark79 am 03 April 2019, 17:26:47
Ich möchte ein Problem (Fhem Absturz) melden. Das Octoprint Modul oder Fhem kommt nicht so gut mit Sonderzeichen als Dateiname in der gcode Datei zurecht.

Simplyfi3d hat mir ein komisches Sonderzeichen (Rasierpin�elhallter.gcode) in den Dateinamen gehauen, welches in Octoprint hochgeladen wurde und Fhem ist darauf hin abgekackt mit folgender Fehlermeldung: Wide character at /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/Encode.pm line 228.

Das hat einige Zeit gedauert, bis ich mal den Ursache gefunden habe... Geholfen hat ein "attr global verbose 5".

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 04 April 2019, 08:27:23
Hast du die aktuelle Version im Einsatz?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mark79 am 05 April 2019, 16:40:19
Hallo

Hast du die aktuelle Version im Einsatz?

Daran habe ich gar nicht gedacht... Ich habe eine etwas ältere Version:
Zitat
root@fhem:/opt/fhem/FHEM# cat 70_OctoPrint.pm
# $Id: 70_OctoPrint.pm 15133 2017-09-24 21:03:57Z michael.winkler $
############################################################################
# 2018-09-05, v0.0.10
#
# v0.0.10
# - BUGFIX:  Readings mit 0 wurden nicht geschrieben
# - CHANGE:  readingsBulkUpdateIfChanged to readingsBulkUpdate

Ich werde das updaten und dann noch mal ausprobieren.


Viele Grüße
Mark
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mark79 am 06 April 2019, 18:05:04
Hallo, mit der aktuellen tritt das Problem nicht mehr auf.
Sorry für den Trubbel, ich dachte ich wäre mit dem Modul up2date. :)


Viele Grüße
Mark
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: DasQ am 20 April 2019, 20:19:18
etwasw OT: gibts da irgend eine möglichkeit das mit dem MQTT2 server zu kombinieren?
mir erstellt es jedesmal ein neues MQTT2_device

das problem ist gelöst

https://forum.fhem.de/index.php/topic,99512.msg931945.html#msg931945
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: venuel79 am 21 Juli 2019, 11:43:33
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???
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Martin2010 am 16 September 2019, 08:35:24
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?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Esjay am 16 September 2019, 08:47:49
Hast du einen Neustart gemacht? Wie hast du die Datei kopiert? Passen die Rechte auf die Datei?
Grüße
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Martin2010 am 16 September 2019, 09:05:47
Habe den Fehler gefunden! Da ist wohl was beim kopieren der Datei schief gelaufen. ;D
es läuft!
Danke!!!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag 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)) }
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 20 Dezember 2019, 20:33:57
Einfach auf
     2019-12-20 08:11:43   state           Operationaltriggern.....
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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 20 Dezember 2019, 21:13:04
Danke. Da muss ich mal nachlesen wie das funktioniert.

Gesendet von meinem POCO F1 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 20 Dezember 2019, 21:15:43
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";
}
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 06 Januar 2020, 08:33:31
Danke so klappt es Michael!
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: StephanFHEM am 30 Januar 2020, 20:09:21
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...
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Frank_Huber am 17 März 2020, 11:02:50
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?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Frank_Huber am 17 März 2020, 11:13:56
OK, gefunden.
Der API-Key kann per Attribut gesetzt werden.

Und schon läuft die Kiste wieder. :-)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 24 April 2020, 14:01:36
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?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Laserhelge am 26 April 2020, 20:11:11
Ich hab  bei mir die v0.0.11 (12.10.2018). Hab bisher keine neuere Version gefunden.

Gruß, Klaus
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 28 April 2020, 19:49:17
Hi.
Ich würde mir gerne per telegram zusätzlich zu dem Foto der Webcam auch senden lassen wie lange der Druck noch dauert. Wie bekomme ich das reading in vernünftige Form? Da gibt es ja ne Zahl aber ich hätte es gerne in lesbarer Form.

Gesendet von meinem POCO F1 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: MarkusHiba am 28 April 2020, 20:02:50
Hallo,

schau dir diesen link an. Vielleicht hilft der dir und ist das was du suchst.

https://haus-automatisierung.com/hardware/fhem/2018/03/03/fhem-tutorial-reihe-part-55-octoprint-integration.html (https://haus-automatisierung.com/hardware/fhem/2018/03/03/fhem-tutorial-reihe-part-55-octoprint-integration.html)

Grüße

MarkusHiba

Gesendet von meinem J9110 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 28 April 2020, 20:04:40
In progress_printTimeLeft ist die Zeit in Sekunden angegeben. Die musst du durch 60 teilen, dann hast du die Minuten usw. Dafür kannst du dir z.B. ein userReadings anlegen, das auf progress_printTimeLeft triggert.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 28 April 2020, 20:34:35
In progress_printTimeLeft ist die Zeit in Sekunden angegeben. Die musst du durch 60 teilen, dann hast du die Minuten usw. Dafür kannst du dir z.B. ein userReadings anlegen, das auf progress_printTimeLeft triggert.
Daran habe ich auch gedacht. Da fehlt mir der skill leider zu. Kannst du mir bitte helfen?

Gesendet von meinem POCO F1 mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Frank_Huber am 28 April 2020, 20:37:18
progress_printTimeLeftHMS {strftime('%H:%M:%S', gmtime(ReadingsNum($NAME, "progress_printTimeLeft", 0)))}

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 29 April 2020, 13:28:26
Danke das user reading klappt gut.
Nun wollte ich das in mein notify mit einbinden.
Leider bekomme ich es nicht hin das userreading einzulesen. Kann mir jemand ggf ein Tipp geben?
Derzeit sieht es so aus:
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 Rechter Drucker: Fortschritt: $progressPercent %");
        }
    }
}

Gesendet von meinem POCO F1 mit Tapatalk
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Keichi am 12 Juni 2020, 20:20:13
job_estimatedPrintTime 95431.994574228
progress_printTimeLeft 94967

ähhmm... Da wäre es vielleicht noch ganz gut, wenn man das noch in Menschen lesbarer Form übersetzen würde oder zumindest mal irgendwo angeben ob das nun Sekunden, Minuten, Stunden oder Tage sind...
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: amenomade am 12 Juni 2020, 20:33:05
job_estimatedPrintTime 95431.994574228
progress_printTimeLeft 94967

ähhmm... Da wäre es vielleicht noch ganz gut, wenn man das noch in Menschen lesbarer Form übersetzen würde oder zumindest mal irgendwo angeben ob das nun Sekunden, Minuten, Stunden oder Tage sind...

Siehe 2 Posts vor deinem Post...
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Keichi am 12 Juni 2020, 21:19:02
Siehe 2 Posts vor deinem Post...

Ja, nur ergibt sich mir der Sinn nicht, wieso man das nicht direkt im Modul macht und man dafür nochmal extra in fhem nen UserReading anlegen muss.. Finde ich ehrlich gesagt total Schwachsinnig.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 12 Juni 2020, 21:32:38
Weil das ganz einfach ungefilterte Daten sind, die von Octoprint geliefert werden.

Was jeder einzelne User damit anstellen will, kann ja vom Modulautor nicht beurteilt werden.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: amenomade am 12 Juni 2020, 21:40:40
Ja, nur ergibt sich mir der Sinn nicht, wieso man das nicht direkt im Modul macht und man dafür nochmal extra in fhem nen UserReading anlegen muss.. Finde ich ehrlich gesagt total Schwachsinnig.

Der Sinn ist einfach, zusätzlich zu was wegen raw Daten Icinger gesagt hat, dass ein Reading in Sekunden viel einfacher zu manipulieren ist, als eine formattierte Zeit.

Willst Du z.B. 15 Minuten vor dem Ende benachrithigt werden, machst Du einfach eine Subtraktion von 15*60. Ist es schon formattiert, musst Du anfangen, mit Perl Zeit-Funktionen zu kämpfen.

Und ja, Icinger hat da wieder Recht: der eine will in Sekunden, der andere in Minuten, der dritte HH:MM, der nächste als Unix Timestamp, und der letzte als Endzeitpunkt mit Format mm-dd-yyyy hh:mm. Was soll der Modulautor machen?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Keichi am 12 Juni 2020, 21:49:18
Der Sinn ist einfach, zusätzlich zu was wegen raw Daten Icinger gesagt hat, dass ein Reading in Sekunden viel einfacher zu manipulieren ist, als eine formattierte Zeit.

Willst Du z.B. 15 Minuten vor dem Ende benachrithigt werden, machst Du einfach eine Subtraktion von 15*60. Ist es schon formattiert, musst Du anfangen, mit Perl Zeit-Funktionen zu kämpfen.

Und ja, Icinger hat da wieder Recht: der eine will in Sekunden, der andere in Minuten, der dritte HH:MM, der nächste als Unix Timestamp, und der letzte als Endzeitpunkt mit Format mm-dd-yyyy hh:mm. Was soll der Modulautor machen?

Und was genau is nun das Problem das noch über das Modul wählbar zu machen wie das ganze formatiert wird? Für mich wäre das ganze dann nur noch ein einzelner Befehl den ich im Modul über eine liste auswählen könnte. Funktioniert bei attribute doch auch prima.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: amenomade am 12 Juni 2020, 21:53:06
Und was genau is nun das Problem das noch über das Modul wählbar zu machen wie das ganze formatiert wird? Für mich wäre das ganze dann nur noch ein einzelner Befehl den ich im Modul über eine liste auswählen könnte. Funktioniert bei attribute doch auch prima.

Aha. Hast Du schon viele Module entwickelt?
Und wieviele unterschiedliche Formattierungen soll der Modulautor vorsehen? 5, 10, 50 ?
Das ist immer so in Fhem gewesen: die Readings liefern i.d.R. die raw Daten. Wer besondere Formattierungen braucht, macht es selbst. Dafür sind userReadings, stateFormat und solche Attribute gedacht.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Keichi am 12 Juni 2020, 21:57:29
Also laut dir sind es 4 wobei mir schon 3 reichen... Sekunden, Minuten und Endzeit.. Alles andere is eh irrelevant, das sieht man auch an den Plugins die es für Octoprint schon gibt, die geben einen auch nix anderes aus, einfach weil kein Interesse daran besteht, seitens der Community.

Aha. Hast Du schon viele Module entwickelt?
Und wieviele unterschiedliche Formattierungen soll der Modulautor vorsehen? 5, 10, 50 ?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: amenomade am 12 Juni 2020, 22:00:45
Alles andere is eh irrelevant
Irrelevant... für dich
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison am 13 Juni 2020, 15:15:06
Und was genau is nun das Problem das noch über das Modul wählbar zu machen wie das ganze formatiert wird? Für mich wäre das ganze dann nur noch ein einzelner Befehl den ich im Modul über eine liste auswählen könnte. Funktioniert bei attribute doch auch prima.

Mach doch einfach einen Patch und schick ihn an Michael. Er freut sich sicher über deinen Input.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 09 Dezember 2020, 11:16:09
Guten Morgen,

nach einem Update auf die neueste Octoprint Version werden meine Drucker nur noch als offline angezeigt.
Hat jemand ähnliche Probleme und ggf. eine Lösung?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 09 Dezember 2020, 17:42:44
Lösung: Statt dem Octoprint-Modul einfach MQTT nehmen :)
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 09 Dezember 2020, 18:17:12
Lösung: Statt dem Octoprint-Modul einfach MQTT nehmen :)
Klingt interessant - wo kann ich mich einlesen?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Icinger am 09 Dezember 2020, 18:30:53
Für Octoprint gibts ein MQTT-Plugin.
Da bekommst du dann tonnenweise Daten, die du dir dann mit dem MQTT2-Device rausfiltern kannst.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Dezember 2020, 09:56:40
Guten Morgen,

nach einem Update auf die neueste Octoprint Version werden meine Drucker nur noch als offline angezeigt.
Hat jemand ähnliche Probleme und ggf. eine Lösung?
Was sagt denn das LOG dazu?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: hanswerner1 am 10 Dezember 2020, 10:38:56
nach einem Update auf die neueste Octoprint Version werden meine Drucker nur noch als offline angezeigt.
Hat jemand ähnliche Probleme und ggf. eine Lösung?

Ich habe auch das Problem, denke es liegt daran, das man sich auf Octoprint jetzt nur noch über Nutzerkonto einloggen kann.

Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Dezember 2020, 10:44:47
Ich habe auch das Problem, denke es liegt daran, das man sich auf Octoprint jetzt nur noch über Nutzerkonto einloggen kann.
ok, dann muss ich mir das mal anschauen
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: masterpete23 am 10 Dezember 2020, 11:13:15
Nach einiger Zeit hat er sich wieder berappelt. Es "meldet" sich wieder. Irgendwie etwas verzögert - aber es geht.

@Icinger: Gibt es dazu schon irgendwas mqtt2 fhem fertiges? Ich bin da noch nicht so fit und würde es mir gerne mal anschauen.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 10 Dezember 2020, 12:06:53
Guten Morgen,

nach einem Update auf die neueste Octoprint Version werden meine Drucker nur noch als offline angezeigt.
Hat jemand ähnliche Probleme und ggf. eine Lösung?
Habe jetzt mein Octoprint auf die Version 1.5.1 aktualisiert. Habe immer noch eine Verbindung über das Modul.

Kann es sein, dass sich Dein API Key geändert hat? Wie hast du das Update durchgeführt?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: rcmcronny am 10 Dezember 2020, 13:13:08
FYI: Bei mir läuft es mit 1.5.1 auch mit dem alten APIKey weiterhin, keine Probleme
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: KernSani am 29 März 2021, 22:59:37
Hi Michael,
Schönes Modul :-)
ich nutze das Octoprint-Plugin USBControl, um die Stromversorgung (über den USB) zu meinem Ender zu unterbrechen, bzw. wieder zu aktivieren. Das Plugin ist über API steuerbar, daher habe ich mir eine kleine myUtils-Routine dafür gebastelt. Vielleicht nutzt ja der ein oder andere auch das Plugin, daher packe ich die myUtils mal hier rein (und vielleicht magst du es ja - über Attribut einschaltbar) in das Octoprint Modul integrieren...
Schön fände ich auch noch eine "Preheat" Funktion (habe ich über set gcode realisiert, aber könnte man ja vielleicht auch über das Modul bereitstellen).


sub myUtils_usbcontrol {
my $state = shift;

my $header = {
        "Content-Type"     => "application/json",
        "X-Api-Key" => "<APIKEY>"
    };

my $data = qq({"command": "usb2","arg2": "$state"});
my $param = {
        header      => $header,
        method      => "POST",
        url         => "http://octopi.lan/api/plugin/usbcontrol",
        callback => \&myUtils_usbcontrolCb,
        data     => $data
    };
    HttpUtils_NonblockingGet($param);
    return;
}

sub myUtils_usbcontrolCb {
return; ## API doesn't return any values so far
}


Grüße,

Oli
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Lallysoft am 01 Mai 2021, 08:57:18
Hallo Michael,

ich möchte gern dein sehr hilfreiches Modul einsetzen. Die reinkommenden JSON Daten werden aber laut verbose=5 Log nicht verstanden.
Ich arbeite mit

Hier das Log:
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_GetStatus] called function
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_SendCommand] called function CMD = 
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_SendCommand] - append to queue http://192.168.100.122:80/api/job?&apikey=XXX
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.100.122:80/api/job?&apikey=XXX
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_SendCommand] called function CMD = 
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_SendCommand] using unencrypted connection via HTTP
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_SendCommand] - append to queue http://192.168.100.122:80/api/printer?exclude=state,sd&apikey=XXX
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] called function
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_job] Data = {"job":{"averagePrintTime":null,"estimatedPrintTime":49750.06166679456,"filament":{"tool0":{"length":51249.402740002086,"volume":0.0}},"file":{"date":1619801450,"display":"halter_blaue_tonne.gcode","name":"halter_blaue_tonne.gcode","origin":"local","path":"halter_blaue_tonne.gcode","size":23113827},"lastPrintTime":null,"user":"admin"},"progress":{"completion":0.5481524111087273,"filepos":126699,"printTime":1285,"printTimeLeft":48784,"printTimeLeftOrigin":"analysis"},"state":"Printing"}

2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_job] JSON =
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_job] JSON = NODATA
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command url  = http://192.168.100.122:80/api/printer?exclude=state,sd&apikey=XXX
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command data =
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] called function
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_printer] Data = {"temperature":{"bed":{"actual":70.0,"offset":0,"target":70.0},"tool0":{"actual":210.0,"offset":0,"target":210.0}}}

2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2021.05.01 08:31:04 5: OctoPrint Ender3 [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA

Und hier meine Device Internals
Internals:
   DEF        192.168.100.122 80
   FUUID      608ce592-f33f-5864-17d7-ef6d89c822efd5f2
   INTERVAL   45
   NAME       Ender3
   NR         402
   STATE      ???
   TYPE       OctoPrint
   READINGS:
     2021-05-01 08:54:01   online          true
   helper:
     ADDRESS    192.168.100.122
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
Attributes:
   apikey     XXX
   icon       it_printer
   room       HAR

Kannst du mit einen Tipp geben, woran es liegen könnte?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler am 03 Mai 2021, 11:28:05
kann keinen Fehler erkennen. Könntest Du das Octoprint mal auf die 1.6er Version aktualisieren?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Lallysoft am 03 Mai 2021, 19:26:53
Hallo Michael,

danke für deine Hilfe! Die Aktualisierung von Octoprint habe ich gleich ausprobiert, hat jedoch leider nichts geändert.
Ich habe dann mal im Modul-Quelltext nachgeschaut und vermutet, dass der Aufruf

my $dJSON = eval { JSON->new->utf8(0)->decode($data) };

wohl keine Daten zurück liefert, obwohl $data ja Daten enthält, wie das Log zeigt. Das JSON Modul muss allerdings
ja auch da sein, weil das zuvor im Code geprüft wird.

Ich habe ein kleines Perl Testprogramm auf dem FHEM-Rechner geschrieben und das Kommando geprüft. Da funktioniert
es und es kommt bei $dJSON etwas wie "HASH(0x2a4448)" zurück:

#!/usr/bin/perl -w
if  (eval {require JSON;1;} ne 1) {print "No JSON";};
my $indata = '{"temperature":{"bed":{"actual":60.0,"offset":0,"target":60.0},"tool0":{"actual":206.25,"offset":0,"target":205.0}}}';
my $outdata = eval{JSON->new->utf8(0)->decode($indata)};
print "$indata\n";
print "$outdata\n";

Warum das im Modul nicht geht, ist weiterhin rätselhaft...

Viele Grüße,
Ralf
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: raiderxxl 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Christoph Morrison 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.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Lallysoft 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JWRu 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?
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler 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/
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JWRu 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.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: michael.winkler 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.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: JWRu am 10 Mai 2021, 13:38:30
Danke.
Die Antwort auf meine Frage ist also, dass es mit Perl XML::LibXML nicht funktioniert.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: raiderxxl 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Marlen 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Joker82 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…
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: mizu 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
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: laberlaib 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.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Dracolein 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)) }
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Dracolein 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.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: markus_fhem am 21 November 2021, 19:40:57
Ich schließe mich dem an, beobachte bei mir die gleiche Thematik. Gleiche Error-Message und Online ist false, aber die anderen Readings werden normal aktualisiert.
Octoprint und Fhem sind erst seit zwei Tagen aktiv, weswegen ich nicht sagen kann, ob es vorher anders war.

Hab mir nun erstmal mit einem kleinen DOIF beholfen, das den online-Status auf true setzt, wenn er false ist und die Readings trotzdem events auslösen.

defmod di_3D_MegaSOnline DOIF (["^3D_MegaS$:^(job|progress|temperature).*"] and [3D_MegaS:online] eq "false") \
(setreading 3D_MegaS online true)
attr di_3D_MegaSOnline do always

Im Modul ist in Zeile 272 eine if-Abfrage auf $err drin. Wenn die einmal true geworden zu sein, springt der Online-Status richtigerweise auf false (warum hier eigentlich true und false und nicht online/offline?), kommt dann aber nicht mehr zurück in den richtigen Status.
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: markus_fhem am 21 November 2021, 20:30:07
Lösung für alle anderen:

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

Pascal

Vielen Dank für diese kompakte Lösung.
ich habe bei mir noch die Sekunden entfernt, damit sich das Reading nicht so häufig aktualisiert. Insbesondere wenn man zur Vorhersage nicht die OctoPrint-eigene Methode, sondern PrintTimeGenius verwendet, pendelt sich der Wert schon nach ganz kurzer Zeit stabil auf +/- wenige Minuten ein.

Edit: Noch um einen Trigger ergänzt, damit es nicht bei allen readings aktualisiert, denn sonst zählt es weiter, auch wenn der Druck schon zuende ist.

eta:progress_printTimeLeft.* {POSIX::strftime("%H:%M",localtime(time+ ReadingsNum($NAME, "progress_printTimeLeft", 0)))}
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: ERI am 23 Dezember 2021, 15:02:47
da ich  Octoprint nur beobachte, habe ich das Mqtt plugin im Octo installiert. So weit  so  gut.
Und  eben  ein device als  MQTT2  device  angelegt ....   Alles fast  schön
nur ich kommen mit diesen  Jason maps  nicht klar nicht nur  hier nicht  sonder auch  generell  ist das  irgendwie ....
ich empfange  über temparatur sowohl die  Bett als auch  die  Düsen Temperatur
sowohl target als auch aktuelle Werte
ich bin  irgend  wie  zu blöde  das  richtig mit  der  map aufzulösen
kann das mal wer erklären  weil ich habe auch im Forum und im wiki nichts gefunden, was mich weiter bringt,  dank im vorraus 
 das  sind die readings :

_timestamp 1608938025 
actual 59.66
target 60.0
************************
die  werte enthalten    abwechselnd  die  Werte für  Bett und Düse  >:(

die readinglist 
...
hPgUeKvBOBDHp:octoPrint/temperature/tool0:.* { json2nameValue($EVENT) }
hPgUeKvBOBDHp:octoPrint/temperature/bed:.* { json2nameValue($EVENT) }
*****************************************************
Im  MQtt    browser  sehe  ich  die  werte 
unter  Octoprint/ temerature/

bed= {"_Timestamp":1234567890,"actual":60.03 ,"target" :60.00}
Tool0= {"_Timestamp":1234567890,"actual":200.13 ,"target" :200.00}

nur bekomme ich  es  nicht   hin  die Werte  bed.actual  und bed.target
bzw  das  gleich  fürs  tool aus zu filtern  so das
    
so das   das State  format
data_MACHINE_TYPE oparate data_FIRMWARE_NAME is state_id complete: progress %
<br>
mqtt
bed:actual -> bed:target °C
tool0:actual -> tool0:target °C

  sinnvoll gefüllt wird
Titel: Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
Beitrag von: Thyraz am 24 Februar 2022, 14:39:29
Die Frage ist lange her, aber da es keine Reaktion auf die letzten Probleme gab, habe ich mich auch entschieden OctoPrint über MQTT2_Device anzubinden.

Hier mal eine erste Konfiguration, welche die Temperaturen, den PrinterStatus, den Druckfortschritt und den aktuellen Dateinamen in Readings verpackt.

Mehr folgt sicher noch.

Attribut readingList:
octoPrint/temperature/tool0:.* { json2nameValue($EVENT, 'TEMP_NOZZLE_', $JSONMAP) }
octoPrint/temperature/bed:.* { json2nameValue($EVENT, 'TEMP_BED_', $JSONMAP) }
octoPrint/event/PrinterStateChanged:.* { json2nameValue($EVENT, 'PRINTER_STATE_', $JSONMAP) }
octoPrint/progress/printing:.* { json2nameValue($EVENT, 'PROGRESS_', $JSONMAP) }

Attribut jsonMap:
TEMP_BED__timestamp:0
TEMP_BED_actual:TemperatureBedCurrent
TEMP_BED_target:TemperatureBedTarget
TEMP_NOZZLE__timestamp:0
TEMP_NOZZLE_actual:TemperatureNozzleCurrent
TEMP_NOZZLE_target:TemperatureNozzleTarget
PRINTER_STATE_state_id:PrinterState
PRINTER_STATE_state_string:0
PRINTER_STATE__event:0
PRINTER_STATE__timestamp:0
PROGRESS_progress:Progress
PROGRESS_location:0
PROGRESS_path:FileName
PROGRESS__timestamp:0