NEWS
Test Adapter OctoPrint
Test Adapter OctoPrint
-
@latzi schon wieder vorbei...
nehm ich das raus, kommt nach kurzem17:54:08.039 warn javascript.0 (615) at Object.<anonymous> (script.js.common.Diverses.Octothumb:6:20) 17:54:08.043 warn javascript.0 (615) at Object.<anonymous> (script.js.common.Diverses.Octothumb:9:4)da ist plötzlich eine if zeile zusätzlich?
zwar keine fehler mehr, aber octoprint.0.printjob.file.origin kann nicht ganz passen, da steht local drinnen...
ich häng mal mein script an... hab ja die DP bei mir geändert/ anders benannt...on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) { var octo_thumb=''; var thumb_file=''; if ((obj.state.val)!== null) { thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode",""); if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) { octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; }; } setState("javascript.0.Octothumb.dir_thumb", thumb_file, true); setState("javascript.0.Octothumb.thumbnail", octo_thumb, true); });
-
@da_woody
local war immer schon drin, sollte so passen.
Wie sieht denn die DP-Struktur unter files.local_Düse-V1_r bei dir aus? -
@latzi schön langsam strick ich mir einen pullover mit den DPs...

http://192.168.2.59:80/plugin/prusaslicerthumbnails/thumbnail/Düse-v1_r.png?20220120151807das passt. kann ich logischer weise nicht verwenden. thumbnail bleibt leer.

-
@da_woody

ich meinte unter octoprint.0.files.local_Düse-v1_r.
Das Schneegestöber benebelt meine Sinne, wie ist´s im Burgenland? -
@latzi sorry, hat kurz gedauert, bin vom büro in die männerhöhle geflüchtet...
keine änderung, javascript.0.Octothumb.thumbnail bleibt leer... -
@latzi sorry, hat kurz gedauert, bin vom büro in die männerhöhle geflüchtet...
keine änderung, javascript.0.Octothumb.thumbnail bleibt leer... -
@da_woody
Männerhöhle klingt sehr gut
Hast du aktuell etwas im Druck? Das Ganze wird nur durchlaufen, wenn sich beim DP octoprint.0.printjob.file.name etwas ändert oder aktualisiert wird (und das script gestartet wird).@latzi er drückt sich grad einen... dauert noch, muss aber eh noch was drucken. muss ich aber erst fila tauschen.

die 3. kachel wär schon fürs thumb vorbereitet...
nuja, hab so ca. 75qm für mich. werkstatt (büro) und eben die dachhöhle auch ca 20qm...
ich hab platz...
-
@da_woody
sehr böse, jetzt hab ich´s!
das "-" im Filenamen wird unter files zu einem "_" und daher findet das script keine thumbnail_url und befüllt nicht.
@haus-automatisierung gibt es noch weitere "Sonderzeichen", die "übersetzt" werden? -
@latzi er drückt sich grad einen... dauert noch, muss aber eh noch was drucken. muss ich aber erst fila tauschen.

die 3. kachel wär schon fürs thumb vorbereitet...
nuja, hab so ca. 75qm für mich. werkstatt (büro) und eben die dachhöhle auch ca 20qm...
ich hab platz...
@da_woody
lechts sabber, ich auch mag
versuchs mal damit (ungetestet, Zeile 6 ist neu und soll übersetzen)on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) { var octo_thumb=''; var thumb_file=''; if ((obj.state.val)!== null) { thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode",""); thumb_file=thumb_file.replace("-","_"); if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) { octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; }; }; setState("javascript.0.Octothumb.dir_thumb", thumb_file, true); setState("javascript.0.Octothumb.thumbnail", octo_thumb, true); }); -
@da_woody
lechts sabber, ich auch mag
versuchs mal damit (ungetestet, Zeile 6 ist neu und soll übersetzen)on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) { var octo_thumb=''; var thumb_file=''; if ((obj.state.val)!== null) { thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode",""); thumb_file=thumb_file.replace("-","_"); if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) { octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; }; }; setState("javascript.0.Octothumb.dir_thumb", thumb_file, true); setState("javascript.0.Octothumb.thumbnail", octo_thumb, true); }); -
@latzi irgendwo fehlt eine (. mault in zeile 13 über );

19:19:09.191 error javascript.0 (615) script.js.common.Diverses.Octothumb compile failed: at script.js.common.Diverses.Octothumb:13@da_woody
so sieht´s bei mir aus:on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) { var octo_thumb=''; var thumb_file=''; if ((obj.state.val)!== null) { thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode",""); thumb_file=thumb_file.replace("-","_"); if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) { octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; }; }; setState("javascript.0.3D-Drucker.dir_thumb", thumb_file, true); setState("javascript.0.3D-Drucker.thumbnail", octo_thumb, true); });Edit: Hab die "}" oben eingefügt, sorry voll übersehen

-
@da_woody
so sieht´s bei mir aus:on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) { var octo_thumb=''; var thumb_file=''; if ((obj.state.val)!== null) { thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode",""); thumb_file=thumb_file.replace("-","_"); if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) { octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; }; }; setState("javascript.0.3D-Drucker.dir_thumb", thumb_file, true); setState("javascript.0.3D-Drucker.thumbnail", octo_thumb, true); });Edit: Hab die "}" oben eingefügt, sorry voll übersehen

-
@latzi LOL, scheiße, um es nett auszudrücken. die browser gehn mir immer mehr auf die nerven...
firefox:
Zu Ihrem Schutz erlaubt 192.168.2.59 es Firefox nicht, diese Seite anzuzeigen, wenn sie in eine andere Seite eingebettet ist. Zur Anzeige der Seite muss diese in einem neuen Tab geöffnet werden.
chrome:

-
@latzi LOL, scheiße, um es nett auszudrücken. die browser gehn mir immer mehr auf die nerven...
firefox:
Zu Ihrem Schutz erlaubt 192.168.2.59 es Firefox nicht, diese Seite anzuzeigen, wenn sie in eine andere Seite eingebettet ist. Zur Anzeige der Seite muss diese in einem neuen Tab geöffnet werden.
chrome:

-
@da_woody
verwendest du iframe?
Bei mir läuft´s mit iframe und chrome (ff hab ich nicht getestet).@latzi nix iframe, das ist iQontrol...
ist aber anscheinend ein iframe. hrnz.Die "X-Frame-Options"-Direktive "sameorigin" verbietet das Laden von "http://192.168.2.59/plugin/prusaslicerthumbnails/thumbnail/D%C3%BCse-v1_r.png?20220120151807" in einem Frame. -
An alle und speziell @Negalein

Ich habe hier ein JS-Script zusammengeschustert, welches die Octoprint-Zeiten in HH:MM:SS umsetzt,
sowie die Gesamtdruckdauer und Fertigstellungszeit erstellt.
(Fertigstellungszeit enthält auch das Datum, weil der Druckjob ja z.B. erst am nächsten Tag fertig werden könnte).Sieht in meinem VIS z.B. so aus:

Dazu werden unter javascript.0.OctoPi insges. 4 Datenpunkte (EndeZeit, Gesamtzeit, Printzeit, Restzeit) beim ersten Start des Scriptes angelegt, deren Inhalte (Strings) im VIS eingebunden werden können

evtl. kann das ja außer @Negalein noch jemand gebrauchen?
//##################################################################### // Octoprint-Zeitberechnungen //##################################################################### // Variablen aus Octoprint-Adapter uebernehmen const anycubic_timedone = 'octoprint.0.printjob.progress.printtime' const anycubic_timeleft = 'octoprint.0.printjob.progress.printtime_left' const anycubic_completion = 'octoprint.0.printjob.progress.completion' // Eigene Datenpunkte unter "javascript.0.OctoPi." erzeugen createState('javascript.0.OctoPi.Printzeit', { name: 'Druckdauer', desc: 'Druckdauer', type: 'string' }); createState('javascript.0.OctoPi.Restzeit', { name: 'Restzeit', desc: 'Restzeit', type: 'string' }); createState('javascript.0.OctoPi.Gesamtzeit', { name: 'Gesamtzeit', desc: 'Gesamtdauer des Druckjobs', type: 'string', }); createState( 'javascript.0.OctoPi.EndeZeit', { name: 'EndeZeit', desc: 'Uhrzeit Fertigstellung des Druckes', type: 'string' }); //____________________________________________________________________________________________________ // Umrechnung der Druckzeiten von Sekunden in HH:MM:SS //##################################################### function umrechnung() { var time_left = getState("octoprint.0.printjob.progress.printtime_left").val; var job_time = getState('octoprint.0.printjob.progress.printtime').val; var duration = time_left + job_time; // Hours var hours_restzeit = Math.floor( time_left / 3600 ); var hours_printzeit = Math.floor( job_time / 3600 ); var hours_duration = Math.floor( duration / 3600 ); // Fuehrende 0 notwendig ? if ( hours_restzeit < 10 ){var std_restzeit = "0" + String(hours_restzeit);} else var std_restzeit = String(hours_restzeit) if ( hours_printzeit < 10 ){var std_printzeit= "0" + String(hours_printzeit); } else var std_printzeit = String(hours_printzeit) if ( hours_duration < 10 ){var std_duration= "0" + String(hours_duration); } else var std_duration = String(hours_duration) // Minutes var minutes_restzeit = Math.floor( (time_left%3600) / 60 ); var minutes_printzeit = Math.floor( (job_time%3600) / 60 ); var minutes_duration = Math.floor( (duration%3600) / 60 ); if ( minutes_restzeit < 10 ){var min_restzeit = "0" + String(minutes_restzeit);} else var min_restzeit = String(minutes_restzeit) if ( minutes_printzeit < 10 ){var min_printzeit= "0" + String(minutes_printzeit); } else var min_printzeit = String(minutes_printzeit) if ( minutes_duration < 10 ){var min_duration= "0" + String(minutes_duration); } else var min_duration = String(minutes_duration) // Seconds var seconds_restzeit = Math.floor( time_left%60 ); var seconds_printzeit = Math.floor( job_time%60 ); var seconds_duration = Math.floor( duration%60 ); if ( seconds_restzeit < 10 ){var sec_restzeit = "0" + String(seconds_restzeit);} else var sec_restzeit = String(seconds_restzeit) if ( seconds_printzeit < 10 ){var sec_printzeit= "0" + String(seconds_printzeit); } else var sec_printzeit = String(seconds_printzeit) if ( seconds_duration < 10 ){var sec_duration= "0" + String(seconds_duration); } else var sec_duration = String(seconds_duration) // Zeiten in HH:MM:SS format var restzeit = std_restzeit + ':' + min_restzeit + ':' + sec_restzeit; var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit; var dauer = std_duration + ':' + min_duration + ':' + sec_duration; //console.log("Restzeit:" + restzeit + "__" + " Printzeit:" + printzeit + "__" +" Dauer:" + dauer); if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Restzeit", "--:--:--", true)) } else setState("javascript.0.OctoPi.Restzeit", restzeit, true); if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Printzeit", "--:--:--", true)) } else setState("javascript.0.OctoPi.Printzeit", printzeit, true); if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Gesamtzeit", "--:--:--", true)) } else setState("javascript.0.OctoPi.Gesamtzeit", dauer, true); } //____________________________________________________________________________________________________ // Druck-Ende Uhrzeit berechnen // //################################# function endezeit(){ var time_left = getState("octoprint.0.printjob.progress.printtime_left").val; var sekunden_restzeit = time_left; // Restzeit in Sekunden aus Octopi if(time_left == null || time_left == 0 ){ setState("javascript.0.OctoPi.EndeZeit", '---', true) }; var Zeit = new Date(); //log('jetzt: ' + Zeit); var z0_neu = Zeit.getSeconds()+ sekunden_restzeit; var z_neu = Zeit.setSeconds(z0_neu); var ZeitNeu = new Date(z_neu); //console.log('Endezeit: ' + ZeitNeu); var h_ende = ZeitNeu.getHours(); var m_ende = ZeitNeu.getMinutes(); var s_ende = ZeitNeu.getSeconds(); var tag_ende = ZeitNeu.getDate(); var months = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]; var monat_ende = months[ZeitNeu.getMonth()]; var EndeZeit = tag_ende + '.' + monat_ende + ' ' + h_ende + ':' + m_ende + ':' + s_ende; //console.log('EndeZeit: ' + EndeZeit); // Führende 0 hinzufügen und als String wandeln if ( tag_ende < 10 ){var endtag = "0" + String(tag_ende);} else var endtag = String(tag_ende) if ( h_ende < 10 ){var endstunde = "0" + String(h_ende);} else var endstunde = String(h_ende) if ( m_ende < 10 ){var endminute = "0" + String(m_ende);} else var endminute = String(m_ende) if ( s_ende < 10 ){var endsekunde = "0" + String(s_ende);} else var endsekunde = String(s_ende) var EndeZeit = endtag + '. ' + monat_ende + ' ' + endstunde + ':' + endminute + ':' + endsekunde; //console.log('EndeZeit: ' + EndeZeit); if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.EndeZeit", "--:--:--", true)) } else setState("javascript.0.OctoPi.EndeZeit", EndeZeit, true); } // end of function EndeZeit() //____________________________________________________________________________________________________ //Druckfortschritt abfragen on({id: anycubic_timeleft , change: 'lt'}, function() { umrechnung() endezeit() });Gruß
Jörg@joergeli sagte in Test Adapter OctoPrint:
sowie die Gesamtdruckdauer und Fertigstellungszeit erstellt.
funktioniert perfekt




