[Modul] OctoPrint

Jawoll, sehr schön. Das funktioniert.
Nach dem Motto, kleiner Finger Ganze Hand:
Mir ist gestern beim Mehrfarbendruck noch was aufgefallen, die Filamentwechsel Meldung wird in keinen Deiner Instanzen angezeigt oder als Status gemeldet. Kannst ja mal schauen, ob diese in der Api ankommt. So würde ich mir dann eine Pushmeldung zukommen lassen.

Danke erstmal bis hier hin.
Gruß Frank

Es gibt eine neue Stable Version. Alle Informationen dazu findet ihr im Changelog.

Grüße,
Kai

Hallo Kai,
würde nun auch gerne meinen OctoPi ins Symcon einbinden und habe dein Modul installiert. Im Modul „Octoconnect“ beim Login bekomme ich aber folgende Fehlermeldung:

Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\.store\info.schnittcher.info.ips.octoprint\OctoConnect\module.php:146
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\info.schnittcher.info.ips.octoprint\OctoConnect\module.php(146): json_decode(false, true)
#1 C:\ProgramData\Symcon\modules\.store\info.schnittcher.info.ips.octoprint\OctoConnect\module.php(156): OctoConnect->sendHTTPRequest('login', Array, 'POST')
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(591): OctoConnect->OtcoPrintLogin()
#3 C:\Windows\System32\-(3): OCTO_OtcoPrintLogin(42993)
#4 {main}
  thrown in C:\ProgramData\Symcon\modules\.store\info.schnittcher.info.ips.octoprint\OctoConnect\module.php on line 146

Gibt es dazu einen Tipp, wie ich das Problem beheben kann?
LG,
Hugo

Nach langem suchen hab ich es nun selber hinbekommen. War ein falscher Port eingestellt :frowning: Blöder Fehler, aber man wird irgenwann betriebsblind und übersieht die offensichtlichen Dinge.

Andere Frage: Wie habt ihr Pause / Resume hinbekommen? Abbrechen funktioniert, aber bei Pause / Resume passiert nichts. Wenn ich direkt beim OctoPi auf Pause gehe, wird das auch brav in der Variable „Pausiert“ angezeigt. Vom Modul aus kann ich aber nicht pausieren.

LG
Hugo

Sorry, dass ich nicht geantwortet habe, ich hatte noch keine Zeit dafür gefunden.
Kannst du mal schauen, was im Debug steht, wenn du versuchst über Symcon zu pausieren?

Grüße,
Kai

Hallo Kay,

es kommt beim Debug der Instanz „OctoCurrentState“ sekündlich:

