From 41acee93d846e7d5d2f4df06dfea32c74a4c0386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Tue, 8 May 2018 19:26:41 -0400 Subject: [PATCH 01/13] Linky en mode production #20 #25 --- core/ajax/teleinfo.ajax.php | 1 + core/class/teleinfo.class.php | 52 +++++++++++++++++++++-------------- plugin_info/configuration.php | 32 +++++++++++++++------ plugin_info/info.json | 2 +- 4 files changed, 58 insertions(+), 29 deletions(-) diff --git a/core/ajax/teleinfo.ajax.php b/core/ajax/teleinfo.ajax.php index 911486c..4f5334d 100644 --- a/core/ajax/teleinfo.ajax.php +++ b/core/ajax/teleinfo.ajax.php @@ -273,6 +273,7 @@ case 'diagnostic_step4': $return = array(); $return['message'] = ''; + $return['launch_url'] = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); $return['result'] = '1'; try { $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; diff --git a/core/class/teleinfo.class.php b/core/class/teleinfo.class.php index afb66be..76d8d06 100644 --- a/core/class/teleinfo.class.php +++ b/core/class/teleinfo.class.php @@ -112,12 +112,8 @@ public static function runDeamon($_debug = false, $type = 'conso') $_debug = config::byKey('debug', 'teleinfo'); $_force = config::byKey('force', 'teleinfo'); $twoCptCartelectronic = config::byKey('2cpt_cartelectronic', 'teleinfo'); - $linky = config::byKey('linky', 'teleinfo'); - if (config::byKey('modem_vitesse', 'teleinfo') == "") { - $modemVitesse = '1200'; - } else { - $modemVitesse = config::byKey('modem_vitesse', 'teleinfo'); - } + $linky = config::byKey('linky', 'teleinfo'); + $modemVitesse = config::byKey('modem_vitesse', 'teleinfo'); if ($modemSerieAddr == "serie") { $port = config::byKey('modem_serie_addr', 'teleinfo'); } else { @@ -138,11 +134,16 @@ public static function runDeamon($_debug = false, $type = 'conso') } if ($linky == 1) { $mode = 'standard'; - $modemVitesse = '9600'; + if ($modemVitesse == "") { + $modemVitesse = '9600'; + } } else { $mode = 'historique'; - } + if ($modemVitesse == "") { + $modemVitesse = '1200'; + } + } $parsed_url = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); //exec('sudo chmod 777 ' . $port . ' > /dev/null 2>&1'); // TODO : Vérifier dans futur release si tjs nécessaire @@ -194,16 +195,14 @@ public static function runDeamon($_debug = false, $type = 'conso') public static function runProductionDeamon($_debug = false, $type = 'prod') { log::add('teleinfo', 'info', '[Production] Mode local'); - $teleinfoPath = realpath(dirname(__FILE__) . '/../../ressources'); - $modemSerieAddr = config::byKey('port_production', 'teleinfo'); + $teleinfoPath = realpath(dirname(__FILE__) . '/../../ressources'); + $modemSerieAddr = config::byKey('port_production', 'teleinfo'); $_debug = config::byKey('debug_production', 'teleinfo'); $_force = config::byKey('force_production', 'teleinfo'); - $twoCptCartelectronic = config::byKey('2cpt_cartelectronic_production', 'teleinfo'); - if (config::byKey('modem_vitesse_production', 'teleinfo') == "") { - $modemVitesse = '1200'; - } else { - $modemVitesse = config::byKey('modem_vitesse_production', 'teleinfo'); - } + $twoCptCartelectronic = config::byKey('2cpt_cartelectronic_production', 'teleinfo'); + $linky = config::byKey('linky_prod', 'teleinfo'); + $modemVitesse = config::byKey('modem_vitesse_production', 'teleinfo'); + if ($modemSerieAddr == "serie") { $port = config::byKey('modem_serie_production_addr', 'teleinfo'); } else { @@ -222,9 +221,22 @@ public static function runProductionDeamon($_debug = false, $type = 'prod') } } } + + if ($linky == 1) { + $mode = 'standard'; + if ($modemVitesse == "") { + $modemVitesse = '9600'; + } + } + else { + $mode = 'historique'; + if ($modemVitesse == "") { + $modemVitesse = '1200'; + } + } + $parsed_url = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); - exec('sudo chmod 777 ' . $port . ' > /dev/null 2>&1'); log::add('teleinfo', 'info', '--------- Informations sur le master --------'); log::add('teleinfo', 'info', 'Adresse :' . config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); @@ -235,8 +247,8 @@ public static function runProductionDeamon($_debug = false, $type = 'prod') log::add('teleinfo', 'info', 'Debug : ' . $_debug); log::add('teleinfo', 'info', 'Force : ' . $_force); log::add('teleinfo', 'info', 'Port modem : ' . $port); - log::add('teleinfo', 'info', 'Type : ' . $type); - + log::add('teleinfo', 'info', 'Type : ' . $type); + log::add('teleinfo', 'info', 'Mode : ' . $mode); $_debug = ($_debug) ? "1" : "0"; $_force = ($_force) ? "1" : "0"; log::add('teleinfo', 'info', '---------------------------------------------'); @@ -248,7 +260,7 @@ public static function runProductionDeamon($_debug = false, $type = 'prod') } else { log::add('teleinfo', 'info', 'Fonctionnement en mode 1 compteur'); $teleinfoPath = $teleinfoPath . '/teleinfo.py'; - $cmd = 'nice -n 19 /usr/bin/python ' . $teleinfoPath . ' -d ' . $_debug . ' -p ' . $port . ' -v ' . $modemVitesse . ' -e ' . $ip_interne . ' -c ' . config::byKey('api') . ' -f ' . $_force . ' -t ' . $type . ' -r ' . realpath(dirname(__FILE__)); + $cmd = 'nice -n 19 /usr/bin/python ' . $teleinfoPath . ' -d ' . $_debug . ' -p ' . $port . ' -v ' . $modemVitesse . ' -e ' . $ip_interne . ' -c ' . config::byKey('api') . ' -f ' . $_force . ' -t ' . $type . ' -m ' . $mode . ' -r ' . realpath(dirname(__FILE__)); } log::add('teleinfo', 'info', '[Production] Exécution du service : ' . $cmd); diff --git a/plugin_info/configuration.php b/plugin_info/configuration.php index a4b99bd..b7dade9 100644 --- a/plugin_info/configuration.php +++ b/plugin_info/configuration.php @@ -92,10 +92,10 @@ - - + + +
+ +
+ + + + +
@@ -179,13 +196,12 @@
- - - + - + diff --git a/plugin_info/info.json b/plugin_info/info.json index df9f40e..b6a2d8e 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -15,5 +15,5 @@ }, "changelog" : "https://NextDom.github.io/plugin-teleinfo/#language#/changelog", "documentation" : "https://NextDom.github.io/plugin-teleinfo/#language#/", - "pluginVersion" : "3.0.1" + "pluginVersion" : "3.1.0" } From 2709e1496962638507428405289ca8c86adbf1e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Tue, 8 May 2018 19:28:22 -0400 Subject: [PATCH 02/13] Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 194654b..b00fcf8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# plugin-teleinfo +# plugin-teleinfo ![build](https://travis-ci.org/NextDom/plugin-teleinfo.svg?branch=develop) Plugin pour utiliser les modems téléinformation USB sur Jeedom From 542eaf4783ae220aab6552b23cbed2d84fc16196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Wed, 9 May 2018 09:32:15 -0400 Subject: [PATCH 03/13] =?UTF-8?q?Mise=20=C3=A0=20jour=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr_FR/configuration.md | 9 +++++---- .../images/teleinformation_commandes_auto.png | Bin 24925 -> 24877 bytes docs/images/teleinformation_plugin.png | Bin 20886 -> 22765 bytes docs/images/teleinformation_serie.png | Bin 23642 -> 25246 bytes 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/fr_FR/configuration.md b/docs/fr_FR/configuration.md index 7f11254..328d8fb 100644 --- a/docs/fr_FR/configuration.md +++ b/docs/fr_FR/configuration.md @@ -1,12 +1,13 @@ Configuration === -Le plugin offre la possibilité de créer automatiquement les commandes réceptionnées. Pour cela démarrez le daemon, attendez que les premières trames arrivent puis rendez vous sur Plugin / Protocoles Domotiques / Téléinfo. -Vous devriez voir apparaitre un objet avec un ID. - ->Il est possible de désactiver la création automatique des nouveaux compteurs. +>Il est possible de désactiver la création automatique des nouveaux compteurs. Pour cela il suffit d'activer l'option depuis la page du plugin. > >![teleinfo51](../images/teleinformation_blocage.png) + +Le plugin offre la possibilité de créer automatiquement les commandes réceptionnées. Pour cela démarrez le daemon, attendez que les premières trames arrivent puis rendez vous sur Plugin / Protocoles Domotiques / Téléinfo. +Vous devriez voir apparaitre un objet avec un ID. + Cliquez sur l'objet et sélectionnez "Création automatique des commandes" en haut à droite, enfin sauvegardez. A partir de ce moment toutes les commandes reçu et non reconnu seront ajoutée automatiquement. ![teleinfo52](../images/teleinformation_objet.png) diff --git a/docs/images/teleinformation_commandes_auto.png b/docs/images/teleinformation_commandes_auto.png index 8d1a7a16065cd876afd047090439ee5b56ed0b1a..a11a704aa2aecc15341e7c95ed6b153cf09263f6 100644 GIT binary patch literal 24877 zcmce;2{_dK|NlGEuCi2QOA#uel6@JKt!$ByZA2k!S+k7MP7F!NUM7rvC)o{dw>2*Yojuz9;IIiT>e(LI*)0 z(BT^fI_4nI9up9Vh%^u-Cb-!a@%GLxBHGnY4VeyKo?fqc_+TG^Bbd{Nly(-W%R>;;?k z3!@g7l5L~j*aRDVac)g2mxww+x>n@4GWEgWKu247SyYT<+ylXKBLn3%Z;$%);p(%T8F&E9A5o5)g>+wdLT+l8*0Tm#-25F70FK3c- zP}Gd0_)pl9NXZLHmDZ!gZ$52EdEeaq=|SX4==RoQ1gT;=@_}4Zqc!U@6a@O|sbh1r zd}*lIRz^k!Uczt&y89*6i zia+xX^&11nG1s}ExRzH9R^emJ*lloOaWAEMe&JMW)-NkJe_5baB69?S zu8W7iEYD4+9$r!$sRw9GTGG03X3}>^i_Wv%&Yb(`0bW{{_b%bR?i8F zLdqfBy0GB|*s9ExdVZj!Be!qgw!`QLx1>r8iQ&>J(^#1#+TfqseJE*VG-0V11pQ{Nr!$Y5NSDQlW6B=!zx$h-4wwBIlF!=`BA z;>ZWyvaoEe?Nu2ND8l7BR$nrbuEPv~MAFa3LV$6+BAl&t{wh|QSjxDD)qnh_*byFz z*@0{=GuVVcw$_{9RzNL#ULoUd@=&7aBoy$EB4}V{yD8~FEuJAwu@LG@WZbVUV6e3- z^KW7?#@wy@`f0NpKPNwJWOTK^{&|Xcl!AkvCL&bA_w0;P0Uu?Zz{h*tNgP7kI%sRO z^nQSN(>Slb1t#FGshf4sKf|tQ-J;M_?Oc+hZ+(BC#YqbLvVRDT-d`(2Pqtc%6PWY8 z-XN4&UhM1P@-W~WROYi8yD1qn*((QDLNPAFNR^A-t9sG|o21H-!NJ9VY%StnjZLf8 zg=)s-FvJ6I+THDmZB>HEN8hx$RE8y8&3c*@;1gzF?E3WX*^7)e7117kk>i0sP=lKehvZRin1%}NZGlqrd-|NLk5sPn zU?O`9`#kX(!lBNW(B8FzHUT@>+pwyGEb`W4snrU*Xth-^4}qD|EEc_9^%~>X_NQ6N zOED9A&05b_h7`Rndf9xdE)}(+wAQw~SoC>#`_e0HTgi~@lk7Hq$;`^L%0#kS#ySMq zP4({dpu%Wj$@IiZ!|VcAs9u0(Vc3|Oz$5?7_*7(da(8VUk+YD%^@G|2OY5E~!f#c& z%J<5RLBOOBD*^5P)uSag&NZ)pI0WfILua}x1z?U@Sf1l=#WYhjZOBOWR@#r5ms=P% z&xC@|h{EXRdJsdpWcC@R>%I8<(+ZkjyvC-C5FTc_v#f(b(k!xI-Q{C)f_1JtZm{c7*_h()czQ`@6QLp&YAq(AAhC-PeppG~YCcb8dK;rjUcj-tIS z-uzn~X;*^~rTV>hxNh#yyXyah8K`G^$DUeuw;btL+p%JaLN7zGz zF2UVUjkqNHgqmK_j@zKNJYw*^CA{7!Zf>J*t%4j3Pt|8KvbaT8ZanVeOz@+2i+Rw@ zV6)TTUjBxHnX9qGN~br!i?J6+e&1F;x%aS^LRnA#v!cl=GqC0fHdK|Wl*o{AyIbql zi|b~f@}dXyMW4TvRXPeBSjbO&2vj2&(%=s3MIlxDWbo0OFp+Iz$@lfDrJdbw1=2>; zo)!20BX8*Lmz5oo_$beP?&8G#%aNr=eixa3y1UYvXhqAHPRe0Uy42;qk?_Enti|QeFtfd zg@wsb(gizNxRg(Z)U{+Obyjl9W)=h4EGqCaQSh>#LaBfI{rhp~y0ZF;m9~?#^P5@U z6%50Ty{nMmpE0YAZ(1~7NfSwUrB!=4Rt@-Z@5YQp=EMbk@UR=V~C3V5Ax6=FXvWTMTEK6v6v0ur;i;xGSGcpK zlVj8 zZu?FUXE+&G?O2p`xhy;2oE2p$4l6@j*7kl)i$Ip{3n0n#7SeO{p?DTe=r~0{Kg(}6 z%+#4haOr9|)3Eur&Yv|hT(hiPg;ol@#=>Q3u4i3h^jPCVm&?SCQL3puVRGy1sR$GW z^<%8fq6(IV@J0L7vXk#k7Dd#PWEMV@>e&qn92lYd{G^2WVCDTa#~<@+ z8~%0~#U%veY}bxTyb+e@bFNXnrXR}j8ymrkqxjtIvwx`n(bz(?O{?{z<=|>SaMIQM z2-@+S%T6aMzX8##*UdP3ij}&CRrt$IRz<_CU)COE6$hH0=$nmNe~^E8OSG0=n$Lmu zI6>VLwi>@COPF9KUYVlKuy>IK?x4MCVI@n+Jd{D~5^$o{_Vq98mqQ<#;ZGO|4iEg8bbV2RBsUSjr-%*ShaUmGzvNbCW(LVsQ6O-| zB@T(j&F1CUO;F0`-Uc(_d9@<~EAY?g^)1SH13L#rV>dmXplMQ@=z1EKyBcY}J;2`b z&IkHA3ROwVOPg?{XmaWygAzmUeZ8bvp9r1mpk=;ZItQJ~@3e!@ujPWOIW;JmVY9!`+d~xuy9m?f zBa2Cxu>hDhR=!_03-gkh8$~am>oL_~kv{9gm%?tGnf&m(Y3su}_cQh#sMV>UnU#uc zl+rb(ZQxj_;VrCHt`n|( zX82Y6_7`?cu2E+NTguTb4v=-Bq7L*b`jE%xS?-vi3g^~r6ic#QbLHlhJIj1lVl}m! zNb(o5W{Npy+1iP^l7xp1`DlUzwBhpFV`!j>5~&nE5UMyC3JZNmC8}roNM~UPc1|US ze0p`^5%M+mdg9bhqsd|zoJLc8NQ+0 zzf%U*QUa5^!iODN&DihgWle*F5v4d4VjR;EmlKEDB+V~PGvi`eor-0o-ay8|M(Fp( z$aZm!FNUfMWSwrw{_Ic^h5RIz7G6npfEQy3}Tjuln zS+2!!46p|B%^;JzrkctiD#T=}_E$Q!*~e}^(BIqVQHu+(f(Dxk$nyrJPyWnjD%NnPw7Yb0Um?0C%s_f>OapqdPjdyKW z;AdP3vGl?NhX5&N_Qcvq@~^?yOFb&SUwrA>;TEj#n>Dn}A84Di#L{~2Evt|z?nrvY z!qYsV)N-8lRg%$BgNjCHzDOUSW*hXr&;UZ4u9O= z;d570rhFo;tVulVWQ~=O)e-q=u97KHlUY4L(nr_;vXM^*n$4=0zXPW${=9!W0m%)B z$YYUoNE)zo$`CQd4d2-hKEl?LJ}*g8^W`>xqE__bdZ{{Evc8 zrcVMu!0-D2x$T_O!|4Ce(F$NNj5JjI>pREE|0Vy&0KPD^l`g^(=SNrr+P#4=p*c1= zKC}XAeEi0G)G5WbI}6DT`%7Y9ke4?#HjetyRtr+fAMJ5+?>KnxX!`Ff#;bT8a1PjCH;D(FDB{%CY#gU{78S}^aJ94Lp^ zBih=vQ5C|+K_L#XrQQ*x*(*WsFTb(&cj5@~L!Eg?$PA)J?x+8YucWS9MbYQd8YG zvb!gQtch%k`ot1$~7|pev<2BaB&| zXh_Bogqg0w(^8hF%f+JxZxmU;9ZH{4qL6WA^^c~Xb-2WdfmxelKEn0_FEXv8Tk6jY zoh^4ztd|4*Y@AUXPE1Vn34oUz`F67e?4x?K>-UoID= z2#hjlPbByqEi5xbzTnzU9i1>-*!^Z=_ap-k#hui2_m?dziBx>Uc?5Je0{BRD!lL#P z4~5rK#OoswSeLg>s6#9SLLEK^M$-4o#46ni5P1aBzPA`=X1^Hxbo4avM3qtP!N<)U zpqJ(Ax&h^cJ?^i8M*MQ)ywlFH4|J@pS75L;QvfNNt@Z5<;;@D2K9T<@G&( z>94EAABaNAZ8mBzUAc};?o{P_c*E#I!{niufx+ANusC*;!UIvanLLKG?2@K5!B^(E zrBNJR)*iuiJT~vu<G9_}ge(&EM^C<5VP_!_TAZOqtvKW%dQ zpAV&tZN>y2$>wj{^c+)ijB#;sOuHspr}g18cacfAs_z4XfJ1?bznp8&+nqrk+b0q+ zcI_sHe%)^}=wMb~ujv_a9p?F;y#=MoNb`*-^^M7%-OQs+#IllStYAcoW>HxGUClOcljnJm?m zc^=NHs(`~rG21_QDSpZ3QPN}C%LjtbdtznN=<(3Al}{#-_x=6!uho@hWtmC_x{+&_ z4Pwv=B9*b>GaLzuX|c&`A}{KKvW9X~o=7W9j(vi=-PZr*KU8o_JEJ;8kK4qheIo^4 zRYMl-oT+d+0qqV+D6BwVI# zXkQrR6Q--6Z4^-Y!ZuR)qj3!tRVl+1J6SN_*Rhj&jG^Wj4~^%X&)u$Y2{h`~` zm$B#;fmsmoOqH`Jjcn`uSY~=G;QIGR%^Xi=^kCW248t~$-)iV!cZadBouao4ZS{S+ zzW6Pfgv{q#h6 zp~@7I*6_-8DZ`}s-t%os-29*_P1Xyh=CW*BEu_cDt86Q=95c&ZQVQX?lPF=-lh@m~}tC z_s!?lluYUnq=F?Po{aF4;oVILY8Z^ws8wU&(LVX*v54c6R%xuin>wp^rW4zNI^vb( zWz=!|p5)thhaT(181FdlEF%ip8`oJkVvj8Ct}gDYpV2 zi}a5PGyBpTqM2cMJ?5&&A;}PR$|W6mokM5L;?MKLBgr>KNqxO_RcAKLK1A2*UMSQF zYd{Ux9P#i=GmKj#_q%u)TK#f_v9D4L^ccV9<)G791=G{7F@3L$C^q3ox_&4;4;R2J zEqcLSF~c#;+(7?dex3H3QB#KbQHiwTRrx2mq!WAL%^drt5`{^Y6-^4XZqc{=&<6N! z1|mMD0||+tk_W*+7YHySogaE(O2{3fwZeH()lGg=lkN5#)O%!QM8Q#PlAnF@YZh0A9{C;Q`WJ}Y#OEgLL(<$->v1mn`!89_Pd zg?o!0)M$Gz_Le}e?)qc2RvNR~XV*g+FtHn&UAON_-DbDKbB-nQ1``qZ%3gK7B=eB~ zmHMPYMz4pxR&xp3_wfNlqCG3=kFg605m66snC$m)c@oh5#4xl5p1mWq+$6r3q ztqA56qoErgrPnW!B*+h7`u;enVs3<8XOJ$GD!2~|?D`RL>WGQClRaCtBbkuph?qwA z_>yTuRZ>PolPOP=WJaCqm24Jf1~;o3X|U~IGIj4ctvD-2NWI2k zwq>KLeC$0{s)Me>oy%o4sCunVKq>B0MZO8udxD_y>8HQ_KF*VMg?=gYK)h`rR@t^T zxDu+3#rdL08llt3(s8jorPS+)y8@d{$s1N9>$|G4MrIIlgTt7p&+$-o40B~Oy!VS! zk(g13y`$^RlP+K0RZ>-)2kCDn_%BTmgwmpe*hFE<(#d_tMlZHqjkt5T+7eLHa|SWv zB~2G@xgs(XWV%lLxL-2)%gy1$A7IB9p0uF8k(U>xpcjSAOvD?4zOH3B zFt&qNCfo0=Za>=2w@#ago!}iUo_=s`2*R)8c@Z@j{B69Pa_(rN;uQwoEC|1+fGG0G zBjpLVi`_=tvpm}?L>#2f4Bxxbn>M!#fuc^<1F|^CC-zmP++wKwLTLqXg6G#|qf|0a z;1ObH(?4LTUXprH*R7%}#9E3-TDpc$qJPcjLi$=yFRKQ4n)Um|t^s?n8N{oWJf9|YmdJ1k$PTw&8lZ)@08vMVOEldj!ty>0#5aitTkJnzK5m>xP&KJGSJo2of<59j{aqV!Rmr-gi6 z&P|_YdB*#)3bPB}%3dJlg~dV?tvFduOoAZ9Oudu3N7hSG&Y^Sq#d7GQ&tS1z&d!2_}9udPb*SOk9fZfMCg;}tuiDb9Ggcr>mfbb0Po zqwy+y@3vl><+9egrY8XU1d#5XX5bZ-PcM)@84i!RZg7TYO%&F(pCS6}7h4De?}TzD z>$=c*XYOkKLoT&p12>k6`HRV#BgY#@LLq`?_~oS1N@YQOAHSE`X4i;?RrIz2i7i!E zi&**?q(99*rCs^1e2ZhLA!=f2!nZvu%gF6FmVWqh{jmy<#K8vXpK1#?HUm?Nk3L7B zkRwCO-UuIXr7fyiEm?#DWZmpTN_9;ot5^v~TGW-O4D8qAlpflfr5jR#)EITSWo4wT zR;MV%z5%BC<3|i%!C?0ye@@o+9)<)di7|MMNeH#st%6b93aBCD%y}to9Q$}qDWlql zFLhV`*z33NbHLR+u$vxwk12be3(>CSWyQdjO&HlvoZGhyeSd&ddq}4yP`WjCaDJm# zkW%eUYiI~kX_)2G@B~sy`>d*GkYZu!x6Tp?(p3GP-!GOk2YQ>_t?Oskn-D$2OZ^cr zg!4}SDd;f=XQN(7Y`7oP^z?z7K|(`%%D+&W>tax*)uUo_1pNdTFs;~D{kL;#Ns+>{4Z__34)Fw~SEz%1N~^X*wk?rrqsZQBhJ-KOB6NXHFF) zoupVjk3D+O6sKXrbJV!;_b~3&?7dJe<(83Y{NwX>o1c!3%VrTetH&bgpW6Q{tVp_W zbf|zscJlzgu+^Tp%{|+HL_lKsIz^pX{338REM%Li5F5E1K0I0QyOGu$<0~y{1}+)~ zcHHaOQswOMY9JT=-{k~O*bHs+|4vc-eg^YdT6e3_Vdd=q^(%{sW{{29wL|3B8$+PbJcQ+a)9 zQW1yYJ0gB4w~yoC{v17@FCZoU9f5u}(da^4fQ(5T=!2c@>+$>hw?V|Holm~0yoNHO zaEodEAf23F=6v)n?bWzZ%cl4`_^Fuo#E#=co7cTp;FIp|524g$Sy|ax-@1k%a`@rq zxM8&xCGnbLrdYUg;OgoM=9oHD!&M#->80a&&MB1F7Cs!$}O%G->sje%%Z---BhFV@iLDhO#{YY7Pc?<>v z5G8xid5OO!MnRv9;!iufV z@{LQrX`{cnxp``8il=NfQV~+bc9P*4dp0bNmDT;sRB-K$Y>F9v))IK8Mk=^n%S`Mq zLI6y3@wCofPqAHz@fmNT|4e0v>ZelKdQ3aHAYiDvljUtW^k%jp+rI?BY#N4JL}jHL z!dhzu0$?)&4j9R9d32aH^LRQU>+Z%I*NbyA@sRVYJ34^7KBa5MGMH=aLkRkW=)`B zXafcm3I&??E>aCm>+y*dRS(?WTE#tu>;LEDu3x|I6cL1nT6tb|Qs=Wx7|v};YQ1zQ z;t$}Ev-|QELm0W5ZS!9kMqK;oV_l}FlDfKj;oc9N`;J7WgD+luv@zdjab8hPEoAOT zN-aK|A?j)1?Ck8*xZ37X+N5;(@>&|5@Ak2QvM;Y{ZoGVHEWN;vOM!$gRad%V-aKvH8SrvrUJ3{H7_fZ-G;Ht>Q9>TnX9_qxnFhvD z16UZOQnXw}&ug*pC#%0&WvoiJXXRmaxec+09lgCxUX1zm=wokUi?z6}maI7S2$0aj z2U}`R)$9*2RP~?#x%#_3ioUap#FdE?5dd+DFq}rR`wis}A34IBQ$`DliXJb&c_v*R zwe@SRCoMWUI>;a5+;p^a6EP>{ZvA@pl+}~+xo8T+bB~iPkL`>4oW||7ZfTSBQ$$WA zuxEaIgN!Qx)}-7^1Phqrr7)%k>70}JZP^PKBEO<&b7`UV3~QVgdwbpVyEe9RDEivJ zYWXo>t-$l#Yi==qGj>MMBw(RK0)DH17dbWcasS2kI58MwsdiwYYQIIT58lDXhL5wm z-CFA#Jpl0386KvL>X%Y7$x9)%q}Q&nvv0OuKRGwKA!?1S$u+$Gug3wMf=gNhwkp8! zfZaJTc6wY>oXBYcRQ~7Bw~dy;n~NhUDJdSfl8HJ$!p@Ggt}z6S4j=+VaUJgGG}kgf z)|^=Ne(l367RAws=L;yA*cC6+XuaM_m#^7XE*mL(ZNl6kcoyKT5o!`d+|aMi5`#1S z0ls|EB&MEmL;re8!>>-t7U6ViTfEmMUoF*)M3IMA3T^P4i-{Ox6IiVuv;Bg z(IxlE+FtMucz4Iy6@fhb*P|EAz-Kt5vX(vK zbZi>p9;|t=ePuD&yoAxOI#vaBR8F9?QT?anjnFIKqr{S|TbfHsqf>EiDMbUad$hms zQe+a01FGjw!)}KzMp=9MS#WQce~N=Yf4$2LtwZw@Ur=_%Vq!FS4?wV{+}?iYWy%5T z6)q;2i@j`vIbU=Pp(X#5a12Ki}`$B@)t=~0> zCuKD{g!CrshUtnvM+U=_Zm8580|_58L-Wx(nKm`}e)aM%PK^l2*+`whnEMo*9u|CA zt+7zHK=hgaVGKQMPlx?Y$xQ64C{K6t$q(-(ei(BHbZzcZ!<^$}e)t$9?x)uG>G05K zpL(XE$2--G#mSPmi+o<8m*Z2F zr^`OD`)8I4B}8pH$VQn)@I}&3lY@)6S6!${rWvVmJdKsmt^zw@wW= zRz}&|e!no^{>KzYZ#To1`dyAX%q-*i(CP7c(<-agfx0_{@@w^`>W2){6BzDI z_rlJcMkg#+w$Gh5Ww*Z~P^>EH?`seB)a~oe4gV~nHg5)L6sbA#I5)wpDInq!&C1#3 z!F_C;f84@#p**FS$`fsi`xK`zt^}7#8qwZrwP5lNlrj5Fc7267WIf(R)UskNAxmes z0W;2I`8oW%)A+8HQLDW!i?B3E(BW4$Wq+XwJ_<*i3-`sg*x_MkwS|U`;_?rT7?UyE zS?Q2!zlCzm@A(PL3ES#{-x3x1sWs2Nmxj|8!Nc;HZUL3)Wxrep4<4M?{WUT8{S9cA z2!NNpCU{L3Ew^O>P{N$NvM<7lJ4 z%&kNA9iVIYt(UQ0d#lY@0`)x<|j9>rRPZB zP}Fy<^JZczZkr$psv9dbyXvtMBQp4s-EvLliO%`b``z2ag@RNnz{(z^Pd1fNjhaR> zd)*EaRB%2sE89Ay4uV0>%E7*1_jD2@bH1Ef>FepzeYGwcC*zZ@Gn{xn@AlU>ibOqT z9v)WzSBvxXYDvnBq+O2J#ferQXZCLA=rU_Eof8rW#qWBPLhj(Di3E&C@-A`PP`zGP ze)13alTspegl0bU*$W?enQ{ZVR^eo6_$}Zl#U5}dl@(W&*V;@mCX-6hs#Eo&WH)x{ z4)d28zH4(Nl!et zbT2f73Z9ryf7URo&^9nSGA8fS)t5g_Ov1dO zmwd1{=M2ZyZok65mcvFsyacp4S$lUPFk>;tnYu;fZ@XZJ{lb>1UbFa_uH5$rOFrhcykKj zyHs%VOkToLTZw{8x}UOny)-e6y9Mrz6EpR@*w<8Ti$~11QQe-`kWJnw!{w+wNV4Yi za%iqYs0m!-6MFCo76KU0h)MGN;J5Rm<3e7*YHTZdDE2U!gRfz%p=WcKmnpIG(W#OE zwc&mRhjyiH|87DdZD;G@F+<;*JL0uEK`MPoRdM0WH>nMCzl^)yK+D~~ezQ@2t4vcf zyO6NQE{GxUX2+x@tD?Sny$J~OlW*<*FfPfk3-%G2@Li za81DskTuOOL7b&}6D5$gmr$G}Q)mK-?n>JA@!Sr#0j@lV0*mZ)b2DjkY3y(m{TtVS z{QJ!H)_)?$vK)}xH67@S<7Q%a0EA$-|Kdu>&P^4$MaVhTrBFW`G3nLPD4cIIi(pc`e`Sv1FYLk6P_vbI_I3|56RRPwakZVYSU4PoP4E z*&7T~c6SRpQk-?#f&OY+Mv?Rc{|%__f&ZxPl~4M$^6Uk;gnsNv)wQ;*JlwK!nG_cn zS3oRvmX}gQ$#yj4`1t}5jD-M13PY7}A8o6b{>w4IuYL4%^OY1IIrQqbX-4?!SRDGH z-AkcxFEr8yf=T|TdhX%jEI?o_o-&jDUpVVy6pv$Smoi~*^&|F=sVwh#_~^2$3DZ3E z_Xv2>&9T_G&WL{#Q}K!NKnC?)UE9d+^}p#F_J_hs4VHqXKRenK?DN z`v*iwU5m(n*NW|pe4Ac!|4d2(`ltNwyvuPY+7`C&H~E2;RcS{5ByhdrPGQNc;ToWc z$7+3)O{WADc`5n!FouKYIZ!H(nb>J5^O5cC#z|c|ledN}Ek~GDgA{1^!m!NOnx+UqcT9O~w6H z$jI$LEE{Z7#dew7s?=PgC`gxD6qlUk{A=t1yu?a9-8>_g!)IEfTm5-_6cu__)(7Qq zH(g}j8~+*IP#rq|T-R^K|1w|H$@Cwwl4?o|kP-EFoe$bW)kkf_jt*GU!_eTd1sLkRb(bbmB58;_NlHCK+*l~w7L%wqw)th#Air-m21oSD*8AcxR_ajVAO12K2tE^HWCSRQC`ZY8C zgb)~f^lFQ`HQ@lFFT5V3cJ-78>cM<}0X<$zqRmJ(Acx=5NLVG zsD!mJGqo;GWdCZF$jhB|rv7wQb6{c~^VJ5N-umi?=`!weI0K_6 zRVp_pw-aaC3b1i}l(CRlW0TCYaQNVW}_x#A+A1`Q3%=5>?@`nx%DwRcnBIU7gRF%zYc)yKF<+ zI7e3yBUi!3rF!&9Wxv$D}%_Ak=_l@?v}2%{QoFF&Q1;;c5rdfh>o?^7^b`7WY~4cT>r)^%Qo- z_m6*#wf~~_xxY6y;CZz}AU}Yj0jNy7?YxBhDcd$ZmYh+&L^4 z79R3qPHH?^;X&^GCmXYau$^?Fbx-eCj*N`lm1zcezj;?BMoT7}1<*=-FhO*O&>Ea< z-s!;|Fd8uZZBKdHdu~5>e|w&gHM1K|a6Zx<1Zme5UMnn{1Yw5&VD!~K>4TDXx;o5H zpFZIrFy=%M{`gK70NCCBqWAHO)8AkJbNm9u-s%*osHk{{A^6pe_oOMyLr~)@Q#zks z6lwslvb1rnE6oQL%-RnAQyEWVr!+oW{(sQC_&d#z4df0s79TnbP-AlhtG~Y=$e^Tj z-UsGKZ@Q}A;&Az=Pp9MWWe#crX#n}gm2ZafO;;{nyr`n0vfESR-=wzgA&?;nyRVsG z{udnwW{r07zv7d4)fu2;fa%@{T&A<1YfBuO z)D#rfSqyTPs^44>kS<_SaB*oS=_;#gW#v)D&7PujJna&(@c*DL4qeG5GeGB%tCJT2`J;PQL)+s~Wnws17pnjpng^9kwe6aPnJ9 z)BwZ(_=cD^bjKz6S3tS)zHR+eN7X`=w^-(rJblK7LGGK| zIst#huBRdgV_*Q<1tuSmMB(}L;Nim?pOgQ`Xp{k60x7Z9k&%wCWP8@w^#$ z-Tgv^LbV$TiwOVBbW|%v@0{-m!`KuR9W9J@SZ28#*4Gf&1G-R zIcz-X`3-tAu_|4{>Xk*iqm_hKVBt62XE%8%PqT}f22Df(_-41iuzdG z=LDPO>gSKcwGz!F4vGBZ1sLutkes%^ezZMA#0;#Qd|7C$wuXE%^$M!u!>C}?qEOF| zBSBt6*ZfJbE%O4tb}4<(a%8`^ws4<+zYyVdVi$6d?E z$XvL{V}m%pBF7vs7L6(|T1~vY{8%mQQvau>iOlrgG=+5gM#PVX#!-C#P+wZt2ZGkj zjQRRQ)w=n)*qOT4@x@2fAxl;C@4EpV!yWB@b8qdxSJGcBe}0|mUS0SglhI*+Iqyq; zQ>dfwV_g`|%`5&&Qp0+VR@By(=u+EjOX{Jy0nTzaL(lo&+wMJEdQjN}a#Xwh-BF{( zkdh>^s3|XQ1k}T^O)>N9)2oU^ZhE?KUq4{g{Mw_mA>YM;z2TO}IfM3rw-&$f!5u!l z4#1uFbGDw2$tV<>fx#)o*|T7J^2IpuIg=lV4+BKG`ak*TBo{cH*7>5*D_ma#)iBYK zd-+M}eZ4@pEdR|M^Y#$67Dw5r8?t6ZGcX^#rYdmJxTTi#HH=g?v>Tj!as*$k+c@5z zs4|R)-7;+fF1@1$vxakED49N38El&?Nd4KkbuIFSd01`j?ZTK#y3S>Q>oF{KSOOze z#f>2)Xe3>fszXC!Z$F4Z2Yr)12uXD1uo(*q>OLgK>@#rD&9L(rE7AF8u-HpeL^L=X z1PfgoqD8N=n&|UEExN_@xE#NsW6A+irn!2X0d9GFH%aSO8bp2Pu`y=vgA1|C{jlEK zSBuXUG)oh^ElOtzAAe{l%m=NG_f8Hy*^KEK_IYDK4*DOwkU;d&b$dePg^N^wY2;Tn zIR#ULhDz3iM}JVi6z60jW5j?@Ug7X`1HSPAxWXSIqA2b?XYk|5(r&>KxC+%MEyWb_}B2u?nV_>J+&2D ztixLaP~HIF-nc3nNhRry9$(_sQB_rD((X$$g@SiWO@fZZ>4Zxqn|p6aj}~q%qzAPX zpCfkv6!N;pa9IV6)SfqD7_SDx0=<>eAgc`I&0XZ3TU<z4szoh$>3$ zz?aM)?L~2o$xP8c`?M;p7+*>Jams|N$gLnCTsT`4x<;qA6WBCQ7l~t+@|?njn>si? z8Uf9H5Hs%E(HLa!XPzC{r24~UP}Njveq--RF5296QxuwuLSMgTFXW~ z{`RfjAXDo^^(%jqUd7Mp5d9;yZStm(C*&u9`+#vCQSO6sr-|(jUc=W94xOY_Z*IDu zs$Fijnyh+#VE?4eB961Mkvf_FcJvr{N|dA&-aZR$Kk=mi@3>RV#Vpp!-J-q&jo!LH z@;~79j{=OT-P(*?5mMk;H;nhn?srL>nW}3eiE65^r2ed;^XB| z{Ub&pS^)mc_+4s=^&zP$`GS#n zB1}+MqbaEGs%lsrQ&7_5Wa$A^PWzshbFy$|GwE*2wo*tur*=x}6{7IrEqD?!{P0## zZpCujw4@GGT5r+gC&065mDSvWcD)jM&$1-+imd&)*^{g=huD@p0N;g8 zD%1gJaxen#mM!mUw;-i$Qr^wjc-m?Py`XtC1RYUVzHG2yhOQG@5g>svTW>~hpnPBq z`j;Pv$c@#L$0_z1yN-oFgg-Ue5{>~>#Y+GMow|@JK@1hEaSiCET8IO(u~^c*eJ#<` z-O3{TbHIh5Q`VkM6B73L2Z8hb zyKCJ8SoqPAv>32rx@GS0NFn7EQg-FJ@0Ghv`*c*f?B|$VIXcX}0o~Gd2o%XO?EljC z20aKO#{IjA!m{5FUv2Rf97Rfm?vy_%Rr=4gQFUr85r^Q?gYw#% zN~>*@R(Ts6%?$aLvfiv})EOAs;+pSoX6QULgBba0oUWwjZnmhaQte7-=Gxv>#6i83 zYJ<3qg})yQ8=kZgS`iaW!t~|;qqr-LhkAe8 zLr1%uR1~3IC1l@1j*ul%b}=fljHPTNni-|dej-$s35S_1qikcF87-2?l0lX+b{WRl zW-!Cd^PTEB=l{HTp3k$qc)ak!jJdz}Z~6Z2`?{~|8U}KLtXQFuwLThO({&dd+^YtE z19cDqch8z)N~7}I%y#$7`Z31p%s8qN6m1#o+s)ZCxLZ=v|*F{1r`u`@e;-8q~}^(-^4rXElqM= zFD!O~NlrSdMb{M(%%JNS#0yKe4OZdT=%a-_0pWo}jhqrf3)LC-ISe!~@8bTZZ`2zH zdzL%9zSnR~?^y+GVmmR}O=F9QTtBO0Gut?Qha(zJe_VtyTW>vm#8rq}_D$?d+&OEW z-nK_w+MzbJ!%0tSRZ)eezc}(K9kau^gXB3!2xoqPULx~mvRKcCa;%|iykSCGiXxG) zzrBY0(Qv%h?jcE+^L>7%F0^>?0BL%!!*)05SNL{t$-N%@m;C<>%+XlkW?w5#7Y$P(N$ua$gw3YUfQ< z2J|CnA89nQ+>JRN9TVd0aMWo1wiP)oo;A*qPysUIMc|`>Ciw~HXYBZMin4XF53yn# zg<7^nR7?@M#Yvrf?$p1YlV^d~ooW&ZFWzwd$|uuS*P?gcjzVy+ypyoF5xDc?Bf8{D z3N`=%_x!wh+J_A7_p+s0NOdv3FnX6;xSp)3;$`$|*Gfe=vkC7siY>VkA>xZH$=q=< zhZxRS?{A(kws8_lY6m|^CUdHy&Uzz(h3 z@K#ovObc5kXA*&d&iU@WOmiu}pjTF8{0Kn|sOlY`5HkwdhiKw6ERc+w3uxdzoI9DG zl|_WuL^-5=TCIPWqEoCZp~x-E!gi%1yTWO%fq}h?56p77ea8J)d2}zhNjlgFRXBJ2x$MnXKnrgNk!I~L%j)##iuN#6X3qx5g!7) zW9ian&D@2PF>IIw$Y>mljwXkjuC^3$E4$VVJ}@OkVoeaaDyaAlSrTk)sb0iw1K8q# zhW`k-zREOs&myjzp`kb{G-kSoYC(x70DpeQf|y-$B183o;*x)Ef!6Z)769nHyT^y( zB9j0-ap2Vd=Fd&~>%(OZxubAO%(Kf%qqp8tttumxTX z;jricf+Oxcd*{f;<5yLkp3=1)&CD*yrl>meZaTkRJ9&#z`X?Y+&wvb!#VKio~FBWiHZTh4?N@uIkV9g(#f{(WG<3$$mQ4v=_ z(<|ysk+Vn6Mais<>T^d^<((Cv#8VrOD{rmXSu0`2%wX)`0h15Ast}j<%97Mt719$H zbGWvqJL|4oI@PFgYI~l4=z2vp%e5S?HiU13c?A_@9X`!1&f>JI=mVWA1cKG!=LVR# z`yPBE@VE>fml_P<$+|F;?H9wgw?3V&o0}yJO8?Hxr0#k9Z3RE*S}#4YwVs`_C^{>S zWvvxpRLI>NR@@4{O@wF8k%hw>2cUY6O@{(Kas76isJ$WID7|VBx565Mb z(+_pf-v`MZO)T2!zC-{(WNW4l6;NJ@M7`$`Jdmm3!{KYdJ)@oO^@w3HmH!f3g6xqt z_Wt0nHiFMVI^rwrwMn7M@TISqZWA4$Ay>JrU^ogFk3_WH8$|-p9>NC}6`#mfKc70j z=uQqIa$JODps<6_qA)Uwy8;Leg zQ%Kp3AY|K^*1@9LER)aT;)q$^GV)EbnQED$7&(u+`InYA1k2_?UR4n5?(jR6aGe32X?FUv%A|%;rv_xR{g(yl-zH zKo<+6BZj|EPu&|NVYHp^Vgt(i@y-lRJasu1c5!&kDcMp>ZUQP(D@Bx}$xXYvZQ!aE z;rVI$+{Ho`oY*pNSdGT`GWWXU|;uEYwy@@cQ}-9JnUD;p73yawvd)Q9K4uK9G@rA)Pz- zNFNI?6OSV%IQZ9jcnrM+HY17;VLgj*ZI!Y?pZbWaq<0(F##t~Mf z`r}a`o$+6-dJQ%@h^iPkxJc`N@9PP9a<^WSctcfn30acU{(#~W0}t1!2p&v&w)^ff zzX_Ley3_|mfihC&lNq}{Nq6e|c~A3sKc@`Km8t>lCrpYWEu;6GMx`j|eb<~Ix-%ZL zosO7Wc%9GzlHe5C%{6ei*W}Ja#nFq(NK8CyI$e8&F#nA8M9oQ!)~s~ydc?!avYcAH zk74|sotg~05M%h1%FTj@(N^?)93H>io^7}fBiNy_a;b84myS%OtiDEohlUP)`L_so z8LClNFl*aTNCp%}Bxs!(Qje&}H8={qMRXkAy=R&EeH46YO8HXKqA;ifA5F&xjI|Eb znP*=-zI$ulmS*Q|aQ!tOt>yMx2G78mZzHfjk5h-nfQ4nzV9LwtKztXkoDO});QqrxiHoUW*qwZ~-!JQE8>Z2oJt~Gn9Ux={gcn-6gsmE<_tt0m-8Gla#-oCuq+fV>4y|h9q3uMN9r## z8480>#=p`zySG00Bm3fu*DVwxZ#b>_&|;xC`sXSiZOG-0tPZbSR$3RWSrqin#wvD( z+&P1>Y@Jo4yhkJwP~^1B;QOz{vMwbE5uAtOsm`&1&pE3g{)g6@&%H~Cv%c7j=e z?7&icdEH}Uw+r2`(0MRPCYmOrUt)pKo77>1gz~uSU=rdi@WJF-~GryO`!Sr)hFuraZ>{^>avXlrb8yaO3sCEhHSxeFK+2rIbT&Tysv6 z*-abq7Y2QH-1p@!9f>(fnSClF-u0xTTGe&5iRbV~eHufXAmpbn7Nglej-Dz?D<~OD zx*;Ia-)wcP{2{yJTbBDZcw(3wTpQOgR!jl2vMssI2o)MiDQCH^=V!AzQ&SZX+AJO` zb3WM5KfdxCbhlO=Wd%!u#)ZNo@RP3?Tx*mXP>>QOC<7_qyK0vc&w*)O6r|9Z2*^MS zhk5?1aZ0{DIud7|eIM-eYf11N?4psgo%JAR0XzHze`QF2m< za{pR|kmwY{P8^G4U`_h;o|VIqRW9Yq`$-{o#Ttn8>-g&Jewim<8SyDREHYxyj~Vt& z8uBv#@z29^zYxI37yZxRfcZ%M!*gT||GqeS1sGf&m>Qv%DA<+G-fsG9 zraH*-36@&k!1O%0W=&nk5dV7HT_v=WN%`Rt5`#4(_vCcw!S9zXCf&}kAAV93alb+# z#pH!K2KB8yRN%s8U?&x_I@Ke_jNKz|*QN2C42u!g-co_gLC&EcNVHuq&Ot_}PfFlN z*Z~Fy<$j#Ab80!nPv@f)vo0q>D{{+8h`v*#7v23i&J5s>_}qYa9l!Z^!)kJnW?EdUwBiI;? z^4r4W_Wg!i#J|KCBbYZG^^p|`{)FoaH*HC08w6A17%rl?@#}FP;57opC%Jb_FGSJG zpXN>?qV$6w2r$m+nl~xMmD&{NEqkiXvReb|Yux1((1y1WIRa{AR4u}QPLql@cigmw zI>w=LNu_NQzgNY?G)#Y%e(>?sASpkq?qZKIZ{u3{85RA&HB}*XjY%J0gv*W7%*F-o zO{0>=n#xi^$$QmL-QU^Z;Uu+oE`07Ij0AOmb9~YE08K|jc=8O}2!TddIFLow`bQiz zSqs59OI)vgPwFLJf>22pF&$HiOl55vK;_`PtHoaOwmKf5l?+>XoCo^`xc{whk?|t? z2-SsW$#A5ErYO_-tu-~oMrr_3yK>j%4VEDhr4`3By?@A>O1frX{!#Ivmgj&rd%5to zH%3b^hp6*>Jkc%9)B?q0T zZGRS(YT-tPQ&op`#JktR?L>P{)7Zbi#)%P%wZr7Lx$b&;9_l9i^!kp1$l866b+;_% z7o2K&2NcAc3Y^Hxlt35KE8W9HN`9Cp>H?~9YrtV4=ZQk*srmaZb7EsIX0yMp!m?Es^8TSSk=s+H;xo(Mf~a7E!`j$_WJhPHYMF`|9-09K~1oc<<-7$YWA z7O@d1xvfOYu3Me3rg|DGl;Zl*O*=O3exUIibGntT8zvmAzU!vg^45z(?@C9nSY#Kn zh5X%KeYHi9`Pv!BXf&zBVLc0Tm7OS_toU@yG?&U@naXlE7%kAUZ zJj?|xG1z+d7$X=vF@1ZhZjzVd1%Qa5L87W}TQ*oyu)$YFn)nN;(Vkl$q)mhY^s4k5 z@ROTgGa9@J_VDhP8Z#4_;Zz_1tbvB*;%){=LntHc{v95M$V zKNzIuEPxz0vZ-1OlHmO#G`aMaP6Lv6y@aGH2gcU1n@J0?F&63SZU#n=n=Hy{)~I6C z$#lZcC8ii5th57Jv36AgB*rb-*Evn!W28weEs^0R69;b_55f zY3)Q-yq*K-G?|A_)C!PX{L~y%`jE9N@2;4W;X8i6gSj#?iYYb zqRafNZ#6Whi7aXkdE?sbN0vZ;t!ImYemQ5y4$lq9kXnUm0TiI;Vi_;I-fmnIkaGvWJ=S0Oj{JIB>}Dbogrs_0_bb(xjQTU)*bif6$m5sX z0$gG7K6xR{le-=%tV+ET)67!1x#N&q({G{8lRuX0&Xp48{#O9gBF@2+3U{* znAcZFUdrLV;3n+hcu1vVFr>4MQ~^@4CRog_Ck?=2vITi!I*#{IGT~REU_2F-JpIRK zYK=%`((LSfCfri2MLJ<8JEV0iV$|QXXFFoY@ePS#z0RaD|rtafb-S55KMxvXiSDXcP~R5F zCE`v^_ISDuKcc@HU0OTTy**1Vyr#WO&}-KVI}L$J^aD{Khv)Q<)bQ%QLFE~2(nHd9 zJy=I45|*}Zc%1ZtKwJ%IXz*;mvz7&Pi{~ZCKJvsENT1;I4y^svD!k5lh zLPF{rLDxjy#u3)P$1gRvJ{WPHSjs?6Oi%{i^GNI3=LI&$<(#hJT~Jb1E#G+J#JN|b z(@A%QzK2@EMHqd{LwkQH^AJjvyJ=rpogX0wWl3TL?Bsy~KKS;g?#X_2SFTOg2} s^L*Ux@ge@#0UU_=@xt+ceIZa_Kzz0()9bQ0cpJpj$nqTS54U^&2AYT&xc~qF literal 24925 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
Gr$6#_I`5(e4DdI~;$^bNA3D9+d8lHXsIX2Kk;( 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 WEBuKUVR|_Fm+z?DQ!Y@lc>G@)ON_t( diff --git a/docs/images/teleinformation_plugin.png b/docs/images/teleinformation_plugin.png index 4f2d3727f59278d357dd7dc27d474af9277d246e..1df2743fe3e8ab608d57b59ae8afe247e755df0f 100644 GIT binary patch literal 22765 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

