NEWS
[gelöst] wie Blockly Script "schöner" machen ?
-
@paul53 damit sind aber die führenden "0" nicht weg. Sprich die Stunden und Minuten werden immer zweistellig angesagt.
-
@HAL sagte:
damit sind aber die führenden "0" nicht weg.
Wandle den Datenpunktwert in eine Zahl (nach Zahl).

-
@HAL
Wie sehen denn die Datenpunkte "Reststunden" und "Restminuten" im RAW aus ? Kommen die von einem Adapter ? -
@HAL
Wie sehen denn die Datenpunkte "Reststunden" und "Restminuten" im RAW aus ? Kommen die von einem Adapter ?vom Adapter Octoprint
{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1578317499727, "common": { "name": "Reststunden", "desc": "Reststunden", "type": "string", "role": "state" }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "javascript.0.OctoPi.Reststunden", "type": "state" } -
vom Adapter Octoprint
{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1578317499727, "common": { "name": "Reststunden", "desc": "Reststunden", "type": "string", "role": "state" }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "javascript.0.OctoPi.Reststunden", "type": "state" }@HAL
das ist tatsächlich vom Typ string. Ich habe es gerade mit einer Zahl probiert, da kommt die Ansage wie sie soll.
Steht dan z.B. bei den Minuten/Stunden 08 ? -
Ja, genua , da steht jeweils die Stunden und Minuten zweistellig und wenn weniger als 10 Stunden oder 10 Minuten mit führender 0.
Das dazugehörige Java Script:
//************ Umrechnung der Druckzeiten von Sekunden nach HH:MM:SS********************* */ 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.Reststunden', { name: 'Reststunden', desc: 'Reststunden', type: 'string' }); createState('javascript.0.OctoPi.Restminuten', { name: 'Restminuten', desc: 'Restminuten', type: 'string' }); const restdauer = 'octoprint.0.printjob.progress.printtime_left' const druckdauer = 'octoprint.0.printjob.progress.printtime' // Triggern, wenn sich Restzeit verkleinert on({id: [restdauer], change: "lt"} , function (obj) { umrechnung(); }); //_________________________________________________________________________ function umrechnung() { var time_left = getState("octoprint.0.printjob.progress.printtime_left").val; var job_time = getState('octoprint.0.printjob.progress.printtime').val; // Hours var hours_restzeit = Math.floor( time_left / 3600 ); var hours_printzeit = Math.floor( job_time / 3600 ); 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) // Minutes var minutes_restzeit = Math.floor( (time_left%3600) / 60 ); var minutes_printzeit = Math.floor( (job_time%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) // Seconds var seconds_restzeit = Math.floor( time_left%60 ); var seconds_printzeit = Math.floor( job_time%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) // Zeit in HH:MM:SS format var restzeit = std_restzeit + ':' + min_restzeit + ':' + sec_restzeit; var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit; console.log("Java Restzeit: " + restzeit); console.log("Java Printzeit: " + printzeit); console.log("Java Reststunden: " + std_restzeit); console.log("Java Restminuten: " + min_restzeit); setState("javascript.0.OctoPi.Restzeit", restzeit, true); setState('javascript.0.OctoPi.Printzeit', printzeit, true); setState('javascript.0.OctoPi.Reststunden', std_restzeit, true); setState('javascript.0.OctoPi.Restminuten', min_restzeit, true); } -
Ja, genua , da steht jeweils die Stunden und Minuten zweistellig und wenn weniger als 10 Stunden oder 10 Minuten mit führender 0.
Das dazugehörige Java Script:
//************ Umrechnung der Druckzeiten von Sekunden nach HH:MM:SS********************* */ 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.Reststunden', { name: 'Reststunden', desc: 'Reststunden', type: 'string' }); createState('javascript.0.OctoPi.Restminuten', { name: 'Restminuten', desc: 'Restminuten', type: 'string' }); const restdauer = 'octoprint.0.printjob.progress.printtime_left' const druckdauer = 'octoprint.0.printjob.progress.printtime' // Triggern, wenn sich Restzeit verkleinert on({id: [restdauer], change: "lt"} , function (obj) { umrechnung(); }); //_________________________________________________________________________ function umrechnung() { var time_left = getState("octoprint.0.printjob.progress.printtime_left").val; var job_time = getState('octoprint.0.printjob.progress.printtime').val; // Hours var hours_restzeit = Math.floor( time_left / 3600 ); var hours_printzeit = Math.floor( job_time / 3600 ); 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) // Minutes var minutes_restzeit = Math.floor( (time_left%3600) / 60 ); var minutes_printzeit = Math.floor( (job_time%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) // Seconds var seconds_restzeit = Math.floor( time_left%60 ); var seconds_printzeit = Math.floor( job_time%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) // Zeit in HH:MM:SS format var restzeit = std_restzeit + ':' + min_restzeit + ':' + sec_restzeit; var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit; console.log("Java Restzeit: " + restzeit); console.log("Java Printzeit: " + printzeit); console.log("Java Reststunden: " + std_restzeit); console.log("Java Restminuten: " + min_restzeit); setState("javascript.0.OctoPi.Restzeit", restzeit, true); setState('javascript.0.OctoPi.Printzeit', printzeit, true); setState('javascript.0.OctoPi.Reststunden', std_restzeit, true); setState('javascript.0.OctoPi.Restminuten', min_restzeit, true); } -
Ja, genua , da steht jeweils die Stunden und Minuten zweistellig und wenn weniger als 10 Stunden oder 10 Minuten mit führender 0.
Das dazugehörige Java Script:
//************ Umrechnung der Druckzeiten von Sekunden nach HH:MM:SS********************* */ 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.Reststunden', { name: 'Reststunden', desc: 'Reststunden', type: 'string' }); createState('javascript.0.OctoPi.Restminuten', { name: 'Restminuten', desc: 'Restminuten', type: 'string' }); const restdauer = 'octoprint.0.printjob.progress.printtime_left' const druckdauer = 'octoprint.0.printjob.progress.printtime' // Triggern, wenn sich Restzeit verkleinert on({id: [restdauer], change: "lt"} , function (obj) { umrechnung(); }); //_________________________________________________________________________ function umrechnung() { var time_left = getState("octoprint.0.printjob.progress.printtime_left").val; var job_time = getState('octoprint.0.printjob.progress.printtime').val; // Hours var hours_restzeit = Math.floor( time_left / 3600 ); var hours_printzeit = Math.floor( job_time / 3600 ); 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) // Minutes var minutes_restzeit = Math.floor( (time_left%3600) / 60 ); var minutes_printzeit = Math.floor( (job_time%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) // Seconds var seconds_restzeit = Math.floor( time_left%60 ); var seconds_printzeit = Math.floor( job_time%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) // Zeit in HH:MM:SS format var restzeit = std_restzeit + ':' + min_restzeit + ':' + sec_restzeit; var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit; console.log("Java Restzeit: " + restzeit); console.log("Java Printzeit: " + printzeit); console.log("Java Reststunden: " + std_restzeit); console.log("Java Restminuten: " + min_restzeit); setState("javascript.0.OctoPi.Restzeit", restzeit, true); setState('javascript.0.OctoPi.Printzeit', printzeit, true); setState('javascript.0.OctoPi.Reststunden', std_restzeit, true); setState('javascript.0.OctoPi.Restminuten', min_restzeit, true); } -
-
@dslraser
bei mir sieht es so aus, aber es kommen immer noch die führenden "nullen"

ich werde mal die Wandlung in die ausgabe packen.
-
@dslraser
bei mir sieht es so aus, aber es kommen immer noch die führenden "nullen"

ich werde mal die Wandlung in die ausgabe packen.
@HAL sagte in wie Blockly Script "schöner" machen ?:
ich werde mal die Wandlung in die ausgabe packen.
die soll ja auch angesagt werden und @paul53 hatte es auch so.
-
@HAL sagte in wie Blockly Script "schöner" machen ?:
ich werde mal die Wandlung in die ausgabe packen.
die soll ja auch angesagt werden und @paul53 hatte es auch so.
-
@dslraser ,
so, jetzt muss ich nur warten, bis der Drucker im einstelligen Minuten Bereich ist ;-)
(noch 18 Minuten....)

@HAL
dann sag mal Bescheid. Hättest aber auch einmal manuell den DP ändern können... -
@HAL
ich meinte ja nur ein mal manuell auf 09 ändern...(für die Ansage)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden



