NEWS
Test Adapter OctoPrint
-
@haus-automatisierung
Alles klar, Danke Matthias! -
@all
Logeintrag:
octoprint.0
2022-01-19 00:54:40.325 warn received 502 response from /api/version with content: "<html><body><h1>502 Bad Gateway</h1>\nThe server returned an invalid or incomplete response.\n</body></html>\n""ich nix verstehen"
Ip Gateway (LAN) ist natürlich das richtige drin !?!?!
-
@ralf_n sagte in Test Adapter OctoPrint:
Ip Gateway (LAN) ist natürlich das richtige drin !?!?!
Was erwartest Du jetzt von mir? Da ist irgendwas bei der Kommunikation schief gelaufen. Ich würde mal in das OctoPrint-Log schauen (nicht das vom Adapter), ob der Prozess rund läuft.
-
@haus-automatisierung
Matthias ! Ich erwarte Garnichts von dirWar nur eine Frage in die Runde, wo ich mal sinnvoller weise nachschauen sollte.
Und ob das überhaupt etwas ( negatives ) mit dem Adapter zu tun hat.Das hast Du mir ja nun beantwortet
Danke dafür
-
@ralf_n google nach 502 Bad Gateway zeigt das an:
Was bedeutet „502 Bad Gateway“? Der HTTP-Fehlercode „502 Bad Gateway“ zeigt an, dass der Server keine Antwort von der angeforderten URL bekommt, weil das Gateway nicht funktioniert. Dadurch ist kein Datenaustausch möglich und die gewünschte Webseite ist für den Nutzer nicht erreichbar.
-
@haus-automatisierung
hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)
ich möchte dieses dann in VIS einblenden. -
@stenmic sagte in Test Adapter OctoPrint:
hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)
Ich bekomme im Printjob keine Angaben über das Thumbnail. Also aktuell geht es nur, wenn Du das aus den Files selbst raussuchst.
-
@haus-automatisierung sagte in Test Adapter OctoPrint:
Ich bekomme im Printjob keine Angaben über das Thumbnail
Das ist schade, dass das nicht möglich ist.
-
@negalein
das lässt sich jedoch leicht mit einem script machen -
@latzi sagte in Test Adapter OctoPrint:
das lässt sich jedoch leicht mit einem script machen
wäre cool
erstellst du eins? -
@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); });
-
Hallo zusammen.
Hat schon jemand negative Erfahrungen mit dem Update in Bezug auf den Adapter gemacht ?
Danke.
-
@latzi erstmal thnx!
allerdings bekomm ich immer warn.warn javascript.0 (615) at Object.<anonymous> (script.js.common.Diverses.Octothumb:6:45)
script angepasst, IMHO richtig...
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= "http://192.168.2.59/" + 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); });
DPs sind da:
in thumbnail hab ich allerdings:http://192.168.2.59/null
verschluckt nach der IP alles...
zu bekloppt für JS... -
@da_woody
hast den DP octoprint.0.files.local_Düse.thumbnail_url?
Scheint, als ob der nicht existiert oder nichts Vernünftiges darin enthalten ist -
@latzi nope, der ist nicht vorhanden...
in octo seh ich das thumb aber... generiert wirds also. in cura ja auch aktiviert.
-
@da_woody
sehr seltsam!
Ich traue mich fast nicht zu fragen - im Adapter hast du das Plugin angehakt?@da_woody sagte in Test Adapter OctoPrint:
@latzi nope, der ist nicht vorhanden...
Das erklärt, warum nach der IP "null" kommt - er findet den Inhalt des nicht vorhanden DP´s nicht.
-
@latzi sagte in Test Adapter OctoPrint:
Ich traue mich fast nicht zu fragen
bei mir depp musst du sowas fragen!
auf die idea wär ich nicht gekommen...
allerdings ist das mit dem plugin auch seltsam. mit dem cura thumbnails gehts nicht. musste slicer thumbnails insten, dann hab ich den DP. -
@da_woody sagte in Test Adapter OctoPrint:
cura thumbnails gehts nicht
Ja, weil Slicer Thumbnail im Adapter ist
War ja mein Wunsch -
@da_woody
steht auch so in der Adpater-Beschreibung:
-
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