""" Applet: Octoprint Status Summary: Request 3D printer status from Octoprint server to render in colorful display Description: Request 3D printer status from Octoprint server to render in colorful display Author: poprhythm """ load("render.star", "render") load("schema.star", "schema") load("http.star", "http") load("cache.star", "cache") load("humanize.star", "humanize") load("encoding/base64.star", "base64") DEFAULT_ADDR = "192.168.1.192" DEFAULT_APIKEY = "8732A9B5BA5F406E9F1B482A9BC3AC19" def main(config): addr = config.get("addr", DEFAULT_ADDR) apikey = config.get("apikey", DEFAULT_APIKEY) printer_url = "http://%s/api/printer" % addr printer_rep = http.get(printer_url, headers={"X-Api-Key": apikey}) if printer_rep.status_code != 200: print("OctoPrint printer request failed with status %d", printer_rep.status_code) return render_failure(printer_rep.status_code) job_url = "http://%s/api/job" % addr job_rep = http.get(job_url, headers={"X-Api-Key": apikey}) if job_rep.status_code != 200: print("OctoPrint job request failed with status %d", job_rep.status_code) return render_failure(job_rep.status_code) # heater status printer_json = printer_rep.json() toolTemp = float(printer_json["temperature"]["tool0"]["actual"]) toolTempTarget = float(printer_json["temperature"]["tool0"]["target"]) heaterImg = HEATER_IMG if toolTempTarget != None and toolTempTarget > 0: # animated icon if it is heating heaterImg = HEATER_HEATING_IMG bedTemp = float(printer_json["temperature"]["bed"]["actual"]) bedTempTarget = float(printer_json["temperature"]["bed"]["target"]) bedImg = BED_IMG if bedTempTarget != None and bedTempTarget > 0: bedImg = BED_HEATING_IMG render_temp = render.Row([ render.Row([ render.Padding(render.Image(src=heaterImg), (0,0,1,0)), render.Text("%s°" % humanize.ftoa(toolTemp,0)) ]), render.Row([ render.Image(src=bedImg), render.Text("%s°" % humanize.ftoa(bedTemp,1)) ]) ], expanded = True, main_align = "space_between" ) # job status job_json = job_rep.json() job = job_json["job"]["file"]["name"] if job != None: percent = job_json["progress"]["completion"] printTime = job_json["progress"]["printTime"] printTimeLeft = job_json["progress"]["printTimeLeft"] if printTime != None: percent = printTime / (printTime + printTimeLeft) * 100 render_title = render.Marquee( width = 64, child = render.Text(job), ) render_time = get_render_time(printTime, printTimeLeft) render_progress = progress_bar(64, 6, percent) else: # no current job, print empty progress render_title = render.Text("Ready.") render_time = render.Text("") render_progress = progress_bar(64, 6, 0) return render.Root( child = render.Stack([ render.Row([ render.Padding( render.Image(src=OCTOPRINT_LOGO_IMG), (0,1,10,0)) ], expanded=True, main_align="center"), render.Column( children = [ render_temp, render_title, render.Padding(render_time, (0,2,0,0)), render_progress ] )] ) ) def get_render_time(timeElapsed, timeLeft): if timeElapsed == None: return render.Text("") if timeLeft == None or timeLeft == 0: return render.Row([ render.Text("End: %s" % time_format(timeElapsed)) ], expanded = True, main_align = "center" ) return render.Stack([ render.Row([ render.Padding(render.Image(src=TIME_ELAPSED_IMG), pad=(0,1,0,0)), render.Padding(render.Image(src=TIME_LEFT_IMG), pad=(0,1,0,0)) ], expanded = True, main_align = "space_between" ), render.Row([ render.Text(time_format(timeElapsed)), render.Text(time_format(timeLeft)) ], expanded = True, main_align = "space_between" ) ] ) def progress_bar(width, height, percent): percentWidth = int(percent / 100 * (width - 2)) percentWidth = max(percentWidth, 1) # value of 0 doesn't render correctly return render.Box( render.Box( render.Row([ render.Box( render.Row([ # highlight on percent render.Box( width=1, height=height - 2, color="#0F0" )], main_align="end", expanded=True ), # current progress width=percentWidth, height=height - 2, color="#0A0", ) ], main_align="start", expanded=True ), # dark center width=width - 2, height=height - 2, color="#010" ), # border width=width, height=height, color="#060" ) # https://stackoverflow.com/a/68321739/99492 def time_format(seconds): if seconds != None: seconds = int(seconds) h = seconds // 3600 % 24 m = seconds % 3600 // 60 if h > 0: return '{}H {}m'.format(h, m) elif m > 0: return '{}m'.format(m) return '-' def render_failure(msg): return render.Stack([ render.Row([ render.Image(src=OCTOPRINT_LOGO_IMG)], expanded=True, main_align="center" ), render.Marquee( render.Text(msg), width = 64, ) ]) def get_schema(): return schema.Schema( version = "1", fields = [ schema.Text( id = "addr", name = "IP/Domain", desc = "IP or Domain of OctoPrint Server", icon = "location-dot", default = DEFAULT_ADDR, ), schema.Text( id = "token", name = "API key", desc = "OctoPrint User API Key", icon = "hashtag", default = DEFAULT_APIKEY, ) ], ) TIME_ELAPSED_IMG = base64.decode(""" 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 """) TIME_LEFT_IMG = base64.decode(""" R0lGODlhCgAGAPcAAAAAAAMDAwYHBgcJBwcICAgLCAkNCQoRCw0RDQ0WDg4ZDg8VEA8dEBIaEhIf FBMgFBUnFQICAgYGBgcIBwkKCQoMCg0PDg0QDQ8UEBMWExIZEhUbFRMfFRgeGRgiGR4nHxcrGBop HB01HyIxIyQ6JyU7KCVDISZIJCdIKihIKzFYLQkJCQsNDBASEREVEhYcFhkdGRkjGh0lHhwrHSEo IiIvIyA3Iik1KiY6KClHLC5ULDFDMjFfMzZSOTdpMzZvNzljPTpkPkF5QUJ8QkaIRAwNDQ8RDxES EhQXFBUZFRwfHBohGxwhHCAqISMsJCcvKCQ0JSc/Kis5LDI+MzM/NDFHMzBZMjVVOD1RPzh5PTtu QEVkR0VlSEp2Tkt5UDuHRk6VSlCRRlGWVkyvW02xXGO0WWW1WgwODRETERcaGBgaGBgdGSAoISMp JCIxJCg0KSY7KC45LyxOLy5CMDlKOjNQNiloNzhjPUJ5PUJdRUlyTS+ARD+rXEaFRUaIQ0aRSU6J U0+KVECtXVunWFypWlm0W1q1XBASEBUYFRsiHB0jHSEsIiUuJiU2JikxKiw8LhtZMShCKzNBNTRC NjJKNDNfNTZZOjR1PD5TQD9VQSV3Qj1zQUZnSUdoSkt8UU1+UjiHRjOmXDSpXVOWSFCaS1KaVlOc WEmvXEqxXWW4W2a5XBoeGh8oHyEpIiQqJSMyJSk2KiY9KS86MDA7MRtYMTBEMTpLOzpMPC1SMDRS NyVkNTlnPSx9RENfRURgRklzTkp1TzypXD2sXUGDQUeBQUmKR0KPSU6NU1CPVV6sWVWzXFa1XWCu WhYbFx4kHyEtIiYxJyU4JyozKys0LC09LypGLDVENzNMNTdcOzhoODBwOj9WQUBXQkdqSkhsS0B5 QzWERk6RRk2XS02CUlWfV0evXVahWGG3W2K4XCcyKCY5KC4/LytKLTNONjdGODdfPC1sOT1wO0BZ QkdtS0lvTEJ/RDKCRUqNRUmVSk6GU0OuXVijWFmlWV22W163XDOpXSH/C05FVFNDQVBFMi4wAwEA AAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQAHgD/ACH+IENyZWF0ZWQgd2l0aCBl emdpZi5jb20gR0lGIG1ha2VyACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t YT0wLjQ1NDU0NQAh+QQAHgD/ACwAAAAACgAGAAACBoSPqcvtWQAh/wtJbWFnZU1hZ2ljaw5nYW1t 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 AIAAAQEAAAACBoSPqcvtWQA7 """) BED_IMG = base64.decode(""" iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAACXBIWXMAAAABAAAAAQBPJcTWAAAA JHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAOklEQVQImWNg GIyAkYGBQVhEkJuHCy70/duP16/eMjAwMBy7sOHD/xuvf115/OH04w+n5y/tYWBgAABvthTUZxtr XQAAAABJRU5ErkJggg== """) BED_HEATING_IMG = base64.decode(""" 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 """) HEATER_IMG = base64.decode(""" iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAACXBIWXMAAAABAAAAAQBPJcTWAAAA JHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAYklEQVQImU2N QRHAQAgD01OAJCQgAWknASlIiIQ4aB902tsXEyALAJLuA0kAVmaSvA5IZuaKiO7GQXdHBNxdUlVN WlWS3H1N4957FjNIes0kzczMSI7/+ho+R0T8wrmdv0keZFdOYvzGnSEAAAAASUVORK5CYII= """) HEATER_HEATING_IMG = base64.decode(""" R0lGODlhCAAIAPcAAAAAABAQEDAwMEBAQGBgYN62PuivPeC3Pe21P/bBO/vJOLuibcuLRtSWRdub Rt6kQ+SnRO20QMGraqOioamnorCwsLS0sdHR0ODg4PDw8P///963P/K8PvnFOvvIOb6ka9aVR9+i Rd2yQOmvQsGpaqWkobW0sdLR0dyyPu23PffGN/jIN/XCOfXEOb6oa9qcRNuwQOOqQaelotLS0dux P+iwP/G9OvfHN/XDOPbFOL6na9+jRNmtQMGraaimotPS0dmtP+25PfK+OvTDObyka7+qadWrQeSr QOixPe+9OfC+OfTDNvXENfLBOLujar6padOoQdWsQOu3O+u4O+67OvC/OPLCNvHBOLmha7ymatCk QtKoQOm2POy4O+68OfHBN7iga72lac2iQNGmQKinou69N+exOum2Oeu6OPC/N7efa7qlacueQs2i QeOuPOq5N+29NuexO+m1Ou/ANbSca7miacedQsueQd+pPOOvO+y8NuezO+i1Oeq5OLmgacWZQ8md QtumO96rOuOuOei3N+m6NeayOLafarKZbMKWQ8WYQaemotmhPdumPN6sO+OvOue3NuayObCXbLWf asCSQ8OWQtaePNmjOtqoOd6rOOKwOOW0OL2PRL+TQ66Wa7ObarSzsdKcPdafPNupOeKvN7qMQr2P Qq6WbbGbas+XPdKbPdahPNmkO96tObiLQ72OQqyTa7GYa6akoc2TPs+ZPNGcO9qoN9SgOdilOLWH Q7iKQ6uRa7CYa6Sjoc6WPdGaPdWfPNiiO9qnOt2sObiIQ7yMQ6uTa7GXa9GbPtiiOt2qOOKuN7qL Q66TbbGZatmjO+OwOr2PQ7+SQq+Wa7SbatmiPdyoO9+sOuSvOei4NuezOMOWQ8CSRN+qOuq6N+e0 OOi4OMSVQsaaQeCsPOu6N+6/NeWxO+izOum3OMeZQsqeQeWuOu6/Num4OfDANbWda7qiacmeQcug QOm1PO27Ou++OLulacyfQtCkQO+8OfPDNvHAOL6nabujbNOnQtWrQCH/C05FVFNDQVBFMi4wAwEA AAAh+QQAFAD/ACH+IENyZWF0ZWQgd2l0aCBlemdpZi5jb20gR0lGIG1ha2VyACwAAAAACAAIAAAF MSCQaaSWAcTFNI9xEdXkQEhCVUNmRYmVDYLMIqGQZIIazKGAMQEAFYul8nwGMJjAMwQAIfkEABQA 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 """) OCTOPRINT_LOGO_IMG = base64.decode(""" iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAu5JREFUSEut VkFrE0EU/t6mm11qq7WhVAUP6qEHD4IHkRSkiBGFLHjwVDClSNf/tCVCLj0FxKZCIeBFGhS8iyCo KFSQxKq1ZpPuPnmzO+1umjQR3Ut2Zt77vpnve/M2hBEfO48QAMXh3G7AGCVVJwyMtRywLFIzHcK5 aOzXDkj7YhxLIOBLZ12VWNn2mJoRGOfUvHqvbHvHkhxL4Lqu2r1+BEweTarnPc8biDOUoFqt7rda rTHXddVuNYHneWzbdlgqlTJDCSwHXQBj2kC/FhkoEvk1YGVlhSvbq0TxdpiBB7MPw3K5bFjOoQ+W kyoEJR1ZRYhNRWWigZBPK3ABNqx5zGEab8RjWdfGJt+Nr7j++yVeaXD6hhAhDIkl4DXJLqmJsN1A xs5HFSOLujqSc0k/dFW1G5HxMY4KkTk7j33OIUP2TXTaz5HVyQKYLEGpf55WN4BErhgMYDC1FJjI dFDKmlDi7AV0ybqDjr+ZJtCnUL+MNSIsyrsTE9Qc7RaqINyXUe+JFMEtdI5U0SBJJOF2DYEJ0DPn 6C3uR6CIk7omtVQmNRFgAswWxuYnC6nQrZ91kI8udpHhHAxtfO/NHkiQlEmD61unk4QkKU+yOPRu +hKktspgMTg/UWCiuFUwuLFbJzFa1pLxQ0+gZTpIYvBl/2o4NZPLJIE+f38ffKR3RpKgX+Pr2yp0 2WnAXv31vJZIj0ci6AWPRJZ6BeatgrJhy69HwqRaYUQzVKL4Rkqqgrgyu0BhCEyOm4xurLd5qH3j Q13HpjrAQJN7PRB5dne6mBg3cebE+Q1Z//LrU1EBZIGkTCNJpJmVVAy+GMzRpfFrG2HAPHUqm/JM iLbadVVJg75sA78HunlJb1lcWl43/Sd337YKm8oSZrpw7iSvVR47unf9E4GAuiWEne6U2lDW3EGw bz0tr/n3/gvBoyUsB0Fmda89o+6Clf0RmOZexquotqy671+fIGU24YW/jhvJvy3ZIipEKPUrzeSF /AM7fFQkgOzlEwAAAABJRU5ErkJggg== """)