From b85fef047956fa033307825dde1541b44a26ab55 Mon Sep 17 00:00:00 2001 From: arendst Date: Sun, 12 Mar 2017 18:36:33 +0100 Subject: [PATCH] v4.0.4 4.0.4 20170312 * Add pulse timers for up to 4 relays (#106) * Fix Sonoff Led power state when dimmer or color is 0 (#176) * Add command NtpServer to configure up to three NTP servers (#177) * Delete module User Test as module Wemos D1 mini has same/more user configurable GPIO (#178) * Add more user configurable GPIO to module ElectroDragon (#183) --- README.md | 2 +- api/arduino/sonoff.ino.bin | Bin 473104 -> 473648 bytes sonoff/_releasenotes.ino | 11 ++++- sonoff/settings.h | 6 ++- sonoff/settings.ino | 95 +++++++++++++++++++------------------ sonoff/sonoff.ino | 45 +++++++++++------- sonoff/sonoff_template.h | 18 +------ sonoff/support.ino | 12 +++-- sonoff/user_config.h | 14 +++--- sonoff/xdrv_snfled.ino | 37 +++++++++------ 10 files changed, 135 insertions(+), 105 deletions(-) diff --git a/README.md b/README.md index a04ded0e4..687147307 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **4.0.3** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/master/sonoff/_releasenotes.ino) for change information. +Current version is **4.0.4** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/master/sonoff/_releasenotes.ino) for change information. - This version provides all (Sonoff) modules in one file and starts up with Sonoff Basic. - Once uploaded select module using the configuration webpage or the commands ```Modules``` and ```Module```. diff --git a/api/arduino/sonoff.ino.bin b/api/arduino/sonoff.ino.bin index 7a59ab28b259c7353bd25facdd7a9db738237f2e..7e79b3fb3b35f5cf5d661a01494f868cdf2b8e3e 100644 GIT binary patch delta 84928 zcmZ_04O|q}8b3ZWFbFxz%d)$`g1R#xf`KxNCK)U2>L3=HZ01Wzx>RPR7D{DhEox&{ zR_avO?zIB7vYXvBt6No`GeOi6m3>gQf!Qxsob8DOz+)UlJcJ*x<*M)OB^Im z9>sTP)q3Bl1*7Meni&hFIG zdg)oI1GF3pAvj#i$#q3gJt107k3q{hjnEjX7v4XVe~W_|)vx>}4!5yA32RnxLHn3njn!zO+MzLgP!-RBKpB2dRe1Xn zdcN|e{n4=1fAi;*Ta$BFD`A~fWoEcw;o1dEw}x1DrB7h3C`Nzad3%C8nTIEOiYimyq|Hu491w`WKFm^pSjXXs_dHixuo!cn&M zXpnu#9if-)?l>-JZ_}Z=)4t9fcDL2;j<>rLjJ{knBpx%c28@>hb^^W+NWJ9GIR(f8 zRs$vgrbK8t4~^7jt;sndO|}T8UVr@jq&dXNN5=FfA^y)EAgtLIl|LSFGaC;Yr-Z*n0-)apzB@#Y;}Fy>e?oLrSV^C+22cd5l9eax7OUi z2p`@n+{cPLHU2X~u23V<9i+agn)sQ?*gT$~~^iom1t`t#Ui7+^#D3c$ZtMa_70+`Bm;oRqoqg zin^6nztys6z6>nMIht6e@y`?P#-Z_Ejem}`c$_9aukp(WhC`FS(^g0E&uWfP{LI!k zqcFuShWq)YWYJYkDXf~ZmAy@qs`yb zmm73_KmnV<;M{c=Vdh&TFw$01=dK&_wvxQBkznAhm|(p+qiP~S`y8n@p@Fe8Js@Ov z{b+aXx4UZWt^-IUbgza4p+i2_hV8s?3jvvo{ISMA<`)()*Ut`pLvF=M*M`uEFzw06 z+&7+zBmx1yL79}D9QsrjXW~NSXO*Y2dFc%{8Ch892N;|xVLJqdvJ}%|m*yOPEuB`+ zC8To>TAm)iik!pZlf9K`HZ{k}@BL(y70}v zJv$@rX>~!*d^_76c==aN$0{ub(hg$NaxsO zniY802MV$Jcde`+0{!UL0@dSZ)iNcu%~8-p{j-$EVY*J>Fs1&#R9kGsIPX zQzUOwX9lttk?ag)3qDR=g!}=dFgrufl@=gZ8W9i55tG9?R(%gqDLp>)a{u9=p9x-c zVQ^4#?)PYE50jjG2%!NR?pJ`$E=?Z>ve8~E3EOdmIS|xZPD`-~&E*t-MRP>RE8_Ue z8v9aQ!+K|n#%(T&K%ExI9}XHaK!TqeyegQY=DEV1XSIOb*)qo_nG)i)d6#yl8!SIj zw~8mU$($7D*9X(ttU)%Fj0qUbD*mQJ>rOB4Ea@9iFqQR=Kc{wsKW8hLYgE`A-kZ~n zGqUN5CisRr!d<>mY_q=z^D-}jia*xaSehKoCMQOQgiz_MWa$+=kpaQI|(?zOer zia7DO#xW@9_C!g4`rUk#Bm4kc#9Yl}rhn1h^e17bafFSw_M)Cfp_0p_C$}LQU(6rY z7W1)@&R?}ux+p^MMJC+EvS_*87pW%4|LxD$XvQ zkk0LG(np|E8I(I@($5{BDilyDeD)sNMXJc&W2?8(`vU27_MUVDolVjcRvuyKJ%MB< zVI`7pA<3yUx8x3i-mS>FCmCtKve5Z$V#ok$UgE%-*J@1DUDPu*X#71Z2d-WbO3hup z;^mt7%#OsP%AKxZ@jq$l#=9cWPB+N%ZHX@mve=qpdex)JyBsX^l29*$wNClP3rZ_}Z` z-Zn|ioWwEeh)MFuN&F$mNa8nLRmBt*v#e_TMXm6nwve-LKFyg})<|v{0hy1YYMiKK zF9Pq!L~Ti7!bFQeu^-3q-C7E>#>nPd`tL6k^#kxaF^8y^{W+ls4a1XjM-5lTP7vq` zO3{Q=@9Hk0K3HHrvV3MpF<@3YFZ8Gz&C~0-ybMZyL9bjT_;YGf7uX5BAN zrm-R1MOK<>#e!9>;_n(^JUm`Jq+z84{)R%Q4eCLw_^SrIgVxD3$L<%?!{vL;Sn58M zlYLgvTdU*A^;YpG;IZ}B@z`0wlfNVMzq4ZBC*;^#Dqv0}$Z`TeK{%y8_;iDWnVniT)aihZB# zDf_JAmLBlDudk)*1mLJ&5{|!Ac1l@vl5$=ebyMfXp}BA1qQcvh;du$((jH7!n%x-h zYu6m;AND^{=%igy3?E&^8;!oH`gyP#V?f~svM28fOs&(MC?%4N_rU~D)#WYjM_HwtfJ<{r#wPr=X}1$m_=Wn)H5*A zW@}5hGAuJjoY*t4rgD_hGSa3C=St|rgp^r*$O4eZ-iVxaBQm>4DVP{f=PUCkCeZs7 zdE$t{qe;OYPWB<0!L+mSE!uoSta- ze7#KNzNQ0=;7bU*tafWNOK=V)?9@+1q)Crj$(AE6v)-_WQn5GG6^6Q`+vB{~E0bpE zl}S(kUzN3;A`I%4@jchVF0&H@45p0-gVO>GKKVb@P*lrFy-`)35VY#jwXl+U51Ub2 zDvytIUPId!8q#Tdd89NoK0TIfjEnUu4;B8^LR*58e8*7lhgMt>QOzQ2-7`Jp^p|ps z`<-ODsHe$Fzt>6{Y!xp8Nqy8R_+lX-j5Y4(?Y>y{!?*w{dlIP9OrWwetvJa59}b|Z zphi%oEq$o+F|um!2C8(oRs6#XTxnh(**;vkLdV7Sr8WXtbpu&;Tg5uy%J-9+#$i40 zcY?(~N&ZxlKNUMa5v&7;^j!2#+AIDXzT%qEx1I4sS9y%;$T$q3&26)nCzEY6JD$JL z>vhn3F~TYAeO6~1HcGcI1-ljdx*2KG9gyX2*eY^C5UX5#`5KW3_w$TrAbN%~rE^@6 zdXDgQRuenOmMqP(62Sw!9RzP`o|XTl*V%xxV1FT@{*oD8An6Q;1^C4oqSO@(r57k2 z1rvtkUel*Ll~1P!(~iIo8p~j8AgYuMjaC*;j`!wwhFylTL14D9xZ3}Otuj_R5-V=+ zMgLE-ikGz%58XyoVzfX?+A`X>E#PUcwQqo{Nbijzy*J7#o+7;~S;doDN(p^ZFJ%st zDkY_)d-_UA%5wU!UTnY(#n>6>2{KgdE)-)&knTuVa;C%$ z-8(2bcL93zafGL_X)gsVLwEs07Yc}R6K_(Un-b$4YfTU5f^h2Yw~FUUBh@>sT*Bq6 zy{o2Dl!GI!euVIi2>YNFCnkwJW)&i+VY@=bX7Ur$CU9tuw(^bIzy>!%IS*;#mz|U$ zck0v~Q>O+`9kr4ST&8{ukrMwRtlGfzy|T?J9>iINMsIgS37gA*&m5k~H+Brq+@Fb_ z&bVIWW73s_P(&JJ75C{AVFZ3TIQDCO!h)>y5y_4RA{%ez8k_&k#~aw; z*GaukYL6kfF;;OgDwk4_0+f_~6lpUOWHUiATg68SO0tfk4kgQJzZmJXu@y*>qJhIk zTjOggD@)NSKiHX&Pc-ozye;}Q09A|TRn7J*b zbc7-lX45Yza|)B`tIDdvVRW1FufnAJTjREh2blDm=-5sa+`tQysq`?~OnwMND55_j zbJ7t`|4JlhI)Y?`UKS=Z|8x7mImKsmgoy%!U6ZD#6OQ^twgP3eJB79>_qkJMm^%(f z0gEFST=mJG`ts)n5_Os70LuwA|eOx)>j-PpiBtuzhxIujlzHoJGy{gv z{40|tncQYtBWd|gVH&lHqU_Tse&*FI#*)eK1y^0D;g&XA(hB-2LE<*!hI56)gxLeB z5TbIi&!+ghl#07ek^|Vk^IvHM`&0n?0z)4sG0>$rCW{vCqWC-z-xVz+P}{2b3>5hz zH)(sW&{8f$-7e6Fm9D!J=ujnQx-EPkDcN`=3Jo#P)rvIT#P#+Cx*3V7IE1()x{gdffg8>xs;NjFF8&DB5JT@L$^3uYiCPF9 zqj4b*GyD(jh2Lw%_+8tMeWhNHa3%u3)zp1T#f(hvp{Aj^yKo{@0`3Le3V0B3Enp*H z**JUmSk`Q2HA|`C8|o9!+tQrmWTao8scfwnLGsbMNXWKl-ZYX)W(FN_?4={U<5g;~tpp zS*>N{wiS+OpLmODKFyitCXsu`n#KG}9T{l~d(V)lw{_GN1GAk^YPd8M4pK(nGsgR( zp6VKyCO)9yUQ{@+eOP9AKE37*etyTmY!nq9{6qLJ<1E(PL;vXKfxha=)AF9D#3I7O zlRE#4!N0!?{C9Qr^FN;NXuIBn)AV+a4_Tp!Zc^%Dz2YHu6l>|)IEuf}RhiK?#y${= z>Z%&8GEoukp1_}0Zn}36JyS`!m!}UYx8FMmJ=s58wWP9|>y_p4`~IpdO|L93WSWNS zQ!1%$tX`cPwN-U(H1XdCY765w;RZcQ&V83cY8&ixwK0*o>npa43zf^WV`#S$R&+-K>+Tl# zS%KryRWbGU?j%>mV`SOQCuxi4i!xq z6y8|?n;g0By%J+D_v1bQVU}ZGkKtO`9m@Fo#xR%8E6eV?cTm%LjNAbRoM-%EqnDF? zXfjiTvJL~?ptRkWG@yVMa_7>5GGvax$R=g{oQ%kj+bQh#K~$QZnl{v4Cf^fHb2+0Z!xOW8f4ZqI;89_eULzULh#*JiRkP&q%O zR*0gQ+_|=OSQ~E_%14yUxx=I{nYFf36jACghM7@&zUtMPx8&pq1@&c}Ds}`DLyYl>{NW7DvWB z{a`I`W|b!k9slOyO{i2(g1AwV!`Ql%KOSdV0Sfe<3v&9@6M!(xG$;=}6z`D@T~B1{g(k!JuFZf9M*z^>SOPoCyTLV(5 z`i`G}qRV+&t7oVxhHhpUd$|enX>A;JB&w_?>c@py%biVFO_7DR#(8D(Pl|J@d2GfD zxKRGydV?w&)WUYynav#6%hZ)?+9m=w;sr1@Y z$PqlrLvIYA1sBsaK~r}rgCC5&c^yg3_qb`cn1%{m`X)96x_3&TDMEy%1?K>PW&~%b zcv0~@7|pQ%Ri1p%IecvEwabBvdc7yA`OhFB{6q2UE}^P7L)c!=1ml)I_|9J3faqOH z(}TA7;hjRz2V#jfJkicT*h-xG&dLQ-Mos`{4+no?bQ@H+_#_o=5s=lmu@fLcK z-Xey7q?2AiqDL71f(9-h)>~LX8lle<{tQXIUr*iGpIXQtC#m=8sc(_g`oVYFT1s*9 zZkkDZZzY@;G5n{O=W`gPStS{X}$ zhWVjM>_>4RmG80Ho)DZ&tCNrl&ZpJQaZ9oLr-!4^38i+vDOrA>AO_GN=Y7hD#C7;X>!&IK?svjof1!Db8e#WVP6ySQQ|>J)zR z&nlsD0e;wwi&M_Su?F^UaU^5l2&C^ox`~lDD9=1>HL!}FksgkWO(Y{#eIw46Rf;jq z0*e7=F~)&5Nw4eJ@q~<`lVR6^O#HZ4;_^ZM<`G!3EAGNjCOX zLKWmdSnnlJ%*R?&UyM^@wNH z;sx9j43x87^M!OYd{!8wy!A+0+=kwHiA>%!s(KdI+ZK6<-^INTbE^2P^2Z}T1Us%Z zWh);%nnhUg~PpFJylMs%1Kx0limPzuO}|Wpx&a98%K1Ni>h+bRW63V z(gRT_pinjvWiqbX2`-|lhEv$ZSSVFzwAd>sff;}+pHL9VMXS|a^_!`~X}F$^BUj1E zhSY3a>(j|{<{Ns5yOO{~hSH1mvvIfb?}Z~6d5m&u;aEnUuDtTtASHK^g^}-4W-dBB zkTv(5FV5l;7)emFADhfb5OW?I#jq0;-(y{)<(_UXXpHfuR|Gb)hZ3S}86p$|M4W=s zTM%gQN~E5yZkyf4F~gz*+J^yIAz}xv*_=Y#3vTV6TNJ}#WqwLM<*P6u@gq@X!GT0zr z(zX?+hr@(Rv-`A-pXr6=e`_^W>0H_#_TSp{`fgb7sq}DMe$`Xm0lR5EANH38FPJL4 zdP&){c<7*MXNKn5-uCBw4p@$m@G4w=5Hb)BDeRIV%(62|@{&{-0;VpR?UmHns&tyD ze>u4ZZ7Al4ZgZyy^NhxPLX1-!yRVz$ zelQMrMNp4*W9Lm71eXNPApg+)n=#}SL2B+k!dQN4vutd$ENmlJvv4|w5Nu%hTiYF8 zLkd$_V3V^gA(^0xGmsc!BM8EDhUP^g6Q?kfIn`;Y9*+D^^!x$+`KkT+Ql6z+K>i1M zzOIEJ<@x@6xxj)Wi4xz_^E=42BKdK%t|Q!Usm8PyHxLFdk^BZDABF23shu;kZcE5O z!r(fcfUc96-b(Rd{pHme7Fb^Ge3J8JV%1@{D?v|W%uuV)`q?{S8QZK`+`(jEi_}eI zRv4zg7la|FTRoH%Ol?~aZ@w3`Z9-O5K7Fe&$vFEL^lZ6SgSn8lM}AM6ZtTSjNH9gzeZ|z_6@AVtzpSbF+Hv< zdNK;k;?)+U%16yJc?WyS7+)QNMgOnMb`PWehGILI5{X50?l#P~^=BF~y8_`P(Xi1s7G=`p~EL}P@OFaWmLfnA+?8)1(zivV( zM|cXW0m??dG*6HR2uJV7g>(NBc zNK~8sexTqPk_GyU8x0>yL}; zcAoG)OVf76v;3gB_gG=6Mzh!RuN@ORkCCgGQnW%Gck-Bc@>stHnc4~){}y!VTx@X5 z5HCPjU%poCJhwKgve{!}Jc$>WDvwa_;afdJnYeMZpdO5HQPI2uf`qin>=vkz!*QJ`tRyhgT``$_VdQU^+AN3YlMGFEOl=s;37#V|&R|_v`^gAR@cXi;eKGko~ zasL~2Y>7|K72iK+^p#h6EQ}}S03$V7_-jh^3#PE$F}iDqAx6n~!Qx(Vk=*%->vpq; zQiq{-dwGvshx`9NG^!4`(#__AAZ`@c;*rbVWWKf!%TJ&@I)#%G(Kd0)vFXfB@G!by5Ex3Da4k@Q97`$~VE(|) zgC6Z-(7l4h!{ZL_7@AYozG@S7k9;(TRa=@oA~c53}}p`5X$XJEzCy~Nx>H)j*E z%=x=k_=iSk>)j?ED?F^xIeNEc6B)Vga*M6X28sC={a#==X^a$8j={i@sk|!3drv_r z{C0}#?2}g?%&A#05!Xu?ynRU*&o~Q$$mNg=D>+KbT zjhg5ujSAKq#gJw|e%UsKen&^l^%v&)>5gX76Bn8b$NA~2Bu;mdTn7XDe9-?||0(J; z8r_H>_IS@4eQT>cR>l*5fT{PyHG5*^FD>wj!+2TjA#nG(q#a?{MqF3er+Y6D9eWv} zOI8Hd1N&8H-9^oL-ak8Ntfyd15v=F(TC&zSw$Xyq_K6#Cr7y_JIqugNmw|mvpPpX% zh=t){s;}qcs(5QNA8YhI4qdlr%@$#@=jF=!BcRWKE!25I6UI~gIn6F@ znrU}aZv3qvetR#(a6+VLlNpNPA46SL{Gxh(;oqYSEyq!LDVW%b&m87sJEA#QWDv0Q zO13L!UQA7RK8A!*Laa;os#;sx7j~7tH)Wlo6{_@7ZY4P5SD`7IDi3xaUX> zmdUt)rPGsq>_05|K6G2Ke8}Qp(j(*#EZDVHqk#INg_srbmmCSv@d7ppICl)&$>RG3 zM0oy!`lPaB^~k|%p)D*!cpPB@oN(4x)S|2EJtf4t_>kgXJveFHC5K@$R}`+688)t8 zeqJlN=dANQ42)=ekzpa%xD?k1CHJM6D0W;Iw$FIC-YW|^`C(=LOH-K#tjaep4T>v{ z@m$pk+qLXHwbNJP(&Bmk+}ILmfjmmfOEx|m)nC9T11W$uguvcZ?=fS0f(%&~rHC(E z2izNj3y&vCalf3H?>Sewlo*li<+q8M%|_o`Oo`9osPX~A zR)kzgzgY;|5f9eg%D3}AW%tXm$=_VU5UeTY81zkbD%JG$rMfE`Y%bH`No#mlI?*i{ zD#W!)_sc`+aSH#+Olu0|Hf$Q`$`C3kHrHm`VN0rn#|)7;m36NS^}1Dh>eMz|o85D$ z+)*~1qm$OnT27B^!XlWtJb&GcO)fYOaRwoXs-HszhG#rAY?M*@Z#VD0gzG!8jTTTL z%^KzW2rgYV^i)oa_@M^B)kv6{e}^A9Rkwv4`7Q$`K6Gi=8{uvP?c(T(Z?djOgDA_i z5H8p?9%fnCCr(54av%s6S|NzHmlqGq93rkgZT}_M74(kXK-ElO#cPmNo!i^Tj>1{9 zs$0X|QP2@>qD&C&LGP?NW;f8z4+AK=f)u~y^lRi0_EHddmY&AB1!r4=joWSMJS9@h zzC>1x;}Y>1rqm;lN_0^Mh|bZMaKOPfYM($kGcVa}!NLTJ&%6XY=@0S&O25oA3I`VO z4@W`C$j>=_h98FIj-6OiJFU+XLqearxu?65xT%Ay&q!4 z1!sQDbOlkh8Nq8tai-kN40zv`R^@}4fVl;quMe^; zKPQwQvI>&lAe7hGNz|GtKcYBaj}E&j21#HxUMYG#W&vB@CB9F5E2XC_2bhh;c3-4W zzIS+{`2A@vLQXKd`CGUIXgu}wUADwB_UA4)pUDkzZh$LABx;s}V=UiMLisMBAYU?B z)@%d`{2HDpM_crQ2ZtxBMvKz;`pvYaaBC-+@-Gd|O+ug$;2HyeCf}>d18aqtXD?u* z7-MJhFlVCS8!s@W1Al2cth}=}Y5dAlm?}_Vz(c>dAqX06cUoO>2o8vXAhs3f8ic}E zH2&U8l?Tc}1o8*mVQh1E01HAEJ$G)fdPxahH;KMWnX=B}eM1oHwz+t_md^~FFo`*7 zio2EJ67m?>K;moU3$PuQinm?Bl>6bc^EX~5KF2(2I{_OmU?sv{gyZ;K3s?)-K+*w^ z18xUA4_FS^1{eVk%e9F2yy_3iDLbK@U6+>f_9@Kr^UW~z!Ah8c+l6*{$b~VZa4qfk zd0gYFnsXS2pCSeTtKRhJaxJA{KhSn zwl;hD1H&?ne3SQLew1D|*H&6}=N9!h+}#}p=T6NXv8B3*!gn^P&_l}iz(B~KIls*W zTjbTugygi4D%WQ0fs_mOh3Je?8FtrZvFr+G!WO!i*-Uho&dpj#c%QL%s!n4)XdF7f z@eQ4Z2{aV9GDz6kTlhimucIG@!`y4#daC3)&9qL!n?#|e^|AVH0_ zK0BYjyz%@P(@>D)lwp~JFj1=R{BT|ZqkiAbueb=W0%Dasa)s=@#T2pkMtn$WmA_UV zeS;56fWs-SiJle8n{P}@ly_M8>eCKdy&WIh;AjmTs#NEBAl+}nF7JFm;ock?#(rYq zKL?(qjD2%(@_A$je3T$z1rZOW13}W5Za4%!#}JVrolXdnwkprRY4JAvNl?pi(i4Fr zr>EItYV}0p)W_8XtK>p(MoXKeiiM}R=0CuwEq?fSz1;I01h=Ps^d4e%z-BznR_wE? zdpnl;s(g{@1L)m>^rGN}ob*G7^OWWp-s6ba2hCcMVX@CDzh@y|4iRrQCHk#6rs2FY z;w?*zn%WI-&gYmjbdjNQflc2&Z1Ufgd*6zSs5uVh83I^+j^W2EE8pUa*jN3jzFX_$ z|A4V0LF^QNzHesTt4w+@XL={7*q7vBi-KSBy)xHgN zoC(Z2!qP(toASRqJmx3nKA>p88QO8vVqX&b zsxs|b@ z{Imts#js0s4$u2rP)D4`DRq% z`gw&2d`8&-S>d+zDdQ|amuz1x)76&)kfVp#0b9O*A=`a*=@&*%zYe8;TyvUFAnH2ExPsfT z#LxH{ei(SG;*;z7p`L7}O(chM4%Y%WFL^1@4MBE;V zwUOgNovY2nMF1tnK)l|xVfaP9;kfOhcdam(77u8@{~{DoP#n+8Tp)hYjngw@iEY@L zG|yg5^qpTHLOc*we5zHh&RDxTGGk-p+SRrdIOTDT1P#11=XEZdFsE>~*hyRgEdzGM#f)}4G@oRKU z2oM2GPHon7Zw2wiv${<1Wnhx`tN)U4?J*%x2rclMZ$vP?2I&BBJHiVHFfoDqTMNYr zy|}zk^P=`O1&rmBJYknFFb4+Aa?WiL>6U0B_tr<*@;%d;@GNKYcqSxG*}0MTs*^25 z`9Vv7b4$}hPJIdW8O{h8Aj667jJ`tD^o8_gr`AGGIYLsV65WNZ)kZsYt*58k5g|-? zm#5CrL8L@4vA}D(@iKxA)pw{d1W}yPEsWnV-vdifcb7T8AYvsNns*22(Y>f>Cu!JuW4^O6w|mXOmOiPVC_?x=9C(H1imq`2o|SK;|C$P(2F6#j{a z2%Q&nE>Ua0{8bpyy=FZ$-w+{Ic$rpdlg{cgu(~M(K1Rl`V7IGFnOt z>F$jq2j1e`+k;^rGb&W9I$M1AUAVA0AJg3Cy9gCX#UVT@{+3ickI*2NGNziR^6|YX zq%0XuQzo3G_Tmwy?Ws=g23jXq^aA}dfynAvFvqY%pB`JM%si;#~H2~*exMS5=- zb0}U}^j?hjE#Jk7Cy%GIYzFzo4Z6JQ z%mFs<9@yhic8b?5K6wt*CYi-20HwRk#Fc*c0C5R^$rH`u;&VbpIqphvX8!SW1213> zJLjJh^Nv&De>u~msu;7qqI@zrn$6qC5tsV2#HD`GG2Nx! zOUu!J6;)p&pOevnqB3O`r=NpzE-LUFpQ~)_a#fT&XzK)Ux~8uJKb(2gUK9V&vHttd z0JLXMSGA22_ng+5kPYUh4^QYF#QjwnyBd{wr7n|>qh2$K-Dd;nH|d=TZSwUtNive; zjsPm#VG^$dP}KoCsyu+8rgPTJ$+WrxNordFRcbToZ!Dlwe}gOjW=*KrB_^K31=DWk zSDsE`ym|NIJLvh)XGuZO7T|!K13fJWw3sZP%;H{1=UQ@Xl42I;5}$fnN0Aqq9gslf zw@{IE(Uii;r?27^U$c#mJcA7!?y2N{m>^CgwOIu<(p={zQHKHJINE%9Dt=%{9T9Ag z$xC`g?gqEJ`WlM@Pm&g#?rXtmllatGRCF!y+re>L*a-CfE*FSQz+edKlE6@?ComM! z36pqhpaSWtNgM;V)%HH}q~&St z4(G>;w>#zPF7b*#-N1g{%|(E{5Q!2m;kSICrx%+KaT*b4o~7?35iEJ}j9(u;IovG% z*%ys9i$@RzdFg0?S4X&4{qqKHCV&}1o)s7md4GTxcE3qv0`rw^2qckFR4)e#mb*Yv zFUU?uLDCa@k%Ji`|6mfU`YJqR5~~qKs`^`?oZkEiUcE+lUya`f$g|&@#IO3W^$u}h z;NTB(;f5N~YpChYz8ZafHCCFqA>t>bTPnIOt|;-JB>ErHLt%Okg`cGd1bS$RSb-XL z8Np_cNqmdM5e+emZz|QBZ(+VUqxd(E;hsS{>91;&Sf)6)q|uKni?)m%_YfibdbeeL zl=uLNe$)f+f8S{`27AxY-;oG5Tya(()w3pXN?)|iBu-XNZn=eCtPFZTi^GQ>I{nX0 z;#kG=ewsH038a&@2YSL`K(qJV&}<DN1OUL zvVj7>#Lh2v@ulj&y3sx{){ibbY!U~bN(pifJLATpE#GUsTm2&<?iZ9oo0W!lthK=k^(_8MtaesFJc># zUo`QrUGGRvZ--pamA8ZR$mx@TF?!47J8%peASb=`KQ&8Hs99basEJ)^5^VvtRRxrR zt^6-`IKeIpVBg1h<1}oY6>k;M(zkfsKz)W3AI?k9C<8v?y`zo|%^i!&pbhX=z)-*}z?SBr zxnlqi0p0>w2{;;XE8rG{jR+a|T?V)m!H)O{gt>^%M94zOK!`<%L}+V*ehy)Mg$)-* z@%v83GqK8(r+oNPZvK|8Cgx0CbQ9z(U-T)9F+oUh)HDm}M{Cv#>5VlmA;D#-vWlzE z3j7!@oZd}V6n(x4f1#Ykq_wrQVV7rTC?o%A_C9AmWgNVoKD+!-N6D`pNOyjzc{(t9 zdyAO0OINCQnYqF4^4}Ljqna?z6}7~(9b())GuUU$78g_Uq2@W?gwl-bs1xnLDW0Dt} zx7kZx(mV(HQ9tS^fr0|8zWNtxzB2e@i+7Pu_i4@ZZ9neY9VHud+_LMq(u5nha(SLb zgCQH)4wf3G`XlEpmm^23cTKC2l|kS*fxZ?rRvkZ?O(?5l@ToY6T_E4-ycfQzfn zos?!4(}+V8DgT2`J}(}d;=I9+ijVw!COz2YakxF%bdWxqL^7M)d^T<#F5WT2p3e!O zlpaj~O73oWeq?kpp2e7awf+dR!q8rl+vMqn?jh1?3Unm;L>g)qjW8=vq`t~tR1Aqg z-LK5~WYA5k!;^EDAuJ77R(+D_jX#Nv@ziHDHy9*ZtCm6?k{*G#N8q1f_Po$sGZ}Wf z%W+MxOctK&D0#g38iuC8UY@PSo9AVRqEDTXxMvizy^pih9PyTp_$*wQcGpZ_mKL<0~@qQXd4^iI!G@X7``QcN3*g#UM$JJlz50r`# z{|J;KQwr}D{ocVpt3+%cEOIl(2~$_RXtosV_C zt%Y3Fh(8{22t50Lm;Y8Tzx#&r^&R{@H){ud48_^$$xEqdj z?X%mKJ(&jc4mCqzR<%%bGb5i;n7oVd;-V|-p|y$Jxuih7>oNkX%Gi=z$0aAA0x~EmyuZJmR~e|5v;|C@unoqZgH>>wPh`t-)m_(ME-6)e1{v)~fvG+|pz9&**e@%J_1 zC97|s8`j4zQ!BiuX_Xr%zo-u%{j8Gync)3ff8*ZN8>jqFzLH$B$|f?fS5M+5uA_f8X1;18|1514t~aa>;A+XL;7Ooiqr20+ju<%pJ$P|=F$navX)nabb@w1u1Sm`1lf-| z)_liTfnIQ{t1u*lT>3BxV54`H2gTQ@o3(kfFNSnL;^Dsz&<|eB6gp26`kr;|g|D|m zx5Mr+Rc8xi3W>+``jSa~YpTRXKL#jKulzGZ(=p|>oeADwVd%aIn@JJJerponJYKi) zD2|Qi3{V6w_7xO*+CAqQoj>`r_h4^gcbQz_Q{?jX*A((cX{mR0EjO z*Vi%QYvhT&Fg1zKA18W5++>@zRaiIR?vF-(%40b(u}m6s8KtETk*enk1? z^LXZXi1Op-87b_??T2`%kI9K+Qy()OfJxB?ojONf)KLBOW_(-CoHE|72w&Xn9eY%M z-&n*rkB~@fLmHVNfHFh=pcdFaUkELZta6T{!UzI=NXKfIn#ZRS&2`C)6JYeK^) zIOvpzz(P+f>$+;b*^>mld_Y0p>PeKZbu@Ko_7T*W^~|a?iubn{_O#=>UT6`go_E@! z6U%IArHvV-$3|P4GrkHJ z+0{ndc_%-#4QF91e2vS?D(|aA7Z8!XJP6gOp}loOl-4f=JZNBcaOt=Tsg`Ir=}GZV zZ4K_Vn#4xqLrmGKjQ;l!iwPA+B7`DP2%UJ6t&LS4`FGNIh}U%=9^t}k8_F7Ors>U; z^I~6bF90Urcah& zl&|gMO5wit0Kzl`P1C4@n3Nd{@inJDA211g!;WAc2nivW6__6O505tGHse!Xeovz` zNBQ<^o>7aGrmrntc4enHve}gog0IZ~)KY@7qSfV{Vp=o48X?@^3$m9xorg8TIK0W& z8GTGX6djnM2l4&@K}(cZcfxbE4^5sHKvN&Uw9%(nT_0X1yQUJxfWrG}>(hV7g!o@`M5{*BF|H8o~N&15s~uAE^{shk#-D^(VDHz~E> z3?IrCblS1tHfzIH-jq_X#+_y0e{Q&yu_uHGAAW`}^=60gT9Y#5KNIg^$LsfNwX!EL z>{YxF7%YgD$IC!axm3w!IOx7vowOuyv z7foDn7J1<2tU-inkyh`F#zQBxv^$z;DkVqs2ZKWNtH3Y4fv1Be2lD?D$iFR+j}foy z6$_4FwN#~1@*UC6<603E*%1BZW#OQjg;H`>^o>vZ#Dd=hI#C(1+mb9TjOJf&a{hwP z{)({5_p(b-NFEh^-Odc$4L0SG-NU@{{AfIM1aC#w6)nnt0?ipsUK}IOnCyziY#WKH z)Dh9*1=5-v@}shoypux^zQIp69aw5wH2nGi9Y~S>(@Ea8AqZa)gqwjN50B=Ho3PaS zUrJFIgabkHrbdTe4m^H~m#^{l>fXVa1LTA0O3Yfu6QR~=VmEnfg}pBt56PlOwVudBPJomqa`fcK7q#9arkmB6x^9v-%X-a~vl zY8K<|#Z;~u=T-9piXD6H2-C0vpR96rR@G8CsH?eX+b>G3t#s8`FOZ~>*WgH{PQ>4D zrHR+1>}znaVDY!v2BU>RO))`*9WJMsQfYbYwJcg4h8W0Z(GrPCw<0DdBc^5{#*!FI zV$x8=2OgO=~QAp5><_!K^&56 zMiL(&dL(I?v+h!1-6i^^gCzd^!NQ*}(W^N@#bIccmQRMchJ~ZI6bV2VSV5rTpIh$ISX&BKG1C5K9_v z@MD%t(Xbo)X0yk&ZJUUfL)XbZ!f;tuE$whaey9a5!o(AKart=mQnaqn3mzA(+LaxZ z(f4idg&lPg9?}HqMugZg$+_Gu$+<0vZ$(}wAhi}2D1=yq1cY*=+WM}B= zFM*nR5q}&Js%8}Tc}b00-?~VWpCL7#CpDfoI>N~!>NVm;WwPvhjeTrMOMxVx1(I~u z*bHv)!57VT1E0Ke#YRQr8A42~Xgl|AVf@iv#)%KM@IganWrn1{bC#^;P9rQZE?=zR z^CrnlqLCz@z&mHs2@s9Hs2(@YyYD02#*^$|^1j!qiz&97zF%NuEbqqaHF6zwSdu^kDN(wE7zw z^nS>Gh{f`0qqqbdu;GDrczsFo{e*-6f&+>C!DFl^jrx03?8*LyNFJcbzYvsP^oB^s zjd*be#g6qigq;HvsSYUY{~_yL;G!zG|KXW|%|-TH*eW5Q&fX#*L9hq&mMAm2$qX-y zN*>d4(1Tio=CK;oPG(eQW}dPVbmI*Z@RFJ);N46C5s=%w-?axl z{r)eX&*FJzKWjbDdhWNi)>EbC<0%@|YP<8Hv~W}_O27O0*p~jSnh$5nUo)co{vadL z49bX9fofqY5G$5{N05uHejAVrjVMtIlza6Q$5Pvse&fWdb71G}1CBF@QjWxz$7m*_o8_Vl&V)NG2|~GWa{vb|ID>+F;v`qD|ii7Ngk;5(IK zPJB-t9(NE05H0(<5|6ILo?QMKZQoWJL!88`6dzLxA94KoGi96q!S+2|mKu$=s)0dt z;7C_F@pURB=1VU8yihuru91{-&Qcl!v%x@+V-U$;WdpiyjI@EXF7wRNJL4c~rL3md z(J!|lXfQTm%r@{k7=#q9uV#4I(5tsL%RDwA>%lsGb%`4pik-h?DU#b2l5 zujBY_7jR}6{e{l&lm{kxfTo<|#Q7x9CBfsIM?U#CqE{3&@DybYgf_#WA_GMkXvs8^ z04FKROmBubBiim@xS@ciy8~0M0rmrS1J(i709FAO0$L$_J{|60Kn#EdXaF@$Fb)OS z1K8f=#4QIrs{zXaa{;pflL3PPF#r~z0bIH>Fy%C0H=qPi0LTT*1xyDF1H=JLfTl(; z2dDt-1*`@v2h0Xc1q=hk0Ro)(*U@V4JZLz8jaOuiH9pZ^pNxMvn+I7mFdCa4JbZg zP-MR1#A~=#l2>z3Hpck1x_gugm3=TuDKDWJN-uHZ2dK_a1)Yur*FzX+!B6=G zPF$tNu$u#~Q^^XNR(S&*greU@u`cAq6)O3+oZ2BmC3s%*uv>=tfc`x%s`4qNxquU2 zQX~6@6LXy8lXq}c%o*VJrIpHhFS6RBnRy&;NQl4fG;6`5e8mk*X1CC^@P0P~)Rm>V z9PCt4IEJG+Dg_NrO1L+-k{dsmOit|tp*RtNh#k7_43CpYwsGN;)TtIKQlD~ShD!b! zw|#VQTN0#SVv|NBA4wu6KIBA*Vu0aKxpAc_^*Q1%zvIv=dh{;wN&3wEhZD!E;h%68 zy_?LehbJj=cYf9r3o|&;rebX71ijnlcDlD)f@71$BZ+V|33T$uRD@!#A?sYcQF^|I z@=VWUY8jOLqZFom%!z}^!@yH_i@vxxoRrd+kB~~T5$2X-fXcq5 zev>)zvKpSx;V>465nn8V4#!1Epjq37ejSk;w}mRs2+gUL!2!ReZEG}5Uo=fs2RZ+H%nM}8d> zxcUX2{puGmwU0asSb&^}mzPrY%Q8;TM9c}Fyzi+f5i67bXSPdZR?&h z=|7&iu00eSuQz4o*1TcHIjB_YdbcusD0YXS#~CO)!N9C&m#f94`fI5u!}Apx~{3$8(x1+EK~eI89~HK&-hLJCZG;_!_WsQ0QzV(cc;P)+?+Rr0fE zWNMVd?a<8ANS}9Ag}UOa`ULhlFAu~3BDcCGRmJOe`?}t!N_6t4rBfym?@>(EHqsrz zQC(Hp*@|i??&5TAJ!FiMS$Sz7?w67MvOt`L_mr0emiGKr)#92`V5cw2!a$N9fweTtD@NJyLr_{i$c$`nU1h)q6HMkMu_>`M)S54+q>M8sQKBbAm z;kLqEGLui~fZK%M8pO9{JfGqVHxzCF+{7pO6c%m`T+>=740lf8Q|6yHr}V-oD&f{kKbn2LASUj;5 zuf4}IU$lzfLGvTt$VAbp^)U_>V&b)}to(T^j)y2fiX?sVqZ~|pQ2?{8Rs2#7Pz0i= z@NPp|S!rvlxXnw!69x8cpQ;p2k8xs%fJ4%0qCa}Z*V9DmpLi? zU2nMbks1yYpcH!uh3}={x4MHjs==}v%=D(|G!*_Bh1PBfp+P1wudb%La5kZ#ZX>t75jNH8iAqwo0fj9@JY*B zGW)uoIUWGBz6#qEqi21FYm>E3oUx3w_18v(eGNVk;Y1wZ)- zoc2li!RkioS^%lfNjvd`7`vd?g9 zV1t|$ILz9qOB`da{o{1$_0v^XPiI*kq0QV>*X%QVsvObPh;$Pn>&0XS(yi?`68$p-y*-_I`&(rT^WHi$yUkkHvXR{EY;dFpU?l)m84;mg}5wo z6pIy7F6mJyuXyP*EdMZ>s;pBw5d$MvWJ zsDPc5B`r8df+20DjEbk-yjz23&XDKG%De65}n- z|Fq$eF0}xB`8^$VusiWbCqL$dcQsjHh{2TEG*^F__Z-EB-rm&rQzK^pm0A|uNp+jcey>XYt{mD?ykIgH88l@m4 z#9KZY8U4*7wy^vu{IECy4V8?xsU+)<)+P1%5>o~qwqk*;qKC?omdpEjL z?C9r`vZ3o(He<=M#Bd>d3~X^WJ#M*Lew%E6Xfgz2?J7t_>;}n*(eVc6tjUt#jECx% z-!M)7qsXB~9EKv2^ueqhLK3Bq-VnF_iecJm5|bodxk!vanv7pC zn~5Dl>O&}Zuv+H>`C5BIoGND``>TyWlH2leznC>j5OOfe6$0yBZAwXHWw49 zeN~L%(>!vmiPcH#@6aHMXC(T1@+&-=kPjR44`2}ezXC&}`DhX;*odLV4XB~#sQ_Ey zub?NZ0DAzt0qX&Uo0ed0TjyBc=qQ3%YD1grzZV1;`#yJJp!3*mOhJRJ>=x{bK3H1l zC}bk<{i%!574n4@nJkx|Ma;zX!`op9le(Jly}%9yn$Wu+>c}*s0iP95D?a1K3{TM% zZ=Xf|b`g|3#!c z%;sHL3CpmoMw4%C{Zq#;IPTSdKmY_w#OcR{-U;)r*vj%+6hFs zOYqI!l=#|G3%}O7$&()ThvS2jw1v7#mbona8taE1*y^UK4TE>WZ=lflraTGv ztF_=kqF~kr<*Au%VySCaZIpB24ZI-$moS>IvO5I4QC!cKLqVTc0IPz>YVKw3k z{B}1FLRl!xgzBX{Fz|Of+rKK&%Rouf#%Ga+P#g*deggxM-3**n88}M}G`e%!ny`~P zV`8~F_d3dyWA=@U)~_JNGaIJ7jY@fNyx}y9%ZzJ81t}r2y-hp4)9`0RbYZesQmD4yX(~=VjpAzc6s>uM9l* zR|XP5Y;(I7T{1qY948*YKr$m#LDCD!r^r7vVlX8RW>-#KW7}d+k#h0=Nk~sEP^6#1 z#X0bV#vuQsvhfqmJ<5-+1D6u}GTXp`g`W)t0mmHa$O9JYCz<7ET)i$s1mNIbbG;kU zBs0v@NOy$%l{ekWXOQTO@elsOj!7#T#*d{H*A%B7SPJ|;7$_^E0UxW2voP_Xio2^ZwX39MvC!Xopj>-^-0=#u(U#i5ExVnaJ-ClQxDLRokcJHSm4K8ab3AG!YMr#Y`yK74hbk)kIDHooM%Ng0k6!mDFh2V>++HZfUJ4V?s~yU>kNwo74a&)1`(e|1uT4i&M*#W=ztUS&z~V znY5QaCId#a7?aw8sHVldtKv#{f_DVr9{bb#`NR9Da*yC{ROubl`yWClTY0(NFM)7( zcgHJjAmqJqPBWHyckjn6zhx>|0WPk2$_D`XOF~Azi|$7(-MNpctU^vYaa!WVc<(+2 z)9?Tz&y*40j{7bZLvndBOi8)Qt@|i)uIb^7&Q`kaqI4huspge%Zr;a{-Y{hxg&4Rz zrP=lF^@m&+t}*Ov7~<$&PHuJ8UyE?AzEV2mWSj+dAmX6=Y~FwE#+V*e8!ig&SFoVBxGUjdPPbxdQrT%fXTko2zLnvj7TQ|LrzoVB zy@IWwb@x$>7L1X@(#PVSK9me`&3<|)$IqNHwD3v!QY&msLZrZu>Zeh9LPm_9j5GMD ziyOJ$J@E|eGQyP6r$?C}ZsU)5#uk}J&M`$J^LB6MEAPeYA#JaUGqO6@n)M-rCqray z9AGA33C!S(1VjL?UBu)HC@ii)@6$P6DRaDB?Rcrqk)s{ss<_clccIdC^G1K?wMJN= zgZb{R3KV&SO*+?z^Y7B?O2}fcTJ1ghikG=|`~sH{2QZf#@krK}^c&V&<~5(!m7c)v zA7V=dN3k5w!iRH$SdC9G4#gk!pdMff83vbx;>oeK)np`0BhPIX7Gd$u%x!kP^G6a) z6aDnZ>_BBGWl}GH>x#aas8w9kZ<>3gAXj4nL4mHkn^Cywo@$(s2;V zWg(zDTnDr7TCTtnqZbxyAf#93)+ie80H?>Z9Fm4}v9}_a)o3bHUGcXDPE;;>Lb81Y zzDF5!s8&&GUfZBy((uNZwc6bKUly^k${3A9DxB?fG=QmkEoPfKn%bP2<;JNPT7JSYy=blRs)s;3OAANXSGAF`nPM} z?We*Du8=ggE{FfM%5kx3kd{AFwY0iwP%!_3YjC~A$=orKl|7vetIU7iYmOVnpSdgM zT#3=8e~&u{!Dou~JI|otm}JLKRfG7LzDwOzgT(2KrFg!81<`F2Or)u_(mVGuCi&Y- z6D=pT!ah8j^O|zLDU)BoKV6yWSfN}tSoqgg=!AXq#iuH>9m|yq_>jdsl+Du(Zwr(3QSK0L+A)~KVVV#JKF0VpdST|sry|_foZC1$@NzZ-xo**&MIR=MCt5us!q|Q)5`` zd-YA-RU7~6J8$Q{V|`ouX4e(h4-FQljI}er3~~wJQ-0}Q)J$E-D73)D#%is&y;>;7 zc0xJiFOVSz)uJIY#F)u17C%E!Wtf1J4S~g{6eu9p$EeRaKrrK4|4^= zu^iY!v>0vt0&zpNaBM!flMeWU8`r|d2xsrhgT(IIs#LcCD9Qm+jS*EvMLAHuU_=s_ zPst^H{NIg`E%3I71^1#B>Oy|^SzB{i2(<69p#(E=+VuGqYaH4J&sU}QMMDxcX$J92 zBdXZO`zgtXOyWRq9AlNa_o9~TLiz=I^R1?V_Ym8f?EGRiVYVj{>4`DS0>f|i^oV( z!VP~xmQOT5O4xCcM1*0)m-zzAJm@}j7Jz_{9Xb$f#0*?o^#>GF&krO3VvL} z$4I#Ka7}Pq;cDP&)^&}())QkV+!Jt3aQDOQfGX^ExS{yH5pE>hL_h~_7jI5PiQwC8 zz({H4YpB=EA=R?h?2qaF@Yd4|f&ZT)1oC&V@S_FbuFB zzk9*G84P-W8^8C%ErGio?ryklxclK2z^#CL&V++^z+^xGU{r?@1c2p$g@Dg*k3ZP{IeHtm(pDQTl+ehm%Bm)P5wRK{69S5a&B%@RBxZ7ev4pXkMJ@V@5o#H z6|k9ccQO-p(4PT1Z&P?zza4sq`>D0S8zrT%4Ld#*5;UtGBaYuv@3 zU+wG2#|i(9WE>t^kl>^{mW1u$w{T=vQ_~c$*ZzWqhwF#dhleOHHDGs*KwhpLmTHK~w)iV%oGap9xbsd|X2R#$3Eh~O&!xF02qYXc zF?FpKef{?P!X&vj7A4apiYOzUMc4k&oB)2`#bLVeq~SW0R$1};x-P5=v~J2t zAxhg|{%EC;u&r?MR_VD0VQ~rk%7O;5^P;f$OXT={!gF5bA|V5WpM~`EDiMs)6LC^~N0UeNw zD^ub21D~kJ!{y?!n+SXvflkdv0p?tYFk8hP(2e^@wwkTO2gDr|(er9x5(34q==VJJ z_Za#u9Ya;jq2C2N#Lpm8p`A@XIxK|=pOswaf2&537g?hC5yz~Xy5f3b43s9Ct~}$5 zBB}^!&igV>jsKq5=C*Y8aM@qYH)C}IXa0+Rqu)F+;id$QktiH zqOXQOaS_ILQM4!~wmQ03yjVcQDJpRzh|>>L7rYAkW}B`~T92lHsOyQXZa*80iSl%zE< zzyLh{%ZkiRMb9lTXRYxz5$lq!S%H}$+VU~jT#1XiaOkP+s}@FC4b0^3>vSyW!aHQ? zo2nll5{B5>Uh~#?pXw~*3$I$HO|WsAf?hBq-_7Z>UH0A+@|WOzRGg(o)`KFunN2xc zTU~IE&%atWZK4H4W9ln{%O2280o}y>Ov+(N)H+?cpRcQ-y^qs?I+eTb6>zBmzU3W0 zh$Z9+t+=cj1r(hW#J^loXAk64y6Ws2@x=$aPyL1Ap0vbNo^sKWk! z;C}|f4%9V7W*yRHj?RUyFOz6mn^lo+yC{4R7*efCAARvZg1^1^8uBs2-kq5^XP4h_ z99=$4Rdk$2r<*pgQ1BVmkHGL56?L{=;lb%nw2-} zY|UccO>3VnyHB$>A&2?mQuD>h^H$FC^Xsbk7R}+Lk5hP2uMwEYTnC^CoBgzSA!cb^YH?6n&bSDSJEm(l7zB5aXs=H{BSa&3MZ zGua5V!#fC64~q;;n~~+h zZ$&?&is7zip7-ecIOeanxndmyrAyT=Q|+@YJHBX;jXbN zvvY6Sc5k^(XcMF+BPBPNij^vmouzBbV(u8jsSDvl)*i+B3@DWbqd2R(0+j-_0%v%0 zE!7+UWD9AazjpW#RisnRz|`(SkZu`kCT>S1!T^N)r<&Nr&J_l=0vECJO`H_RanTcr%;C2!ZHG}+y4k3VX*>84c7t$0HfrF_xWb`8o znc^dq)|cK=yGbK{)!+(mZ?(brigZzbmGi@T+n_w!4w;TR{VW~0r&5C%0AKVWv)YF~ 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 z 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

ft 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

g&iqh#!0O%6 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 WaU5~WTj3u9KWz(N<0yfUKmP}DdXHBC delta 84971 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 to configure up to three NTP servers (#177) + * Delete module User Test as module Wemos D1 mini has same/more user configurable GPIO (#178) + * Add more user configurable GPIO to module ElectroDragon (#183) + * + * 4.0.3 20170309 * Renamed Module NodeMCU to WeMos D1 mini * Add GPIO1 as user option to some modules * Add Buttons, Relays and Leds to user configurable options (#159) * Add description on Module parameters web page to some well known GPIOs (#107, #171) - * + * * 4.0.2 20170308 * Restore correct seriallog level after Serial logging was disabled * Add simple dimmer slider to Sonoff Led web page diff --git a/sonoff/settings.h b/sonoff/settings.h index f8b25fed9..c3562851f 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -145,7 +145,7 @@ struct SYSCFG { uint16_t hlw_mkwh; // MaxEnergy uint16_t hlw_mkwhs; // MaxEnergyStart - uint16_t pulsetime; + uint16_t ex_pulsetime; // Not used since 4.0.4 uint8_t poweronstate; uint16_t blinktime; uint16_t blinkcount; @@ -188,6 +188,10 @@ struct SYSCFG { char web_password[33]; uint8_t switchmode[4]; + + char ntp_server[3][33]; + uint16_t pulsetime[MAX_PULSETIMERS]; + } sysCfg; struct RTCMEM { diff --git a/sonoff/settings.ino b/sonoff/settings.ino index 82ee1e0c4..11a4eeac8 100644 --- a/sonoff/settings.ino +++ b/sonoff/settings.ino @@ -416,7 +416,6 @@ void CFG_DefaultSet2() { sysCfg.savedata = SAVE_DATA; sysCfg.savestate = SAVE_STATE; - sysCfg.module = MODULE; sysCfg.model = 0; sysCfg.timezone = APP_TIMEZONE; strlcpy(sysCfg.otaUrl, OTA_URL, sizeof(sysCfg.otaUrl)); @@ -455,7 +454,7 @@ void CFG_DefaultSet2() sysCfg.power = APP_POWER; sysCfg.poweronstate = APP_POWERON_STATE; - sysCfg.pulsetime = APP_PULSETIME; +// sysCfg.pulsetime = APP_PULSETIME; sysCfg.ledstate = APP_LEDSTATE; // sysCfg.switchmode = SWITCH_MODE; sysCfg.blinktime = APP_BLINKTIME; @@ -471,7 +470,6 @@ void CFG_DefaultSet2() sysCfg.domoticz_key_idx[i] = 0; sysCfg.domoticz_switch_idx[i] = 0; } - for (byte i = 0; i < 12; i++) sysCfg.domoticz_sensor_idx[i] = 0; sysCfg.hlw_pcal = HLW_PREF_PULSE; sysCfg.hlw_ucal = HLW_UREF_PULSE; @@ -494,6 +492,29 @@ void CFG_DefaultSet2() sysCfg.hlw_mkwh = 0; // MaxEnergy sysCfg.hlw_mkwhs = 0; // MaxEnergyStart + CFG_DefaultSet_3_2_4(); + + strlcpy(sysCfg.friendlyname[0], FRIENDLY_NAME, sizeof(sysCfg.friendlyname[0])); + strlcpy(sysCfg.friendlyname[1], FRIENDLY_NAME"2", sizeof(sysCfg.friendlyname[1])); + strlcpy(sysCfg.friendlyname[2], FRIENDLY_NAME"3", sizeof(sysCfg.friendlyname[2])); + strlcpy(sysCfg.friendlyname[3], FRIENDLY_NAME"4", sizeof(sysCfg.friendlyname[3])); + + CFG_DefaultSet_3_9_3(); + + strlcpy(sysCfg.switch_topic, "0", sizeof(sysCfg.switch_topic)); + sysCfg.mqtt_switch_retain = MQTT_SWITCH_RETAIN; + sysCfg.mqtt_enabled = MQTT_USE; + + sysCfg.emulation = EMULATION; + + strlcpy(sysCfg.web_password, WEB_PASSWORD, sizeof(sysCfg.web_password)); + + CFG_DefaultSet_4_0_4(); + sysCfg.pulsetime[0] = APP_PULSETIME; +} + +void CFG_DefaultSet_3_2_4() +{ sysCfg.ws_pixels = WS2812_LEDS; sysCfg.ws_red = 255; sysCfg.ws_green = 0; @@ -505,14 +526,16 @@ void CFG_DefaultSet2() sysCfg.ws_scheme = 0; sysCfg.ws_width = 1; sysCfg.ws_wakeup = 0; +} - strlcpy(sysCfg.friendlyname[0], FRIENDLY_NAME, sizeof(sysCfg.friendlyname[0])); - strlcpy(sysCfg.friendlyname[1], FRIENDLY_NAME"2", sizeof(sysCfg.friendlyname[1])); - strlcpy(sysCfg.friendlyname[2], FRIENDLY_NAME"3", sizeof(sysCfg.friendlyname[2])); - strlcpy(sysCfg.friendlyname[3], FRIENDLY_NAME"4", sizeof(sysCfg.friendlyname[3])); +void CFG_DefaultSet_3_9_3() +{ + for (byte i = 0; i < 4; i++) sysCfg.domoticz_switch_idx[i] = 0; + for (byte i = 0; i < 12; i++) sysCfg.domoticz_sensor_idx[i] = 0; + sysCfg.module = MODULE; for (byte i = 0; i < MAX_GPIO_PIN; i++) sysCfg.my_module.gp.io[i] = 0; - + sysCfg.led_pixels = 0; for (byte i = 0; i < 5; i++) sysCfg.led_color[i] = 255; sysCfg.led_table = 0; @@ -522,14 +545,18 @@ void CFG_DefaultSet2() sysCfg.led_scheme = 0; sysCfg.led_width = 0; sysCfg.led_wakeup = 0; - - strlcpy(sysCfg.switch_topic, "0", sizeof(sysCfg.switch_topic)); - sysCfg.mqtt_switch_retain = MQTT_SWITCH_RETAIN; - sysCfg.mqtt_enabled = MQTT_USE; +} - sysCfg.emulation = EMULATION; - - strlcpy(sysCfg.web_password, WEB_PASSWORD, sizeof(sysCfg.web_password)); +void CFG_DefaultSet_4_0_4() +{ + strlcpy(sysCfg.ntp_server[0], NTP_SERVER1, sizeof(sysCfg.ntp_server[0])); + strlcpy(sysCfg.ntp_server[1], NTP_SERVER2, sizeof(sysCfg.ntp_server[1])); + strlcpy(sysCfg.ntp_server[2], NTP_SERVER3, sizeof(sysCfg.ntp_server[2])); + for (byte j =0; j < 3; j++) + for (byte i = 0; i < strlen(sysCfg.ntp_server[j]); i++) + if (sysCfg.ntp_server[j][i] == ',') sysCfg.ntp_server[j][i] = '.'; + sysCfg.pulsetime[0] = sysCfg.ex_pulsetime; + for (byte i = 1; i < MAX_PULSETIMERS; i++) sysCfg.pulsetime[i] = 0; } void CFG_Default() @@ -657,7 +684,7 @@ void CFG_Delta() { if (sysCfg.version != VERSION) { // Fix version dependent changes if (sysCfg.version < 0x03000600) { // 3.0.6 - Add parameter - sysCfg.pulsetime = APP_PULSETIME; + sysCfg.ex_pulsetime = APP_PULSETIME; } if (sysCfg.version < 0x03010100) { // 3.1.1 - Add parameter sysCfg.poweronstate = APP_POWERON_STATE; @@ -673,17 +700,7 @@ void CFG_Delta() getClient(sysCfg.friendlyname[0], sysCfg.mqtt_client, sizeof(sysCfg.friendlyname[0])); } if (sysCfg.version < 0x03020400) { // 3.2.4 - Add parameter - sysCfg.ws_pixels = WS2812_LEDS; - sysCfg.ws_red = 255; - sysCfg.ws_green = 0; - sysCfg.ws_blue = 0; - sysCfg.ws_ledtable = 0; - sysCfg.ws_dimmer = 8; - sysCfg.ws_fade = 0; - sysCfg.ws_speed = 1; - sysCfg.ws_scheme = 0; - sysCfg.ws_width = 1; - sysCfg.ws_wakeup = 0; + CFG_DefaultSet_3_2_4(); } if (sysCfg.version < 0x03020500) { // 3.2.5 - Add parameter getClient(sysCfg.friendlyname[0], sysCfg.mqtt_client, sizeof(sysCfg.friendlyname[0])); @@ -699,27 +716,13 @@ void CFG_Delta() if (sysCfg.version < 0x03020C00) { // 3.2.12 - Add parameter sysCfg.sleep = APP_SLEEP; } - if (sysCfg.version < 0x03090204) { // 3.9.2d - Add parameter - for (byte i = 0; i < 4; i++) sysCfg.domoticz_switch_idx[i] = 0; - for (byte i = 0; i < 12; i++) sysCfg.domoticz_sensor_idx[i] = 0; - - sysCfg.module = MODULE; - for (byte i = 0; i < MAX_GPIO_PIN; i++) sysCfg.my_module.gp.io[i] = 0; - - sysCfg.led_pixels = 0; - for (byte i = 0; i < 5; i++) sysCfg.led_color[i] = 255; - sysCfg.led_table = 0; - for (byte i = 0; i < 3; i++) sysCfg.led_dimmer[i] = 10; - sysCfg.led_fade = 0; - sysCfg.led_speed = 0; - sysCfg.led_scheme = 0; - sysCfg.led_width = 0; - sysCfg.led_wakeup = 0; + if (sysCfg.version < 0x03090300) { // 3.9.2d - Add parameter + CFG_DefaultSet_3_9_3(); } if (sysCfg.version < 0x03090700) { // 3.9.7 - Add parameter sysCfg.emulation = EMULATION; } - if (sysCfg.version < 0x03091301) { + if (sysCfg.version < 0x03091400) { strlcpy(sysCfg.web_password, WEB_PASSWORD, sizeof(sysCfg.web_password)); } if (sysCfg.version < 0x03091500) { @@ -728,7 +731,9 @@ void CFG_Delta() if (sysCfg.version < 0x04000200) { sysCfg.button_restrict = 0; } - + if (sysCfg.version < 0x04000400) { + CFG_DefaultSet_4_0_4(); + } sysCfg.version = VERSION; } } diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index ea150d8d3..b869e07ef 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -12,9 +12,9 @@ //#define ALLOW_MIGRATE_TO_V3 #ifdef ALLOW_MIGRATE_TO_V3 - #define VERSION 0x03091A00 // 3.9.26 + #define VERSION 0x03091B00 // 3.9.27 #else - #define VERSION 0x04000300 // 4.0.3 + #define VERSION 0x04000400 // 4.0.4 #endif // ALLOW_MIGRATE_TO_V3 enum log_t {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE, LOG_LEVEL_ALL}; @@ -112,6 +112,7 @@ enum emul_t {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; #define MQTT_RETRY_SECS 10 // Seconds to retry MQTT connection #define APP_POWER 0 // Default saved power state Off #define MAX_DEVICE 1 // Max number of devices +#define MAX_PULSETIMERS 4 // Max number of supported pulse timers #define WS2812_MAX_LEDS 256 // Max number of LEDs #define MAX_POWER_HOLD 10 // Time in SECONDS to allow max agreed power (Pow) @@ -241,7 +242,7 @@ byte logidx = 0; // Index in Web log buffer byte logajaxflg = 0; // Reset web console log byte Maxdevice = MAX_DEVICE; // Max number of devices supported int status_update_timer = 0; // Refresh initial status -uint16_t pulse_timer = 0; // Power off timer +uint16_t pulse_timer[MAX_PULSETIMERS] = { 0 }; // Power off timer uint16_t blink_timer = 0; // Power cycle timer uint16_t blink_counter = 0; // Number of blink cycles uint8_t blink_power; // Blink power state @@ -820,12 +821,12 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"PowerOnState\":%d}"), sysCfg.poweronstate); } - else if (!strcmp(type,"PULSETIME")) { + else if (!strcmp(type,"PULSETIME") && (index > 0) && (index <= MAX_PULSETIMERS)) { if (data_len > 0) { - sysCfg.pulsetime = payload16; // 0 - 65535 - pulse_timer = 0; + sysCfg.pulsetime[index -1] = payload16; // 0 - 65535 + pulse_timer[index -1] = 0; } - snprintf_P(svalue, sizeof(svalue), PSTR("{\"PulseTime\":%d}"), sysCfg.pulsetime); + snprintf_P(svalue, sizeof(svalue), PSTR("{\"PulseTime%d\":%d}"), index, sysCfg.pulsetime[index -1]); } else if (!strcmp(type,"BLINKTIME")) { if ((data_len > 0) && (payload > 2) && (payload <= 3600)) { @@ -1011,6 +1012,14 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"LogPort\":%d}"), sysCfg.syslog_port); } + else if (!strcmp(type,"NTPSERVER") && (index > 0) && (index <= 3)) { + if ((data_len > 0) && (data_len < sizeof(sysCfg.ntp_server[0]))) { + strlcpy(sysCfg.ntp_server[index -1], (payload == 1) ? (index==1)?NTP_SERVER1:(index==2)?NTP_SERVER2:NTP_SERVER3 : dataBuf, sizeof(sysCfg.ntp_server[0])); + for (i = 0; i < strlen(sysCfg.ntp_server[index -1]); i++) if (sysCfg.ntp_server[index -1][i] == ',') sysCfg.ntp_server[index -1][i] = '.'; + restartflag = 2; + } + snprintf_P(svalue, sizeof(svalue), PSTR("{\"NTPServer%d\":\"%s\"}"), index, sysCfg.ntp_server[index -1]); + } else if (!strcmp(type,"AP")) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { @@ -1232,7 +1241,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } mqtt_publish_topic_P(0, PSTR("COMMANDS2"), svalue); - snprintf_P(svalue, sizeof(svalue), PSTR("{\"Commands3\":\"%s%s, PulseTime, BlinkTime, BlinkCount, ButtonRestrict"), (Maxdevice == 1) ? "Power, Light" : "Power1, Power2, Light1 Light2", (sysCfg.module != MOTOR) ? ", PowerOnState" : ""); + snprintf_P(svalue, sizeof(svalue), PSTR("{\"Commands3\":\"%s%s, PulseTime, BlinkTime, BlinkCount, ButtonRestrict, NtpServer"), (Maxdevice == 1) ? "Power, Light" : "Power1, Power2, Light1 Light2", (sysCfg.module != MOTOR) ? ", PowerOnState" : ""); #ifdef USE_WEBSERVER snprintf_P(svalue, sizeof(svalue), PSTR("%s, Weblog, Webserver, WebPassword, Emulation"), svalue); #endif @@ -1307,7 +1316,7 @@ void do_cmnd_power(byte device, byte state) if ((device < 1) || (device > Maxdevice)) device = 1; byte mask = 0x01 << (device -1); - pulse_timer = 0; + pulse_timer[(device -1)&3] = 0; if (state <= 2) { if ((blink_mask & mask)) { blink_mask &= (0xFF ^ mask); // Clear device mask @@ -1327,7 +1336,7 @@ void do_cmnd_power(byte device, byte state) #ifdef USE_DOMOTICZ domoticz_updatePowerState(device); #endif // USE_DOMOTICZ - if (device == 1) pulse_timer = (power & mask) ? sysCfg.pulsetime : 0; + pulse_timer[(device -1)&3] = (power & mask) ? sysCfg.pulsetime[(device -1)&3] : 0; } else if (state == 3) { // Blink if (!(blink_mask & mask)) { @@ -1510,7 +1519,7 @@ void every_second() { char svalue[MESSZ]; - if (pulse_timer > 111) pulse_timer--; + for (byte i = 0; i < MAX_PULSETIMERS; i++) if (pulse_timer[i] > 111) pulse_timer[i]--; if (seriallog_timer) { seriallog_timer--; @@ -1625,10 +1634,11 @@ void stateloop() if (!latching_relay_pulse) setLatchingRelay(0, 0); } - if ((pulse_timer > 0) && (pulse_timer < 112)) { - pulse_timer--; - if (!pulse_timer) do_cmnd_power(1, 0); - } + for (byte i = 0; i < MAX_PULSETIMERS; i++) + if ((pulse_timer[i] > 0) && (pulse_timer[i] < 112)) { + pulse_timer[i]--; + if (!pulse_timer[i]) do_cmnd_power(i +1, 0); + } if (blink_mask) { blink_timer--; @@ -1815,7 +1825,10 @@ void stateloop() savedatacounter--; if (savedatacounter <= 0) { if (sysCfg.savestate) { - if (!((sysCfg.pulsetime > 0) && (sysCfg.pulsetime < 30) && ((sysCfg.power &0xFE) == (power &0xFE)))) sysCfg.power = power; + byte mask = 0xFF; + for (byte i = 0; i < MAX_PULSETIMERS; i++) + if ((sysCfg.pulsetime[i] > 0) && (sysCfg.pulsetime[i] < 30)) mask &= ~(1 << i); + if (!((sysCfg.power &mask) == (power &mask))) sysCfg.power = power; } CFG_Save(); savedatacounter = sysCfg.savedata; diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index feda506e0..8064f47b2 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -113,7 +113,6 @@ enum module_t { EXS_RELAY, WION, WEMOS, - USER_TEST, MAXMODULE }; /********************************************************************************************/ @@ -299,12 +298,12 @@ const mytmplt modules[MAXMODULE] PROGMEM = { GPIO_KEY1, // GPIO02 Button 1 GPIO_USER, // GPIO03 Serial TXD and Optional sensor GPIO_USER, // GPIO04 Optional sensor - 0, + GPIO_USER, // GPIO05 Optional sensor 0, 0, 0, 0, 0, 0, // Flash connection GPIO_REL2, // GPIO12 Red Led and Relay 2 (0 = Off, 1 = On) GPIO_REL1, // GPIO13 Red Led and Relay 1 (0 = Off, 1 = On) GPIO_USER, // GPIO14 Optional sensor - 0, + GPIO_USER, // GPIO15 Optional sensor GPIO_LED1 // GPIO16 Green/Blue Led (1 = On, 0 = Off) }, { "EXS Relay", // Latching relay https://ex-store.de/ESP8266-WiFi-Relay-V31 (ESP8266) @@ -347,19 +346,6 @@ const mytmplt modules[MAXMODULE] PROGMEM = { GPIO_USER, // GPIO14 D5 GPIO_USER, // GPIO15 D8 GPIO_USER // GPIO16 D0 Wemos Wake - }, - { "User Test", // Sonoff Basic User Test (ESP8266) - GPIO_KEY1, // GPIO00 Button - GPIO_USER, // GPIO01 Serial RXD and Optional sensor - GPIO_USER, // GPIO02 Optional sensor - GPIO_USER, // GPIO03 Serial TXD and Optional sensor - GPIO_USER, // GPIO04 Optional sensor - GPIO_USER, // GPIO05 Optional sensor - 0, 0, 0, 0, 0, 0, // Flash connection - GPIO_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On) - GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - GPIO_USER, // GPIO14 Optional sensor - 0, 0 } }; diff --git a/sonoff/support.ino b/sonoff/support.ino index 615ea0159..5c78c2ef3 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -827,9 +827,15 @@ void rtc_second() void rtc_init(rtcCallback cb) { rtcCb = cb; - sntp_setservername(0, (char*)NTP_SERVER1); - sntp_setservername(1, (char*)NTP_SERVER2); - sntp_setservername(2, (char*)NTP_SERVER3); + +// sntp_setservername(0, (char*)NTP_SERVER1); +// sntp_setservername(1, (char*)NTP_SERVER2); +// sntp_setservername(2, (char*)NTP_SERVER3); + + sntp_setservername(0, sysCfg.ntp_server[0]); + sntp_setservername(1, sysCfg.ntp_server[1]); + sntp_setservername(2, sysCfg.ntp_server[2]); + sntp_stop(); sntp_set_timezone(0); // UTC time sntp_init(); diff --git a/sonoff/user_config.h b/sonoff/user_config.h index 4949bfff9..efc05b61d 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -18,10 +18,10 @@ // -- Wifi ---------------------------------------- //#define USE_STATIC_IP_ADDRESS // Enable optional static IP address (Use DHCP by disabling using //) - #define WIFI_IP_ADDRESS 192,168,2,72 // IP address - #define WIFI_GATEWAY 192,168,2,254 // Gateway IP address - #define WIFI_DNS 192,168,2,27 // DNS IP address (might be the same as WIFI_GATEWAY) - #define WIFI_SUBNETMASK 255,255,255,0 // Network mask + #define WIFI_IP_ADDRESS 192,168,2,72 // IP address using commas + #define WIFI_GATEWAY 192,168,2,254 // Gateway IP address using commas + #define WIFI_DNS 192,168,2,27 // DNS IP address (might be the same as WIFI_GATEWAY) using commas + #define WIFI_SUBNETMASK 255,255,255,0 // Network mask using commas #define STA_SSID1 "indebuurt1" // [Ssid1] Wifi SSID #define STA_PASS1 "VnsqrtnrsddbrN" // [Password1] Wifi password #define STA_SSID2 "indebuurt2" // [Ssid2] Optional alternate AP Wifi SSID @@ -97,9 +97,9 @@ #define MQTT_HOST_DISCOVERY // Find MQTT host server (overrides MQTT_HOST if found) // -- Time - Up to three NTP servers in your region -#define NTP_SERVER1 "pool.ntp.org" -#define NTP_SERVER2 "nl.pool.ntp.org" -#define NTP_SERVER3 "0.nl.pool.ntp.org" +#define NTP_SERVER1 "pool.ntp.org" // [NtpServer1] Select first NTP server by name or IP address (129.250.35.250) +#define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Select second NTP server by name or IP address (5.39.184.5) +#define NTP_SERVER3 "0.nl.pool.ntp.org" // [NtpServer3] Select third NTP server by name or IP address (93.94.224.67) // -- Time - Start Daylight Saving Time and timezone offset from UTC in minutes #define TIME_DST Last, Sun, Mar, 2, +120 // Last sunday in march at 02:00 +120 minutes diff --git a/sonoff/xdrv_snfled.ino b/sonoff/xdrv_snfled.ino index e77bb373c..d4df40ac4 100644 --- a/sonoff/xdrv_snfled.ino +++ b/sonoff/xdrv_snfled.ino @@ -185,7 +185,7 @@ void sl_animate() boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_len, int16_t payload, char *svalue, uint16_t ssvalue) { - boolean serviced = true; + boolean serviced = true, coldim = false; if (!strcmp(type,"COLOR")) { uint8_t my_color[5]; @@ -206,25 +206,21 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le float fmyWarm = (float)my_color[1] * newDim; sysCfg.led_color[0] = (uint8_t)fmyCold; sysCfg.led_color[1] = (uint8_t)fmyWarm; - do_cmnd_power(index, 1); -#ifdef USE_DOMOTICZ - mqtt_publishDomoticzPowerState(index); -#endif // USE_DOMOTICZ + coldim = true; + } else { + sl_setDim(sysCfg.led_dimmer[0]); + uint16_t color = (uint16_t)sl_dcolor[0] << 8; + color += (uint16_t)sl_dcolor[1]; + snprintf_P(svalue, ssvalue, PSTR("{\"Color\":\"%04X\"}"), color); } - sl_setDim(sysCfg.led_dimmer[0]); - uint16_t color = (uint16_t)sl_dcolor[0] << 8; - color += (uint16_t)sl_dcolor[1]; - snprintf_P(svalue, ssvalue, PSTR("{\"Color\":\"%04X\"}"), color); } else if (!strcmp(type,"DIMMER")) { if ((data_len > 0) && (payload >= 0) && (payload <= 100)) { sysCfg.led_dimmer[0] = payload; - do_cmnd_power(index, 1); -#ifdef USE_DOMOTICZ - mqtt_publishDomoticzPowerState(index); -#endif // USE_DOMOTICZ + coldim = true; + } else { + snprintf_P(svalue, ssvalue, PSTR("{\"Dimmer\":%d}"), sysCfg.led_dimmer[0]); } - snprintf_P(svalue, ssvalue, PSTR("{\"Dimmer\":%d}"), sysCfg.led_dimmer[0]); } else if (!strcmp(type,"LEDTABLE")) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { @@ -276,6 +272,19 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le else { serviced = false; // Unknown command } + if (coldim) { +// do_cmnd_power(index, (sysCfg.led_dimmer[0]>0)); + if (sysCfg.led_dimmer[0] && !(power&1)) do_cmnd_power(1, 1); + else if (!sysCfg.led_dimmer[0] && (power&1)) do_cmnd_power(1, 0); +#ifdef USE_DOMOTICZ + mqtt_publishDomoticzPowerState(1); +#endif // USE_DOMOTICZ + sl_setDim(sysCfg.led_dimmer[0]); + uint16_t color = (uint16_t)sl_dcolor[0] << 8; + color += (uint16_t)sl_dcolor[1]; + snprintf_P(svalue, ssvalue, PSTR("{\"POWER\":\"%s\", \"Dimmer\":%d, \"Color\":\"%04X\"}"), + (power &1)?MQTT_STATUS_ON:MQTT_STATUS_OFF, sysCfg.led_dimmer[0], color); + } return serviced; }