[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker

Begonnen von michael.winkler, 31 Dezember 2017, 16:56:28

Vorheriges Thema - Nächstes Thema

masterpete23

Hi.
Ich würde mir gerne per telegram zusätzlich zu dem Foto der Webcam auch senden lassen wie lange der Druck noch dauert. Wie bekomme ich das reading in vernünftige Form? Da gibt es ja ne Zahl aber ich hätte es gerne in lesbarer Form.

Gesendet von meinem POCO F1 mit Tapatalk


MarkusHiba

Hallo,

schau dir diesen link an. Vielleicht hilft der dir und ist das was du suchst.

https://haus-automatisierung.com/hardware/fhem/2018/03/03/fhem-tutorial-reihe-part-55-octoprint-integration.html

Grüße

MarkusHiba

Gesendet von meinem J9110 mit Tapatalk

Mit freundlichen Grüßen

MarkusHiba

Christoph Morrison

In progress_printTimeLeft ist die Zeit in Sekunden angegeben. Die musst du durch 60 teilen, dann hast du die Minuten usw. Dafür kannst du dir z.B. ein userReadings anlegen, das auf progress_printTimeLeft triggert.

masterpete23

Zitat von: Christoph Morrison am 28 April 2020, 20:04:40
In progress_printTimeLeft ist die Zeit in Sekunden angegeben. Die musst du durch 60 teilen, dann hast du die Minuten usw. Dafür kannst du dir z.B. ein userReadings anlegen, das auf progress_printTimeLeft triggert.
Daran habe ich auch gedacht. Da fehlt mir der skill leider zu. Kannst du mir bitte helfen?

Gesendet von meinem POCO F1 mit Tapatalk


Frank_Huber

progress_printTimeLeftHMS {strftime('%H:%M:%S', gmtime(ReadingsNum($NAME, "progress_printTimeLeft", 0)))}

Gesendet von meinem S68Pro mit Tapatalk


masterpete23

Danke das user reading klappt gut.
Nun wollte ich das in mein notify mit einbinden.
Leider bekomme ich es nicht hin das userreading einzulesen. Kann mir jemand ggf ein Tipp geben?
Derzeit sieht es so aus:

MarieLuise:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 20 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set teleBot sendImage ./www/snapshots/3DDruckerKamera_snapshot.jpg Rechter Drucker: Fortschritt: $progressPercent %");
        }
    }
}

Gesendet von meinem POCO F1 mit Tapatalk

Keichi

job_estimatedPrintTime 95431.994574228
progress_printTimeLeft 94967


ähhmm... Da wäre es vielleicht noch ganz gut, wenn man das noch in Menschen lesbarer Form übersetzen würde oder zumindest mal irgendwo angeben ob das nun Sekunden, Minuten, Stunden oder Tage sind...

amenomade

Zitat von: Keichi am 12 Juni 2020, 20:20:13
job_estimatedPrintTime 95431.994574228
progress_printTimeLeft 94967


ähhmm... Da wäre es vielleicht noch ganz gut, wenn man das noch in Menschen lesbarer Form übersetzen würde oder zumindest mal irgendwo angeben ob das nun Sekunden, Minuten, Stunden oder Tage sind...

Siehe 2 Posts vor deinem Post...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Keichi

Zitat von: amenomade am 12 Juni 2020, 20:33:05
Siehe 2 Posts vor deinem Post...

Ja, nur ergibt sich mir der Sinn nicht, wieso man das nicht direkt im Modul macht und man dafür nochmal extra in fhem nen UserReading anlegen muss.. Finde ich ehrlich gesagt total Schwachsinnig.

Icinger

Weil das ganz einfach ungefilterte Daten sind, die von Octoprint geliefert werden.

Was jeder einzelne User damit anstellen will, kann ja vom Modulautor nicht beurteilt werden.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

amenomade

#160
Zitat von: Keichi am 12 Juni 2020, 21:19:02
Ja, nur ergibt sich mir der Sinn nicht, wieso man das nicht direkt im Modul macht und man dafür nochmal extra in fhem nen UserReading anlegen muss.. Finde ich ehrlich gesagt total Schwachsinnig.

Der Sinn ist einfach, zusätzlich zu was wegen raw Daten Icinger gesagt hat, dass ein Reading in Sekunden viel einfacher zu manipulieren ist, als eine formattierte Zeit.

Willst Du z.B. 15 Minuten vor dem Ende benachrithigt werden, machst Du einfach eine Subtraktion von 15*60. Ist es schon formattiert, musst Du anfangen, mit Perl Zeit-Funktionen zu kämpfen.

Und ja, Icinger hat da wieder Recht: der eine will in Sekunden, der andere in Minuten, der dritte HH:MM, der nächste als Unix Timestamp, und der letzte als Endzeitpunkt mit Format mm-dd-yyyy hh:mm. Was soll der Modulautor machen?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Keichi

Zitat von: amenomade am 12 Juni 2020, 21:40:40
Der Sinn ist einfach, zusätzlich zu was wegen raw Daten Icinger gesagt hat, dass ein Reading in Sekunden viel einfacher zu manipulieren ist, als eine formattierte Zeit.

Willst Du z.B. 15 Minuten vor dem Ende benachrithigt werden, machst Du einfach eine Subtraktion von 15*60. Ist es schon formattiert, musst Du anfangen, mit Perl Zeit-Funktionen zu kämpfen.

Und ja, Icinger hat da wieder Recht: der eine will in Sekunden, der andere in Minuten, der dritte HH:MM, der nächste als Unix Timestamp, und der letzte als Endzeitpunkt mit Format mm-dd-yyyy hh:mm. Was soll der Modulautor machen?

Und was genau is nun das Problem das noch über das Modul wählbar zu machen wie das ganze formatiert wird? Für mich wäre das ganze dann nur noch ein einzelner Befehl den ich im Modul über eine liste auswählen könnte. Funktioniert bei attribute doch auch prima.

amenomade

#162
Zitat von: Keichi am 12 Juni 2020, 21:49:18
Und was genau is nun das Problem das noch über das Modul wählbar zu machen wie das ganze formatiert wird? Für mich wäre das ganze dann nur noch ein einzelner Befehl den ich im Modul über eine liste auswählen könnte. Funktioniert bei attribute doch auch prima.

Aha. Hast Du schon viele Module entwickelt?
Und wieviele unterschiedliche Formattierungen soll der Modulautor vorsehen? 5, 10, 50 ?
Das ist immer so in Fhem gewesen: die Readings liefern i.d.R. die raw Daten. Wer besondere Formattierungen braucht, macht es selbst. Dafür sind userReadings, stateFormat und solche Attribute gedacht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Keichi

Also laut dir sind es 4 wobei mir schon 3 reichen... Sekunden, Minuten und Endzeit.. Alles andere is eh irrelevant, das sieht man auch an den Plugins die es für Octoprint schon gibt, die geben einen auch nix anderes aus, einfach weil kein Interesse daran besteht, seitens der Community.

Zitat von: amenomade am 12 Juni 2020, 21:53:06
Aha. Hast Du schon viele Module entwickelt?
Und wieviele unterschiedliche Formattierungen soll der Modulautor vorsehen? 5, 10, 50 ?

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus