From 01ff7334df8831b9c904b3b9f3cea52ca907e76c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Mon, 8 Aug 2016 14:39:02 +0000 Subject: [PATCH] zwave_jeedomconvert.pl: add pictures from the jeedom project (Forum #54182) git-svn-id: https://svn.fhem.de/fhem/trunk@11922 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/lib/zwave_pepperlinks.csv.gz | Bin 18947 -> 19370 bytes fhem/contrib/zwave_jeedomconvert.pl | 54 +++++++++++++++++++++++++ fhem/fhem.pl | 3 +- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 fhem/contrib/zwave_jeedomconvert.pl diff --git a/fhem/FHEM/lib/zwave_pepperlinks.csv.gz b/fhem/FHEM/lib/zwave_pepperlinks.csv.gz index f18333060dda819c7f12f6d0f419241aee52a766..08b96575f3506792ab6546b780cdb57d03c04996 100644 GIT binary patch literal 19370 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 literal 18947 zcmV(&K;ge1iwFqih^STo1A2F1c4c31WpHq1a%^dCYjZARb9Mlwz1glLxzeR~-_PRt zgY)n-4UP>7EujHj==Jq2kMIch+}Rgfr>e55GIBGVPTH`R(adN}O@E9r_WajjjX$i5 zaRz5s>cut_T{m_Z8+|r*$6lIUtu2@S>;L>;|KqX<{g3}+Gd_hs{{4J&SbK!kZ7Icx_?>05JXO8RXx*Jt*~eU?~^t(otwH7{pv33-+tFW|V zw!*TcY+~r&ce=*29k%{*yea3FI{hoKo#v=^uU&j+mes||4%axU)~MB1XJ^~O2)+Fr z9~o~C7qfNMZ5P_AbFR?XKo&FmG`ySM##DXS^XL0J#=GCnKb=GSd;Oe0%Jj4KAWy)D}{-vc5yS9ky1 zKmXhL|FwVK{|DolzYqVxc+Eflhx1SW;rxFq|E8QnFa7iNaKneN)(icp9A_dN(tT#GyP-zPM4thv;U#UNR-tBmdNMEbZi*C zuEestQqr!euk!ElpokGuM#t^Ix=zjLjW4>~VE8A+deV6{1_Ld(jmlCRc0$&$h zn18(Yd=`(k^T34V>2Wg7v=K25ai*pn&D*8udvWvn%9`cnv@R^CjrQ0k_&o-qv$02G zGOdc!+>y76eIQW0X5Ie~2~2Y2SF6r%Q(W33x-s*Po40f(jof;SVJDYkH;*O3E+>g} zjK>c(iKr=V)4740Eli>CwQZW{OLN$|*+=beve`e?#OXWBk+AR6;JF);VUu@z@lD>& z?6Pmx&K7biJ6~(!w8HK!X0aZoSG#JAxWhG(wCr%zE#oD^cFVekq?lpDwM`E79dY$Y?DMew>sM)rKY{wd|<3p|oNW}Mmd;G`tAV`flo zo9Z40<;U2tCm|yp*Os(D=)L(9Pbo`y3AdVW&6v@mar|br!M3{Q5>Bkx4jN(t`8J-R ze?mRSV<}46a%#)u6~;EhRqOX|%eGPZvQ^DS^!(q?cjx%P`XNrurvy?7Jck|2A;*$K zEj_LhSkRs?E%`pbo#W$y+@m4MXP!2i(_f&oM=u)0Wbg*2(hPDMsVm@F)3lbfeEH(0N{K5fD9j$z}jbX09Zrxp@%a1G}YUV z?;IJNGjj;74hP_H*ZzYB@5nP_5+=}a?t!$->Su_xnOeqb)^(40Tf84K7%%mSe>`~m z8t;z1O~nQQSWUIVvsf9s+R{ojraamzd7vQq-{bw!9oubN?ttaaR$CK*H!fgahi@5s zWLrp}-23>?`~&ZAU5PjeE3n^F%F`@w&Tmfq z$T*3^wR{EQVO9$ko={>M0lYZJ=n1?Vy{Xj$cx!gw$CvuHUZ;~P?noy0n6Z^st6x9| zJfr2BmMgp!l!5Qh%|FIpPOkW4u}0YKy3|lH{=vs`iBghpt_fPRDsIRwsSI8bCHx9d)$?Eqyitz&gp2t9! zg8%pUe4uNvLQH3XCt*H^?bVdt%wnsCPjl}Ack}-gpHdK?=#uMLnu#~>xDGVIc7VER z-EXFdi$uKsJ-!}efDdy<)*9$8AiHzG@Ek-`dH}*hs>5gfUh99&zuKb&Gx9*BTR)bsh_K)4}Apis+Bnbg+6at0iE zhddS5#ue*(``?U@fIJ?Gla2)&)T4#ncA28s{VL1je(YFygG+s_%(r>VUrm@`1k`sN zKC9H%WW^(JCEz&|0$?ks$ga=$C&;e(IB^p&vUkha1+JVv8;q}MGiQt`Box5rALie` z;|{d|(yQ$`xFE5qVPcL^1I&hD1q#atqyQ3Kh|Zap{;<)7@fDI;G2X?rg1t{;p@FkF zAKAl#dkhFsjrn8#%D9<-t-%1$)$TjcA%f7*elS^_oiFu{H7LIN)%W;o|4)#uHE^-? z(khb#N%NtQ8?F=~>;nOSuHcwTzV^?yH~dk|1_*bsLka!tAqEV9VkAJo=m40g&MFDy z+t{D-bG&1`KV&^pkjB`I8=HeYWBGhEMQ|9-Y)9JDKE}WI&k4bya~TuOD}s0sIUpz? zu6ki6L}-r+hQIXxK3>m{$41Z;;~A2*7QHKdwF&qvS~q4P{j9D3oWGu*jyBo)QL}L) z+U?DVc|%?-@LJ#zdtO_a*Zhr_{@Ty})gy1Sd&O)3Ix54{<~4Ab0C8ZMTnad_U(Yvo zeb6i8@&5Q(CLg@`$Hse0nFfBfVv|w9i51>0Tw$+j?&1TecbE=X$i`v<{2Z_$W3#~> z5hLzk7AeEOOuKncdvQc8CCfK5y5|sG=O!~Pcnx%8Oh|rcsOpIWlu0HFq9t;yGY)6|5F$mW)(!0=7qjqF`jijKOKO+R5B)N3xTC# zh285I#SH)mED;=zN?qnV*3b4Keiris){AZ~=q>w&>;reftwK?w$I_s7xv;d?^F6>j zx<4Lt!1!`<%%ZP57gnEDAVFj`m=4+-d)a8uitx@3jh;ZQT6tqQ)qnl3|NHw+^Zia} zbl#!iI_1A1s%smU!K2;>51j#-ro}#fmihaWwtQ12$ah3%}2=aGd@73#(;&1#RP-o0fDd$4T_mS5lEtEagh7R z_|qFF#z!dsu%I{j;J`a?4;@`$SGZ*ePEq6q(z5BF+u_pj`YeQK{vg%*41}^h=)^d1 zAn3kW_7s5LlZWH+q64;z;rIaL*LQx#!;h^(z<@Xp7Z^Z%5T=06iEHr9NdbxS4MSez z?K!?4czl$5tc46 zr0f;Y@7ltlATZJy06Z45vo8zvSbjhb$Tk^N6wi>5jR;k(14lo>ny9Kb4)oQ`4WOK2 zy7`Oo{&+i0fsXR}&UgShF;W)a#xERBw~83>5$2|2J{0B2d+y6?1GQ}!ridih3;@~-5o0m2RJCQk17!^TpIaiw z;qeOCdqfv%wCYftbr!pvnXawe>KP#WVD|DSzBv=y7odD2)s=u}kfv3TLUzOCRqqH-k}}0@ji@ed_AIq$sk3u;Y@yRW>N#&0C&WJ8U6=Px;{?l zW#BK%8xK%+2Bcw)01pjW!q4zXV3D^VHjq5nA(boQb(3BmA1&j{LW;K^z(j~12wQ%_ zu!ijG&f9@O?1ysNGcIbb@$SI<4RC!oxXd0pKaA&dZ5rTKTm#m+dR`Dt5yJExK%a> zUi%$?GsrO>v4rg#@D8YkrohvIpRO+$cY&bcBSDDn(1`9J(2UM)J;t9-M)S{ynRR2oC#%;XLmsM_6yZVy=SV}rFMLJ3y?+ef=NHAr z4W0FPVt`-Yr;4v5Cb(E<>4i=)`U4FcXU(| z&Nedoi0+p$p#cbSU;G3Rzq7xr^FO?dp6{Wd&7ymLjkwqjCpzL;gb4h`ZWU~8jphns zpI#=$^hcbX@!|Ny|NYy{D6+W}i-H>Wyc-tH4#)wfA{Pj9L`5)QbGut)>U;izW&L$% z>3n{=o{!^?8#^-PiE>PQV%>&XIu^zhma2h$6CCvs7{By1W92g#YL$YY2c!l?=`*qw zCHVMcOzrH;#rNY)#L5Od6&k^C!iyGu~l)Vym+PA(!X8u*&0=fa6iio*Ocu57HALIS& zT*Kw8z_^%YH;^ht)tBRUYwik~A16N!XvluA|KH=wF(59<3Wy7h2gu|YK(FO9j325a zTZw?Af6u=jJAtp#%ELjfF*mtjA#2lOpylA$-cC~S&*v9&41;@yv_OJesjRfcWkrLB z%F8RRUo)1%jK}!v`NbZfLjE*6+lFF+Yo28`1@KtmylX7HTI6*AeuAn_a6e!hP= z5H2rG3E*$%I<9^Ro4`qQeuu|^^N*0yzu!L|3QDBjTdTcIplSptjUZEscWk+P#Jicl zOyXryOFHzz*4w>G)&U;o9LSyquBFdZF>Vl(F;{$;^vflbe6%s(D}IBN5EGbA+8*GS zvh_HMZ8lJ_Ar4=Z_6E6jF}@r+eZ^Jb)UfN2cBBd1k_-+S?`;+Mwzb6d9iPH$JSMq7 zgZBwcnyJbw!VJc)FagLZ>p&RF><5_j^Zw;-{_4qNZ=b;rD>liVdXEY4W#KFops8?^ z2;z$YB!h6`QQOb&WKPu`(0LZpvVXnHWFbeMIj|%?fap(e46ctq$0HNfV^iz0EPJyc zRNF>^fYlydb_$?D?7Q}8eohMjow#kegu?i66!}3Nae(rCSjd-0gpmRtb4}kxtx4t z0-lvS^tz7!*}V>z?gjK~mAnPs1z7;(!So~9?s2ZhNY-NYCJQ_=Fvy z(7i0aDT*U0t^kg-pM-|@?BBcx0(c~|*05cNObuLslQIR%99>UaQAwLwR1?i(e7?rJ zBb5Ozg`-+zW>qFo*|~xo@s_LXx^({0p3e{0cz7R99}9#F1gJvXfm%MoetJa51+(C+ z%Y4p?UgPaG9_bTFuth;~;5`@^|Pcz-!vLdduUDXQ7EVu5{--S z(p%UJ{{YhfeegTv8eUoDxhmZJJ*V70;{)UIlK2t79G0#vY@+A=H9c^>32@Z78Fu zw@%TaYrKD~Up*jdct%hK4gm`Us;nJCiEeo-P7k@(!uGHDh3|MUl11(s78DQGEn-`f z>nxgybCxzYw9@7}uC!SmU%t!763oT~`3Bsx8+cIcpHAQG-Z;kIEQS^4HTTydUKl?z z-u^b9N#j4q7nppsFYxWLLtS-J1X7O;jA&!^dX1oXQd#rkk00W%c(uoCz-#?l=nCu| z&gDJc1^L5OVcFRP5b(dphr=pp17HHt@7%E=#r7RR2uOiRfQkY1OWr=lhiiO1S~6h- z{7RD2C_KEd=1>d8|5w6#0UjZ={~nJ&MmXIbTl5G%0zqss6&VjEGkkOav{lV~jQ7|0 zeBir)Ei4lt&pq{xEZ>tGiA&q`=53eMnkO>3&NtpTb{2!uJKs!WYeg2 z;D%G~*uQQkT(A2Cb`N=V>~ce)zo%yw?Dz*7sqtP8o%aN2i4AUDN@v>f9f#lEl2pnD;TB-y8 zpkzBKBGyhR>Ixe$EO3lq_Y5>0)&VKj}iMl6~|Wm7f%L#Vpr>Jy!(y^ z4vI=aObW`6p~8wGe+i?T5L;{)+$(EgAJ&&I**duPuSix@x{FU#dvr8{LCMpXXBBgmLmw=*OXEEnLC6JKQ5RHV79=^l8XZ>Ks(y~ zF!yVX!htNvxv1d8wYsmu6ld_Dl>nVIZRf(d=1 zD+32z)BW7UK&KvH; zk2kCA9z`N*h2cBcXU5w6)KHCgigz3AdJ1j^(0f#rvoJ1)jEjW6VKlm%>!*fkyca}; zR0j}H9zYZ4v|LRY9T-bCc6a3=kA53(zvF?(%VXi0>DD2t!_nd9k>1$`Sm; zg>UH%s8fu;%x}2oaBF-%N>$w1KsB5&nYbx(3r{pw2mPIu1!a6KLH-_Li4(pd0|Yj**wfE~;w)CuyRE(ILEQr@9ehPg7rj-yI|nV<}7l|n$7oJXEJ z{9&wTzWTNOsT{qqfF-CB3}T_9cJcnqlCpuAmAz6C-1$1#1pNOKPY0V|XI&WBp!2Xh z939%TM;fg|lMsnM6^CgbeD;Vpr~(B#wL^BxH@wKMRkkWsv1i}`?$Kiro4>+Ex8xvR zKkJ~jLPp0H38)U<8~*c7jI%`>g+_I2%%vWkB zzA?>Fo#Ouhulw>@7-rDxXPvZxzoX~~a^UBgaxgo9pbC_+`8w#dz5QH%jSt6A)f50O z3l~GQ*MO0+@A!Vc4BoGEt50(0U)q=Bp_;3vfFY;?E{M77YkK5Cpb^;U`EN=ec=*U} z@;M#g`K-(h9Zq7xR)M#y^PdJHzW$4CE#yCVQ}+j# zp;*%^0{TGg<;>*q_3q@#naN|#>p)D5na})jKM|^OBqf|U#{5yLh(yK6RA>Ek$py3YT;O zQ9yQ~;L_^`B85KUWk(+<3>}1~s~W}tk7KDmgUA$phn_31W4i2JFEiQa(!DEDfsenf zM16!gf`=b{m4bF(Kg6HcM~fpauSY-|9tDOwW(P?Z96CI8&*6H%4zh4d zcjLpsH)hD1#1RvnIKfi;bB6mx0vZo~UsGWm6$VZgj@RW);Fa*kVKFDz(}_6Q$Da82_;3Kua`tS5 zDj2bVfFPGEz7o#^^c-dc^se6HOYx!)0mGTr1fUJJjUO^Q_c;|-T!;k3a7~%y%^O^X zN=05WDD%Xf~)-6PUzKypH4`8#w4moqX_ z#DBa&l>6*`zJ0U*C2Mqsk7V@&uQ5;0VUFzJfb=W_|Q2uK%ty^~dSsPi@y#bqb zU~k%rMn_~iTn1Yr2GLc%Db}jmFu9_5KV792=YM&cFX?bJhG?m^OQ`$S$lSahx zihsYy^Zc9og#26exs6991J+B4s!BLEQI!QV<0>7Js}txJs^i0j_57qzls|S^9hgS^ zX29>R=0-W|agg=C&q8YmfI2_~I}}J*joo;N-(|Vufq7G^slzp=k#K@4%4G>)blB_O zH-Cir%s>2wZ45UDavvt_hwZZpyh#Ix5_q8U9ZEWs&E%r{DL#l_v`0iXQ4gh^hmIP+ z`0NusEzbvAr?+#^IhMjrCDduk=f;gWUVDiZ={?I2^Mt{f7?$5`1 z#S=R}A{s#foy@W+w7PYQp7@5P^pLm_W0l}w-L|uT74>JCYJKNfFBnl@Gdi{;&(P2Z zYyjX()Rr$B4g1}mA>Y%PX?#Aan>ag*O(+33fgN*+U2enLTvYyr!0&FafR-N zz`YF_S<%T?ceh4JOR_&KNq9MIcd{hXD33{_sZs089?lt82ico^1HKo>3H^$_r= zdK#R)#TY@6S;XAy2VUNy6dE5v_uHI>`e;J~Ar>{~Fnkp%69Hg`xB3LRu5|PZohJqP zLS{Es*+L9i6?p@zUA=OAmH4G%PGHEz((h4}UGnSX0sxd5~$y8l+<@g`mjk zdmX=RYsR|zKiK5o;^)ut@em4C3^*#zT5Z(-E7ps4vv5sWT4#TRo0Uu--1rJIh4QL2 z$2cVx0f=K+ZyYQ>rm&qD{SUc)Vx*jppPvcd+OThF*CE&UXWz8xa7JieKllC2et+(r z@*d6z&G$1MJcctu^B()IUka}XjXwLNi-$8p^A|8F`M1F2Q8pM#`EA+YlRlLCOZsqk z%&c$K;}c>I4a4PN1A`9XFf|#^SdCpE9E@Tvw=J*gS#fT8wMUn&vQ5X;Lpge^lswVll6vRDQ%_ zYQPGqpaW;d8bx@}c2Z+p<`7@CJ?5mXxh(rLMp9M!R>899Ira~IR*`_hz9yf(dK)%1 zMt{|5*;hTx=lKbdz{r9sqH$UMl$wU78x&A)5__x3_g%}5Z5 zS`Gt=4Qz{WSzjYB@PSh%g>u|>vo2uS`)5xdeIURM>Wh}^MsOvp5xbrqBwS+%CTred=yxg7YN|5^Q;EdTWZ zI;{Ae4|wzW_wKP{hZGo^ydX9WnUOJ3m@ErsTjdlel?=%BbG$or{EV^*%X#GkIrXqe ziMNPKWMkgAanByX$$ySlg<<$zJmGQBr1?jjfR1C8M`}_HX`Z+PmV#@|F{_}<0|xRx zBZTpl8hATSk9?MoN4tcgpDV}Dv1h3E(bWayEd!90iG|iFM->3E#=wUsuk_RbCaB-M zA{+M&rbVlxW2e0NXhW-+&B!2utpwvXtyN-ERc-#TkMY-bT8Jx-rLcnVg;Vw+-hJR< z5fN9Q&YcO(-0eS?!=C=)O{3piZ2gf(#~t8ihmKu!aExwQP^7JE@wvyArnT=!(H}C+ zi~N>M$MATk^y{U1CY8+Bfnw)(yKd7uA>4Mhv`j~lg8 zc3@sue!G>bGS&`t39n2Qxr}v{s^5ahb};^PGV#fdfMB(=2xXvX-sOynC+KX46sRN@ z-vVs}(_iURe`&3=zt!64-jP9xNOY==1!mi+v+aR++BpEM*iLH!Q}_c+_bMs<Pv!0(1Q?gQ*!&*bR?@C@|7Is46@IER> z%c_g>-|^SEfYu+M<<%)BT6u@6hIT-9y+wQ#^!-|7*jms zBVu_OO^=pAoYc{+G&I9xMO`9Guu@sPm8zqCLv;ENEm6Zqe+%qh*2q_kyO~=oGo1ZA z1m|`38&y&VPQaS*^+@rfp~3rXPB|!SJbUUr#I)53bcz8Zg!*~}Y~a|L= zgKFt8Gx#sq^nlq%umC>Dk?Xs^0&X=dKJdOeA0*e;wZHgH6IJ)~JM&u^RzZ@K3b2uiSn`$|b z`lNE=zGle_HU^83KCd2G321X5$ly?j) z#Xu-W_m+N@zvFeLkh4;vV^pTsjM!BkpdO7qb@7MBV%rq{HZb;l&2WtW=l}Ze|8M)B z|8x9z^+_mbp}VJg-QFo4Sb>_DkxO=L59?(KF->^bYSlX;VC2hsrZolNMZrI7$8V z7CejG&-kzGdr}D|sFwLFp|DELaJo22*s9gYt-9pI-uEJJXM*t<8G`2X)FNXl7aGsbcsnSq6DR4^bn!~BerD%md^9d9-(fp*@)lnOsB&w%UT?d!r6go^fFvo;I|% z*dt@EAq_D2(U@&bzzBRMLb(;+z#<3Nb$a#V@Kxhg0359{{hYdLAZu0#Yzce-tH7EK zzqJwWzd3n0U*G?hlfT|Sypji5BCJ;p{0OV5M0lk@qx`B-Nm0EuAq)j#S;}MkF2YuH zMvtlUaLs`Vro6QhZ7v^$m3Li5p*y_(CI0p?UVSFqnKa4Y7#@(uSZXJ*%j6rjt+)$y zHnaa;e+ZKTMjNuE3`he$S*`l59;<41)w6IHAagxn+edsV>br9S!v?1V8E^)Rxsaa8 zR7Y?MxMfUXxsCs%e#ffz3&M>H5zBnR2o|%Il+2z}SHB#9(hl!h({E$mqOAQ`C4yK^ z10icVdt35bP0?h(CJgxOc&oNpKMqfg)8pabYO7h*i4cWRB~}bryU`F`i$m!fjr8_Y zoAOG1zKnl$N69)Jh5;yPOI0{sjX~D%9gsAv3l)BcMBbg($9hz+!^^P?R^x0BtUPH< zz5?MaNa$*J3*w6JlcsC_=1)=MrufQoyB!sXY{f%|RvS0s)pZ(sh&&Y7zp95($fZ`r z5v2b__j;$O@5Ca81vkhmDVII?UE5}nlmnJkbmnpRam9XFbS#?xbnA;X9~+q%R^7>v zvZ2TR`zWkqw>k^#JTy3-syHE)yL)x%h^O*|mFY zHSe2I$+?fyzxP?iZ!D z+eq>+U;e{`!t3$&mptfZkL+T+lRaUBL8L6yLPN6J412Y~ZwfR3i~{heex82^_(}-R zCQm(dMV|l@yhxIO582WbW@@V>)x`fy!)lBN4wSQ(U+uYU1%9BpymT#~xjyj@z@C|K zkAJ&!!KtM3*DIa5P)$bzziA_}Z(6>E1mCu^%{qw;} zg#i2v0;DR8TSz*%qWQB;w^zT{&P;yRGHCzde7JAOcvO3(fHRC;WGQ8@5VP?ksQ2dV z?kax&WV5JA`zy}*I(0yxeVnYvA=fbQQJ^9_l#wBVG}Vz-g)&t+9t*Pcb4jdIU%O+Z z+$Jxd)IA7%R3o4etCYZ(5y1{9g*x0l#)tQo@*S{|nL$JtW7TLidG%ULsH}#XD4|+8 ztGeetUPt;?)Ay=hoN9Zmmf0pd;MiWery;8zw(9)kY^L0Q&i@pLBc<#HY$2$|1#N)0 zs`J&@O&Ox8FB~t<=4X9}l{(6%=H-UT%E+u9HooRgO-c0wb~T%-Wz+-aN3;b0mTUo` ziqeTA49GTaLTLdCb3%Ll**3AIWM=x2p~1T+wTe{!0Loy20vKW)@u*=csC$-}w$}wT zK;)nKWp*D*lJ6>PGU^L6boUPE3(B^a z(8dv?hJbk#2;Ky{Myj?7 zlmKW@@a-ND=~PK|GXSEst^5xoC>R4SqzARni|V5f`SZK$0)+HW&JX=y|I`Vivwk+f z#|6!Ya{PDqR+X5#qDFZCUknRQ_t(({^6XS`*MLZSn-sbmajCQaRs$pJt1`DIE*BpE zkB$b&l*2~?dwcK@y`)@O)&mdi<1+BhfpGQE01WmM8nSPhI86#xp4G&y4WvNz`+1?9 zYIvqT)S+Tt0l#*CMDpb&%6m(IE=gy*0bL9=p3MXR{TbL$VX&&$QxpXl>K`JN-qTl` zkmx;5RDehwn5-HRV=R}P9Ha*juS5N^?^gQi2%B_d&f8%>nu;`%(z`>5P+e6nC0+NS z_#>|34H2%S+G~8kN>5-rix|R!-qg&`PV87jus!QhTd;`SexPQ5jgJSA8I&lxiBm>} z6zQ{Ugw}FY947K*`l$aNuTlZmA-}x84yd|%69XEdeOSq+TnHr2)Z zNMnIf!eLy7K1BG&u3dd>nU7bW9tRiwG#9jwj8%Nj_ki)jeZl?pnSRcHKfBOn_#|q7 zj2GieS=j_>WHcK6-4_3&*p1ja34omA>-EHNce4h zJ%;*v;tJI7GO!a?7Y8vZRdV!=iLyER1xqHQdL1e79U@!G{d}A%AwG#y$(CLhMV}93>JbHuZq$s=fP0+QNsI0&=!&Rl0cy}c+ zTQ!OH)yP0#VgYdzg>}9R$*ohx@8<>uNw+iC_;LW$mu~Ga8{o(ysrfHV2*Vw!;*L(O z`+|F)&M8h|otlRGbLp!ZNx(r+=nOeZ6SY960q07PPU?eS&-?Z+3vuhfq!`P=Ed6vU zqs8vBTc$3Myh}(xY9O+x8r|m7&0mbOIfJ$?YwH}!5pp~uZ$)97!vGli4BIFhsYhKf zAfBI5cDX}182A?Na)&@yksplUn8H6z`Jf_pQz2;eEyUzFhhVjWdPSG-iPz=I4@;`M z9Sa5M71QG91lPM(uo{rnp<+;w)zFWo$5x_C~u?^t7 zZ)CiE3$~tXg40-DiOI&Rl?(Ks=sGCG4}s_kN(0N+YV~b(+^hNgyHOabd6?Q%aG|PI z2n_nzKx8Oa>}jFtTlQ;vcO5*$rbp*%{qn)m`Kewu0R+F)yIog^z%@n(PU`l(Tu1O% zmUHp%yn=kLUpYYR#@90$vvu`PQhtHpIWLCo0FztTbMDvt9~efhE7jI5iN<38O^yOS zYEJ``M)#AtZgzZzd5Gk-|2o#sR*SbWjzaZA>2GY8R^57CkR}HIZF*q-sBf7%Co=t4 zR%Z#fU@$=b$m7h1Er^m+yB<(goFRK*M4-uHv5l^uy0q*HCM&Zum7wew26qrLi;v^# zI89j?;EqwN{W51%JHBr;@C<&G^CH8dX0|GYcRi`)UvIkgAR~|XChQTyhyiNLUJXBQ)S)F)DsV z#63!kr0o53yjT*jvW{x7$2#>LRu`lw@}`hYP#w1#mL-hy6@0mEDOO7N5n5!Z=c)*N zJ+I7A-#jB!3AkeUL>v8OjC1(|>SPaXSPWOTiLI|@2e>KZ7aLnuv9Q(ehwlqY^usB9 zD_L%+yt?0>BtBtG#pk1cSVZ+PVFIh+&tTfF$v0WGL9afu%vT$f7Vk#(6%01tQV5Xx zS>F8qxyzZH<;{P8b|y2Y=V$e}9X2a5;LvHMS~vmwVV@J?-#iP3$XeZ10D(%e4qsRK zTqIWhr1<*E$#7jXp!;%gRIT7@y*)J_@Y@h%%%xE(z$%}d0>-<~OeJPsfm8-6_ zyP;%}GL_uh)d0{dA66$h4=#V+WQ4&{UNPf0N{(}|EpB)?ymQTor5d_YFfWUSe&Y47 zSj6~a#~Iq>mkz~SUW{P{oQgyE8dSyV4v(mt)ErupA4vUebn+>s6d6ZMlEFAz{ zcV{q5-83s7%%450h2*)M#z);`1i}YWIklw0a>)k|&^Go$mr3cGC$RsMxxBYjC&p@r zng%G}TNYaVH4@udYeeszlH?Gu+CEIf+sF8<&i>#Is1}wL5XVlUIOk-v852BIO#e9aq zui4u|MR{&un_$QGAt?bd@M20PF>VT z?FhVTXH`hK+lE=P#jA_VfZ6yi^LTuC`4K)o@G-uZ#hXNkYm^g&zd_J-{U+eo!`BxU z=jS%DOs|fI7IbOViYd-ElxXk3DY{h*>Zq_g5B2%MXEl8tAff3AzKM+*qeYg1_ppgq zX7B*(&sKF;9qZeEj>k&qIvDlr!K)Qr(>N7fKrb;3jwN@xurN+tAvtf3>_h&b0?)#2 zh5OE1b6mKG!Lp)=1A^bTYGh%DS^d@*@U1ABBk8`BB+gdGPitb) z<8SLeBP>ch2a1-Uv`gL2iE!dw5TAf;FYVvs1M@f70+rAK7YsOF9fgo$D^uLHx5_EP{h9_sOIh*6}(ks?Yal4nwUUQ^#Z~%~`G` zE%;D(I;29=6$JF=N@lxRBeqn9-*v>ISiZWi$$@kgZ7MLVplrdXo2|R?{*DpYbNp`$ zguY^SI&)utTVRCvgija_0)^Blf1a0h$`CgS;8u;TS;s*wsfls=T#EaOI)!WaUw2?B zs(42B?mnAo28^~s_iDkUCYw4{R2$Ce1j}PlMbdepTucw2e;Fh7Jn#y_Dfkh5Tp5U( zm~d5Xf2$7gWop!|u0O}K%pn|Ms{`8{OZP#j@I(#yy4n@twRDgIu`Zv^7Vq$seG$d1 z3TMUGgG${RK49vm!lf=BRSYqJSN#GzeL_JuF%@1@uvj714*CVx!k2?{u+%QLtb0Af za_TG{ukkm`py#Wnd5vc;^dM(F&nTY})zcMf4Qde4;Su)F@p^yVzNk)Spx`ymOR1D5 z1vec^FWFFVT?lP?$43LrYyJ^yZq>6~6Mm)^^8?>!z+$V$TmRZCMM&dS zCxYSLuzM2~U|2B6;1zZnAUEC716H@U($DhQKi)sO0|c)`@1(+Zo#J`cQ1^Kv7o`^U z=F>fD@!4SDa=OtUVH&}HC;&tb%Z`rVQbX)ja?y2jL{L}S2WIVmAjNuqI0_yQ6z<`0 z7Iwh`stvNr4_Jzw)ZsDeTF0LWqO5;}Ml@Zr4HM6^VIFka;Hw*3cS1p^0AGMfJD%;6 z&usIebcjP)_Q*|B0~=5Wl7>`yA#b&|0f^+?U=ff0aIf>f%=mh^q1&OYYWtb%0IlhI zHM^AaxEH=gS!UZ_nEP=NS5`UoYG)D}*wv0|eNO?TtUDFgGEe~Z=>UlC%gy-5c{fsYP80JIvA~D56LPY{L{bp37YW8XZ~B&Ek+QOJau=a61w*=Krr2KwRFSJ z=lt}0{UCdvlS;1uxXD3WgG!#&8c>%}E6>V$9Hwu)!MFeKjWg-_a1OtR+TyW>Kb8DS%WPv;NBtg}ZiIC=`;)Ig zSytRO>0URuk{d?%MDtX(B?+(>oj^7f;m*$;C+*>;Qa=9MU*Tz#;n>Aigs`F;5m4{J zy!|||gp6#JcPw_LelC;_`>`iFfC{=H#*}>a+e5aqMh62HK)Z_Kt9e{J z;^V)!iFFRTLJtk~Q1lKt!_ny8dGu(g^FZ;qLxJj_sbGuoMP=ussm`e2g4M$dMxjdz zG5k(>zq-@|TVj3y=>XpRfo%};z+zsipog!O*zulz}UO4vcAUOQ%|x2ibXeT+pPW{YV!|N zk74TUAI05D+YFebi%0UNA0DdbD}BeE!8?>PGz_1`-N3)5pWvR1V?+~lSJP!WzZb{z z{B<7tpGAxeFgGl0wazM=)0Hx#wiP}EA-+o^jH)}c0+N_*HKb9mNT+NMrznXI zUQ%tkP0{n4x&Prgn0~d#Drlm*U7&pC+&QL<%SRo`P-iN)ngWeC^>H5_TF>NYr(|xA zO=Xo)q~wkAq{D7yHRZvr1rWH2zx|F6#}H~Tvh_;mN7z|n-Go?`Gy&xa8uq4>7SS$P z-_P-S|5qOx6ejEL@3bb~GWVpuEJ@d5sjp@%iWc9-yYKjP=>A5&0@MNr@7Rf?bc5Un zem}ERfDhgO-F`e@=A-7LZohT0nz~q(=1{nW?K4ebtES6Y-Nu=X@Z03WrKY(dwJ!_m4r4!4LQ#$_6v4tbEF+wt-GpYaYSt=Pvz z&I3R(ZQa4RumwxejHv`TVV4mf%l{egA#S?p-ORR&?mEzOmr9C)+H%8ou^my_I{(V0 zENY@L0sPJ`bwOOp17E-uwLk&mD|`Y&R~L@;bN(71)!ex&9VY6UaAX(jlXY22ZmMTg zE}Fb(Oh4zZ@#!cSjIKKYJ<_79Z}8qLVocQM7y`sM=Fyk=AwGDY0(e#oM9n^OQ75pj znr`+@*U2FTdno|k#$Nu1_@3h-Zde{xT+QjH>Sf@$HR^zMt52pb5M>aC{Tjb+*RB^` zd$W<+FLi3-fQWXeJ5fmSb;d6*kap9#{X-jYOCB8-PkMm`n;Z{8-btfvy?o$`{rtC`~iEwZ9EYV-i zJ0j-?*aM_?-mcf2j%JZKH6vZR!bZ`m45ioEO}r{{-*@l6d|x?l&ew7LkC(OEw8G@)CHMk)`;Q(Ltw6` zAzHoGkL^3h$3wSN6-=I2anzamt_-K7cFtD|6GalN6jpDU~l3fOp;Jn9- zEJb?MdSvLl!B^`a&(|J$tcU8}Ee<=WTg%4(1f>`QK_fe$7nkSd1HAjcg2?JkuHdFC zsvXe*UklhuV3fyr=)xa_Wa5iH&i9)#qD~>j)kDYmDrjA5f-H9ji-+`<>_9?i;}w9} zr;@-FNp5?mtO&aHSt4GfvUNrEl@6;b%mZHRYOH%6I97Wr2-otTJ=}_d!${v!Cree2 zs_PBHpqelfVE|Jtww>-syQoY3CL1YYXOAt8qRW|#OL~O~>xThjMgfLHiepRCe6Ipv zPM2=N3oFztN(vsX?DSiiN{@~ln~Q(=Ow0tnm()+E5k z)xix5xbIyvKEdr0+=1uNJt`Tq#hN!veKa6=HgG88eCQrX1yO%8N5n6LW2z-<_kDzw zjcx%}cLo?J*i$teum_i7ug|jLv)`b`WBsx^JOMbWZkbZ)Q&6)E9sb3pYLToEmbn$S zo$7NkN7Vehm^Vkos#-MB`Ic-|`d^#O#iGq!_rkdG7~ik)MF0RBo77TwohQ9U4X1FW zC@$6nM2Tbi=*Ov!sF6e!ewn&Q3!MDLVdh;!>+ zHz^~$Ju2m)bmvtj&iX+e{MhD%6weNrLm6JcJ~Vi$R!cWs?=e(R$h!cf`9|yr@(=k! zo~n5sjhz4>t2>A~)&p;HR@?yus5BUOfG$x306-#ZsC?DcwB|kjG$DFE*k^Rx;fyNd z>PnKbx&Y6?+|L|+ z%|nUdkeAFk0yud~UG^S;UMM1}h$)g_sO4?EoaZCvT4MZ>WnI)L;dfcquNL3#8n1gw zaz`7M*AS>ATx4unHaAK~$(gNk)}AdK->EnStFEkFYZm&D)DuZJhG;L992H<$Ds!@+ z`Den~^-k&VP0i9kLIba$`+by2;T4lUZ)yb~WmDkfZ-@9eEi4dnAP<bHbp@BsTmj1Xy80tvvuDMhIo(h8Db)XLU)175h@Q5U>go{fIb@ml|Kn7tjE2c#%a(2$jwpx~l%UwlxM zN=3O>3()&%snVQrD9S)kJ|Zu@imKuvG1~wwhf%X|-b3f#KOG8qC`$tQQ^jmlXn^4L zu4)ehG=E(*J+RQ;U)M9dLunTt!l^L~;lrUYZ9u#lTB*N&vkfYwdqDLu+~~3WXBsmW zEuWY~U7H|I<|Y2S$l%GcZ8|UM(Y3z13vp%3Cg5yZ zR$9WZj_)1U#D>vrX!aQ8fxK>?eGvPE0eDZeK+TPdb;&p*Dvw05m=Z#1sU(Mi&@% zT|A`1D/FHEM/lib/zwave_pepperlinks.csv.gz > zwave_pepperlinks.csv\n". + " perl /contrib/zwave_jeedomconvert.pl\n". + " diff zwave_pepperlinks.csv zwave_pepperlinks.csv.NEW\n". + " upload shown *.jpg files to fhem.de/deviceimages\n". + " gzip < zwave_pepperlinks.csv.NEW > /FHEM/lib/zwave_pepperlinks.csv.gz\n". + " rm *.jpg\n"; + exit 1; +} + +open(F1, ") { + chomp($l); + my @a = split(/,/,$l); + $m{$a[0]}{L} = $a[1]; + $m{$a[0]}{P} = $a[2]; +} +close(F1); + +open(F1, "find devices -name *.jpg -print|") || die("Cant start find: $!\n"); +while(my $l = ) { + chomp($l); + next if($l !~ m,/(\d+)\.(\d+)\.(\d+)_(.*)$,); + my $i = sprintf("%04x-%04x-%04x", $1, $2, $3); + next if($m{$i} && $m{$i}{P}); + my $file = "$1.$2.$3_$4"; + $file =~ s/ /_/g; + print "WARNING: bogus filename $file\n" if($file =~ m/^[^0-9A-Za-z.]+$/); + $m{$i}{P} = $file; + symlink($l, $file); +} +close(F1); + +open(F2, ">zwave_pepperlinks.csv.NEW") || die("zwave_pepperlinks.csv.NEW: $!\n"); +for my $i (sort keys %m) { + my ($l,$p) = ($m{$i}{L}, $m{$i}{P}); + next if(!$l && !$p); + $l = "" if(!$l); + $p = "" if(!$p); + print F2 "$i,$l,$p\n"; +} +close(F2); diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 735fe3966..419ac6e16 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -3060,7 +3060,8 @@ deviceEvents($$) if($hash->{READINGS} && $hash->{READINGS}{state}) { my $ostate = $hash->{READINGS}{state}{VAL}; my $mstate = ReplaceEventMap($hash->{NAME}, $ostate, 1); - @{$cws} = map { $_ eq $mstate ? "state: $ostate" : $_ } @{$hash->{CHANGED}}; + @{$cws} = map { $_ eq $mstate ? "state: $ostate" : $_ } + @{$hash->{CHANGED}}; } else { @{$cws} = @{$hash->{CHANGED}}; }