KmTB3Z(&HRv7oA3l})L1*$Ueqmm=dx_v@ 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 n)%XDbvDr$EUmN0h?ZBosA{}|OXw-zO8< literal 20886 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%0Do^#QI*LUva_q}`ZE2?&OqscO)ap-oO z5dp1z7!)G$#_Bi9n>7E3v6JTRM=1|pLDzLpxgb(=(t%oH9uQ`av9nBwvIVl173@#$uZ(PO?&6O_vUEyMx9YzdiI_IM z%Y933eX3)6Go4@yEU3Qk7--$jg0xUdPYUD+E7#U@pPpsKi1{dp0%#~DWNh4v6*fYLLprj}O zUV%V-s(bD?O&a2EieXn-YXiJvjjkQ8eA7b4?`a)qh=L`TGiP!pZUrG&?V}X|l@Du9{IULA=pku!yrt-P_Xuyki#UxS0_-EyrPamQ!* zg@Kg?Pv%0G=dVPk5(h%Qfk{~uZj-gXLG-vsb(|83;WJq|*3Bq#B^k7Yc>P3KNZrqr zpTofjG*+L$;Vnru_30sgC2{mR+7+C4ajwnzjc5UPQ&$=ZP2Z;1zxasjWLSLh zDWAc?hpn}+*L@Qo-5gR;f3#qX8&9JROes9mE8RQG)Xh8zyQCV$+-PzOICqr%_;t|Y zg+ZDc$ms&3o+FezqtQkMPE?$!}hR^q1LJyBE&tKNxZK&$>cTp-DKO z-e2d)8%~YBWHv~b?BJi2NuB95K|-aOQyVAdP$5GzvU$pkNWR%d9a!O1#3|xOMi}fX z`cOiHOT&46k<9=npDwYuceGUfskNv~s=w#4PyJzyweUE6bbNfET{`{c6Ni?U@u|%S zV>FPlc)X^@eN8@20Gn&z7%JG-Lf0P6zSQH7vwBqlAXdB$mjgiKj{9Hv>B`>PbR+Q0 z7>ssgp7h_5YeYuB1M&3?Iig)fkrz<5{HYKz7bjrt;#2u5JRC9G{EWGU*)>cgY={Ig zdhTA{F9``ZT%)a}v$jsVx;GRUhvLcG{f0D&s@3Dnjqk&+W_~#rOwk`m?c{qx2EC-U zp3{%Sa!w12I{8ax0(+zpKAuheU3Jp|2;>s11UOl>_i1LcamH~|#V}Wai!vvVY&NdS z{?`-_pwe`f*LLg_3^6Nt41wrU&CLERuftGzYkuP3mkxuTqk7#VZg3j-Z|pqkK7_(& zaZ)ZIa?vpXOLdC0_WN`!clEdMej?3bR`2Ww=uOT+#WGSTYs0mrSO{wwbr0tO%G*y# zl7a4P_I%j+Z(v{~)nje=lF5x1AGoWlmBB&H6dX$-m$mf{e)&5u97C>uac-k5Or@2( zO27M4J$JP(cQh+c6ww@++f-xM5+itAnpwb4X$Vz(Lq9g~XyK09avR31*x89?N!y4I8dLwr@rOFvq90xWI5NgI5 z246TEt$dX7?6-MuxXW0XrP}h_YlT|FKL=Up5kB;)__cJN2Kd5fy&RKvj>@WDvmXZB zs?|p%{`~s%mLLOJ*P2o*>49p}q00s|?}K_l7>mHZvr$X3(+K+{=0Zs8!<7uyF3FSq z)pSps{j%9vL$KqApKtaC;iUqD1+q_yIB%w{7K!`lu`v}+u(^7=>rmKW;AK+31xl&D zRvwCE+}f=c@x?l6kb^+9n)jt#b&T!^EIMuR{lF5bnt3OponIxKec|y% z16CG2Pg%G_K%S)$eE+KLJ+)?CASMq_4b+imF-h0lREO-ezHcETgZMlLKjLy=*RZiV zWW*yKsR)Pj#^(Ej)qU2=ZoDAle<{S6P4^`RQrgt(D2SlR4v67{@#7Fls{!r; z&6w#6y+N_wX8@lT2}lY0Yn87;h9Xn+cNTvSMWv9ZDZ*rn{%M)1ZX~uIUvlamA}7tl^=9c@oHYM z&)6O}M&MAEc>|wqtHDUvNRESg4y_on{jb0tvfAI#U$2yXHNO~@AdPFp{9#a@we+PF zkv+tZ2myIhuhhr<4=m5`GbmsF#}C`9#&*~mm&k;e3QYjV@7SSiiZ@oAMebIl@fW?R zz)s!{#(tzIiUE!M@E`sM{eS-Vf6V{-+W6a2%;aTg{+`FDfSbO<;+pN%GE?sd F{{fI+iIe~U literal 23642 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 Date: Wed, 9 May 2018 11:37:43 -0400 Subject: [PATCH 04/13] Valeur SINSTI manquante --- core/php/jeeTeleinfo.php | 3 ++- desktop/js/teleinfo.js | 1 + plugin_info/info.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/php/jeeTeleinfo.php b/core/php/jeeTeleinfo.php index d6fd7d1..5b9a7bf 100644 --- a/core/php/jeeTeleinfo.php +++ b/core/php/jeeTeleinfo.php @@ -94,7 +94,8 @@ 'NJOURF' => FILTER_SANITIZE_STRING, 'NJOURF+1' => FILTER_SANITIZE_STRING, 'PJOURF+1' => FILTER_SANITIZE_STRING, - 'PPOINTE' => FILTER_SANITIZE_STRING + 'PPOINTE' => FILTER_SANITIZE_STRING, + 'SINSTI' => FILTER_SANITIZE_STRING ); $message = filter_input(INPUT_GET, 'message', FILTER_SANITIZE_STRING); diff --git a/desktop/js/teleinfo.js b/desktop/js/teleinfo.js index 8a2e2da..72f9663 100644 --- a/desktop/js/teleinfo.js +++ b/desktop/js/teleinfo.js @@ -202,6 +202,7 @@ function addCmdToTable(_cmd) { selRequestType += ''; selRequestType += ''; selRequestType += ''; + selRequestType += ''; selRequestType += ''; } diff --git a/plugin_info/info.json b/plugin_info/info.json index b6a2d8e..0868f83 100644 --- a/plugin_info/info.json +++ b/plugin_info/info.json @@ -15,5 +15,5 @@ }, "changelog" : "https://NextDom.github.io/plugin-teleinfo/#language#/changelog", "documentation" : "https://NextDom.github.io/plugin-teleinfo/#language#/", - "pluginVersion" : "3.1.0" + "pluginVersion" : "3.1.1" } From 732c2d2536338d8b27dbfb13ea4decda4e5955aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Wed, 9 May 2018 13:31:54 -0400 Subject: [PATCH 05/13] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20diagnostique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ajax/teleinfo.ajax.php | 53 +++++---- desktop/css/diagnostic.css | 42 ++++++++ desktop/js/diagnostic.js | 100 ++++++++++------- desktop/modal/diagnostic.php | 201 ++++++++++++++++++++++++++++++++--- 4 files changed, 325 insertions(+), 71 deletions(-) create mode 100644 desktop/css/diagnostic.css diff --git a/core/ajax/teleinfo.ajax.php b/core/ajax/teleinfo.ajax.php index 4f5334d..9cb39e0 100644 --- a/core/ajax/teleinfo.ajax.php +++ b/core/ajax/teleinfo.ajax.php @@ -166,7 +166,7 @@ $return = history::byCmdIdDatetime(init('id'), date('Y-m-d H:i:s')); ajax::success($return); break; - case 'diagnostic_step0': + case 'diagnostic_step1': $return = array(); $return['portName'] = config::byKey('port', 'teleinfo'); @@ -180,18 +180,20 @@ $return['result'] = '1'; } $return['message'] = "Modem configuré : " . $return['portName']; + $return['test'] = jeedom::getTmpFolder("teleinfo"); try { - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; exec('rm ' . $diagnosticFile); file_put_contents($diagnosticFile, serialize(date('Y-m-d H:i:s')), FILE_APPEND | LOCK_EX); - file_put_contents($diagnosticFile, serialize('||STEP_0||'), FILE_APPEND | LOCK_EX); + file_put_contents($diagnosticFile, serialize('||STEP_1||'), FILE_APPEND | LOCK_EX); file_put_contents($diagnosticFile, serialize($return), FILE_APPEND | LOCK_EX); } catch (\Exception $e) { } ajax::success($return); break; - case 'diagnostic_step1': + case 'diagnostic_step2': $return = array(); $return['portName'] = config::byKey('port', 'teleinfo'); if ($return['portName'] == "serie") { @@ -208,13 +210,14 @@ $return['message'] = 'Accès OK'; } try { - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; - file_put_contents($diagnosticFile, serialize('||STEP_1||'), FILE_APPEND | LOCK_EX); + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; + file_put_contents($diagnosticFile, serialize('||STEP_2||'), FILE_APPEND | LOCK_EX); file_put_contents($diagnosticFile, serialize($return), FILE_APPEND | LOCK_EX); } catch (\Exception $e) {} ajax::success($return); break; - case 'diagnostic_step2': + case 'diagnostic_step3': $return = array(); $return['isCapable'] = jeedom::isCapable('sudo'); if (!jeedom::isCapable('sudo')) { @@ -226,13 +229,14 @@ $return['message'] = 'OK'; } try { - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; - file_put_contents($diagnosticFile, serialize('||STEP_2||'), FILE_APPEND | LOCK_EX); + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; + file_put_contents($diagnosticFile, serialize('||STEP_3||'), FILE_APPEND | LOCK_EX); file_put_contents($diagnosticFile, serialize($return), FILE_APPEND | LOCK_EX); } catch (\Exception $e) {} ajax::success($return); break; - case 'diagnostic_step3': + case 'diagnostic_step4': $return = array(); $modemSerieAddr = config::byKey('port', 'teleinfo'); $twoCptCartelectronic = config::byKey('2cpt_cartelectronic', 'teleinfo'); @@ -264,28 +268,32 @@ $return['message'] = 'NOK'; } try { - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; - file_put_contents($diagnosticFile, serialize('||STEP_3||'), FILE_APPEND | LOCK_EX); + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; + file_put_contents($diagnosticFile, serialize('||STEP_4||'), FILE_APPEND | LOCK_EX); file_put_contents($diagnosticFile, serialize($return), FILE_APPEND | LOCK_EX); } catch (\Exception $e) {} ajax::success($return); break; - case 'diagnostic_step4': + case 'diagnostic_step5': $return = array(); $return['message'] = ''; $return['launch_url'] = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); $return['result'] = '1'; try { - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; - file_put_contents($diagnosticFile, serialize('||STEP_4||'), FILE_APPEND | LOCK_EX); + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; + file_put_contents($diagnosticFile, serialize('||STEP_5||'), FILE_APPEND | LOCK_EX); file_put_contents($diagnosticFile, serialize($return), FILE_APPEND | LOCK_EX); } catch (\Exception $e) {} ajax::success($return); break; - case 'diagnostic_step5': + case 'diagnostic_step6': $return = array(); - $monfichier = dirname(__FILE__) . '/../../../../tmp/teleinfo_export.txt'; - $diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + //$monfichier = dirname(__FILE__) . '/../../../../tmp/teleinfo_export.txt'; + $monfichier = jeedom::getTmpFolder("teleinfo") . '/teleinfo_export.txt'; + //$diagnosticFile = dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $diagnosticFile = jeedom::getTmpFolder("teleinfo") . '/teleinfo_diag.txt'; exec('rm ' . $monfichier); file_put_contents($monfichier, serialize(date('Y-m-d H:i:s')), FILE_APPEND | LOCK_EX); foreach (eqLogic::byType('teleinfo') as $eqLogic) { @@ -301,11 +309,16 @@ } file_put_contents($monfichier, serialize('||EQLOGIC_END||'), FILE_APPEND | LOCK_EX); } - $return["files"] = log::getPathToLog('teleinfo'). " " . log::getPathToLog('teleinfo_deamon'). " " . log::getPathToLog('teleinfo_update') . " " . dirname(__FILE__) . '/../../plugin_info/info.json'. " " . dirname(__FILE__) . '/../../../../tmp/teleinfo_export.txt' . " " . dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + //$return["files"] = log::getPathToLog('teleinfo'). " " . log::getPathToLog('teleinfo_deamon'). " " . log::getPathToLog('teleinfo_update') . " " . dirname(__FILE__) . '/../../plugin_info/info.json'. " " . dirname(__FILE__) . '/../../../../tmp/teleinfo_export.txt' . " " . dirname(__FILE__) . '/../../../../tmp/teleinfo_diag.txt'; + $return["files"] = log::getPathToLog('teleinfo'). " " . log::getPathToLog('teleinfo_deamon'). " " . log::getPathToLog('teleinfo_update') . " " . dirname(__FILE__) . '/../../plugin_info/info.json'. " " . $diagnosticFile . " " . $monfichier; $return["path"] = dirname(__FILE__) . '/../../../../tmp/teleinfolog.tar'; + //$return["path"] = jeedom::getTmpFolder("teleinfo") . '/teleinfolog.tar'; exec('rm ' . dirname(__FILE__) . '/../../../../tmp/teleinfolog.tar'); + //exec('rm ' . jeedom::getTmpFolder("teleinfo") . '/teleinfolog.tar'); $return["compress"] = exec('tar -cvf ' . dirname(__FILE__) . '/../../../../tmp/teleinfolog.tar ' . $return["files"]); - $return['message'] = 'Télécharger'; + //$return["compress"] = exec('tar -cvf ' . jeedom::getTmpFolder("teleinfo") . '/teleinfolog.tar ' . $return["files"]); + $return['message'] = 'Télécharger le package'; + //$return['message'] = 'Télécharger le package'; $return['result'] = '2'; ajax::success($return); break; diff --git a/desktop/css/diagnostic.css b/desktop/css/diagnostic.css new file mode 100644 index 0000000..e3776de --- /dev/null +++ b/desktop/css/diagnostic.css @@ -0,0 +1,42 @@ +body { + margin-top:40px; +} +.stepwizard-step p { + margin-top: 10px; +} +.stepwizard-row { + display: table-row; +} +.stepwizard { + display: table; + width: 55%; + position: relative; +} +.stepwizard-step button[disabled] { + opacity: 1 !important; + filter: alpha(opacity=100) !important; +} +.stepwizard-row:before { + top: 14px; + bottom: 0; + position: absolute; + content: " "; + width: 100%; + height: 1px; + background-color: #ccc; + z-order: 0; +} +.stepwizard-step { + display: table-cell; + text-align: center; + position: relative; +} +.stepwizard-btn-circle { + width: 30px; + height: 30px; + text-align: center; + padding: 6px 0; + font-size: 12px; + line-height: 1.428571429; + border-radius: 15px; +} diff --git a/desktop/js/diagnostic.js b/desktop/js/diagnostic.js index e3944d1..559075f 100644 --- a/desktop/js/diagnostic.js +++ b/desktop/js/diagnostic.js @@ -1,39 +1,3 @@ -var etapes = [{"name": "Configuration du plugin", "result": "", "advise": "Vérifier la configuration du plugin"}, - {"name": "Modem connecté", "result": "", "advise": "Vérifier la connexion du modem à Jeedom"}, - {"name": "Accès au Modem", "result": "", "advise": "Vérifier les droits sur le port du Modem"}, - {"name": "Lecture des données", "result": "", "advise": "Vérifier que les cables soient bien connectés; que la téléinformation est bien activée par EDF"}, - {"name": "Intégritée des données", "result": "", "advise": ""}, - {"name": "Package de logs", "result": "", "advise": ""} -]; - -function populate_table(){ - - var tbody = ''; - for(var i in etapes){ - tbody += ''; - - tbody += ''; - tbody += ''+etapes[i].name+''; - tbody += ''; - - tbody += ''; - tbody += ''; - tbody += ''; - - tbody += ''; - /*tbody += ''+etapes[i].result+'';*/ - tbody += ''; - tbody += ''; - - tbody += ''; - tbody += ''; - tbody += ''; - - tbody += ''; - } - $('#table_health tbody').empty().append(tbody); -} - $( document ).on( "click", ".btn", function() { var temp = $(this).attr("btnid") $(".result"+temp+"").append(''); @@ -69,4 +33,66 @@ function check_state(name, datetime){ return 'NOK'; } -populate_table(); +//populate_table(); + + + +$(document).ready(function () { + var navListItems = $('div.setup-panel div a'), + allWells = $('.setup-content'), + allNextBtn = $('.nextBtn'), + allReturnBtn = $('.returnBtn'); + allWells.hide(); + navListItems.click(function (e) { + e.preventDefault(); + var $target = $($(this).attr('href')), + $item = $(this); + if (!$item.hasClass('disabled')) { + navListItems.removeClass('btn-primary').addClass('btn-default'); + $item.addClass('btn-primary'); + allWells.hide(); + $target.show(); + $target.find('input:eq(0)').focus(); + } + }); + allNextBtn.click(function(){ + var curStep = $(this).closest(".setup-content"), + curStepBtn = curStep.attr("id"), + nextStepWizard = $('div.setup-panel div a[href="#' + curStepBtn + '"]').parent().next().children("a"), + curInputs = curStep.find("input[type='text'],input[type='url']"), + isValid = true; + $(".form-group").removeClass("has-error"); + for(var i=0; i +

