From 63543d6c1eb8e165bcfd4afded456ddda8578974 Mon Sep 17 00:00:00 2001 From: WhatTheMike Date: Fri, 17 Mar 2023 22:18:05 -0400 Subject: [PATCH] Added background images and configured stats --- img/backgroundv1.bmp | Bin 0 -> 240138 bytes img/backgroundv2.bmp | Bin 0 -> 240138 bytes octomonitor.py | 98 +++++++++++++++++++++++++++---------------- 3 files changed, 61 insertions(+), 37 deletions(-) create mode 100644 img/backgroundv1.bmp create mode 100644 img/backgroundv2.bmp diff --git a/img/backgroundv1.bmp b/img/backgroundv1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c34a234cc062526a2d54307baf6c685dab6a64db GIT binary patch literal 240138 zcmeI5O=ufgwCDBaHB2*PVTd6D8-`{Gbf6hx@WKJF0?nfXy>PI>4)$VVCJ;g|g7Lz5 z48vfu2qp~17-B4M8Z}J7y)f7dgSC0!UIf$-gA6f91HI6q8?^AE2E5SRUmcy?l2rO| zxfJW;Rv}f@t^0ZI`PVt;em?&BKYjSu1jk$R`yb}_zyBqX_`&@CB{7uX&HwyA|C;zO z|25(N%%dFtFOm4a|1pvH&y~l=|MqlAU$uMv5AAw%{u~7y1snw&1snw&1snw&1#Uor za^D_8l)f!qi-HYy>01z|#p@uPT6pc@*MrR=gI)TYv286rc5+i2wP*6QTwcju?rv@! z9i~bbdESo{%H_4v`N`$(>y5MBdzp+U`4}zUO}*Y2PtO-^zH*0z$X9&ezLOhHzuvgq zoj4WO`6516vb<~UJ1pgiQ({;v5kt9rxjSWImwWyPn?t@{=`-GB@i><}oj9G#9_Oy| zdx1K)wQ;>WVqD4I%S@cEWUumC!`F)=y6;+icqc&@xgSrDr`5IisI;0$+<%bw=CZ#g z)isg$>B*!)M5^@T193af**qO=;id@6ds7=W+?_>AJX*x%{Dd&AeTSvIyiW`Z6@1)T zOeF3s+8ppMk+9E$b@z2jKUtj1ZXX^UF7I!f-?ZVGnf>v!cQP9IQeKbldxpp0Jz`om zan0<{_;DZSl$Wj-UliX$J4?YZe7yGg`Qx*l+)fU3zO>o_-Y`t9RHVrab?KI(mkr|j_2xb~@&&VC*CyouB8LvSGo z;R-i{keU7SlW=}6lLT1!auoQ~WYEyRju+*%*v$b3M zCXVOH;`s?DTsyOWu(i4MdV?S5)W*a0hwJe8-PBrX)Zjvq@i}*q=Xa4muH0d-T;xZK z7x~E|=-AvES}(0WTpuzq@K0=?OiU_6miMuXJADZ4ECs{xQ7#|n(1bWXJpIjl|9>&M zRNhWE-*&sl10V+7bgdhd%2!2+wijB+N^ONJ;WO1^%Vk{AGN9;5E zDzD!AEjo=$e)Bg%JNYNJaD0G<IkW^mQsiz8J%rAapZ)h=l#@TPVR) z6NxMH)xafapEvUzma^c3HUbW3p9>x2U#J~)iSK^m6kgpvJU;;)oR_<*`)Vo~&pX-N zn%bDlf(}8(agOtS7Mu3HY3o`s@2)EEK-A^#=UhP}s9fi=uQx#8!4~O}?$P013@v0e z$y7ZCIh7ZU@S%b7-rvuV9~qC3FP~s374&6Oe27K0RwCTlu6!$`U2M;*$46t|lRlPe zQx<&eR9ekmn)U)@oF1gvsV}Ie(Y@Esl^*Hgop?U4@@5nLs|1>RNcNQso#(QT*R+d)7+OHb>4o_L|QCiKLc*Sa& z+OQmJ%V*sN=dN?5U&+dM+&fv`-`x6S@Dc2FvJ@UQeHelTuz>^-lyJ|J{9pO5JHFd- zE(~WoIa1+V-uF&KicsU7JKDpC@cj>qL+fI3pb1GY#=9kP`ztw8I6B03$9lItb>y7( zt8c#Ji~i4Z+QaE1p&#XYW7FJ!Fj83F2Q#1s8QjWuSjy$H;N!*EPfv!{r4L4W8-;Sj z?&L@OT%=mgxsMON?92P%sURQZRQ}g1uAeLK?A=aiAID@-rIcuOv?y!KSa`ZObrsH$ zf8q+4AGp)U!SQBnX1`#3X1udq?IHa54EqDl)?+@a+v|eZ+k)w6hd!gb!L&X`!1h z2IU#!2}X;G;Q69_#mRHf*Me!uz;aHRmTz?@E)7R}9yu6K)9TU6w@{!uWyJ?HrF}h9 zBXe!};-+6O#Mimfi;awZKAx6#UD3j8sR9-(=O6n|Xjt!!^@07tyA@-r>l?W$uh`fY zN>j!{KQMY6R?7KF^7OpJ7KqT!Qm`>TY%Uw$h1(yE{p%aCxvRhV`mVjJAT#WnLwH-h z_G0TVU!5!cwn0YDSjy-*!nbFEQE!%tU;z{e20#RN-~)spL%<0-n7GTk+OJ%>%-BEr zRpjC7`g^74v2~bg9}XYY^awt65+5Q# zz=_~va|=zO_PELm{|iF6pR1hQF`AJRcRgtfu8l>;ouXfjr^PpA7NAxH=%3e_tD?n%Sam%b~-)YoWtq*`10OW9{%UY zX{~iMDI^QBL@~m3q@W{BY;0F~`q0lzIy3vU?PB*F9fsl2hPmmT(5`b7ylMX83E%JK zYfh!kl^)w%^&A~rLhoHLKLyjb%$f00rO&xJqeFf6F(JsP{ztwX=hn<9EJ84P(H^5k z(1DeM^Z*;!=i7(%T9^%U^E-!+o71q{W9S?{7=4#BJc^cujgIaE7hmqG7GOu{(!Rq; z5zf)#NI^!HT$nK>^QNUH<)3RM+Go~Ef+&zxs1WyFhS5lZ5YQnbg~4WLsqgU7S^9QE z?483$xePKu2>iNzi0*^^3?K7lFPP#BLNeaGY5UX@jEIy_{8&WjouGplWIWcxbr3SO z!RRYm1+dV!4=*~}x~nZaour^C;H@A1UcTl8?qunAax!)ooPZIrLg3?v>&yEig*{(O z%6JP#F3cAfj06EAdll_TF`y_BT`c%CS!Be?pQ|#87j(!h5G)VRXjt`az|CoK-M2zJ z_uu~%xGrb3=f6&Lkx z(+azjLwYRu^Pdy}dJUpN+}29R#*)WY=fpOf}b401;&;_r?)JNpIgjxsjRMf|1Dd&q{l?CdGCmojGdIU^K72po)s zfc;Gy)k-#bI(wQt1tIiuOcv{rq4GnpA-y290)PI3j!|RJ=S=$;)`wtZ`*76AqmhF2 zr*v*z6Nit+eAO>+;>HIfwa<-A!0I?ZL3Yqj2s*IQS-S*nidNfEGqR4;Gb5!$Tf&~8 z?YCfvt4NW%jIlRZ!v`OFGG_|=h1f3g(`Ft!_yC2HI^(Yxg~iiKwi7)e4j=u3g2v^D z7av!7xG`zw4Q?M!n|VrtkaHg|!n@mt*c$Y9Fq(?-BS~|LEh2s87ykHF#Ru1g6847l z4=OrDw?cMsE|f%efI!CXVxcpqm$u$}89{0M2)R9c4Et+pr9wtAH?HZZZ{p>UsJXbU zaB-GCRZ5=T%h2<1W>zO*jS^%@ut0EMgtA?eE+DdY$l5;u(g zWzJ9TrtYR#l|(TDN~Gs*W*-d-`5{OEAG-GR%!J(H)GZ!Ej}uj!_yC@wP!-zS^V+A$7g4|8k41ol*c{~)?Iw1r>%%K zE3S;5wd*8;52Og+_Jgg7Q@9yqd^W#h)0%~~PKz%xWTb$U03#wbK!!Ytlo|CA0iIY< zjWWw~2$O>;_ zLsa8~J`Uswh#4v11N88Z+@NLm!nBqhnDHu%PSlZ)#6OTurgAP!;5NnH% z@)TEUJ`5jcJ`z~dhp#j~e|~l0uM>)7DVw%Ac>1R&1tU>-i;T+$`Zi_O?ZFmnugY2s z79Za}#!g$w%K9ed^0vQB02dQ@}t_y8TF-t&U#_(wRcssVDp}=8q#Qe zYMI+7T92#`XYrxq_hqHH$s%$9q;V{io(~~E!qc~N-S<5FJv8gUH#!_X;`usU?HCx}3U8Yysx)VRp&+Sd5z6Pq4iSM)GgO$5=&Czck zH(DP~cwce-m)SMM;zMl(l?LQwb4$yDE{1*;mcGS@$g=R2Wh5qBK8<;huJM&VnGo9_!22{FC%@1A|nJXf)V=j;CA#a+G^<=!Mc!kDkO>68t7DDWZ1_BVW&+P zJ!R|)*rQL zHkiL^e6T-)#RvKs$FaXI@3h}%csC_(Wq++j@DY~2O-oj>*1XBJdUn6KX{>{GjkENh z{oSEJhHxaPkZ(Cx^d7+nElO5?AORSAg_RCAurwGwg@pk&=FN|{wBaII2rF_!WCsXC zdjlix-gWiA97&3F`H6)N_!lh%X!;yvcZsR32IfC#+AccJz-A9ARp5i8Hhr6xtS1^QNg{!*Z;v=R#Kzhyckz~<@gl4^ z0v-e#TysX}LDK>s;6(Tso@OivyiYq6KS2lgqrMCQ8ETW`Z=vFAF3U(RZ~`{?Cr)Cf zRRAn-atBh#$;7F0Q+zcOk54Cip4Pdkg zdR|uSk5t9}2*xFAv!mbHv@#y+IL=g7wmdgG#Ql}b1lk8&`xSLnO~vR>d81?T)fSY1 z3qc854tkHs5O^AXPM&@?DlO{%&&_)y!d(}<6%e8&O{IBA4X?_ zKP}G&Q)-5fmrvM*YT}ewkxJtCa(C}bTbH))R;OQ`7U(KI0;^Yf+7D`1DU%Wg^E62J z@t6KM2X{)_mDuUDU~T*IgDYQkSwZx(Y25`A8P9UPq61wD-Ab?mUO3Uf7R+i5_E~l| z6uTevfkE2OkQ(3wgx<@fVr|z|{!nai#Vs5kS9#iB?Ll9Mv`VSlho@_$M(gi3#>a1C z^rp!1W{laAd;b0j;_}-VybeC<)2~iz&qJ!|@%OV@TFDzN^PpWjQTmLT0fH3*hu+Jm z%($BxH~rc4sOQYe2^Xeaihq#?!u_mNvf#@G{?W0J6JnKcr@q8hp7y-tDPyi)oBgBc zXQ5RKO$)n&-%hT!zT>N55}R65dE{?_bLg$r^^?2p>?Yty3F{o}JAAKY17-dCI7 z=AaWCVq@?2yZB4bdT;1g`t9b*R~`L|k+su?o7stgv5LqKw1EZl5C1C$=8c>{f-D#p zBnbcDfnGN2>wR|GtQy3MLBqxt0f%T*A~}#6B1L59zfRPH(9Tk@5kA^WJ6ykNFKn1E zi;w!Z*GbEkuRfmscZs|7%ws}sV55T!(X+(%kbiU`+Mhm|Z~k~1Z3)hoe>5oNe?`TD z|6Xu}PkBFadbay;oxMK9mO*BS-H#^c89dJVI^Ma#%hBOnw*I?#^SX8TxH%2GJ%)Jk zvE#S!f(&WJ!aA3>R`?V<1UUjiIG6W7nb9HJhr;`*FBn0$k{{Su@K41Dc#^S*%q#&B z@{jz$O23yuqoaiYnI$F9-o0a5G0*k@mgSmk&vwSlRRbo7C1qAhzv=Zc3q?hCkRnf>_$WsI9=&f<7lXy9|hBQ%nCZHH;HwD-F-JDv!7&@1n@&U7BXeQa602km_Lgo*fV2XFY*={a)&Pv zkt)$b3tq%UT-Qp-CXm2LM`C6LY@`UOB5k~r+0*wvI>Zuk_z2d!yKj#IH^oP}4CkZA z$SMtr31&WVFKZftAuMT`%f#+y=t%Qs{y6QoDT4#iut3J7-+N9kI!KUn!Ca9UDRbqw zW-uet1B6K1?va`IPKvC}06MXDlE(6&7v^4O&dg4{d091vAZ^vnUHgjyQpYzhlhyXm zPh>tI-*5O7+j+w1IA8-`;DawcJUwa1&UO4Pj;GKX7_!5g7 ze6WTHz1mpE(pv~8!`m~a&1uw^4@d*Jf6^cUM2z~FkUQMiH3v*An3FqxSU38k)fo8! z2EoX*ksjnjf8%NJi42LekI>G)$U*M)8US5o8ETSlvnRMLZ&lwhcn0l?p6^5Ab-q*Hxi=3G^>l!FFh!H8oKPPdb%Yjo`20*IhN9NkP{=x3%#_r2qT=*!L=^=zO zrI!M$18G6)>hiv<$V>Y!S`fGZHG&Vt2vP$10R|R)>47#SCvUJp*y#ftfUum8G|(mT zW7;5r^%BwHNR`=z=y=0M%hI;Bc9D6&-5UpoA~DXk4s0f{ufA z4DVtGoSRlxutHymXjw=VFa<)u!d0G~qGXK*@N!{Rz{02KReHyjc=;E}Bzl&xD>%=lswTmr4$#6>Vm;7Jv*+e8)>UhmW}F z*^TkF#z(=7x-PVl^}LzeDg2Gbe>XL4Y;>-C-|1PGktT3#&h%@84aV-GXTj}A0{DN~ z;N#uWyQOKP8*!fP{x(KD>?tBxA{-&~iD#@1;ze%oLuP$4ZM?K#fvvl#Gh>UixBk_I zS=G0V;uT*=9%}5OTo9C=u|m#57LkyNGMvfz#?g3n}b-%2YDGcD~7Z#$%5&1 zY!4w0AFZj`>poiHgHcQEjC##@@E_l85WIaDfK3UAe2sihS?o`w#E)mKnEy zu5t}ZkeU6zpUoKAfgkJ$PFlx639h26A(OCi(A{VQm^E?)eGfSz5{>+|BSB>ReY>=4 zPQli(I3L|if#$Uff3xCSs}f{9dK-`(@~swhz@?0OqAg3bpl$PIX6I*~h0}$@;dH^r z4~tV9$Pu+hM25T>6WJmX2mBoQvIlf*o0S-7855li7j!zXN$VKc02hK1R*7y^mU8)W z7yYdDNE9bOTGO)EeKf;I-mEPpyLz-L#BnlLW*ThI~KBnG3|v)M1}HB z4n!aWKu*q_f`D(n8(Ie)jG+Pt{KnJ&p8S0YOn@)2g(ZT;ACw0fkJe>ev3KytGr3WW zT>7hHwJHmmA~sX&k&F%>t!UZ%@0;Octptbj1#eYOB!{4bKI`f9xj)vO(0t4JPoCzh zY~!5SEpVnH1+XJTTbeTahb0mRTcmk6_0UJkvf2A9k$5wPrGk`T_coD6tP5A&r!iW@ zt^tqC8bk^t&D^WIDe{Ky$FJ222$RLTDZ;a+dh^5Kqd9&0;cat#Oq|k>x4d7?+qLDM zEROpvyJ#_J{MhB9TQN_H?|t&LP!)*vWtgXdL=Y(=od1(q6O-e=eaq^YiNt?@z>5AH z&xdFW!x#SfC(Tb=wffSinJ)#}NEaKOA8iHTL*z)SF<29)m%CuPb*qHrO#Z8i=N|fo z0?lf7t%Md2zc+91lpSlaf!UFB+Gr=UhP#f8F2sp#P-_*hWOWy2zV$hS5_o_6kae3I z9q*O|8QaF+w!sH&0L&Gv#V#!hb6K%MJQF)J6F~@gLI;$6%^FuAy)w-6($&!$`wZr^ zu`ln2(@aFt0&(ci%r0kU9=8Pu{ec&Kmm` z4U0CTFkd4DcnkZH| zZDQmc_hV*v^P%;3OSESRmRP4m#>|70*BiCEP~JoL0!wIk2t28~#GO;lEHr zu8Gqr!_k+1%M~*;rp#XG)5g9L3xq2ez{)_Ag3FN_+@mu|uld~+yF>Gx$NnIOO|w6E zbwcb2O&*XRwARu}fbBs}ksbWL^qUCC|LBA6Q8wtuPKWE=(7|X=>maq7^X{~|_C;XOO+N?lItwq58d=J+juD{+8R3Q@x zkL7Y{_JV@bnFodR$eC2Q11H3fUvPk*;J!HcqNh;a73!)6y$U-7oe$fH_6BB8kt%u? z7!j<@184h|pTbm=G8*7(SH%;EqYqCJT%0&l~)d~eZ5WKyfrs!ww(q(W#exwZ;egufq2i`B@(c?~N?sj_+~O zT)CG~wW48xl(7DV$s+PW_?tfPpI_0QyOKpu11n$xxujex8Ww%`U<5>P-S)>dg3*7T ze>Af~;B!G2{2o>lj5R@`N!yy_m^>pZcmntAhJYJqyXbK9Ys0ABZ*J}2qg);>?if23 z`N2QEe`s82RGcgRj1JMR(6ho@MzQeeMLailN%Hi64J8u4jiH0(y}WmRBD2NebtH&< z+d%{R)se4h@eU-hnjEz-vrpc?eY|IOlSV^hJaD~Ehfi>fq&xR5B#=T$kQ(gO&Kp6x zlqFx&QcMithtRG)3WmqvT)UkD?ba^4r=gk88hoHlahLSJ!QcdbL(_-%gnMhteU%p} z@!9lBPZmK(BJt02d`+k6iMz;uGWIsQ6LNx+uRivOpapCUo2P;a@$nh|b6Lsz>y2`` zVCFP|k?jWK#IQrqu>=RR2Gd9rktmc07j($>R-!P8`-h}2|LW$h{Y8QHYd7y9GtlMf zQ5Rmr+7PXsFEn4|LMVCIx1JGGVj<`_#D7noo0Sm$c=Yot0$t_lH&mNMv?;MdkQ|(% zKTQ@BiS5IY!iT4l_vb@|E|eMF!n`b=>JL`0BiD)%L5pC5|DD{u%w)|t%KBKUT^v5D z>Cul*?c;;er%HTn(MPZ{R(!o(dG5S{UPU-YcUayXS`Ts-bD!`-`xd@LexPBA?3nhg z@w=(v%G~jlirlbqNMFU8-}gA2ZloVEXAwMuWHdxdfn4Dq>#9H&u65WPBofyO=sfof z1+Iq=ik0!M^6(bD3g|0HlzW-R<9o~HJrC>P(^jEE6_p>#Um`zvdG1P_rPgr3Wu87-@k1i?qf+cE3RV`qSBktI91RH?wrYahW}TsyD}&=VAp zI=+5Z3x?M?*;lsF7h7XJ&S4#RUq*n8R_qVuFFS@YdHTudSaRj`q8}lUasVvTyxqutNpb16wF0?A)K#Xqkz_ zg@#p~Qs>I%@X_3ZHSvZJAB-P zdc6_$Yv4m>i(4zaF=ZBvg$){z9MXplQpWv$^Twg<8^-sZ?Y4tN8z%al!$)-5^-9RE zfe(5=&UWY881*-MigpDe=uhOIo^z96s72Q%`&P8u+*{ zV@o(&6N=e@XFfgz9Y_)8ec;}@cl#<2K3cW!w$4SnJ{&&UrBv_w`x^LQbQBi4_V6{L z)`b~iGVHhJ4*Rw_ye=p5rxo90yMV5C^T+iL%<9hV!Mc-coAIz~rZ`#~yW;v() z-aU|jKE+&-p>?bYLCD>dj^1iSW#;Y@w$R8!?CuU9v6HmxBK$h|D45acNDxM+hm&Bf z#0V6$D&`YTne}`GArH-U*tj8q&US-+jMec>oHASYpsE+L+DH6P4j=K;wA*6*I`}A; z*Gfo`Gjqyl!fHB<7MV+aHw8X6x4^`dnM<{7<_r#*dACz$PAv!_2Ja-;UoNrinUxqs zx3Xhcs^jm>lfy@6=-N%Oel2{I%j|A@W@HF0xL5hL5@Vn8UaB-wVDusK0SN;#SS60R zAoQV6nLFmDBYULX7d>mfnDGi`Onb&-UW&Bp9&F_r%>L*Uy&XO}McM9&_v_&U8G`O4 z=cbVt=tG>Je7gbr1j!+5Eie-ubm&=HeYg&SkRjkmv?;EP?ZRE=mV8ahI(&RhYTr&; zUlSjcaK)^4jjhco+%B3EQUW*D`eBulA+yp6tNw5gYLFk?e=;pxiV~2*$-Kfwc1hRG?>UKxmUmG8kT6TE?7s!rJzSI!uz(__gA-Di3f)U!K=m`NsXkSPiv@PaP?d0k$ zlCMKshmWsA=i5x>Ht?b4UCGjh%Wud?2*y}3-yBSEA}u)4x>#+Ok-Q>HUKMCJ7cK3J9M>$mN7g5I|gXLsO3N=|>q zeDS@%b{o6fu!7=|SsipGJ5spmT=7oOHi!>*-_I221o!lRoc+uZu53XH^gl0mqJ%*T zy8C{nKqt7T|KkjDME{po*W(_9lG-v#9ouJj*FFUtKH8^MuljWOh+cEOgOB0#%O}N0 z@0OCMh3LgC4q8+_Z(r6`X9BL5D+?X2I zd(%7kka8X8$no=`sB-}Zkyi$>%-2IfW8XqMOTo2L(8b<=|Cl&-a;4QbW5134xtcVq z2LJP%_l&Y+x4EJ9pPu}c{PuBa)jMHcB}dB4NdETmAI7S#9vu=b6=J-~OP;FNGM+3B zr|&Gj7%M&+TGzE-CQk8rXOU3$kkIyd5bg%C%yHGL(9Tk@8RrVeX$aAD?ms9P6#Vi^ zUFG`2V#;5`;^CKFgr?KM97jn-!Vjky^aW9^w8d?fajEW7yx^L71HB(&^HC(=UK+Izi0Dlf+7Oe(3;(IHPiJ;{3xA4+j3 z((SF2n%8c-3hm^dyfx2K5+9yk?#`OM*9rA! z1t0Up?ZcoI^74tr+I-z!Cec#a^U&9x5AAusFOfFrQfXDcBAMXhRONfB($>>Y{t3e^7)C_AU4$ROMJsGcdZL|Z^qzVjq7^&Xp{;&2ov{1vsdH!33q2^ zwQzRI4m;SP7X>)vM6XQc!uiUh|O@3+0gldok+H?chV@ip28v z>GHnxPH0@$#RrJ1Po-Rb=Sz(Vvpc+?;>B3TTWHW8eVh|~JRd4lk;;~|%DJx}2C>X> zRjAO;Qc!ui5k73X@(l+cij|>t?_@HdOKDu!$46KyDk-GpSVm*5WDDire5*+FTPVvo zl(mxJ!?trtoVKJkjefry#4^WKr`N%Uv{-3RpWp*+=iA4`qV26Y-!5Sw@*n8-0kGnDzo4j<8}Sc{M7G4)2sLFAP|EOT7k=&%I!Jj3p`^BqgIH!;`kUQ3 zeB6wFy%5^rBYG`4d_<>RuY`2?h+b0;AJJ*oD*hnk3xCY>=vaVUp^U6+f{e)cbxnCnY?{5 z#!5e_(x)wr>z7xoO*OMG?|1w)MRZ+jU3ny!R^0cJZrrhUcYK3b=D2D^XctaF<>_jC z%ok<#^kB$0W5Vg=YOSQ<@Zp{8d9u@#^?$G>tAqadK=xsC_=u}E!{ZUkhre^K%_(5H zwtm%r{X zXkJG*ee3WMor2fJhwdo&@!6=q5_R6wb>QBN$!c+`JIVe|g|f(sL}EBy@UwZGll6LK zrvjWDK77J-?9bsNI%%(mkA=!^0?&sg1M9RaW>|~Yt}Ci5<*F@WtqYYfx{JBPNA&t@ zC#1tiJ5&nyb3J^>n(gex8H`Q#Bu^yX`g_XiUO9@7PyXuFNQ(u3Pup@?*V5Hk96o~7 zjQ`%@BRWm5hY#ibqr+f|naVz#i3IIf>PPW0S(F_*NQu>Xj}B!A1dB3QAoh9m1h+tp+CUo%olOI}vmD#yN;(j;l6; z99tV_efyQ{ADc+r%LM%vDm!e;N}~1n!0%}B{N%M+`8}AP!$**cox6AVh)&xezt+Z5 zkB{oMDfO>=$UYxp5A<++sNc2H`>djD$jJ{SOGmE`AJNHsJ$zV8ybwrI?FrfIIUFAu z5A4YCIVY()`Joi)?A75TI(@H)k3wbFrbI&8a!J?P-;5lommh1Tqr=kbuSpw1Tfq*t z@bByop+e{W9X_Jd_ImhWY?X$1y|I(K$R8aR&3=O%NQ1S~RbFlQnfLmWP8YbD-ip?kb>4oYl6o~fkZWsWX@n2_UF5e9FLyV$hSL+L^a{!`mz~iDb1KJ|^$uapvF^P~rW`(^)2>%SI($U0DTj~fwCk0S4j<8LDu@qv-_I0?&Le{y zvY$D^l`TktLFV%4We-x&-S;yEqVvcghYWJWAkaa|I|wDUWgNsZ+tT0c&f()`^y`Jt z4j<8LDSmv|^&6fK$sPyMa~FTeLFAP|EOT6(6F)w5{-DHsxf@qb%&qvK-S^7HT-y!Pj=zkjyAjVX_@*1~Y|0k|oM~|lyC5@h&uM=_*%N!SFm4~@XoIAPmlg6ja z@hh11uac+U$@}b{zv?u*7jRbVQo4?4_)K)-m@sinoF3;=Usli}51M*#jjVXf8&_<- z5s$-1^m?kt$3bO3wBQ?iKVkMWzsTENXn#!(r!(H!uK2hL%sC$^XsBOa)#fkbE$_b> z)AwBeT(x1I(0_CO>WEOk0=iaQpJf*{*0*gy3-ah=(VIn(@Rn zXt4=4^7r6>GTHzz(DTfoL_-JTdLs)#=%kWO@4%xG| z_^41Jwyt_Toet`4azE;?el1}WiRxD0c8DD%tD53td0%3cR^38bcJRFaAmjJ7Yirltl+~|P z-c;*XjV%9cJPt+KId$UtnO(m_D7*C7Dpl>+-`S# zp7pgSweLljl5)sc#usCGA3>U@<^8xyY2yi&)VlWf-5{1Zt{PQd&T)xJJFRr`Cc(ms4QB_T9VFP}&YRzV|*;VN;*5K#|B zF^FZ3t9q0dxk{X^@R2I11@ZgR_TkZ?_H-l?(qpLM?bko=X$Y~nwFjj5XgIxnsJ-cb zJW_ky=IP_J?Zff(%O|3l#ZhL7JC2xoCyqfZb6mA!d9hu5l*<#R!BBdCXAv&Wcse>u zwJUO}n30jZd2eW4L+SO!n6);mOKw^v%vUkG_VwvNrE#*M25~uQV zI$y?lWAJJ>d;UhZjdL^X8NA#Mi z$47VzRP+?OE94;Z${?0GF0QM`M_e&?XFP+*D}z|(xVX>ZBQ8pIZ#)hk(d)+HBRcJR zC8Wbg^qO+`h)%m+3F+_=y`~&KqSLNdLOOgzuPKL*=(OvVkPaWwYs%pxI_-KTq{Bz_ znhN5>-8%|63OEWl3OEWl3OEWl3dBo+=vrFugcOQ(Pky^8Ki!m zrQprNcN0%`Q(kUH)%Zd?e8fk~C^2;tPj*vYqR_GvVH`d>LDlx->?WS?EZNAwl**7KFHU4e8^hriA1hy&)Iq!O%~Os#&Q2a?yyktsBU}yitILYp**wy zS5n`~b#p6KQXkD@)!jxE3xv{KXnhCQE>G! z936_^A1k{_h^zg-n`-=C-dMlx&hFI&ZG;|LL$x(gO|8kI?CK#jwg0k)yN$ORABA#| zdu=FLyO%W?o5$K3AG&(H#LXIv)rYuOyWQqfZGM#cmNwOQwY5@b+8vtI$AesJ1486e^T|sO+-&@!7=bRemSOs-$n9p6yPY=BxJb zsK$rxr1MvDdH*7RoSWHyJ|sDqF?)Tqjy&d zeGcq*-8)Gnet9*s&w9PBV{MHO-HYV>B$!`&FZr_1w|!TeAEo|q`YIoGR#UlLuE&Q` z@%fOg8!e?u@9_1$YxAO^2KlOd%vI>1HPj3rn?_o29M$RfN=td4NCferH5aU%yk~v1 zjhMv^tzq~WDJUhwubW%7vBZlSQQ^Z z>r(S8vdrmM)Z)*t!l@{()qAs8&X>3L+1*w1q|ih8t)9ZKH&hy^hFk9^k&u>neG}}d zP~L4MKU&AC`1tJ0D9P`;B}uEl@S$HPE0?(oQd3GFCO^t$T0J;^ShP0&*{-;Kc-n~X z<$a^KgXu0b2~wspJ`#yLi(*fdRwaaYV(G8#iqfX4@d{dmw&#^vJ7^%^TgR&S2<{F2 z_cKXLWQt<2xs2+bx(-sFTs5P9A|c;^VD7{5kt+S__rV6+uyo(~?G|k+!Pwos@-bJT zM)MjH-qv1PD+vnaf1VS^+sfC8dyZf~)Ky;GijOj1dewJw+lLo|w^WWFf0PbAg?8n04OuHvKGZP1^TYFvdDiVtmpzsS#J)w0GH^i7r6 z0X>oU@qy^Fc~AQt^y|c1j{6VfyDrwtyNWLKx-u?nzWBj!3Hvq4_r7(kijPEMdB5Oi zSJTy&WQPx_Mcs2=dkIx`+b@gw3;s)u1zp^|&?HD1#Ye764y#6+NXQq-KL7o!wEAsj zC+0hg`HEz)@jf5=a}~bEQXee}t`dniW2M!1OWJ#`d!M(8)#4+O`2KNeRnSFRrPZ<- zmpHYdZNxwLtqX$6U@Zqr8g##{``Y{{_4Vsy^;hn!+|~Ss>sO3L_~{98|CN+5`eh0m zb)s?A=0)8H`6@ICQbud28Xx7dVn8K?j^wa0+*!1;TU_5Qsn(lFFoL99KF#LZZRh03U` z?;jg7H9Ttb($M1oy%3rNDbuKi^xHk2R`Oirht^g5|NGg|VesoFF_u=>N{W!7ip{WA z8c)l&4L{#M9!^_S5p%Ox6(2~VsSQc{*W}cO$O(rJtr@P96^n!34wcLDjSBh--UqoL z=sw8zLX#k6!tt?IX%R^zRDKB6GTvlyvY4u~`9v=ezFjNT`@n6oSd9!@4~=4-ED|rW zf3g9mYMxV327CKd>=*kyNd0D1ZH5okLUWZlA%7Yht=SRef@b~( z>0M)dNDtM+^^$L0tG^dx_Iurpbm|v;g!d0J9}^jAPpy|5u|Zzd<1*@x+DK#xxm7A_<%B>bGCjPjheO;boj8e&^t@NR`TQb zrS7&ov_x`kqy=^x57g$Tx%9rS{3w@g50SQNRMRQ=RGXLJyFtCL$47rtqT6_&oAT35 zdFd7|bojX4n&>8;?54cjZmrnV9X>2AZsV?-c(R-FavOCKmZrl;7*)QWTQ~7!H|6E) z)j;!<96p-Ur_*n{i6^@$FP)})yYV}Gv`eYZ`0FN~?54bQhT7MU)#2m%G>bDtH}PaQ zuC%Y*xH>YeoF$D49?i~dj1snw&1snw&1snw&1>&VZJQ`c8 zSR~J_e7X0I0^LA?Ai};*ejGl&4xL>paZteFBMvIMIQo?W4j=tmv#wlmP{83M4l24h z`jr9>AN^Xhu3T|Yz~LhfD!MrOl>+tn&^_v^*SQLoUsrsSm36D1@Rur`pOjYLKKGEh`f~)xpRl3K(|vMetgVj>sJtcxNcXFbNJ|Xo^biI6o?xix(8=4Uhdy5 z<*Qb%wmEQjjso3Ffgm4CE^ne=?S0uhb!ubY?8lbzCQd&-V^?&Zc3VWh=bI4j&~;iDV*z~w2N0zoboAF3lo>HpCE(t@$-z3N;JAK^9OT)UA1 z%Dr5x@ezC@_qr!Vb&p{1>7~EtU42MgWG7G8KiG|2;PTXn0zqEBIX-k(VZ{P5Zf;2$ zx>uAuHOh~3cNFL*3dD<#iORm2b{~X2?|Xl5+h1O3sU1F)67Jgl6o?lec~AFOUfy3T z<-L)D>{b)pyU5|A`?49@S(JK*Y2l4kc%a^H)+2j zhU1*>l&*1q+S0LCym$D33hw9)3MdbAl^ov`AB?&>I{ba<+sD6+-B}z?*Y*`UeDnrq zxLiVkDEO$RT(Et&`c3$g!$&w>oNG5yz~Q4CYsKZMTPV;NAHg?z|NZ0od^`D3PZQ_T zFBDMD=PG4V`y=>9?*$*#h^T&QO&5u)wLj;>QQ-C|pq$TDa^vuE`?cb7&@B{j_~@3J zaQWy)3e@AH)47xsJDrM)-%%hA3OIbkK}8owzf!>AqhD**l`9SkIDEuGMHffEQXq&A Zckd|RDBvjIDBvjIDBvjIC=eF~{y*}TrX&CW literal 0 HcmV?d00001 diff --git a/img/backgroundv2.bmp b/img/backgroundv2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b3e6eb636f19ecbf8fc3a21a4e86d5e93deacaf1 GIT binary patch literal 240138 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 literal 0 HcmV?d00001 diff --git a/octomonitor.py b/octomonitor.py index 5240b6a..3032537 100644 --- a/octomonitor.py +++ b/octomonitor.py @@ -8,7 +8,9 @@ from secrets import * pluginpath="plugin/DisplayLayerProgress/values" +printerpath="api/printer" fullurl=f"{octoprint}/{pluginpath}?apikey={apikey}" +fullurltwo=f"{octoprint}/{printerpath}?apikey={apikey}" # CODED FOR WAVESHARE 4.2" 400x300 B&W ePaper Display # Requires the DisplayLayerProgress plugin @@ -16,8 +18,7 @@ fullurl=f"{octoprint}/{pluginpath}?apikey={apikey}" import sys import os -import json -import requests +import requests,datetime imgdir = "/home/pi/epaper/img"#os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'img')#dontask libdir = "/home/pi/epaper/lib"#os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') if os.path.exists(libdir): @@ -34,56 +35,82 @@ from urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning) logging.basicConfig(level=logging.DEBUG) +#logging.basicConfig(level=logging.INFO) + +def timestr(time): + return f"{datestr(time)} {time.hour:02}:{time.minute:02}" +def datestr(time): + return f"{time.year}-{time.month:02}-{time.day:02}" def getData(): jsondata=requests.get(fullurl, verify=False).json() + jsondatatwo=requests.get(fullurltwo, verify=False).json() jobdata={ - "file":jsondata["currentFilename"], + "file":jsondata["currentFilename"].split('/')[-1], "layer":jsondata["layer"]["current"], "layers":jsondata["layer"]["total"], "lastlayertime":jsondata["layer"]["lastLayerDuration"], "percent":jsondata["print"]["progress"], "eta":jsondata["print"]["timeLeft"], - "remaining":jsondata["print"]["timeLeftInSeconds"] } - return jobdata + "remaining":jsondata["print"]["timeLeftInSeconds"], + "bedtemp":jsondatatwo["temperature"]["bed"]["actual"], + "bedtarget":jsondatatwo["temperature"]["bed"]["target"], + "temp":jsondatatwo["temperature"]["tool0"]["actual"], + "target":jsondatatwo["temperature"]["tool0"]["target"], + } + return (jobdata,datetime.datetime.now()) -print(getData()) -sys.exit(0) try: -logging.info("Octopi print monitor starting...") - + logging.info("Octopi print monitor starting...") + # INIT epd = epd4in2.EPD() logging.info("init and Clear") epd.init() epd.Clear() + font14 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 14) + font16 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 16) font18 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 18) + font20 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 20) font24 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 24) - font35 = ImageFont.truetype(os.path.join(imgdir, 'Font.ttc'), 35) - - # Drawing on the Horizontal image - logging.info("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((10, 20), '4.2inch e-Paper', font = font24, fill = 0) - draw.text((150, 0), u'微雪电子', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - -# logging.info("3.read bmp file") -# Himage = Image.open(os.path.join(imgdir, '4in2.bmp')) -# epd.display(epd.getbuffer(Himage)) -# time.sleep(2) - + # LOCS + # filename (60,6) file + # percent (125,45) percent + # eta (265,45) eta + # layer (125,85) layer + # total (125,125) layers + # lastlayer (125,162) lastlayertime + # lastupdate (117,250) + # lastrefresh (117,278) + + # MONITOR LOOP + while True: + (jobdata,lastupdate)=getData() + paper = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame + draw = ImageDraw.Draw(paper) + # LOAD OUR BACKGROUND + bg = Image.open(os.path.join(imgdir, 'backgroundv2.bmp')) + paper.paste(bg, (0, 0)) + # ADD OUR TEXT + if len(jobdata['file']) < 20: + draw.text((60, 6), jobdata['file'], font = font18, fill = 0) + else: + draw.text((60, 1), jobdata['file'][0:35], font = font18, fill = 0) + draw.text((60, 17), jobdata['file'][35:70], font = font18, fill = 0) + draw.text((125,42), f"{jobdata['percent']}%", font=font24, fill=0) + draw.text((268,42),jobdata['eta'],font=font24,fill=0) + draw.text((125,82),jobdata['layer'],font=font24,fill=0) + draw.text((125,122),jobdata['layers'],font=font24,fill=0) + draw.text((125,162),jobdata['lastlayertime'],font=font20,fill=0) + draw.text((117,250),timestr(lastupdate),font=font14,fill=0) + draw.text((117,278),timestr(datetime.datetime.now()),font=font14,fill=0) + # (240,82) under ETA + draw.text((25,228),f"{jobdata['bedtemp']}°c/{jobdata['bedtarget']}°c {jobdata['temp']}°c/{jobdata['target']}°c",font=font14,fill=0) + # DISPLAY OUR MASTERPIECE + epd.display(epd.getbuffer(paper)) + epd.sleep() + #time.sleep(30) + sys.exit(0) # logging.info("4.read bmp file on window") # Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame # bmp = Image.open(os.path.join(imgdir, '100x100.bmp')) @@ -91,9 +118,6 @@ logging.info("Octopi print monitor starting...") # epd.display(epd.getbuffer(Himage2)) # time.sleep(2) - epd.Clear() - logging.info("Goto Sleep...") - epd.sleep() except IOError as e: logging.info(e)