Umsetzungs-Idee gesucht...
Ich habe ja eine Funktion eingebaut, dass der Raspbi und der Drucker aus gehen, sobald ein Druck nachts fertig wird und ich nicht selber ausschalten kann.
Ausgelöst wird der Shutdown über das END_PRINT Makro, wo ich am Ende das
ausgelöst wird.
Das würde ich nun gerne erweitern mit einer Funktion, die es mir erlaubt das
oder
abzubrechen, ohne dass ich Klipper neu starten muss.
Verschiedene Ideen gehen mir da gerade durch den Kopf. Die einfachste Lösung wäre, in der printer.cfg zwei unterschiedliche END_PRINT Makros liegen habe und dann über den Slicer dann schon beim starten des Drucks zu bestimmen was am Ende passieren soll.
Naja... Einfach wäre das.
...aber gibt es eine elegantere Lösung?
Wie wäre es mit einem Pop-up in Mainsail während der 60 Sekunden Wartezeit, wo man mit OK/Cancel und einem Timeout den Shut-Down abbrechen kann, bzw. einfach laufen lassen kann.
...und da gehen mir gerade die Ideen aus.
51 Replies
Ja okay, das hatte ich auch schon gefunden, aber ich kriege da gerade keinen Kopf dran.
Statt des G4 P6000 rufe ich dann ein
auf... Aber danach verlassen sie mich gerade.
Irgendwie muss ich da dann einen Cancel rein bekommen, der praktisch das Abarbeiten des gcode abbricht, statt nach Ablauf einfach weiter geht...
xenial-black•2y ago
abbrechen geht dann aber nur wären der Duration fase mit
mann könnte aber auch mit dem idle timeout arbeiten denn muss man halt dann länger setzen als die dein hotend zum auskühlen braucht.
@Raabi ,
Dann muss ich mir nur noch ein Makro erstellen, was dann das UPDATE_DELAYED_GCODE auf 0 setzt und das als Makro dann auf dem Interface sichtbar macht... Muss ich probieren, danke für den Tipp.
Okay, habe das jetzt entsprechend umgesetzt und das passt.
Dazu noch G4 auf 300000 gesetzt, damit timelaps auch fertig wird.
Dazu natürlich ein Makro erstellt:
was nach dem berühmten "Done :-)" dann sichtbar ist und ich damit dann den ShutDown verhindern kann.
ratty-blush•2y ago
Ich kann das wählen auf der Web gui ob ich es einschalten oder ausschalten möchte die Funktion.. Kann auch während des Drucks gemacht werden.....
ratty-blush•2y ago
@Callisto Kannst du mal bitte deine Makros dazu sharen? Wäre interessant, wo die Unterschiede liegen.
ratty-blush•2y ago
Kann ich morgen machen... Ist aber ein etwas komplizierteres. Und vom Strom wird das alles getrennt über eine Fritz Steckdose wenn die erkennt das die Wattzahl unter einem bestimmten Wert ist für paar Minuten. Das ist dann der Fall wenn alle Lüfter aus sind und der pi auch runter gefahren ist....
Das hier ist meine derzeitige Lösung, ich warte bis der Drucker abgekühlt ist:
ratty-blush•2y ago
Hier mein Macro mit infos dazu ganz unten. Ich hab das in einen eigennen Macros Ordner gepackt undd mit include in der printer.cfg hinzugefügt.
Wie macht man diesen Rahmen um das Script?
xenial-black•2y ago
mit ` 3 mal davor und 3 mal danach
@Callisto , ja danke für deine Lösung. Das sieht ganz gut und praktikabel aus. Da klau ich mir was raus... 😉
ratty-blush•2y ago
Mach das😉 👍
Wie schaltet ihr den Drucker dann wieder an?
Immer über die Web Oberfläche des tasmota/shelly?
Möchte das ganze nächste Woche neu machen und würde das gerne implementieren
ratty-blush•2y ago
Über mein Handy oder am PC....Mein Drucker ist an einer AVM FRITZ!DECT 200 eingesteckt.
okey.. hab überlegt, den shelly mit einem taster zu versehen, der am drucker hardwaremäßig dann betätigt wird ..
ratty-blush•2y ago
Keine Ahnung von shelly und tasmota. Die Fritz Steckdose hat alles was ich brauche muß nix umständlich programmieren (fritzbox Oberfläche) und auch ein Knopf 😁
hätte ich notfalls auch noch da.. xD
aber der/die shelly ist halt sauber im vcore verbaut
ratty-blush•2y ago
Okay.. Und braucht dann kein Kabel mehr zur Steckdose?
steckdose->sicherung am drucker->shelly->netzteil
Ha, ganz cool, danke euch! Das stand sogar auf meine Liste, habe ich sogar dafür ein Sonoff POW R2 gekauft und mit Tasmota gefläsht, aber hatte ich keine Ahnung wie ich sauber den Raspi runterfahren kann
Naja... wenn man einen Druckauftrag erteilt ist man eh am PC/Laptop, da hat man dann einfach einen Button auf dem Desktop, der den Tasmota einschaltet. Überlege gerade an einem Script dafür, dass mir dann bei Erreichbarkeit des Druckers auch direkt den Browser öffnet und Cam und Weboberfläche hoch bringt. Cam zur Kontrolle ob das Bett auch frei ist und ich schon mal vorheizen kann, bevor ich mit SS fertig bin und den Druck hochlade.
Alles Spielerei, aber ich bin es auch auf der Arbeit gewohnt, dass ich so viel wie möglich automatisiere.
Bin allerdings kein Freund davon, den Tasmota entscheiden zu lassen, ob er sich ausschaltet weil er unter der Schaltschwelle an Stromverbrauch liegt. Ich habe es weiterhin nur an der Temperatur der Nozzle festgemacht. Unter 50°C --> Warte noch 1 Minute --> Fahre den Pi runter --> warte 1 Minute --> Schalte Tasmota off.
Aktuell läuft der pi durch und schaltet nur die 24v aus.
Aber ich glaube, ich fahre den Weg mit den Taster, da ich zukünftig das Display ja habe.
Slice viel im Vorfeld und starte dann wenns passt den Druck.
ratty-blush•2y ago
Meine Fritz Steckdose hab ich auch so eingestellt.. Der Lüfter fürs Hotend Arbeit ja auch noch bis 50°C. Wenn der pi schon runter gefahren ist und der Lüfter fürs hotend noch läuft liege ich bei 7,2 Watt ist er aus bei 4,8. Schaltschwelle bei 5Watt warte 2min und dann Strom cutten....
so hab ich es beim alten cr10 mit dect
verstehe ich das richtig bei dir:
du kannst mit deinem script und den befehlen im start/end gcode deinen pi ausschalten.
Aber nur wenn das hotend unter 48°C.
dann geht die funktion vom dect mit unter 5W los, das er ausschaltet?
ratty-blush•2y ago
Nee der pi geht vorher aus über das Script . Aber die Leistungsschwelle ist erst unter dem eingestellten bereich wenn auch der Hotend Lüfter ausgeht und der geht aus bei 50°C was ja normal ist....
Die Befehle kann ich während des Drucks aussuchen ob er von alleine runter fahren soll nach dem Druck oder nicht.. Kann ich natürlich auch wieder ändern on the fly wenn ich mich entscheide ins Bett zu gehen oder ich doch wach bleiben sollte.. Default ist das er nicht drunter fährt nach dem Druck...
Frage beantwortet
?
ja so meinte ich es .. also hab ich es schon verstanden xD
mal schauen .. evtl mach ich es genauso oder ne mischung aus @Callisto und @Rigattoni
theoretisch muss ich ja nur den shelly umprogrammieren auf die leistungegrenze oder es mit ins script nehmen... wobei das nicht geht, wenn der pi runterfährt und dann versetzt ausschalten soll :/
Ich verlasse mich nicht auf die Schaltschwelle. Habe da schon schlechte Erfahrung in der Vergangenheit gemacht. Nicht beim drucken, sondern in einer Multimedia-Umgebung die sich im Testlabor befand.
Klare Kommandos an den Pi und auch an den Shelly, das ist das wo man sicher geht, dass nicht durch irgendeinen Zufall gerade mal die Stromabnahme so weit runter geht, dass das Ding sich selbstständig macht... oder anders rum, dass durch irgendeinen Blödsinn die Schaltschwelle nicht erreicht wird.
Mag sein, dass das eher unwahrscheinlich ist, aber mir hat der Quark damals fast einen SOP versaut, weil wir den Fehler nicht haben finden können, warum das Testsystem im automatischen Test einfach aus gegangen ist.
Was interessant ist, das ist die Umentscheidung, ob man danach runterfahren lassen will, oder halt nicht. Das habe ich anders implementiert, braucht aber noch eine Anpassung, damit ich das "unterwegs" machen kann, also während des Drucks Im Moment kann ich das am Ende des Druckes machen, solange der Drucker abkühlt.
wie läuft das dann bei dir?
kannst ja schlecht pi runter fahren und dann strom weg oder laufen die über 2 seperate anschlüsse?
und wie machst du den pi dann wieder an? auch knopf am drucker oder steckdose übern pc?
Du kannst einen Shutdown zum Shelly senden mit einem Timeout. d.h. Klipper schickt erst eine Shutdown zum Shelly und fährt danach erst den Pi runter.
ah .. okey..
das sieht man in deinem script nicht
man sieht dein passwort
Danke... komplett vergessen.
Im SS habe ich 2 verschiedene Drucker-Profile. Da entscheide ich schon eigentlich, ob ich danach runterfahren lassen will, oder nicht.
Ich habe das Endprint-Makro kopiert und mit neuem Namen hinterlegt. Da ist dann außer dem Namen nur noch eine Zeile ans Ende dran gekommen:
das save and restore gcode kannst du dir hier sparen, schaltest das ding ja sowieso aus
Ja stimmt... Den Usernamen und PW wollte ich auch noch über Variable machen. Bin aber noch nicht dazu gekommen.
extended-salmon•2y ago
Habe jetzt auch alle Teile da zum umsetzen. Will es über Leistung mit einem Homematic Schalterlauf mache das es automatisch schaltet wenn die eingestellte Spannung unterschritten wird also das Hotend abgekühlt ist, der Lüfter aus geht und die pi runter gefahren ist. Kann mir einer helfen was ich dafür wo eintragen muss? Mit der Homematic bekomme ich hin. Zudem wäre es cool das über das Display zu deaktivieren über button
Ich bin überhaupt kein Freund davon, das über die abgenommene Leistung zu machen. Über die Spannung kannst du das nicht machen, weil die sich nicht ändert... oder nur minimal innerhalb des Stromnetzes. 😉
Warum über Klipper und nicht selbstentscheidend über die genutzte Leistung:
Du tauschst irgendwas aus, dann musst das möglicherweise neu konfigurieren. Zudem: Dann hängst du einen Luftfilter dran, der nachlaufen soll, bis alles abgekühlt ist... schon ist deine Version ohne Funktion.
Klar, man kann den Temperaturgesteuert machen, dass er ausschaltet, wenn das Bett auf eine bestimmte Temp abgekühlt ist.
Viel sauberer ist es meines Erachtens nach, das über ein gcode Macro zu machen. Dann schaltet der Drucker ab, wenn die Temp erreicht ist, unabhängig, ob da evtl. noch ein nachgeschalteter Lüfter dran hängt, ein evtl. Filament-Dryer, eine zusätzliche Lampe oder was auch immer.
Zudem musst du IMMER erst den Raspi sauber runterfahren, einfach ausschalten geht ein paar Mal gut, danach kannst du neu flashen, weil der Inhalt der SD kaputt ist.
Nicht ganz, Helge. Ich habe ja ein Macro, mit dem ich das Abschalten ausschalten kann.
Benutze ich häufiger, wenn ich feststelle, dass ich dann doch nicht abschalten will, weil ich evtl. den Druck mit anderen Settings noch mal neu starten will.
extended-salmon•2y ago
Die Leistung vom Homematic an zu passen ist überhaupt kein Ding. Deswegen soll ja vor dem Abschalten vom Strom ein Shutdown Befehl an die pi gesendet werden
aber den gcode state bringt nur was wenn die motoren noch an sind
sobald die aus sind ist das nutzlos
Du hast natürlich Recht...
Allerdings ist der Call für den Shutdown am Ende von End_Print. Wenn ich also nach dem Druck entscheide, dass ich weiter drucken will, dann passt das ja. Im Fall, dass ich den Drucker abschalten lasse, sind die beiden Zeilen natürlich obsolet.
da ist doch ein M84 drin, das sagt doch schon alles, das shcaltet die mtoren aus
Wo hier?
# Steppers off
M84
Ach-... übersehen... Aber das ist die Original End_Print, nur um die letzte Zeile ergänzt
Das ist das Original Makro:
Wie schon gesagt... Ich bin kein Freund davon. Ich verlasse mich nicht darauf, dass da auf ein halbes Watt Leistungsaufnahme genau geschaltet wird. Das hätte ich auch mit Tasmota so machen können, habe mich aber dagegen entschieden.
Im Endeffekt aber kannst du die gleiche Routine nehmen, wie ich hier schon gepostet habe und nur die Zeile raus nimmst, wo ich Tasmota_Off aufrufe:
extended-salmon•2y ago
OK wo Pack ich das rein in welche Datei?
DAs kommt in die printer.cfg by User Overwrites.
Zudem musst du auch die End_Print editieren wie schon oben geschrieben.
...also die END_PRINT aus der macros.cfg im Ordner RatOS raus kopieren und dort ablegen mit dem Aufruf POWER_OFF_PRINTER am Ende der END_PRINT
extended-salmon•2y ago
Hast du auch eine Idee wie ich das so damit verknüpfen kann das ich es aktivieren oder abschalten kann?
extended-salmon•2y ago
Cool danke dir werde dann die Woche Mal spielen 😊
Aktivieren geht nur über die END_PRINT
...also der Aufruf zum Abschalten nach Druck-Ende. Das würde ich definitiv NICHT als externen Call rein packen. Was du da oben auch siehst, ist das Abschalt-Makro, was du beim inaktiven Drucker nutzen kannst.
Das würde ich so in die UI einbinden, dass es nur sichtbar ist, wenn der Drucker idle ist.
Vielleicht noch ein guter Rat von mir:
Pack die User Overwrites in eine eigene CFG rein im gleichen Verzeichnis wie die printer.cfg liegt und lese die own_macros.cfg dann über
[include own_macros.cfg] in die printer.cfg ein... in den User overwrites natürlich.