14.03.2022, 10:25:02 |  ReceiveData :: JSON | {"DataID":"{061BF800-B5B6-5098-BD69-5D0FFD61FCED}","Buffer":"{\"state\":{\"text\":\"Printing\",\"flags\":{\"operational\":true,\"printing\":true,\"cancelling\":false,\"pausing\":false,\"resuming\":false,\"finishing\":false,\"closedOrError\":false,\"error\":false,\"paused\":false,\"ready\":false,\"sdReady\":false},\"error\":\"\"},\"job\":{\"file\":{\"name\":\"ASX1_backplane.gcode\",\"path\":\"ASX1_backplane.gcode\",\"display\":\"ASX1_backplane.gcode\",\"origin\":\"local\",\"size\":1046663,\"date\":1647249225},\"estimatedPrintTime\":null,\"averagePrintTime\":null,\"lastPrintTime\":null,\"filament\":null,\"user\":\"_api\"},\"currentZ\":7.6,\"progress\":{\"completion\":10.5158011700041,\"filepos\":110065,\"printTime\":654,\"printTimeLeft\":4141,\"printTimeLeftOrigin\":\"estimate\"},\"offsets\":[],\"resends\":{\"count\":0,\"transmitted\":1381135,\"ratio\":0},\"serverTime\":1647249879.945396,\"temps\":[],\"logs\":[\"Recv: ok\",\"Send: N3672 G1 X144.728 Y149.422 E217.73339*95\",\"Recv: ok\",\"Send: N3673 G1 X143.484 Y152.612 E217.8365*98\",\"Recv: ok\",\"Send: N3674 G1 X143.073 Y153.917 E217.8722*101\",\"Recv: ok\",\"Send: N3675 G1 X141.869 Y157.741 E217.94696*87\"],\"messages\":[],\"busyFiles\":[{\"origin\":\"local\",\"path\":\"ASX1_backplane.gcode\"}]}"}
14.03.2022, 10:25:02 |  ReceiveData :: JSON | {"DataID":"{061BF800-B5B6-5098-BD69-5D0FFD61FCED}","Buffer":"{\"state\":{\"text\":\"Printing\",\"flags\":{\"operational\":true,\"printing\":true,\"cancelling\":false,\"pausing\":false,\"resuming\":false,\"finishing\":false,\"closedOrError\":false,\"error\":false,\"paused\":false,\"ready\":false,\"sdReady\":false},\"error\":\"\"},\"job\":{\"file\":{\"name\":\"ASX1_backplane.gcode\",\"path\":\"ASX1_backplane.gcode\",\"display\":\"ASX1_backplane.gcode\",\"origin\":\"local\",\"size\":1046663,\"date\":1647249225},\"estimatedPrintTime\":null,\"averagePrintTime\":null,\"lastPrintTime\":null,\"filament\":null,\"user\":\"_api\"},\"currentZ\":7.6,\"progress\":{\"completion\":10.5158011700041,\"filepos\":110065,\"printTime\":654,\"printTimeLeft\":4141,\"printTimeLeftOrigin\":\"estimate\"},\"offsets\":[],\"resends\":{\"count\":0,\"transmitted\":1381135,\"ratio\":0},\"serverTime\":1647249879.945396,\"temps\":[],\"logs\":[\"Recv: ok\",\"Send: N3672 G1 X144.728 Y149.422 E217.73339*95\",\"Recv: ok\",\"Send: N3673 G1 X143.484 Y152.612 E217.8365*98\",\"Recv: ok\",\"Send: N3674 G1 X143.073 Y153.917 E217.8722*101\",\"Recv: ok\",\"Send: N3675 G1 X141.869 Y157.741 E217.94696*87\"],\"messages\":[],\"busyFiles\":[{\"origin\":\"local\",\"path\":\"ASX1_backplane.gcode\"}]}"}

wenn ich Pause ausführe erscheint gar nichts im Log. Ich habe es auch über „Befehle Testen“ gemacht.

Du musst in der OctoConnect Instanz nach dem Debug schauen.

Grüße,
Kai

Sorry
es kommt das wenn ich Pause ausführe:

14.03.2022, 14:05:35 | ForwardData :: Received JSON | {"DataID":"{B8E958B1-9C0B-8EB0-B863-7740708326EB}","Buffer":{"Command":"OCT.ActionPausing","Params":{"command":"pause","action":"pause"}}}

unmittelbar danach kommt:

