3D Drucker mit Klipper

Hallo Gemeinde,

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?

Vielen Dank für die Hilfe :slight_smile:

Hallo.

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 :slight_smile:

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.

Vielleicht könnte das mit MQTT funktionieren:
https://moonraker.readthedocs.io/en/latest/configuration/#mqtt

Danke! Super Ansatz! MQTT spricht IPS bei mir schon lange.
Der Link ist super, den du gepostet hast. Ich grabe mich mal durch :slight_smile:

Liebe Grüße
Sascha

Was für einen Drucker hast du?

Es müsste meiner Meinung nach reichen in die moonraker.conf zu schreiben:

[mqtt]
address: xxx.xxx.xxx.xxx 
port: 1883
username: name
password: passwort
mqtt_protocol: v3.1.1
enable_moonraker_api: True
status_objects:
    idle_timeout=state,printing_time
    extruder=temperature
    heater_bed=temperature
default_qos: 0

Dann auswerten: wenn die Temperaturen wieder runter sind und printing_time wieder „0“ ist und state wieder"Ready" ist dann 5 Minuten später aus…

Es ist ein Elegoo 4 Pro.

Ich hab ihn gerade eingeschaltet, und probiere mal deine Anleitung.
Mal sehen, ob ich Nachrichten bekomme :slight_smile:


Na, das sieht doch schonmal super aus!!!


Die „eventtime“ scheint wohl im idle einfach nur hochzuzählen?

Weißt du, wie ich das ein wenig verlangsamen kann? Ich bekomme die Werte mehrmals in der Sekunde. Alle 10 Sekunden würde mir auch dicke reichen.

Liebe Grüße
Sascha

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 :slight_smile:
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
    }
}
1 „Gefällt mir“