NEWS
Test Adapter OctoPrint
Test Adapter OctoPrint
-
@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


-
@negalein
bitte sehr ... (geht sicher noch eleganter, bin für jede Anregung dankbar)
Die Datenpunkte unter javascript.0 händisch anlegen und los geht´s (ip vom octopi auch noch einfügen)!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.3D-Drucker.dir_thumb", thumb_file, true); setState("javascript.0.3D-Drucker.thumbnail", octo_thumb, true); });@latzi sagte in Test Adapter OctoPrint:
bitte sehr
funktioniert nicht ganz
0_userdata.0.3DDrucker.thumbnail

octoprint.0.files.local_Kinder_Gekko_einzeln.thumbnail_url

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",""); octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; } setState("0_userdata.0.3DDrucker.dir_thumb", thumb_file, true); setState("0_userdata.0.3DDrucker.thumbnail", octo_thumb, true); });08:19:01.641 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:01.642 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:06.649 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:06.650 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:11.626 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:11.627 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:16.955 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:16.956 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:21.639 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:21.639 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:26.655 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:26.656 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:31.653 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:31.654 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) -
@latzi sagte in Test Adapter OctoPrint:
bitte sehr
funktioniert nicht ganz
0_userdata.0.3DDrucker.thumbnail

octoprint.0.files.local_Kinder_Gekko_einzeln.thumbnail_url

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",""); octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val; } setState("0_userdata.0.3DDrucker.dir_thumb", thumb_file, true); setState("0_userdata.0.3DDrucker.thumbnail", octo_thumb, true); });08:19:01.641 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:01.642 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:06.649 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:06.650 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:11.626 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:11.627 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:16.955 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:16.956 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:21.639 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:21.639 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:26.655 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:26.656 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) 08:19:31.653 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:6:20) 08:19:31.654 warn javascript.0 (526697) at Object.<anonymous> (script.js.3D-Drucker.Slicerthumbnail:9:4) -
@negalein du hast da noch eine alte version! inzwischen sinds 13 zeilen...
https://forum.iobroker.net/topic/36210/test-adapter-octoprint/229 -
@latzi sagte in Test Adapter OctoPrint:
auch das neue script wird nicht funktionieren, da wird ein Verzeichnis "Kinder" verwendet
stimmt
0_userdata.0.3DDrucker.dir_thumbwird befüllt
0_userdata.0.3DDrucker.thumbnailbleibt leer
-
-
@latzi sagte in Test Adapter OctoPrint:
auch das neue script wird nicht funktionieren, da wird ein Verzeichnis "Kinder" verwendet
stimmt
0_userdata.0.3DDrucker.dir_thumbwird befüllt
0_userdata.0.3DDrucker.thumbnailbleibt leer
-
@latzi das ist kein verzeichniss, das ist der filename des druckteils...

local_Kinder_Gekko_einzeln@da_woody sagte in Test Adapter OctoPrint:
das ist kein verzeichniss
Verzeichnis und Filename
File:
http://10.0.1.182:80/plugin/prusaslicerthumbnails/thumbnail/Kinder/Gekko_einzeln.png?20220120081343
Verzeichnis:octoprint.0.files.local_Kinder_Gekko_einzeln

-
@latzi sagte in Test Adapter OctoPrint:
kannst du bitte die DP unter octoprint.0.printjob.file zeigen?

-
@latzi sagte in Test Adapter OctoPrint:
kannst du bitte die DP unter octoprint.0.printjob.file zeigen?