14.03.2022, 14:05:35 | Received Data :: JSON | {"DataID":"{018EF6B5-AB94-40C6-AA53-46943E824ACF}","Buffer":"{\"current\": {\"state\": {\"text\": \"Printing\", \"flags\": {\"operational\": true, \"printing\": true, \"cancelling\": false, \"pausing\": false, \"resuming\": false, \"finishing\": false, \"closedOrError\": false, \"error\": false, \"paused\": false, \"ready\": false, \"sdReady\": false}, \"error\": \"\"}, \"job\": {\"file\": {\"name\": \"ASX1_backplane.gcode\", \"path\": \"ASX1_backplane.gcode\", \"display\": \"ASX1_backplane.gcode\", \"origin\": \"local\", \"size\": 1046663, \"date\": 1647262760}, \"estimatedPrintTime\": 4304.225794028871, \"averagePrintTime\": 4681.170932443987, \"lastPrintTime\": 4681.170932443987, \"filament\": {\"tool0\": {\"length\": 2106.4225499999984, \"volume\": 0.0}}, \"user\": \"_api\"}, \"currentZ\": 1.6, \"progress\": {\"completion\": 3.6005858619249937, \"filepos\": 37686, \"printTime\": 352, \"printTimeLeft\": 4521, \"printTimeLeftOrigin\": \"average\"}, \"offsets\": {}, \"resends\": {\"count\": 0, \"transmitted\": 1270, \"ratio\": 0}, \"serverTime\": 1647263112.704725, \"temps\": [{\"time\": 1647263112, \"tool0\": {\"actual\": 215.0, \"target\": 215.0}, \"bed\": {\"actual\": 60.02, \"target\": 60.0}, \"chamber\": {\"actual\": null, \"target\": null}}], \"logs\": [\"Recv: ok\", \"Send: N1259 G1 F300 Z1.6*17\", \"Recv: ok\", \"Send: N1260 G1 F1500 E65.19779*6\", \"Recv: ok\", \"Send: N1261 G1 F1018.6 X152.134 Y135.658 E65.20966*20\", \"Recv:  T:215.00 /215.00 B:60.02 /60.00 @:41 B@:5\", \"Recv: ok\", \"Send: N1262 G0 F9000 X151.881 Y135.288*113\", \"Recv: ok\", \"Send: N1263 G1 F1018.6 X153.254 Y133.916 E65.24517*31\"], \"messages\": [\"T:215.00 /215.00 B:60.02 /60.00 @:41 B@:5\"], \"busyFiles\": [{\"origin\": \"local\", \"path\": \"ASX1_backplane.gcode\"}]}}"}
14.03.2022, 14:05:35 | Received Data :: Buffer | {"current": {"state": {"text": "Printing", "flags": {"operational": true, "printing": true, "cancelling": false, "pausing": false, "resuming": false, "finishing": false, "closedOrError": false, "error": false, "paused": false, "ready": false, "sdReady": false}, "error": ""}, "job": {"file": {"name": "ASX1_backplane.gcode", "path": "ASX1_backplane.gcode", "display": "ASX1_backplane.gcode", "origin": "local", "size": 1046663, "date": 1647262760}, "estimatedPrintTime": 4304.225794028871, "averagePrintTime": 4681.170932443987, "lastPrintTime": 4681.170932443987, "filament": {"tool0": {"length": 2106.4225499999984, "volume": 0.0}}, "user": "_api"}, "currentZ": 1.6, "progress": {"completion": 3.6005858619249937, "filepos": 37686, "printTime": 352, "printTimeLeft": 4521, "printTimeLeftOrigin": "average"}, "offsets": {}, "resends": {"count": 0, "transmitted": 1270, "ratio": 0}, "serverTime": 1647263112.704725, "temps": [{"time": 1647263112, "tool0": {"actual": 215.0, "target": 215.0}, "bed": {"actual": 60.02, "target": 60.0}, "chamber": {"actual": null, "target": null}}], "logs": ["Recv: ok", "Send: N1259 G1 F300 Z1.6*17", "Recv: ok", "Send: N1260 G1 F1500 E65.19779*6", "Recv: ok", "Send: N1261 G1 F1018.6 X152.134 Y135.658 E65.20966*20", "Recv:  T:215.00 /215.00 B:60.02 /60.00 @:41 B@:5", "Recv: ok", "Send: N1262 G0 F9000 X151.881 Y135.288*113", "Recv: ok", "Send: N1263 G1 F1018.6 X153.254 Y133.916 E65.24517*31"], "messages": ["T:215.00 /215.00 B:60.02 /60.00 @:41 B@:5"], "busyFiles": [{"origin": "local", "path": "ASX1_backplane.gcode"}]}}
14.03.2022, 14:05:35 | Send (Child) Current :: JSON | {"DataID":"{061BF800-B5B6-5098-BD69-5D0FFD61FCED}","Buffer":"{\"state\":{\"text\":\"Printing\",\"flags\":{\"operational\":true,\"printing\":true,\"cancelling\":false,\"pausing\":false,\"resuming\":false,\"finishing\":false,\"closedOrError\":false,\"error\":false,\"paused\":false,\"ready\":false,\"sdReady\":false},\"error\":\"\"},\"job\":{\"file\":{\"name\":\"ASX1_backplane.gcode\",\"path\":\"ASX1_backplane.gcode\",\"display\":\"ASX1_backplane.gcode\",\"origin\":\"local\",\"size\":1046663,\"date\":1647262760},\"estimatedPrintTime\":4304.225794028871,\"averagePrintTime\":4681.170932443987,\"lastPrintTime\":4681.170932443987,\"filament\":{\"tool0\":{\"length\":2106.4225499999984,\"volume\":0}},\"user\":\"_api\"},\"currentZ\":1.6,\"progress\":{\"completion\":3.6005858619249937,\"filepos\":37686,\"printTime\":352,\"printTimeLeft\":4521,\"printTimeLeftOrigin\":\"average\"},\"offsets\":[],\"resends\":{\"count\":0,\"transmitted\":1270,\"ratio\":0},\"serverTime\":1647263112.704725,\"temps\":[{\"time\":1647263112,\"tool0\":{\"actual\":215,\"target\":215},\"bed\":{\"actual\":60.02,\"target\":60},\"chamber\":{\"actual\":null,\"target\":null}}],\"logs\":[\"Recv: ok\",\"Send: N1259 G1 F300 Z1.6*17\",\"Recv: ok\",\"Send: N1260 G1 F1500 E65.19779*6\",\"Recv: ok\",\"Send: N1261 G1 F1018.6 X152.134 Y135.658 E65.20966*20\",\"Recv:  T:215.00 \\\/215.00 B:60.02 \\\/60.00 @:41 B@:5\",\"Recv: ok\",\"Send: N1262 G0 F9000 X151.881 Y135.288*113\",\"Recv: ok\",\"Send: N1263 G1 F1018.6 X153.254 Y133.916 E65.24517*31\"],\"messages\":[\"T:215.00 \\\/215.00 B:60.02 \\\/60.00 @:41 B@:5\"],\"busyFiles\":[{\"origin\":\"local\",\"path\":\"ASX1_backplane.gcode\"}]}"}