+
+
+
+ 1 +

{{Étape 1}}

+
+
+ 2 +

{{Étape 2}}

+
+
+ 3 +

{{Étape 3}}

+
+
+ 4 +

{{Étape 4}}

+
+
+ 5 +

{{Étape 5}}

+
+
+ 6 +

{{Etape 6}}

+
+
+
+
+
+
+
+

{{Vérifier la configuration du plugin}}


+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

{{Modem connecté}}


+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

{{Accès au Modem}}


+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

{{Lecture des données}}


+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

{{Intégritée des données}}


+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

{{Package de logs}}


+
+ - +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{}}{{}}
Etape 1 :
Etape 2 :
Etape 3 :
Etape 4 :
Etape 5 :
- - - - - - - - - - - - -
{{Etapes}}{{Exécution}}{{Résultat}}{{Conseil}}
+
+
+
+ +
+
+
+
+
+ From b68e286c3840884d400327188f3f445c377a25b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Wed, 9 May 2018 13:35:38 -0400 Subject: [PATCH 06/13] Erreur sur la suppression du pid production #25 --- core/class/teleinfo.class.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/class/teleinfo.class.php b/core/class/teleinfo.class.php index 76d8d06..3088753 100644 --- a/core/class/teleinfo.class.php +++ b/core/class/teleinfo.class.php @@ -319,6 +319,17 @@ public static function deamon_info() } else { shell_exec('sudo rm -rf ' . $pidFile . ' 2>&1 > /dev/null;rm -rf ' . $pidFile . ' 2>&1 > /dev/null;'); } + } + $productionActivated = config::byKey('activation_production', 'teleinfo'); + if ($productionActivated == 1) { + $pidFile = '/tmp/teleinfo_prod.pid'; + if (file_exists($pidFile)) { + if (posix_getsid(trim(file_get_contents($pidFile)))) { + $return['state'] = 'ok'; + } else { + shell_exec('sudo rm -rf ' . $pidFile . ' 2>&1 > /dev/null;rm -rf ' . $pidFile . ' 2>&1 > /dev/null;'); + } + } } $return['launchable'] = 'ok'; return $return; From 21e6379014adf88c4f857434d6981d4209e7df27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Thu, 10 May 2018 07:52:55 -0400 Subject: [PATCH 07/13] Update running deamon url parsing --- core/class/teleinfo.class.php | 176 ++++++++++++++++++---------------- 1 file changed, 91 insertions(+), 85 deletions(-) diff --git a/core/class/teleinfo.class.php b/core/class/teleinfo.class.php index 3088753..6deb479 100644 --- a/core/class/teleinfo.class.php +++ b/core/class/teleinfo.class.php @@ -77,8 +77,8 @@ public static function createCmdFromDef($_oADCO, $_oKey, $_oValue) $cmd = (new teleinfoCmd()) ->setName($_oKey) ->setLogicalId($_oKey) - ->setType('info'); - $cmd->setEqLogic_id($teleinfo->id); + ->setType('info'); + $cmd->setEqLogic_id($teleinfo->id); $cmd->setConfiguration('info_conso', $_oKey); switch ($_oKey) { //case "PAPP": @@ -111,45 +111,51 @@ public static function runDeamon($_debug = false, $type = 'conso') $modemSerieAddr = config::byKey('port', 'teleinfo'); $_debug = config::byKey('debug', 'teleinfo'); $_force = config::byKey('force', 'teleinfo'); - $twoCptCartelectronic = config::byKey('2cpt_cartelectronic', 'teleinfo'); - $linky = config::byKey('linky', 'teleinfo'); + $twoCptCartelectronic = config::byKey('2cpt_cartelectronic', 'teleinfo'); + $linky = config::byKey('linky', 'teleinfo'); $modemVitesse = config::byKey('modem_vitesse', 'teleinfo'); - if ($modemSerieAddr == "serie") { + if ($modemSerieAddr == "serie") { $port = config::byKey('modem_serie_addr', 'teleinfo'); - } else { - $port = jeedom::getUsbMapping(config::byKey('port', 'teleinfo')); - if ($twoCptCartelectronic == 1) { - $port = '/dev/ttyUSB1'; - } else { - if (!file_exists($port)) { - log::add('teleinfo', 'error', 'Le port n\'existe pas'); - return false; - } - $cle_api = config::byKey('api'); - if ($cle_api == '') { - log::add('teleinfo', 'error', 'Erreur de clé api, veuillez la vérifier.'); - return false; - } - } - } - if ($linky == 1) { - $mode = 'standard'; - if ($modemVitesse == "") { - $modemVitesse = '9600'; - } - } - else { - $mode = 'historique'; - if ($modemVitesse == "") { - $modemVitesse = '1200'; - } - } - - $parsed_url = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); + } else { + $port = jeedom::getUsbMapping(config::byKey('port', 'teleinfo')); + if ($twoCptCartelectronic == 1) { + $port = '/dev/ttyUSB1'; + } else { + if (!file_exists($port)) { + log::add('teleinfo', 'error', 'Le port n\'existe pas'); + return false; + } + $cle_api = config::byKey('api'); + if ($cle_api == '') { + log::add('teleinfo', 'error', 'Erreur de clé api, veuillez la vérifier.'); + return false; + } + } + } + if ($linky == 1) { + $mode = 'standard'; + if ($modemVitesse == "") { + $modemVitesse = '9600'; + } + } + else { + $mode = 'historique'; + if ($modemVitesse == "") { + $modemVitesse = '1200'; + } + } + + ig (config::byKey('internalComplement', 'core') !== ""){ + $internalComplement = "/" .config::byKey('internalComplement', 'core'); + } + else{ + $internalComplement = ""; + } + $parsed_url = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . $internalComplement); //exec('sudo chmod 777 ' . $port . ' > /dev/null 2>&1'); // TODO : Vérifier dans futur release si tjs nécessaire log::add('teleinfo', 'info', '--------- Informations sur le master --------'); - log::add('teleinfo', 'info', 'Adresse :' . config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); + log::add('teleinfo', 'info', 'Adresse :' . config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . $internalComplement); log::add('teleinfo', 'info', 'Host / Port :' . $parsed_url['host'] . ':' . $parsed_url['port']); log::add('teleinfo', 'info', 'Path complémentaire :' . $parsed_url['path']); $ip_interne = $parsed_url['scheme'] . '://' . $parsed_url['host'] . ':' . $parsed_url['port'] . $parsed_url['path']; @@ -157,7 +163,7 @@ public static function runDeamon($_debug = false, $type = 'conso') log::add('teleinfo', 'info', 'Debug : ' . $_debug); log::add('teleinfo', 'info', 'Force : ' . $_force); log::add('teleinfo', 'info', 'Port modem : ' . $port); - log::add('teleinfo', 'info', 'Type : ' . $type); + log::add('teleinfo', 'info', 'Type : ' . $type); log::add('teleinfo', 'info', 'Mode : ' . $mode); $_debug = ($_debug) ? "1" : "0"; $_force = ($_force) ? "1" : "0"; @@ -199,42 +205,42 @@ public static function runProductionDeamon($_debug = false, $type = 'prod') $modemSerieAddr = config::byKey('port_production', 'teleinfo'); $_debug = config::byKey('debug_production', 'teleinfo'); $_force = config::byKey('force_production', 'teleinfo'); - $twoCptCartelectronic = config::byKey('2cpt_cartelectronic_production', 'teleinfo'); - $linky = config::byKey('linky_prod', 'teleinfo'); - $modemVitesse = config::byKey('modem_vitesse_production', 'teleinfo'); + $twoCptCartelectronic = config::byKey('2cpt_cartelectronic_production', 'teleinfo'); + $linky = config::byKey('linky_prod', 'teleinfo'); + $modemVitesse = config::byKey('modem_vitesse_production', 'teleinfo'); if ($modemSerieAddr == "serie") { $port = config::byKey('modem_serie_production_addr', 'teleinfo'); - } else { - $port = jeedom::getUsbMapping(config::byKey('port_production', 'teleinfo')); - if ($twoCptCartelectronic == 1) { - $port = '/dev/ttyUSB1'; - } else { - if (!file_exists($port)) { - log::add('teleinfo', 'error', '[Production] Le port n\'existe pas'); - return false; - } - $cle_api = config::byKey('api'); - if ($cle_api == '') { - log::add('teleinfo', 'error', '[Production] Erreur de clé api, veuillez la vérifier.'); - return false; - } - } + } else { + $port = jeedom::getUsbMapping(config::byKey('port_production', 'teleinfo')); + if ($twoCptCartelectronic == 1) { + $port = '/dev/ttyUSB1'; + } else { + if (!file_exists($port)) { + log::add('teleinfo', 'error', '[Production] Le port n\'existe pas'); + return false; + } + $cle_api = config::byKey('api'); + if ($cle_api == '') { + log::add('teleinfo', 'error', '[Production] Erreur de clé api, veuillez la vérifier.'); + return false; + } + } } - - if ($linky == 1) { - $mode = 'standard'; - if ($modemVitesse == "") { - $modemVitesse = '9600'; - } - } - else { - $mode = 'historique'; - if ($modemVitesse == "") { - $modemVitesse = '1200'; - } - } - + + if ($linky == 1) { + $mode = 'standard'; + if ($modemVitesse == "") { + $modemVitesse = '9600'; + } + } + else { + $mode = 'historique'; + if ($modemVitesse == "") { + $modemVitesse = '1200'; + } + } + $parsed_url = parse_url(config::byKey('internalProtocol', 'core', 'http://') . config::byKey('internalAddr', 'core', '127.0.0.1') . ":" . config::byKey('internalPort', 'core', '80') . config::byKey('internalComplement', 'core')); @@ -247,7 +253,7 @@ public static function runProductionDeamon($_debug = false, $type = 'prod') log::add('teleinfo', 'info', 'Debug : ' . $_debug); log::add('teleinfo', 'info', 'Force : ' . $_force); log::add('teleinfo', 'info', 'Port modem : ' . $port); - log::add('teleinfo', 'info', 'Type : ' . $type); + log::add('teleinfo', 'info', 'Type : ' . $type); log::add('teleinfo', 'info', 'Mode : ' . $mode); $_debug = ($_debug) ? "1" : "0"; $_force = ($_force) ? "1" : "0"; @@ -319,17 +325,17 @@ public static function deamon_info() } else { shell_exec('sudo rm -rf ' . $pidFile . ' 2>&1 > /dev/null;rm -rf ' . $pidFile . ' 2>&1 > /dev/null;'); } - } - $productionActivated = config::byKey('activation_production', 'teleinfo'); - if ($productionActivated == 1) { - $pidFile = '/tmp/teleinfo_prod.pid'; - if (file_exists($pidFile)) { - if (posix_getsid(trim(file_get_contents($pidFile)))) { - $return['state'] = 'ok'; - } else { - shell_exec('sudo rm -rf ' . $pidFile . ' 2>&1 > /dev/null;rm -rf ' . $pidFile . ' 2>&1 > /dev/null;'); - } - } + } + $productionActivated = config::byKey('activation_production', 'teleinfo'); + if ($productionActivated == 1) { + $pidFile = '/tmp/teleinfo_prod.pid'; + if (file_exists($pidFile)) { + if (posix_getsid(trim(file_get_contents($pidFile)))) { + $return['state'] = 'ok'; + } else { + shell_exec('sudo rm -rf ' . $pidFile . ' 2>&1 > /dev/null;rm -rf ' . $pidFile . ' 2>&1 > /dev/null;'); + } + } } $return['launchable'] = 'ok'; return $return; @@ -374,8 +380,8 @@ public static function deamon_stop() $pid = intval(trim(file_get_contents($pidFile))); $kill = posix_kill($pid, 15); usleep(500); - if (!$kill) { - system::kill($pid); + if (!$kill) { + system::kill($pid); } } } @@ -1094,8 +1100,8 @@ public static function installationOk() } public static function dependancy_install() - { - log::remove(__CLASS__ . '_update'); + { + log::remove(__CLASS__ . '_update'); return array('script' => dirname(__FILE__) . '/../../ressources/install_#stype#.sh ' . jeedom::getTmpFolder('teleinfo') . '/dependance', 'log' => log::getPathToLog(__CLASS__ . '_update')); } From 7bfed19fdb8d3d69b763cd8eb3871cf0d7ad55e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Thu, 10 May 2018 07:53:31 -0400 Subject: [PATCH 08/13] Typo correction --- core/class/teleinfo.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/class/teleinfo.class.php b/core/class/teleinfo.class.php index 6deb479..9c424b2 100644 --- a/core/class/teleinfo.class.php +++ b/core/class/teleinfo.class.php @@ -145,7 +145,7 @@ public static function runDeamon($_debug = false, $type = 'conso') } } - ig (config::byKey('internalComplement', 'core') !== ""){ + if (config::byKey('internalComplement', 'core') !== ""){ $internalComplement = "/" .config::byKey('internalComplement', 'core'); } else{ From f61fb1162d11828d4e80499e91e1c4148df11734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Fri, 11 May 2018 09:29:45 -0400 Subject: [PATCH 09/13] Ajout valeur IRMS1 #45 --- core/php/jeeTeleinfo.php | 3 ++- desktop/js/teleinfo.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/php/jeeTeleinfo.php b/core/php/jeeTeleinfo.php index 5b9a7bf..8b5c1d3 100644 --- a/core/php/jeeTeleinfo.php +++ b/core/php/jeeTeleinfo.php @@ -95,7 +95,8 @@ 'NJOURF+1' => FILTER_SANITIZE_STRING, 'PJOURF+1' => FILTER_SANITIZE_STRING, 'PPOINTE' => FILTER_SANITIZE_STRING, - 'SINSTI' => FILTER_SANITIZE_STRING + 'SINSTI' => FILTER_SANITIZE_STRING, + 'IRMS1' => FILTER_SANITIZE_STRING ); $message = filter_input(INPUT_GET, 'message', FILTER_SANITIZE_STRING); diff --git a/desktop/js/teleinfo.js b/desktop/js/teleinfo.js index 72f9663..63ee66e 100644 --- a/desktop/js/teleinfo.js +++ b/desktop/js/teleinfo.js @@ -203,6 +203,7 @@ function addCmdToTable(_cmd) { selRequestType += ''; selRequestType += ''; selRequestType += ''; + selRequestType += ''; selRequestType += ''; } From 3b29461f03e6bbf254e245753d7cc3e15a4162aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= Date: Sat, 12 May 2018 10:47:24 -0400 Subject: [PATCH 10/13] Modification CSS --- desktop/css/teleinfo.css | 3 +-- plugin_info/configuration.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/desktop/css/teleinfo.css b/desktop/css/teleinfo.css index b9252fd..d846ed2 100644 --- a/desktop/css/teleinfo.css +++ b/desktop/css/teleinfo.css @@ -9,8 +9,7 @@ and open the template in the editor. */ [type="checkbox"][data-l1key="configuration"]:not(:checked), [type="checkbox"][data-l1key="configuration"]:checked { - position: absolute; - left: -9999px; + display:none; } [type="checkbox"][data-l1key="configuration"]:not(:checked) + label, [type="checkbox"][data-l1key="configuration"]:checked + label { diff --git a/plugin_info/configuration.php b/plugin_info/configuration.php index b7dade9..7b4413f 100644 --- a/plugin_info/configuration.php +++ b/plugin_info/configuration.php @@ -305,8 +305,7 @@