mein Drucker hat Klipper/moonraker on Board.
Ich würde gerne ein paar Statusmeldungen in IPS bekommen.
Gerade die Meldung „Job fertig“ fände ich super, dann könnte ich auch Nachts den Strom ausschalten lassen.
Hat jemand schonmal was mit Klipper gemacht, oder gar ein Codeschnipsel?
Ich habe mir das einfach gemacht. Es hängt ein Schaltaktor mit Messfunktion vor dem Drucker. Sinkt der Stromverbrauch länger als 15 Minuten auf Leerlauflast ab, schaltet IPS den Aktor automatisch aus.
Das machen viele, ja. Hatte ich auch überlegt. Aber manchmal kann auch das Filament ausgehen, oder sonst was den Druckvorgang anhalten. Da würde ich ungern den Strom abschalten. Und die heutigen Drucker, gerade mit Moonraker und Klipper, schmeißen ja Statusmeldungen raus. Angeblich mit JSON. Leider bin ich da nicht so firm und hatte gehofft, es hat schon jemand was umgesetzt
Ok, wenn der Drucker solche Unterbrechungen nicht puffern kann ist das ein Problem. Meiner macht nach einem Stromausfall genau da weiter wo er aufgehört hat.
Ich denke dass eventtime jedesmal die Zeit weiter zählt, wenn ein Ereignis wie z.B. eine Temperatur sich ändert. Die Übertragung via MQTT ist glaube ich alle 250ms. Keine Ahnung wie man das verändern kann.
So, das funktioniert alles super
Baustelle wäre noch, eventuell weniger als alle 250ms eine Nachricht zu bekommen.
Aber da der Drucker ja nicht immer an ist, stört mich das jetzt nicht allzusehr.
Hier mal mein Codeschnipsel, falls hier jemand mal etwas Ähnliches sucht:
<?php
$Status = GetValueString(22431);
$temp_extruder = GetValueFloat(19537);
$temp_bed = GetValueFloat(15569);
$aktiv = GetValueBoolean(28540); // Variable im Webfront, die die Überwachung ein, oder ausschaltet
//################################# Ab hier nichts mehr ändern ########################################################
If ($aktiv == true){ // Ist die Überwachung ativiert?
If (($Status == "Ready") && ($temp_extruder < 50) && ($temp_bed < 50)){ // Wenn der Druck fertig ist, und die Temperaturen abgekühlt sind
RequestAction(55603,false); // Drucker Strom ausschalten
SetValueBoolean(28540,false); // Überwachung wieder ausschalten
IPS_SetScriptTimer(29712,0); // Scripttimer ausschalten
}
else{
IPS_SetScriptTimer(29712,10); // Scripttimer auf 10 Sekunden schalten
}
}
Wenn ich drucke, bin ich die ersten Layer dabei und dann über Moonraker. Zum Glück regelt mein Drucker viele Problemfelder selbst.
Aber Danke für den Tipp.