From 769d0c1b7a89f510c0931569affe74b98bb44a18 Mon Sep 17 00:00:00 2001 From: Blackymas <41958506+Blackymas@users.noreply.github.com> Date: Thu, 24 Nov 2022 15:29:05 +0100 Subject: [PATCH 1/8] add install blueprint button --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index f87eb36..8afb460 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # NSPanel Custom with HA Blueprint +[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspnael_blueprint.yaml) + + This project allows you to configure your complete NSPanel via a Blueprint with UI. + ### *That means you don't have to customize any code or change any lines in the code.* So you have a nice graphical interface where you can build your NSPanel. From 4d78d7fa10878d37b4c0c2b9eaa9a3e96c9c4691 Mon Sep 17 00:00:00 2001 From: Blackymas <41958506+Blackymas@users.noreply.github.com> Date: Thu, 24 Nov 2022 15:35:32 +0100 Subject: [PATCH 2/8] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 8afb460..592db0a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ # NSPanel Custom with HA Blueprint -[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspnael_blueprint.yaml) - - This project allows you to configure your complete NSPanel via a Blueprint with UI. ### *That means you don't have to customize any code or change any lines in the code.* From 5d1ab726ae40a2963b69ff39000df5acb9e5aaeb Mon Sep 17 00:00:00 2001 From: chpego <38792705+chpego@users.noreply.github.com> Date: Sat, 10 Dec 2022 06:32:55 +0000 Subject: [PATCH 3/8] fix some typo on README file --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f2a623e..a4322ad 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l ![8 Cover](https://user-images.githubusercontent.com/41958506/203654290-c6ec2f2f-7924-492c-914c-0d96dc3907e0.png) ![9 Weather](https://user-images.githubusercontent.com/41958506/203654307-24000d00-b7e1-47eb-bd64-9e97b508db52.png) -(Coversetting and Weather Forcast) +(Coversetting and Weather Forecast) ![10 Settings](https://user-images.githubusercontent.com/41958506/203654386-e4e574ad-8674-4268-84dd-1c4e40f98eb9.png) @@ -57,7 +57,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l ![Device Setting 2](https://user-images.githubusercontent.com/41958506/203724491-53ecd93d-bc7c-4c2d-850b-f106691e2639.png) -(HA Device Seeting for Example temperature correction) +(HA Device Setting for Example temperature correction) ## Blueprint: @@ -67,28 +67,28 @@ The goal was to create a version that allows everyone to use the NSpanel fully l ## Features: -- easy to use and simple configuration via Blueprint - no change in the code is necessary +- Easy to use and simple configuration via Blueprint - no change in the code is necessary - 32 buttons on 4 button pages with long press function for settings (more buttons are also possible) - Button design is automatically generated based on the selected entity - Buttons show current brightness and cover position in the button itself - Buttons label can be assigned via blueprint -- Weather + 5 days weather forcast +- Weather + 5 days weather forecast - Thermostat + Touch + Relay control for floor heating -- Light control (brightness-slider, colorwheel, TempColor-slider) - via Long Press +- Light control (brightness-slider, colorwheel, TempColor-slider) - via long press - Cover control (open, close, position-slider) - via long press - Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel) - Swipe between pages - Top menu with 10 icons for specific states - Heating control (hot water) -- modern design - design easy to change via Adobe Express (free + design template) -- 2 pysical switches +- Modern design - design easy to change via Adobe Express (free + design template) +- 2 physical switches - and much more ;) # Pages ## Home -- current weather with button to Weather Forcast page +- Current weather with button to Weather Forecast page - Hardware buttons can be freely assigned - Hardware button label or without label - Blue line indicates on or off of the entity @@ -135,8 +135,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - Hot water button -## Weather Forcast -- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration) +## Weather Forecast +- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration) - Lowest and highest temperature outside - Date - Rain probability From c60aca7e549bd88368517d97d058a9324589342c Mon Sep 17 00:00:00 2001 From: Blackymas <41958506+Blackymas@users.noreply.github.com> Date: Sat, 10 Dec 2022 22:27:40 +0100 Subject: [PATCH 4/8] change some button pics --- nspanel.HMI | Bin 3340950 -> 3435720 bytes nspanel.tft | Bin 1867364 -> 1938488 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/nspanel.HMI b/nspanel.HMI index 9e5cfc306d5bd437ae1649e279ac6c658d3058df..328b4aebd0f1183fb6a1df5b5491e6a0e32efa0f 100644 GIT binary patch delta 85128 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 delta 9776 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 amL3~7S%P~f8a&vk^9;LG1NS8IwD(W_6+X!T diff --git a/nspanel.tft b/nspanel.tft index 6a7989dfb55bbc2dc817e50bbf636f231db5f34b..2146d3ea1871d5bd6431aaea1d7b304319c437c8 100644 GIT binary patch delta 45290 zcmeFad3+Sb);>Nx**C}}naMI)2qch|BrF25Bmu%EVG{(|!Y*8pMUX|7LB)WGYy!nq zB!~)%2*_2UpagIU3K|d;R3souzyKkL0QvRK)78VzwQ{8-5TN%{^w6_=~-7-=DO{k z9({aa(&H~T>~!L#Cw_gh{)pb6wCHfX^5w;iYL7a0YJU6m-Cmp%yZfOnPpy9NjkS9p zjI_Ssq0M(+I;O&Z+0fz3CiedO-`^7WTLOPe;BN{1ErGu!@V5m1*Gs^>LhD!S?6q33 zx(tSA?=u;u-xf~}HJe4?Sd00YrP?z~jqfdWv$nB?`5O$Uv@EUisElgx9ih2txb!(~ zFpR+8Xg??2h|5VA6g}DOq`TpAji$-?b%UIAcU{JLw*{?3*g-Hbe7J=L1h% zE@`h4#6>#kUby_%5Jg|_LiYx}&um5C9_EbigG;Yfif(gZ)ED&pw-mjeEZ1g`HD)E> z+@~I_a7h5+7+N1!^oS7L;Gl#8fPF70dP;;OOFHHKw5L%@BHg9NwL$+^jH2JLIO7MR ze8cAZjE4ISXAPfOoexa7e5{wz@R%XnaGh-9V8N8`KL)AzkGaGT2K~fzMIY}XA@ba1 zrJ_IWLT4Sne8*_8vEbD%56IleukKAiX`TC3(c8Pkr_@ut+++n@3ufhCtf%O%`BPYp zvK0MTq=EHUHDhIb2Hl&0WxX;((Jfp>;GiUUS-48kvs~!WpkMo!o0QyD7v+rsy}U@# zFSA{7_>Qn?Zgp_+!$I}n7#kJ`3y1}7|6b9LsE#D*bwPjT{Jr#gp!d73=!*hzgM<0R z0e|*(mkjx`U2%{e54>axR}W%b9@NK!fMj90Zt@1Sm7?f^?o+>AjM^feE<)> zGAsH5&M-Kbpeyj9XhmP?5x~0_ z=U0mUrptKnDCom~R&-aBYdq*b-MBaY1kj(W?PHS#w0AMBCgMR!Js(Mb+J!y|^j^&s zJk0S$cp>F!c=XaPYxgpjSvONiRJ! z|IsdPINfo2;Pk}lh0`0S4^H30N4xkv`L;Ne1bWnr)4 z7LJ%B6LS((&#O)gis^|mvb{$p7PokGY~Z|-nf}8~NX(pU6*Cw1a%5mZ%||9?V_b65 zf~-Lh6d7cZ2l`jc44hY~=fx(pb)*`ZNEU-4Oo!32!dQ`tnJL2;PiDLcv0ElPT(#WG?TBIba$sTbqqj!hXp6cLeV-lJn3F-ImM zDqD(NTPBzHcgUujlonGvY1^}(1k)oE$>bOmQ{19rCd#eHl#W7~V!bICW*{{f&B(x2jmy22-K%0S=w2GOEHAkjOXRFhen?htEkB(&- zOueaB5ZayB32jw5Hf9h95t1thk+kJKU#Y4Ic~2Q$F%!CKqVS4aZ0hAdyuAOIE>zZ7 zq;>pZQUY!HP$h+2D4RF*WJ5;DOp__3k~&i^HK=4JukWNm{wgV(KoOUlvSqc)2GAJ+twD&sn6`%G3@IZ7mO9;#zYESVV;99yZfDQm$DS<5?EIXEQapnd(03CgY% z^8n&7<7{+fGBBnK@BD`|&B-dobkdv!la_*bizf#KWmMW!!K!0y!bsp+Fg2dEuT7?* zEO=8dCSE-GQ7~yT1wjg|7rW;ch&p9>NTr@aIXQb2+LihiS+E+o@-sH| zT0EJf9(zviSgJAqYK=^EbR7~4+kEfi?NNAVn@^Tj*rC*?x!bB%?jbf#SbZ?lt^@W3 z?gu^$ybK%w4ATsTLBK3v9&j{pC~zroIPiVoNZ={pBS3GIIR=;x91G-1>`~wf;6&gd z;AG%+;Nv0aBy}*ZPXnP7a0YN5a29Y6&<4B(d64lD2kFa>xL*c*5XI1Bg_@HODiz=OcEK>9$= z0VDklhF^j0ffs<|fR}(PfR}+E0 z(Z;=T>rdbw@rO-z0ayzd0)JN^uoW-}I06^~Tm-ZL-vx#NPXHstVPsLu8|s`0QY0|R zELQ*G6V)NCYh;d_HOnU^C%QvSPFQER@b+HTrXf)sqdLZB8>6y4qrKZig*OZdX%+61 zWeoReQY$(lrA~t=gb_a37XP-`PRswl^nT3P{n1^r6Aea@$zO`0jK%5*(%YFC?3rb6K^P=+NZK)>Ab(!Py=J2|7t;%3dESxqt%HTS1 z(1NTSWiXuUdQkOEEThv;=<`NHSAAh@gT4m1MJgMuY6$MT6Y*Bepwp5xkthwX3dD3Cdl!8>WDle*_ zY0Ti5Q8Z_YTIWUSeH<}$%%-T7jvBhqlsSVUuEmUET73(chFOtUT$Ga+6;tR)EzKDn ziCu}?r8%SPwmD2nk(XA`oS}#dn%d?#L`ZXn8DT)FqA7C*ER#tTT5v2cp5_cvwssWC z6v~`IJX=LxJS5Om*JB2oVWv?0r7j{w891ub9EmfFm{uQzVit!$X_yuaSIMz1QnD~t znlf=vrCg?s8EgX&i)rKV2JK!|beui0D@~a=C=Rt_eKN<}QfcB)parF9rm40$`j*mb zG;v&OOPVrqSWU25j8ZG8tid)D3ZSUL4Y`jgyrUbd60_!{DH8`=Zz#=y(nJ;IlwJ!p zVPYc-`3zP1NN(gAIi+Ki7ht zG?r^)mf#T)Gsi=~IYB|DAXRW)u~L$vRd-6OHwm7vf{7!gfL2FZGzb*R3>w&o*Eb+f zMQ?4&FzE$ljs~LeU72D3k5@!x_n-zP7$%{^MHQJvCU8@DUUKNX8Qi|~# z15wogVlPy&x#{oG>zkxR~hV!`i83fMGG>IyJ z1A&~CX%cZ(rb%=SNRx<@adVhHw}C@|I&clph-vgV&;u9()5jaw1Ly}_1mp}&lgI?5 zNn{3&_JneU7!e2GTen4W#iv8b}j?w2vMG(mt93q*#R^~wa22pO za5Zoi@I~Njz%{^wz_q}uz;$M{KW(q|AhZX*2Am7r2wVYt12|$tTzX*Fur3jO1N!?8 z@EPbm$ZN1?&)__d9wA{5Xt32H8ifUSb2IgDt8T637^B*`+s!rK)*->I!@Zl<3iGK? zLyhK|UrV!pecvdHZ(AcQw%BYJi!E=XkEclg)2D$Lbrk-k7RtZW!r@;E4JONQ-;`kK zRxz`zMSeyGhH@_L7Ej)gQQU&`+_87`P&dbFN;!0L#|HQ1>MIAUBrfAO&|QONUvMQC zdu4EJZ~@1q@|_78_O&WKQ1n)fObqJBwAtS9FZ`RtHmCo9o+oEwGX0;YRc)>KE;p~ z;uSdK(Jv(#45L&jnT5R$^xxErG)UDnrpp1ihj^FJmU1=eHa%3ipB%!?v9C8B3sBN? z5|^7zaLT*ZcgtkX>cuT6b}oENW>V~T^n@x=kA$d6`|Gr5B->1S3b@$zZhLoP(*8Oz zeJKAXEvihWsR>H67EcZa({u-H$WZCg{+oJXrfI;!95Nv1%d>-IjoBm=_69T*YdkXX z-xs_-&MXV2pm{O{R|-ycRY{9EXYi8#AxH7c?Od~c{)%hKG`MDr5-A0hVLT=^=H^PP zNrI?HY;g;+WpnVf1`WXRS`8Se0qG{j`47Jsh9;94%H_y#Q!gem#a8O{t}#ox=lGXWRbwa3A;C?(%KIPa&*od$ z3+*0OE_(t!QLMCgTUOYHJ}6b893B#^hmnKgivuvnyt!5gv8ORkj`C{TdTMQ(i&Y8GLbXhLi8HS;orq$ zew1HL@ocUcdc*z5y44iXH6907ityjXbJV)bUJ-{pDXTJ8wz>(Uk9!OZUpWJ(sOkg_!f|c>DxdWrdxqDOy2?0F#Q*hhUt4i8m5In z8m1orX_)Q;(lDia3x?_ahP}9;VM@Oi4bx&E4O3dkG)(EwItrv8D-eb!Eo1uVz7_ge zck4*Hp;9CH{1mF1JcHw3#5(v22g`J zatP=Kq$%nlY-R5C;%RLLf<$XG2pH$198a`1Ex4z(877L#+>>pzBjZ4#9ZAEMc4PvO zb|ej4+L0+h+K~-`v?J4jv?ChuU7C?JbZJJ?(4`qkLziYG4PBa% zuybwFj%*JC?MNEBv?DtKX-Cq~r5#B_mv$r#UD}a7fV3lf0cl6l(4`&u5Ri5x4PBa% zG<0c3($J+DNkf-rBn@4fk;BXllpQ$&1lo}_bZJM92GWkCp-Ve*oY;8Iy`Gt-;#81m zD$$-EAg3@)D zDosJU?zk?urP_{_R$wj+rX#2*r>Lx;l=PUvFa;NGxt@0m`sd8J2R_f;urR-FfsY{8wp1jn1^vsb^0s-Fg2uF?e+x z%CTp9GQ(5{ot*AGTRxWRQ;W(>;99>{usCykK|U706}CB<<1smzidH$&>N;I}=1II>5X+=>E ztOMvwQR|{IXKF~H0UEbj>g5@+vchO0>8G$EaT#k|3Q;<}9kDEfq3Ai}DzZfu9K1WEHJSg#Si@ z;I9&$uQkhoPK+ujg>I!e{8Kh&s)+wdhVTU~R??DvIUe3&_!~=eOn9|cn(K7)KwWcc z%Fkr#DRrw#(zaDGg?QVEx=Dvzs?F|8cl!M>jM!-o5f-ho%_+#2UZ%AWVVG@B(JD0G z2BkH5#k309CG(1r7EUZ4Dd={xDO_kY3bEqmW3&g{adcGEe35mNUO+x`ScSYULaV`R zHph01Rw13Z=pj`x(MmX~)2>LPkZI{QnBfS$kvn1nvS5kP<7yFl7;?l1*IfP7;c26T8QuhLyv2Ly+Ek~U&I?r9@7 z0MbU}>qOd!+`i^;SJr`Hn1=gKzzpC-U}NBFU{m1V?#lla?#dwl94**CNBuMTchHo@ zYVq!%{=s6!1&r2U-$rJOwHd(8Dm&V?K;&85e9hcY5 zYI|H1jYxU|^D`FqdUPzkV3>{~xq->CvZT8boe4*ET5x1fq|L!HS8W61qW6v->Eh5gtSIvJ+FF+W4aqqor+4;~Jk_jF!jE0qmPY`7qU99x|n4oF!@wyK?S%+gN+ z-zk)8$0BHC{1GhpZ}+Zob^Hc$FtTiyPqhE${D*jcyw<@IEuUa~C>(nRY{l+`)vG z?P|-JN=;VxVWB_<6XZrgEI<}d-ZDAE6cnq3O1E8c3;*HR&W62uizmA(96kUsanUz2 zv9sKZW%suPUBSjM#WIn9PN$!uleXTTmcA59!n-Y;KQKUp{IMyNeABhOcrv!V;bpXg zUvf;^`n~KWj;(PCZOgDdDy&j($i{JX^enGd2t9L)Cr4nqWjt3O%<{daz0B`Ge{2t9 zhoJwMbHA&Xhr)J5RBscCrSp#Qs(X%Pyu-|pQp_D&ChG{B!)2Q(eX58Tr94sG+a=#H z*ybJR&)2n%8mrxO2l~54RGsI)8}D=_8Kg6i>``ibKix}4Pg zlXbv7z*m7ZOf~@d{`5`Y5a3%tzCYap8*24Fv?*jS$v=GQGWgh_70e1oSdteax z2p5+@C<5|@>RwOX&S~8_TS~91Bdw^$v=YYQe1AWlWKy0BmoCgj8mID_6 zF9Np#D}cv=l|XEpH~a=n0R9f_0lWsB4!i+e2fPWi?Z?G!TwDg~z%V$%G}wMwKsO-2 zAoTz)1$qJB2l@a{0sVm9aEJu}(}A^t{eULmTwpNp4WJo#2p9^y4h#p@fgjAuopGIT z5e33TU<`0IFc!E6SPys(7!M4DBdh_iIWQ481egq5089mL1Ev9w12cg5=*-X;Y^BoDOUOTnB6!QU^+ai`F1q24({J;3)n71?qzFbdB83Ffy9=HEv=oc4eCZW z35sg(7Jk1etfeVFGt^&hRs+qaO;pFoPBbkNS}}5B%jPK$)v9uXML6AH#-;bz6w(i7 zi{hSM`oT)CVd2$>d$B6@61nY1tv9$y6cR@Lz`9%lkxp80B;`(rSZM_|%wX3BJt##P z&XtpLe+5Nx!-d?-hK*?Sw$bkpDIHxlRR}#@dBw`6D4|oXtiZmJ<4%c5Q*m_Nu~*Hs z*Azx(=+xr!oPM`TeXGg2zN*oIrTkaY9-;qArnE_y9Ssc-im_2{s=k5#6*wMXXQ+au zOH0zgU^co9$n-d&zF3~p&M1)e())043lG{E#8M284w|wvP&K*d1v0=Q(qy)&l_IjL zT9_g&64QI+q$xXtjg%<`ZA&d$MLR>T6{RnU#i3w~XGHFKaTI(7QzxlxVD53jmbpPa zhnlcLMcKCTbYH5dckEmF6gV=QVoPMMBXyf9DL84$9)W9PE7R+J$PgH`K`c@`uxg$q(3Cx*8VXLWLR(2uYuY2MM8RSki{ya` zN*W||@UReig-Ua2kT9Zarm!=lWFTlf!L~>2#=`E-6y<$Zxyk&b;Q|>!enmNI8!7D( zrm2c$qmy#4@`A8k^g+szO@qYQk1=e64P|GbCQ<0^vfCBp(;lhHOm2KD$p62IXQPn+ z(+q7*^Tyjs(AG^07FRD=(UwQia6zLfRjts`pw%|k;R$J1bbW%okqg^g^7-Ap+QzPJ zn3NLG2RWb9K-mtYf$|=39gy?-ejw*{8YrCCX`pag&jNBe{5uYl4(IfM%uC|?62f{sg+yQ*sLzeA{*hNLPvh!#v-* z8G&@ExC8n2%@fGCZ{9$9R(yfn3-1r)2C!Pd6~I6sH-ZHLe+GsC{b6TVfZPxk2IPjY z2;e*#D3Q3}j<9GTT`YBgd`DLo7zcwR4#;cz!V@igf#?mLs&YH z8^Rg^`690gkT3G?1M)>)b0A;j-4C?!Oi@g3cQ1~WqAP9Vu zHyB74%Mc*nESO4@vl*|k+;p?9qx!z1@%N46!!QpE&zTa1WIf>BEt;~XhG7=lv9=47UTzB zu#<^y6~|YEV6f7r$1p3pgB*Xz2ZF|s;6mFj4G?-7=(Sor`2Y$BDahe-QS0*j3{K_T zFvE4H!?!E{P;&v&Dnc3Of4sX>u;}bjwbIfLW&kRUQ z?Es{naM{m-nJ#6xGxqMPf}J$=R>$!Hoc()Iiq+9(a8k*_?le?lWq}Uba=R4N3cVcL z?-uq#!9i?cRpT;jB*Zs_)js7@G)LNeFsruLV3$j5tj)yTNso@rg;2@=qho`DVolCF zUO^Wym$L}f;*RJ^-0BpZrWJwMflXiqAyoN|sO*xI6Y$k9h+zJb4r99E6vo^holWa@f=>cWekOBnJ~pR=Hy#{w0pI+>Era7n%-I zwdGdvtD?F_bO@XgDbi{_C6^5U8}V%RZb#eE$>Dz^!~e_tF#i3&E_l7E65o#TTT;4G zi(7DWEhWf%=a@nT-fA*DfQZV!s0P>S?XGCsO-p2d=eVDOKaPskyO^Tcw@`g`(r25S zjk9Y4Mlyb;NE48=EKR^Mz;!@=rnn#YDDX0H0+1%)Bp^+|$v~Qbj{|7}P6N^eoB^Z> zI1@+{a5j)8pbf~+9y!U*rH|@qT+jr}2lA!avp~KyTLh$UYAKMW-wGfkT1*L0Mg{!4CKqQZ9rOh?*i#^;@+E~npsbUFPFq|50V&_2u=e z6ZAQG0qJw%`$_to_!$LVP60r=oN5E2l&{6?8d;aeI|WQe4k056W?dj=fwA!bUE?!3%Z>6J~Ira2j6GX z<;3@ywD9;ob1ATyxek;77cD?I1#AhVGoRbi(t(-kd&?g2*m6~;Nnlh&YJ`8AP~W&1 zvwxObuumgPkYC5pM%LiCR8wdxldoT!pjr*0%zik1{90OSWz}zU?_XlegjQ94t01S} z>aV`Ml$IaeR$QXP#W0E=8b+D&rmC%4MKp=%nZj`mA7|q8E$rNoYgX>{l5_+akRUf` zxzdyoNN*Jurp0+v3tDH6q7jJgO47^YSQXO{2Df3N#Dbr(!0G{eAgdhg5;%FOL_tF;qk!h8+{P>18}X+ZAzsTtO!35bKOtC zFFDoMn9_-1BQv@(4AoXGI29K2168AY94AB*j&#)6eIi zZI@OEy*Thp!Bqlx$T5(DK#@)|`zDNQvE*+9To6;?;Xy$>2Fv{D=Wx=LVF=0FiXkA> zjvFw*A$(5yHMMC6PLrwld=GoIGRMahN@2eiXT5R`JH6DI|1yFW+PEqi|}B{ZwaNS*D|qcikQJwj>d*AiS5ouOsh~}sY58* zHiy2uAX8c;Tt;v>VQS!q_xS!NR$g16jGUjV2jyO;j3vKvov`(16m%h%T==NGDT#XSO@f1s78u6q+Avtw8Of1|XzyC0v?LUq9KNQdQ|Ewne zC4*SSOpp>B#9<8m3V-NeB{un8t&5ve^=&yOR1H4sDqhdzk3)aQ(${OI!wjUURKyz^_>V=_~d?GyxcU_?|xgQ2Y0)`fvL^LM90MeMG zNwf|~lW0GXCedXeO(GhTG>K?T(j=lWNsEZaBrPHuleCCvOwuBvF-ePv#w0DGfBT{6 zL>P}Wef9up^3Z=sONT}zEu8=Ejw{-ZG*rC3&=+W_(0HV!LgVrO%g(F6KNS66`Jrfh z8?9~|cUqZ#t-^iVxP|&y8k+sG+=G1@oB7dzB`%3}X8lx?zh5g;Ktzh!hbQdJfNW)D z2D=)Y_)s9RWrNl(mS&ZYasH)iemMPc2H>oPvv%R7Yk?bA%(uK`!Wo1!xX|)a$gd*` z=k|#3)cy|tmcV~s0{n^X?03zNX?ZroTnzuZj-SSs2i|*QDVSmCfgd+?9CPg#j%OkF zJaePHYA~uP&mLRS#9_@GoQUCAGxQocY{G;o@}Z}U4%&m`Mvk1Q;)jqX0*vMu%~qId zG}~f)8{LHXGj3+d0 z4{F+UkxVRLh8UV- zZe{$XnJCCHH_#>(7U$fRai6Y#opDAtbBZ|B27(F9CF{q!xUx>cq!-@kX~xf@KOt5< z2>!jrkq5#5io#nD-c`)P{(oIe&xfjsDQ5u7>if{$Weq7DJj6Us(`JeTLs3?;@E(S; z3JWuanQxi3S)$=|b8N;egVC;taK1w$W*Hoc31^2P>@(Nr@?OlHZa%7Y6MbeNv)9F( z8Rj}#Xkoz&b2r~$n_b$Dr%0=9xPgcg_%9=0TjM!pG*B=W1Sa4BjYej=1rR zxwn>G*e%~&nWhaFSv$;0#+?O)<93)2_-Rc<^L^$d?YY9?`^>dNv$Bw*Po#H7dP;gq z<8+=Wnr|FlUupg_^pjzL3~MpWNYR3bOrX_{6O+=+ap8fW@PP4S@Ck5t<|cB#GskMT z#M~?9LE_MNW`B=*54IndD1P|PyiEH z_w&Wv9J99w`N3?~7Kx-EARLQ$@CWn##-?#%-9B?$ahNv);zV|Hb8tWh@Xnui!?qavl|NUfnj4EM|MbB2(~mqaO(FO*D-2jWEfb#nx=Y*T9P4p>}j zPBD&(6MKx75OJu~9IlNLr_Y;XgwH7yke|8FrUpPZ{=N2o4@1N)8^3m#t##9WNH`H(Qy*Euc90r};knO{yy+-lF5@W|M=P z>7Rp}CGld(=jJHJ-txIQSA22?>^%5|VrT3Z=B_EnWZ~b*@VE@Wm*Ec#!A>brvU9@D z&X4iJ=YV1->$bTU^9DwWZMV%q)!F&%fRmkT2f$8PeNpS6Vkh+=*lBkb?0kLDY=OAm zIcp9Pw-1_IqztK#BDG;M94f=%G91AWER7~gmPXcB5*k%sEDN((RW1)Ih+Nsw5?r01 zoUfexO#KS{yn^&bixki1ugqP=o^$3r(YM50iqE!gfd2^&agJ99!XvuWF@eu{*?~>E1U(KHWoU0z6SdS_%)v2j5se$l2Y>sB) z|as05k7VB3IVck4zzCZb~24Fy&BE!itd|ZZ88G^wlh?2o+qVl3S-Z;I1 zc*WhqE`m&YD~J;59+tZrufq|iu%;b>#{8>+SaL-1v-Jr0`RpS28F*9)Yur(DZpuwr z@@*O3lHna0>I}h)8I`+3~J`#o=4=d^Syz<8zw?o~ zPL0EKgG4f#D8mF9Cdn|FAs9^~N=8!>DYf`05O~}(N@FCa-bSGga;QG-@#pIND~V#r zZy2PijnXmV;BV&CNM-(DN5$h)rc4+=ap)r>)8*7u!`R)KV=~#vkt3uR%I{jot>X#2 zL&2p_n0q7ap)~l^^Tvpch>cUU{;m-#epLKw0g2)tSIz0hUWsblKY117{`5pO?hi-J z?BhO2&T)TuBFFtuvD42SAh!H&u4hyfi#Y$gxifDTe+=#E@rQZ5@kIy;QveG%{G+*Z z$_Esmwo8UPW%!{CKVpdb>?KO^?v~<>GZrO^yiYN}AqP2U{3PT5EWahA8z2QI>kh zUh3f_k^6<>TTVt-W&A&6_`3|R$?!Tu%SB6hAL=MjoWe!iN9KhczI(lj^v0Im%1LT}#XME*Si>G+tE3=Y&_{;843R-CqRhZgWP4iTjs7Vj#)w%~rVo)bo6EJD*c9^(?dl!iX0aGMrl@%g zjB_4K9wkc|EyG7-I7Wv5V2E?6J^H#c)3SRKkT#KYp~nz-~7vyYeqjfYay#D@xS z;!CcO#Z}7ivJ9`t@Hd8F;2Kdfa8*^{_Y~3XsL~ZVPllx;f)*jea2Z-<7|9SB)FH|Y zqEeN%MW?EH5-d39Np%BRt6@dXkg9uff;2vyD(X~VzDBgH3h4NBS;iAGoFT)RGMvQ_ zrOqYFQfJ#sos%j`D-_>yN_|Dfe^rL-W%!y5UuTFM-XzK#HrR96m@21K@=&`HBXrfA zYNu2&KiaoS@c;C+n2kRn1I(t3wx`nEny6Qr@r$($MfMfN5+~HmEKWLit$W(zg;0vt zL54Xp>?p%d48dksqGYqP$PTo`M|S~%M@TAj!FPP%TSy)@L3r?C&NVyk-<`;%;0%&jK#BYahjS! zk%MyzRX3@co$nqYP;)!qxb_rtKF4hId77F?5m`>8=VVF0%J94l%Vl_hA1q~5TsezQl4VSm;bStKBE!cSqSP5gS?W}KsngQcEQ%cDEc&91zea{H z$?#vZE0$}n4uhUr-NkH6!(9*Kpl#C zD@7YF!(lQUA;Xaj!R8pEWOGzwsp8R(fWo7u2^A$dC)CDbYn)}FhaR-=K%z+d-rV}` zsdRrlrc(ZQLOfiSsZDra(^Sf7j!fC)lw_YuZ`9WAS*EUJ1WctXTq8b>O+;i`>)5z( zRDH`3H*IcVaiYb`7g*BRQpEcu%@lTTsjzmYWg6-8+gi$uzzI2up4QnSn6CIiO9APR zJfzU;VTBt9DC{^`Vc8Ic^M@;JFiK(ZXoZiARp>Qd;l_!UB2VT!O_kSRrsAVuj(VQ? zq{7mtEu~(FSM;2vzyp}KO!3)qg-YkOT4C`^3g;In?D(qv`9{mrMx(nX7QJa{s6AD< z>rIQFhJ1=Q+2e1q$KP&`zeDk1`#_Z+^P$3`-3s&eD%3w#Sn!#p0r@IEU}@$K)Jqhf z1>Yz>=O4G{f5M*sDTT#n6wWWRKQFiQdGMm-^X5gxr&onN{uO)tKkV`URD2fQmVCUI z7b=@cH!3XfP?+hhu+%qHvgs8VD%s2o36(zES+wYT%t(au+Ag|@B=W4bFoJN8z5 z+WILzV+Jcey@uNJA7Rgbw8D<#6nagxKc8&pv+GpJ=gg^!&-v5r@n_oO+wAe5Qha9S z+xc2x=j%B;UyBtMEmfHJg5q=jYQ<;K8pUVcdc|kQ*X{YgY0rPN!ui`2c6`_V{Czv0 zi*`yrckNVs7VomhFS5t~*dD)F@oD?Q&exZAzDn$TeXUSGs<7ag;jp}>svMNVhRoM5s!q8ix^S$xBz&%XrS*Dl5QXhpj|1haPnSo(C<7I}2 zNqu`HI;_AC_g+b1B_82(Iqu=`a@P%w;4>b97fRe1Gq6vdg1vLJX^@; zqIQ$8P-N4fNm!nnGn%K0#yvF~WVC{2GFoA?urv;8W%nztHns`dha$mRQSmA3cZ#p+_+p}$CY6fp3eLNReqg(@eLVHaKA=zzeaJ> zy&!Cw713_EroDpydc>RyRTRORC5p(K3*T%E#+3E=mzC9HhR4OMEV> z3vq*FsTFr*wqANzUopc9c|%KUna~8uh7J$*DQfn|3qEBujF3wL?{h*=E(zeVM@a?>b}=4fkyvC z(W8T9j*YRvuVErSK3IBA*O}T6%|SX3S2|x;kdD=y-144&UBwTu)A7T))#$bC^rnc9 zH}jC9iqAb;%qI$a#9bbUrN3JK(ExD`crFjus*r#!Tk@!?%GnK;zzD|5Kr&{@_TpYd z9;jmAMvFy0r-t$QNu18yMV8~aBR$)i9PmK;iH_%)F)BT)c*mLlI>&QIdZx2KX8J>T zZWr}uqRs8_z{2tQ;n&&GA6cRrFmsK<&^HxUyr-~upTdF?h0{(b?0#NhgFjTmcfVQH z@Bx3(@SwXiJY4ZLHat_;)bOO&)bOO&)bOO&)bOO&*zjQJo`z>+zH?`j@o+Re=&CBR z;Tg*zc-MwUj0KKh&t=2&c})$E=d$5l)00a_!{fPZcpyamSs@zU z+Xrpl(KAAJ_LyLW*J2cwq$u3jLZPjL!oCkGOdF!m>(L0=+0!12aCG)sE`myQVF7fP zHm~&;ZO+s+wK?fEwK?fEwK?fEwK?fEwmBHOr_C9;rZxxNrOg?urZz{8vd#ItrZ&fO z+2*e4UE3VbWt;PPO>K_nvdvx7yS6!=%QgqH%~fY_I3+@M_6D<61M1HzJhn>V)>jqI z-=;9{BZbYrP+0qz!m=}};cK6-YWUhN(sFHh&|Mn7_FptSQ`gk+q}SB&q}SB&q}SB& zq}SN+VCbHPXXKh19(0$6XRMkU9y!W}=kuBx9?xaNyQX(-cs!R4&*wEYJf6#jcTMlw z@OUm89w;0B&aV;Pw%$pa;X1~y1Vfl11n2W{E=>k(YQYbKWx@^ScqfY z8HQ;|h8^GG)3_j*Ww>vP`z61DA^xA~xF3i6(E*y_6EB#WxL<|)dYH3kJ*Dnv;47-j zK85ZVBKkMlVN)2z z;6JSq%O>6@y2MzAc-{up94{s|W!7=xL=3X#cAGIm)R7E)TnE{_4$4Qu77NPj;;mRv zZh#Uf9;u7sZ^Vlgb*($Sx$ERroT5#fHB5}JXZ1IZs4rTzK#m`Rd{i`xL;4TJ@HlIk z7APKww-y@5CyLYI*ss(-&>F^@gBz{e#aFc>LyU!qqLs-SZQPV72AZt9J%3BYK5@JU z4zkwuD#Nv|r-`8^YrGgAWL;xymn{5)5&OPmvAGRIF%j?f@{`56U{q^jvIq$QZ4YP- zvA=FCXnT^yEz)M_(*;dX$>Kc#~X?@VTcw9AM|r+qF*?oMW%^);h^mY zty#Lria>F)#qqz;Kcl5-`_sg@2xLQV@EK8-j%=o+i{4fwsRQ5Qk_^@MbuwhzdmaQ0 z4!Y}+Xy}9DOe3hsba=v+Hj-^`oZd+IMwDCJ8>+dO&=lp> zX)GJxa|%d{8jIC+!1k2J;*&aL8?;l6#oSoX_BR%rV?m3AgQ;;7F}g0R*F)Pe7tDINH-nbHAE zb9|`STuB+?7s1{NOw1>r8ZBXP3__e4vTPPKHp@mX`GobanU#Y;E7D@%y-j6QZ z@?I5Kd%seFjxF)!YfGg99a}0DxCGk3R!RjfwUjF0xf-8sc(fMj4N=9_t&|RAw#F~N zwN^Ti*;?s9IcWXc+^YlSt)&iliZ=MoluU6h9r=hhN(tI!;umHzl@heeR7y|*+Tbjy z1jdR?IRbdRl!gC^LF9Etd%l#Vl%N76uWY3RyuL>XJlkdCzhuo;LqNN1r3C`Ct=UQo zM7Gj`a?sq`DlI6_R$7qR7C%qYR%tv7J(b zhuSGMcsIvI4RGUBgWEYu4KC*>HE7WRznRiOsX;2PtE<7Y9o0}UtD_nUc67v?(NXEa zj*dzXJUd}n@1*p=vy;+;y`ZIamUN(+WPptPV?SA5vr^CwZ-PAm=8?Cza-SNXW-IW^f`d&2{ z1?rscN)1MJS8A{mw6D7>HQ3o*sX?tC_(`1}N)2lDP--v?v>82=8Vu{9)Zj2^{+OR# z)Zoh=N)6&cZrxLVr2t<+#(Z+uJNTd6@0Tvu0v z&3%*_6!cMQ@LeB#*4;;`!FPS68h9i=1olM9Sag@fhm;ol3{tPY_l^cXKcq&3=lkL( zkoqb$c)qVvgC_m(Qv?0fXwame8Vyc@_Q1nR4^H+|dhpD{_#L2!l^#6vu+oE!{`kJD z|Gj#U(O>Dok9gj7fYO5>`zt+ob^tyeAE5N$*#SxqnhwPG`va98G##k);52AA1}Z%` zJy7XE(?JG9?jWTHyuMcto(1)lK}rvv9i;T&N6>yBr1ap&K}ruY1{(~W2P-|u7_9W* z8PL`YR(kNvV5J9FK}&;O=As9e2P-}31oDtPr3anzlpd_fQ+n{{P^AYEvtb$F#;FJG zhS}%(VNwso_j9ZXUXzF2r2yKC;(*N>V|;#?Z2y2_L^z4lZ@9rwM{J#It!FGACXUXv z?g&T&sRPc*I2Q=3>n@)^Ku^U!lOCdExwW3x72M(z1(Dst+Ea9S z!8*ia0v^s6TVFsuCWs$iK$1hCcwyO)C<;~}$wA!e`oC0?h?Ul*T1WBLO4RoO#Cd0` z7`@7x6u@g;|ITb$NS0Q+KUd<0s%Sa$_HiC^5L zJa+;E#DO)|7;UyF$CK0nv(%Fnz@P2cbZQ&iYzScU8GeIPCK0}HtJYT>c^U1NJR3hk zA(pI#aFWHYwV-?rN~V}rU`?*gOI<&0sFdYh74PgZo5g1Z))hW8=3otlOec!r>%iFz z@!UEj{TP&V(eV`|<)yAS(%Q=3?936dHzLep)hlSnF>^6<%@yhEq1|J|fb~dM`$_zy zmscSKr&+v@F@TNQSVV8M&N6nHr&?(HMr)YXMI6|O7S5lC|3zV*Sn!55 zsWz{5JvH3L&&VOkEAbgd>#9bBQ*UB4_=lwQH4GrFvDm!{ zg{9=X6qX{!zGW@K=QPQitqqJ5^Qi|(V$NpkhuSL9@@;FG&x`rYv<145%wq5sWDzr8 zWzqi!tG~Fj1sWeC{I-JW;q&2Fo-g)qMK>HiUo83_((zw_Z;8d$ZIF(?_+cAjZ33le zfmrOzV$pV}<>dup^LFG=23oFo5$5FBq_BAOI}E6=6) z@jp>fh-$iR5unTz$KD5JgmC)+HQfWsw@byI50GxpQgPt}EM3BvK^2#A{*12m zjMmQ32!A`YDTeT6qE(r7yU)a0hGvf=&hui)F68vM*tH9J9|0vxO#2Wr;H9pg)2>5- zZ&7`*@mhy29RJXoA7ERKA78|2egQufD8_z-E;v&>_Yr23383WT{0ZlIA$sh_Y%)Pi z-VJrVu^MaBe?ncqiiQZf6+vBpUo8d}S$BGbyaY=^Soc^Pcm?88*T<{D=*2zO5uO<@ zW2yeKh}>h16m|AOaH$}OEO#Zjr}kPWHt1KNhsQXJeT~;L;-NfDiq?_}(b&ek$=*@$Q$_`o`k*;>4HM9X>v< zVF<<9NxbwGlJi#A-<8QfQOVDKg>mrt*YVp>8}N2fJY9lu@Okl8iM7zT1eA>%u_W0j z#vQWO58%D7UzVv2;&d%=z2gv4o8G{DinE7!@Gw%F#LUA;z4A?rtDE3V*(6$hjnury ze+J~v9@a{w&i@*z!{36bi8DgfJA%~V;(;Tmciv{GCxYYGiVsBbxPmy#S(`qZR>o^=j?u9N>C2st;qLn)p z;)hiW#gOkYtaK93eUE;94x~Qsi$fvk!-a-q!-LqB;-j@OoGTP3wpq9PPH{6dTkt-F z@II}sByE8haKc&`Q2zt`q5;nEo%oRf5%VKVz51fvkLa9_gVJ^v-WB6~W0&wgiO%`B zNIr?OJ_YIfUCKuHHTb|q6m4i=sBidmmk24vIOO*sesolnltRJ$#LZGnwhx11!?_#h z8Juh$zV3ANzd}PhaC{ydC&N>B<`nG7MDf;X*prbTF?M&3kC`IyC-laLC8a+p@#5r9 z)-`xTI`a%hmC53zGngLUmd_{P7BSF^enu~P=OZ!h7we8%@8Q`~yHO#W=XQ(qv(~!C z_dXK6&vNuE!dpdAy9``=ik4+CBnN@A5NBc0s&nwNJ&a3^@zR8R;+%D<@l=uUKM#8* zeV=Ni@6W@Y!A)fC$j^*V?i1s#L_`~>>{H9LkM?2hxKFGrM^^9Py1GT28czUiOZFk58n7p zL|%a;Y8Nxju`9^EcCkna0}BU0YA%X?1L;7qxbT~Gr|+}-@v9s-Z|oP_u0oE_>=(Df z5jE~}IOD{U-@$F1*!4T~hQ~sl^~Q5jsi52Sv(F zFqr=(ej)_twJ*ixn_%#%FGZ_ZM6LT3{FS2Q78tB6Zr%ce&w}#DSK|HKVDQ`kcSTBN&0g1xWBtOP`@cZBk* z?H-w|)e|kxf z#51y<(eoP-nSz)bK`Q!2Z1Y0ujo*k9UMM5*TlhAF@CG}9---*VAbkl^OJVZ?>C11$ zW}nENK8ugRPlMASCio)5g~!B)X~;17I7Wu!VtP7?P8Ku$B6oQ{1=7~zqLqJSedC zut$hTZ4Ymm!&MHijXh_;=Uo1Sv&U-X!dg4B*x2fX>ab}iREM2@0w&K1)nUisx>|=d z{`{j@bO9#eu^(M}tm&lev7Y9WaLk?*(}PiW^GPx55_;7%(0&$qA!yfW;<*s$Nm?m> zdr)*VL*!|tqU&Yo?0JwHoWknzlnAWEK=BLi@9wi6Pa?u<5gLkgPo9!p*7F?GoL&`% zCOIdP!=N;;oyM=_{UpwTWPI(k>axRr!W#*kU;m`K?BJhdm-W02TF4pkegxv){z-iJ zJJ=m@2Ju9J6@`pABm1mJ?9cemV#NGNkYaxpi>`s+Qy|s-1y1B&M33v3Ax?;wqENG0 zAiW^^MkD5|U&O#0n6u6>)>)Ai0~XJSu`ytA-B~Qk%0xmP6ua)M>a=-fSV-eMRHi!Z zfHK)>J#T^*bWU84MckWZ;?^y&IP4tWT8YxSC}r3=*=s$b&eOgqt_M=od2#R#SUdqz z^snd|zlx$i;>}gQCmy5ae!QpA~R()`|wj4gY3u1Hw zl)AQD_1nA)@NVHed_ncw0T*Py^}GdI$VJgS5pi!_5Ut$NsYYIee?i0~p^%XmWykfX zdx_{+xgf0;$5Ie;ZiVc(p65a8ds*yB z1&ilJc`8`ka2dr`iZ>df*bSFu$Mt)p68|d|&hIJ>VsG!rSmW?Y)pgyk;Fl4v$gXR2 zzanP&Meg(*0NR2ps_*u_BKxk#E1-QKIyOSluUwH`SGy<%G>-h2?75YAI_S51doJn! z<30D2-<>_zh#NWAn*UH;*ZU9Eb$kASpCA20b=@3XSMRzXT~l3m+clT2`|CB;buV3m zRd-#iYYur{x+c4>XOHW6-FICqXaQP}>uSFBzJZD0hM0IiXx=we@7)KQ;ZL~t{#3np zH}3E5y`KFMVbY%>s}&OV|5J6}y-ajdB(w%?@1JtY^_+bZ|AX^Q5!eQ_**8@OZg~sC zJI=RmsSe!img>OYf_CwiIF*UG-`OE?UP%zUO%q)N)PK=@^;h zhHG*Ami0Z)miXz6H;lr&6NtDL0re2`4-kjDiOVG7T6}p28NcVI8Lr{1k4?tQbY%RF znJB2VMQ##^H$fcZ zEz)~{h-(qxiHtw=)(qIBX=v!9iNl`A_c6}qZerVKuh-( z=Sal0xR?r}%@-W_ibD^Ah->k-Pvi%_S$>+~X`I{r#Gc-fb=_L|Y2u@_$oIT{1o0|v zW~8G*a3f~>MSkGb#9uQE^#}LPLR{R4+_IYTQq1nr|HRWNVf$he-sM?XAx?RG>qgNuL+)m?S zkjeUyS5ly6$PCoPE9KT$uV~y<>-cWdO{nn&Yn0nqT)f@J`i``--CoDtM?nzrnZ^dPZqFo?Jo&xau9#~`K!i`97`;#%ZhhE~oF*6{yYXog>d zHDRg*2QzSUPyaWEX!x%d#OR?&ifa*d1%=E4@z)U1V;G3I7O7z{<#)xWYXbW1}Tbjzg&@xnX zX=n&qqMCj!K`r4H4Mha~34v3zMhJz2m6S>Z9q)a#G&fv0@7y1kH(U>bAXopLoo^rG zhuHFf^rRSv<@SSvTb)slymllkcYY=>Jz7P*^00)2Wv|J>dHz1{idFUUF>Y~i7B~(v z-sjV5$S36$#$lOnb8rz^^~u315|&Je$+1DLP6ws5hJ;{}zNdG=wgRIetxiI6y@`Zv1sceSuvV$CTY)+|rUD1pa#(hAjKj79ZRB!9vUwzI zD{vLz4WcqvK*F{H#i&*{tQUSYF%`%GrULyjE=5d+i;TlI16#;iO!`Vl*k)id&MU;F z)se8xz!!2Vp;abfGtgwiWZ(#So^Uh3gUvu48%Vkts9{Y8#*6}elxJc T$Q$BM209!6nSt)+eP#LwZyf#t delta 27215 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 Date: Sat, 10 Dec 2022 22:41:17 +0100 Subject: [PATCH 5/8] Update README.md --- README.md | 169 ------------------------------------------------------ 1 file changed, 169 deletions(-) diff --git a/README.md b/README.md index a4322ad..8b13789 100644 --- a/README.md +++ b/README.md @@ -1,170 +1 @@ -# NSPanel Custom with HA Blueprint - - -[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml) - -This project allows you to configure your complete NSPanel via a Blueprint with UI. - -### *That means you don't have to customize any code or change any lines in the code.* - -So you have a nice graphical interface where you can build your NSPanel. -And the best thing is, the installation takes only a few minutes. - -The goal was to create a version that allows everyone to use the NSpanel fully local without having to deal with programming or reading hours of documentation - *AND YES WE DID IT!!!!* ;) - -📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki). - -🚀 How to create "Issues" when I have a problem [WIKI HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki) - -⭐ All Feature Requests can be found here [All Feature Request](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/new%20feature%20request) - -🎉 Roadmap Roadmap can be found here [Roadmap](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap) - -🙋 WE ARE LOOKING FOR YOU! _**We are always looking for people who would like to support this project. We are looking for help with "programming new features, writing documentation or translating documentation to EN. If you are interested then please contact us :)**_ - -## NSPanel: -![2 Home](https://user-images.githubusercontent.com/41958506/203653897-cf96a7af-2b92-4ad9-a375-987decad5aa7.png) -![3 Buttonpage](https://user-images.githubusercontent.com/41958506/203654022-c6d81263-ce56-4a84-917a-9d4911f19f55.png) - -(Home and Buttonpage) - - -![4 lightsetting 1](https://user-images.githubusercontent.com/41958506/203654055-943d1910-7673-4d9f-ad81-7ef00d155e5a.png) -![5 Lightsetting 2](https://user-images.githubusercontent.com/41958506/203654076-93e110df-f314-4cf1-8500-ed667f2202fd.png) - -(Lightsettings - Brightness and TEMP Color) - - -![6 Lightsetting 3](https://user-images.githubusercontent.com/41958506/203654179-f7303b02-c886-4890-b976-cb498940a627.png) -![7 Thermostat](https://user-images.githubusercontent.com/41958506/203654189-4294b634-430f-423c-b170-9f1680f94b0e.png) - -(Colorwheel and Thermostat) - - -![8 Cover](https://user-images.githubusercontent.com/41958506/203654290-c6ec2f2f-7924-492c-914c-0d96dc3907e0.png) -![9 Weather](https://user-images.githubusercontent.com/41958506/203654307-24000d00-b7e1-47eb-bd64-9e97b508db52.png) - -(Coversetting and Weather Forecast) - - -![10 Settings](https://user-images.githubusercontent.com/41958506/203654386-e4e574ad-8674-4268-84dd-1c4e40f98eb9.png) -![1 Boot](https://user-images.githubusercontent.com/41958506/203667473-d33523a4-3197-4838-9099-cccebfc727db.png) - -(NSPanel Settings and Boot Screen) - - -![Device Setting 1](https://user-images.githubusercontent.com/41958506/203723223-8afc0e44-51cf-49ed-8a49-8ba713716639.png) -![Device Setting 2](https://user-images.githubusercontent.com/41958506/203724491-53ecd93d-bc7c-4c2d-850b-f106691e2639.png) - - -(HA Device Setting for Example temperature correction) - - -## Blueprint: -![Blueprint 1](https://user-images.githubusercontent.com/41958506/203655004-a11f5a1c-d098-4e1a-958a-0293e50000b2.png) -![Blueprint 2](https://user-images.githubusercontent.com/41958506/203655014-e6cae9df-aaf8-4537-8165-b8f44a177d3b.png) - - - -## Features: -- Easy to use and simple configuration via Blueprint - no change in the code is necessary -- 32 buttons on 4 button pages with long press function for settings (more buttons are also possible) -- Button design is automatically generated based on the selected entity -- Buttons show current brightness and cover position in the button itself -- Buttons label can be assigned via blueprint -- Weather + 5 days weather forecast -- Thermostat + Touch + Relay control for floor heating -- Light control (brightness-slider, colorwheel, TempColor-slider) - via long press -- Cover control (open, close, position-slider) - via long press -- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel) -- Swipe between pages -- Top menu with 10 icons for specific states -- Heating control (hot water) -- Modern design - design easy to change via Adobe Express (free + design template) -- 2 physical switches -- and much more ;) - - -# Pages - -## Home -- Current weather with button to Weather Forecast page -- Hardware buttons can be freely assigned -- Hardware button label or without label -- Blue line indicates on or off of the entity -- Temperature outside -- Status icons at the top -- Room temperature with button to thermostat page -- Room humidity -- Hot water temperature -- Button to display settings page - - -## Button Page -- 32 Button -- 4 Button pages -- Button design is automatically generated based on the selected entity -- Buttons show current brightness and cover position in the button itself -- Buttons label can be assigned via blueprint -- all buttons with long press function -- automatic detection by long press if it is a light or cover for submenu -- swipe between all pages -- swipe also down and up for fast access to certain pages - - -## Light Settings -- Light current state -- Brightness Slider -- Colorwheel -- TempColor slider -- Jump back to the right button page - - -## Cover Settings -- Open and close cover -- Cover position via slider -- Cover battery value if available (I use Ikea roller blind) -- jump back to the right button page - - -## Thermostat -- Touch Temp control -- Outside temperature -- Hot water -- heating on, off and idle -- Hot water button - - -## Weather Forecast -- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration) -- Lowest and highest temperature outside -- Date -- Rain probability -- Sunshine hours -- Sun pressure -- Thunderstorm probability -- Wind speed -- Night thunderstorm probability and wind speed - - -## Display Settings -- Restart NSPanel -- Sleep mode - display off after time X -- Display brightness slider -- Display dim brightness slider -- Status Brightness in % - - - - -## Thanks to: -SmartHome Yourself: https://www.youtube.com/c/SmarthomeyourselfDe_DIY - -Masto: https://github.com/masto/NSPanel-Demo-Files - -Marcfager: https://github.com/marcfager/nspanel-mf - -lovejoy77: https://github.com/lovejoy777/NSpanel - -Hellis81: https://github.com/Hellis81/NS-panel From 919a4fe70747249c3edd71063041a6af94d22f9a Mon Sep 17 00:00:00 2001 From: Blackymas <41958506+Blackymas@users.noreply.github.com> Date: Sat, 10 Dec 2022 22:42:54 +0100 Subject: [PATCH 6/8] Update README.md --- README.md | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) diff --git a/README.md b/README.md index 8b13789..e651482 100644 --- a/README.md +++ b/README.md @@ -1 +1,171 @@ +# NSPanel Custom with HA Blueprint + + +[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml) + +This project allows you to configure your complete NSPanel via a Blueprint with UI. +### *That means you don't have to customize any code or change any lines in the code.* + +So you have a nice graphical interface where you can build your NSPanel. +And the best thing is, the installation takes only a few minutes. + +The goal was to create a version that allows everyone to use the NSpanel fully local without having to deal with programming or reading hours of documentation - *AND YES WE DID IT!!!!* ;) + +📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki). + +🚀 How to create "Issues" when I have a problem [WIKI HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki) + +⭐ All Feature Requests can be found here [All Feature Request](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/new%20feature%20request) + +🎉 Roadmap Roadmap can be found here [Roadmap](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap) + +💥 Please move pull request to DEV branch and not to main branch - thanks! + +🙋 WE ARE LOOKING FOR YOU! _**We are always looking for people who would like to support this project. We are looking for help with "programming new features, writing documentation or translating documentation to EN. If you are interested then please contact us :)**_ + +## NSPanel: +![2 Home](https://user-images.githubusercontent.com/41958506/203653897-cf96a7af-2b92-4ad9-a375-987decad5aa7.png) +![3 Buttonpage](https://user-images.githubusercontent.com/41958506/203654022-c6d81263-ce56-4a84-917a-9d4911f19f55.png) + +(Home and Buttonpage) + + +![4 lightsetting 1](https://user-images.githubusercontent.com/41958506/203654055-943d1910-7673-4d9f-ad81-7ef00d155e5a.png) +![5 Lightsetting 2](https://user-images.githubusercontent.com/41958506/203654076-93e110df-f314-4cf1-8500-ed667f2202fd.png) + +(Lightsettings - Brightness and TEMP Color) + + +![6 Lightsetting 3](https://user-images.githubusercontent.com/41958506/203654179-f7303b02-c886-4890-b976-cb498940a627.png) +![7 Thermostat](https://user-images.githubusercontent.com/41958506/203654189-4294b634-430f-423c-b170-9f1680f94b0e.png) + +(Colorwheel and Thermostat) + + +![8 Cover](https://user-images.githubusercontent.com/41958506/203654290-c6ec2f2f-7924-492c-914c-0d96dc3907e0.png) +![9 Weather](https://user-images.githubusercontent.com/41958506/203654307-24000d00-b7e1-47eb-bd64-9e97b508db52.png) + +(Coversetting and Weather Forecast) + + +![10 Settings](https://user-images.githubusercontent.com/41958506/203654386-e4e574ad-8674-4268-84dd-1c4e40f98eb9.png) +![1 Boot](https://user-images.githubusercontent.com/41958506/203667473-d33523a4-3197-4838-9099-cccebfc727db.png) + +(NSPanel Settings and Boot Screen) + + +![Device Setting 1](https://user-images.githubusercontent.com/41958506/203723223-8afc0e44-51cf-49ed-8a49-8ba713716639.png) +![Device Setting 2](https://user-images.githubusercontent.com/41958506/203724491-53ecd93d-bc7c-4c2d-850b-f106691e2639.png) + + +(HA Device Setting for Example temperature correction) + + +## Blueprint: +![Blueprint 1](https://user-images.githubusercontent.com/41958506/203655004-a11f5a1c-d098-4e1a-958a-0293e50000b2.png) +![Blueprint 2](https://user-images.githubusercontent.com/41958506/203655014-e6cae9df-aaf8-4537-8165-b8f44a177d3b.png) + + + +## Features: +- Easy to use and simple configuration via Blueprint - no change in the code is necessary +- 32 buttons on 4 button pages with long press function for settings (more buttons are also possible) +- Button design is automatically generated based on the selected entity +- Buttons show current brightness and cover position in the button itself +- Buttons label can be assigned via blueprint +- Weather + 5 days weather forecast +- Thermostat + Touch + Relay control for floor heating +- Light control (brightness-slider, colorwheel, TempColor-slider) - via long Press +- Cover control (open, close, position-slider) - via long press +- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel) +- Swipe between pages +- Top menu with 10 icons for specific states +- Heating control (hot water) +- Modern design - design easy to change via Adobe Express (free + design template) +- 2 physical switches +- and much more ;) + + +# Pages + +## Home +- Current weather with button to Weather Forcast page +- Hardware buttons can be freely assigned +- Hardware button label or without label +- Blue line indicates on or off of the entity +- Temperature outside +- Status icons at the top +- Room temperature with button to thermostat page +- Room humidity +- Hot water temperature +- Button to display settings page + + +## Button Page +- 32 Button +- 4 Button pages +- Button design is automatically generated based on the selected entity +- Buttons show current brightness and cover position in the button itself +- Buttons label can be assigned via blueprint +- all buttons with long press function +- automatic detection by long press if it is a light or cover for submenu +- swipe between all pages +- swipe also down and up for fast access to certain pages + + +## Light Settings +- Light current state +- Brightness Slider +- Colorwheel +- TempColor slider +- Jump back to the right button page + + +## Cover Settings +- Open and close cover +- Cover position via slider +- Cover battery value if available (I use Ikea roller blind) +- jump back to the right button page + + +## Thermostat +- Touch Temp control +- Outside temperature +- Hot water +- heating on, off and idle +- Hot water button + + +## Weather Forecast +- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration) +- Lowest and highest temperature outside +- Date +- Rain probability +- Sunshine hours +- Sun pressure +- Thunderstorm probability +- Wind speed +- Night thunderstorm probability and wind speed + + +## Display Settings +- Restart NSPanel +- Sleep mode - display off after time X +- Display brightness slider +- Display dim brightness slider +- Status Brightness in % + + + + +## Thanks to: +SmartHome Yourself: https://www.youtube.com/c/SmarthomeyourselfDe_DIY + +Masto: https://github.com/masto/NSPanel-Demo-Files + +Marcfager: https://github.com/marcfager/nspanel-mf + +lovejoy77: https://github.com/lovejoy777/NSpanel + +Hellis81: https://github.com/Hellis81/NS-panel From 4c53f18d5b652c6db26792d46133b314c3096678 Mon Sep 17 00:00:00 2001 From: Blackymas <41958506+Blackymas@users.noreply.github.com> Date: Sat, 10 Dec 2022 22:43:35 +0100 Subject: [PATCH 7/8] Add files via upload --- nspanel.HMI | Bin 3435720 -> 3435720 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/nspanel.HMI b/nspanel.HMI index 328b4aebd0f1183fb6a1df5b5491e6a0e32efa0f..bf5a7843782677cd31f01770a1858cd51a6fec27 100644 GIT binary patch delta 380 zcmX?c^CII3Al@)R#v(T{Gf&UM*OLJXBvTX^9&iCUAbe7vx!{C8v)x{6zBRM5xPIm- zFsx=|U|O_5=-fgD(SM>4NJm0xg0qLM_5AA}yjVVlCn=5-pM~QZ3RgGA*(#axL;(6r@tN zf9KY^&ozBvib>V>4V+qrjO|Mb6o6O}h?Rg?8HiPYSQUuXfLI-fHGo(Xh_!%N8;Es) ZSQm)(fLI@h4S?7Xh>f-{DKJ*~0|4Z)crpM0 delta 606 zcmcJ|&r1|>7{~GFyEE>(wu0Ka?#%3bXLem@$C+{6HVH%_!?gqnyoLk|dI`%aW|Rd&C5V)rrHN#@5A>cb~qF>6ZqtYX*lliHPDqg3FvSaHId;v+r0nzoYTR>zo`^Nr+$mMj_Og>lR9 z3R%zAy-ccP7~Icaiw#_rY@1(~^+1oyzw`EBcrsGH&E)Eab9Z^OVM87Y&<{lz00&Co Y!XS9yLjXfihGD3{C8&m*jmyQeb0XBUOaK4? From 7a4f9f6f70299b49fdd233d37f05850662be2586 Mon Sep 17 00:00:00 2001 From: chpego <38792705+chpego@users.noreply.github.com> Date: Mon, 12 Dec 2022 12:09:33 +0100 Subject: [PATCH 8/8] add french language --- nspanel_blueprint.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 9665da9..8794855 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -59,6 +59,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l options: - DE - EN + - FR tft_path: name: Nextion TFT File Folder (Optional) description: '* *TFT Path where the Nextion TFT File is stored. Attention! The **"Folder-Watcher"** must also be configured in the configuration.yaml. **Only necessary for manual upload of TFT file in ESPHome Advaced mode.** See HowTo*' @@ -1114,54 +1115,67 @@ variables: date01_mui: >- {%- if language == "DE" -%} {{ ((as_timestamp(now())) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }} {%- elif language == "EN" -%} {{ ((as_timestamp(now())) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }} + {%- elif language == "FR" -%} {{ ((as_timestamp(now())) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Lundi,')| replace('Tue', 'Mardi,')| replace('Wed', 'Mercredi,')| replace('Thu', 'Jeudi,')| replace('Fri', 'Vendredi,')| replace('Sat', 'Samedi,')| replace('Sun', 'Dimanche,') }} {%- endif -%} date02_mui: >- {%- if language == "DE" -%} {{ ((as_timestamp(now()) + 86400) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }} {%- elif language == "EN" -%} {{ ((as_timestamp(now()) + 86400) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }} + {%- elif language == "FR" -%} {{ ((as_timestamp(now()) + 86400) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Lundi,')| replace('Tue', 'Mardi,')| replace('Wed', 'Mercredi,')| replace('Thu', 'Jeudi,')| replace('Fri', 'Vendredi,')| replace('Sat', 'Samedi,')| replace('Sun', 'Dimanche,') }} {%- endif -%} date03_mui: >- {%- if language == "DE" -%} {{ ((as_timestamp(now()) + 172800) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }} {%- elif language == "EN" -%} {{ ((as_timestamp(now()) + 172800) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }} + {%- elif language == "FR" -%} {{ ((as_timestamp(now()) + 172800) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Lundi,')| replace('Tue', 'Mardi,')| replace('Wed', 'Mercredi,')| replace('Thu', 'Jeudi,')| replace('Fri', 'Vendredi,')| replace('Sat', 'Samedi,')| replace('Sun', 'Dimanche,') }} {%- endif -%} date04_mui: >- {%- if language == "DE" -%} {{ ((as_timestamp(now()) + 259200) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }} {%- elif language == "EN" -%} {{ ((as_timestamp(now()) + 259200) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }} + {%- elif language == "FR" -%} {{ ((as_timestamp(now()) + 259200) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Lundi,')| replace('Tue', 'Mardi,')| replace('Wed', 'Mercredi,')| replace('Thu', 'Jeudi,')| replace('Fri', 'Vendredi,')| replace('Sat', 'Samedi,')| replace('Sun', 'Dimanche,') }} {%- endif -%} date05_mui: >- {%- if language == "DE" -%} {{ ((as_timestamp(now()) + 345600) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }} {%- elif language == "EN" -%} {{ ((as_timestamp(now()) + 345600) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }} + {%- elif language == "FR" -%} {{ ((as_timestamp(now()) + 345600) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Lundi,')| replace('Tue', 'Mardi,')| replace('Wed', 'Mercredi,')| replace('Thu', 'Jeudi,')| replace('Fri', 'Vendredi,')| replace('Sat', 'Samedi,')| replace('Sun', 'Dimanche,') }} {%- endif -%} day01_mui: >- {%- if language == "DE" -%} Heute {%- elif language == "EN" -%} Today + {%- elif language == "FR" -%} Aujourd\'hui {%- endif -%} day02_mui: >- {%- if language == "DE" -%} Morgen {%- elif language == "EN" -%} Tomorrow + {%- elif language == "FR" -%} Demain {%- endif -%} day03_mui: >- {%- if language == "DE" -%} in 2 Tagen {%- elif language == "EN" -%} in 2 Days + {%- elif language == "FR" -%} dans 2 jours {%- endif -%} day04_mui: >- {%- if language == "DE" -%} in 3 Tagen {%- elif language == "EN" -%} in 3 Days + {%- elif language == "FR" -%} dans 3 jours {%- endif -%} day05_mui: >- {%- if language == "DE" -%} in 4 Tagen {%- elif language == "EN" -%} in 4 Days + {%- elif language == "FR" -%} dans 4 jours {%- endif -%} on_mui: >- {%- if language == "DE" -%} ein {%- elif language == "EN" -%} on + {%- elif language == "FR" -%} on {%- endif -%} off_mui: >- {%- if language == "DE" -%} aus {%- elif language == "EN" -%} off + {%- elif language == "FR" -%} off {%- endif -%} heat_mui: >- {%- if language == "DE" -%} heizen {%- elif language == "EN" -%} heat + {%- elif language == "FR" -%} chauffe {%- endif -%} @@ -5067,4 +5081,4 @@ action: ############################################################# ##### CLOSE - Action ##### -############################################################# \ No newline at end of file +#############################################################