habe folgendes Problem: Möchte einen 3D Drucker nach 15 minütiger Inaktivität automatisch über einen Funkstecker einfach ausschalten. Habe mir das Ganze folgendermaßen gedacht. Wie unten im Programm dargestellt wird der Druckstatus über eine Systemvariable (octoprint_status) abgefragt. Beim Drucken steht sie auf "Printing". Im anschließenden Leerlauf wechselt sie nach "Operational".
Diese wir alle 3 min abgefragt und aktualisiert. Ist der Druck nun fertig, kommt es zur Änderung und das Programm läuft durch. Ursprünglich habe ich einfach nur nach 15 Minuten die Funkdose ausgeschaltet. Funktionierte ohne Probleme. Leider gibt es aber den Fall, dass ich nach einem Druckvorgang unmittelbar weiterdrucken möchte. Hier wird der Drucker dann aber unabhängig vom Druckstatus immer ausgeschaltet. Ärgerlich, wenn zwischenzeitlich ein neuer Druckauftrag gerade angefangen hat. Um das zu verhindern führe ich im DANN Abschnitt das folgende Skript nach 15 Minuten aus:
Code: Alles auswählen
var Druckerstatus = dom.GetObject('octoprint_status').Value();
if ( Druckerstatus.Value() == "Operational") { dom.GetObject("BidCos-RF.LEQ0360583:1.STATE").State(0); }
string nachricht = "3D-Drucker wurde ausgeschaltet!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token=XXX -d user=YYY-d message='"#nachricht#"' -d html=1 -d priority=0 https://api.pushover.net/1/messages.json");
Leider wird die Funkdose immer noch nach 15 Minuten unabhängig von der octoprint_status Variable ausgeschaltet. Kann mir jemand vielleicht helfen und mir sagen, wo der Denkfehler hier liegt?
Das wäre super.
Besten Dank
Gruß
Arthy