Es gibt eine neue Beta Version, kannst du es mal testen?

Grüße,
Kai

Mit der Beta funktioniert es.

Sehr gut. :slight_smile:

Grüße,
Kai

Vielen Dank!
LG,
Hugo

Sagt’ mal,
bei dem Modul kommen die Daten ca. sekündlich in IPS rein.
Werden die vom Printserver sekündlich gepolled oder versendet er dies selber in diesem Zeitabstand?
Ich hatte jetzt keine Einstellung für das Abfrageintervall gesehen, würde das aber gerne etwas verlängern da die Thread Queue bei mehreren Druckern ja so schon ganz schön belastet wird.
Gibt es da eine Möglichkeit zu?

Viele Grüße und auch hier wieder vielen Dank für das tolle Modul,
Doc

Das kommt von Octoprint, das Modul pollt nicht.

Grüße,
Kai

Ok danke.
Das hatte ich mir schon fast gedacht.
Dann muss ich mal so damit leben oder geht das ggf. im OctoPrint Server zu verstellen?

VG,
Doc

Mein 3D-Drucker (und der Raspi mit Octoprint) hängen an einer schaltbaren Steckdose (Homematic), da ich nur alle paar Wochen mal was drucke.

Der WS Client des Moduls schaltet sich aber bei Nicht-Erreichbarkeit ab und ich muss es in der Konsole manuell wieder aktivieren.

Ginge das auch automatisch?
Steckdose wird eingeschaltet => WS Client „neustarten“ o. ä.?

Das kannst du per Script und Ereignis machen.
Dazu brauchst du die Funktion IPS_SetProperty (IPS_SetProperty — IP-Symcon :: Automatisierungssoftware).

Grüße,
Kai

Ach, klar… :man_facepalming:
Super, danke!

Hallo,

ich bin wahrscheinlich zu doof um es hinzubekommen.

Verbindungen stehen alle. Logs sehen gut aus.

Füge ich die Instanz „aktueller Status“ hinzu klappt das fehlerfrei, aber Daten werden nicht aktualisiert.

In jeder Instanz ist auch ein Feld UUID was leer bleibt.
Muss ich dort etwas eintragen?

Hast du die Instanzen über die Discovery Instanz angelegt?

Grüße,
Kai