Es werden zwei Systemvariablen gebraucht
Zeichenreihenfolge: octoprint_status
und
Zahl: completion
Des Weiteren muss im TCL Script die Ip vom Octoprint eingeben werden und die API Nummer (findet sich in den Octoprint Einstellungen -> API, hier sind auch alle Päckchen gesetzt.
Code: Alles auswählen
load tclrega.so
# Aufruf und Erstellung der Datei
# ===============================
puts "Abfrage der Daten:"
set url 192.168.178.25
set api 2DE83FAD0F1D4018B48346804F02C7F5
set joburl http://$url:5000/api/job?apikey=$api
puts "Job"
exec /usr/bin/wget -q -O /usr/local/addons/octoprint/job.html $joburl
set f [open "/usr/local/addons/octoprint/job.html"]
set input [read $f]
close $f
# Werte aus Datei auslesen
# ========================
puts "Lese Were aus"
regexp {\"state\": \"(.*?)\"} $input dummy state
regexp {\"completion\": (.*?)\,} $input dummy completion
set rega_cmd ""
append rega_cmd "var w0 = dom.GetObject('octoprint_status');"
append rega_cmd "w0.State('$state');"
append rega_cmd "var w1 = dom.GetObject('octoprint_completion');"
append rega_cmd "w1.State('$completion');"
rega_script $rega_cmd
Ich werde damit den Drucker komplett stromlos schalten wenn er längere Zeit schon fertig ist, wenn man nicht zuhause ist sehr praktisch
Wer Octoprint nicht kennt: http://octoprint.org