From afd0b907f350a139ec05bdb3fb493d87d35896c1 Mon Sep 17 00:00:00 2001 From: starze Date: Sun, 16 Apr 2017 22:42:31 +0000 Subject: [PATCH] Introduced valid modbus bindings for all nilan registers. Python-Scripts for reading nilan modbus registers are now obsolete. --- README.md | 12 +- openhab2/icons/classic/fire-0.png | Bin 0 -> 1116 bytes openhab2/icons/classic/fire-1.png | Bin 0 -> 1557 bytes openhab2/icons/classic/fire.png | Bin 0 -> 1116 bytes openhab2/icons/classic/flap-0.png | Bin 0 -> 208 bytes openhab2/icons/classic/flap-1.png | Bin 0 -> 484 bytes openhab2/icons/classic/flap.png | Bin 0 -> 208 bytes openhab2/icons/classic/light-0.png | Bin 0 -> 750 bytes openhab2/icons/classic/light-1.png | Bin 0 -> 756 bytes openhab2/icons/classic/light.png | Bin 0 -> 756 bytes openhab2/icons/classic/siren-0.png | Bin 0 -> 862 bytes openhab2/icons/classic/siren-1.png | Bin 0 -> 1385 bytes openhab2/icons/classic/siren.png | Bin 0 -> 1385 bytes openhab2/items/groups.items | 4 +- openhab2/items/nilan.items | 362 ++++++++------ openhab2/items/nilan_generated.items | 3 +- openhab2/items/nilan_write.items | 7 - openhab2/rules/nilan.rules | 447 ++++++++++++++++-- openhab2/services/modbus.cfg | 262 +++++++++- openhab2/sitemaps/main.sitemap | 257 +++++----- .../transform/nilan_airflow_airexchmode.map | 3 + openhab2/transform/nilan_control_modeact.map | 5 + .../transform/nilan_control_servicemode.map | 9 + openhab2/transform/nilan_control_state.map | 15 + openhab2/transform/nilan_flap.map | 2 + openhab2/transform/nilan_on_off.map | 2 + openhab2/transform/nilan_program_select.map | 5 + .../transform/nilan_program_userfuncset.map | 6 + openhab2/transform/nilan_ventset.map | 5 + 29 files changed, 1068 insertions(+), 338 deletions(-) create mode 100644 openhab2/icons/classic/fire-0.png create mode 100644 openhab2/icons/classic/fire-1.png create mode 100644 openhab2/icons/classic/fire.png create mode 100644 openhab2/icons/classic/flap-0.png create mode 100644 openhab2/icons/classic/flap-1.png create mode 100644 openhab2/icons/classic/flap.png create mode 100644 openhab2/icons/classic/light-0.png create mode 100644 openhab2/icons/classic/light-1.png create mode 100644 openhab2/icons/classic/light.png create mode 100644 openhab2/icons/classic/siren-0.png create mode 100644 openhab2/icons/classic/siren-1.png create mode 100644 openhab2/icons/classic/siren.png delete mode 100755 openhab2/items/nilan_write.items create mode 100644 openhab2/transform/nilan_airflow_airexchmode.map create mode 100644 openhab2/transform/nilan_control_modeact.map create mode 100644 openhab2/transform/nilan_control_servicemode.map create mode 100644 openhab2/transform/nilan_control_state.map create mode 100644 openhab2/transform/nilan_flap.map create mode 100644 openhab2/transform/nilan_on_off.map create mode 100644 openhab2/transform/nilan_program_select.map create mode 100644 openhab2/transform/nilan_program_userfuncset.map create mode 100644 openhab2/transform/nilan_ventset.map diff --git a/README.md b/README.md index fda41cc..2721206 100644 --- a/README.md +++ b/README.md @@ -18,18 +18,16 @@ Copy config files from openhab2 folder into your openHAB2 installation (i.e. /et ## Details -### Create nilan heatpump modbus items out of csv file +Some details how I created my config-files. + +* Create nilan heatpump modbus items out of csv file / nilan documentation ```sh $ cd /etc/openHAB2/scripts $ python createNilanItems.py > ../items/nilan.items ``` +* Add modbus address binding according to nilan address-specifications and the configuration in services/modbus.cfg +* Add Items into your main.sitemap file. -### Automatically update items that are not bind with openHAB2 Modbus binding -Currently I didn't get all items bind with openHAB2 so I used a workaround to get all the nilan sensors into openHAB2 items. - -```sh -$ echo "* * * * * root cd /etc/openHAB2/scripts/ && python readNilan.py" >> /etc/contab -``` ## Other useful links * https://github.com/nickma82/nilan_communication_bringup diff --git a/openhab2/icons/classic/fire-0.png b/openhab2/icons/classic/fire-0.png new file mode 100644 index 0000000000000000000000000000000000000000..daa26137c17052c9f0577938e7b32dbcc7974926 GIT binary patch literal 1116 zcmV-i1f%vPw>)w~AB<1rq z#HGRaX`FBD1_c-lks7-3m5s(mz+a4hh+MjO3IP?3GR8Hv@|p3JDW_+%{e_P|r|-vi{m74)mXGr=)iz1b2?PfWT=C1Jb|TCe}&# z1j7WuF)mM>!Z3qAh#~#AThR(eI0P?`T?X9D2oGxcZ;x0xU?Rf`DKVk!d$b#<#T4nnDbj%4? z4VHbhrT5aaGgX^EpNS%5Ajw>mul7j)%0@JaVYa`h57|gDIpJ5Y-hb6hpMrc8Imkh> z-U&^fGC^D<)|==Pd#8UGvXH2K)_<&P`v3N(RT{>N=; zxqa}Jpc$pom8t3|c;0^DaifWTnnYHNHY`DhBq3ET;LoV^zGUP}0-CX;4;?5Oyq2$i zH_ciA~49i+EEXBd4o z7LO3H7-i1A`RawqaaIEUKU+sXdl-GCLocJn7>0q%>=qzbs_B!4gk}ki2=2J z&!nl>1P9t~z%d&09QraWHVUZJt_x_@4I5ht_-ISjIw)0Zzl>6C9T4;ED`C;-*E1Xe zX8XGgm5|g>~A*o0&$YPfZKEeYQhMp(MLe3i*@mTJJD*j3+jyYi&3I= zK-HIlw?0?GrrX*ESh>StlsBJ@{;FZnn zSPgTK>@35(H1r)P?u~!N_KemAPV=@e^vfSg>l09~$^YI0RETLR`=9f98-MR5Z_Oq< zt*BFBeZTkTD(EQ~!2wO^65cR66UrqwEJmY~d<#|9&-{6d$j*kImRoX`(~vqG`gSbL z%&FHFpV?73qNBHD38{`Fs!@l64Jq&V66S21Q#gCAf!GAc-m+05h%TfFnkq)4M+@dKzc-P4Pg#zc(50ocrcwzAU(Eh$?kH7b&2gIl1 iH}PfYVgFIl`))S}Fl(XxKs#>$0000s`s$nrz`r57h%|XY7wGF>H8xgdeE_1E?d*!Y zxEx;o9HHVY_W<-7ftdSDxH-#RAp0JOsKCJVsH`OaU#M+vAfOD)#-ky!Oct(xdXgG> zK@Wb&s+|E0je+%_1R{zsHFi_>to<TL{v(l9vc>jh5!dS#LlFflzSfMu_~hcY?&g6Ws{5Go4J zx(|hx<^dS-o4B|X@YaDK|6{nR)g=1w=_C&@vHn`d$wL~7J-_q<>~^L*zLzKvPzTn} z%p7@4w^jM@z4KsubeAf-N2dxpp#PL1@_2p&vjLR=3~$QE5)`@6Z008jk{-wLT+T+vHY0U3r-!Ht*YFl~KsX_+WGO$iXcl| zy)P7CKARm>tJ>h`U$P6*97ra`@aBy!1Hdl!S@qeSD&!%pCyvicLR{2?-uc6BT;V%D znjNyXn&>fm;?N=><_h2u_BO3B}YP=SHjpr_Pd-68ca;CM|W zKNFA@lmGwVIxUipaIOzhd$f%^bT8zgx|=v|iY@OPj+aH!0$%4hSA5OLPF0c_5HSO> z{f+EUlbHOO9M1vKBzR1G-S|Nz()a$YqoW~(XM1=Tm*io+CMJIx$CE%%5|_?;Eo76t zBkZR0rn1F-pxXe9?K6e&J?w%!;6d^AAgXEa4H$$S;nM3TCV!7h@_?7c_mC}){?@bw zQ(5{R<(wdlj5!>p$|iKcjBp_PL}2u%5UCJgYz8F8As0>$rUkv$thLP(1)Mg!8-^+uyNy&`y&X zq5B9Sl;_{TBOyB`tpOIER0F)EuKu!Ruz}fn$j=L=vXZsLdl<8=lNCJxWX(AG@5~~ThyKk`& z|2us$)~(~o?*m;NN3(@>!~dB;1*;6t`av-=g<4N=JpGTRt&rSsMONWtFE=oI3!W|J z@B1iprM|DLt3g4(e(CCJ2d@D0IxspH)yOFZAzKCYx#0f+fW{Joa!Xu*00000NkvXX Hu0mjfv||bw literal 0 HcmV?d00001 diff --git a/openhab2/icons/classic/fire.png b/openhab2/icons/classic/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..daa26137c17052c9f0577938e7b32dbcc7974926 GIT binary patch literal 1116 zcmV-i1f%vPw>)w~AB<1rq z#HGRaX`FBD1_c-lks7-3m5s(mz+a4hh+MjO3IP?3GR8Hv@|p3JDW_+%{e_P|r|-vi{m74)mXGr=)iz1b2?PfWT=C1Jb|TCe}&# z1j7WuF)mM>!Z3qAh#~#AThR(eI0P?`T?X9D2oGxcZ;x0xU?Rf`DKVk!d$b#<#T4nnDbj%4? z4VHbhrT5aaGgX^EpNS%5Ajw>mul7j)%0@JaVYa`h57|gDIpJ5Y-hb6hpMrc8Imkh> z-U&^fGC^D<)|==Pd#8UGvXH2K)_<&P`v3N(RT{>N=; zxqa}Jpc$pom8t3|c;0^DaifWTnnYHNHY`DhBq3ET;LoV^zGUP}0-CX;4;?5Oyq2$i zH_ciA~49i+EEXBd4o z7LO3H7-i1A`RawqaaIEUKU+sXdl-GCLocJn7>0q%>=qzbs_B!4gk}ki2=2J z&!nl>1P9t~z%d&09QraWHVUZJt_x_@4I5ht_-ISjIw)0Zzl>6C9T4;ED`C;-*E1Xe zX8XGgm5|g>~A*o0&$YPfZKEeYQhMp(MLe3i*@mTJJD*j3+jyYi&3I= zK-HIlw?0?GrrX*ESh>StlsBJ@{;FZnn zSPgTK>@35(H1r)P?u~!N_KemAPV=@e^vfSg>l09~$^YI0RETLR`=9f98-MR5Z_Oq< zt*BFBeZTkTD(EQ~!2wO^65cR66UrqwEJmY~d<#|9&-{6d$j*kImRoX`(~vqG`gSbL z%&FHFpV?73qNBHD38{`Fs!@l64Jq&V66S21Q#gCAf!GAc-m+05h%TfFnkq)4M+@dKzc-P4Pg#zc(50ocrcwzAU(Eh$?kH7b&2gIl1 iH}PfYVgFIl`))S}Fl(XxKs#>$0000dpr6IS#AyV<`cwASjK#oWf%;)%7;v$M45=;?^H(Q$Ecm6esy(9z50_o&9& zq@<;yqN3j3-hqLEl9G~te}8;@d}?ZHovE;ll$ylE#CLmsWoc~I*4DAHvA)sV$J^<6 zr^AAXjDLTCeSLl3-`|syld`h1!otJe-rwu%>uYOkgM)*kqoV*j4sieg00VSVPE!E= z@sZw{qyPW_%1J~)RCodHmSchgVGu;ec5K_W?tiGPy}^gL-|wl{<1PjOt_=r){{`l6 z5}A0~Xa2)6g2g-^s+9_cfF}4FoGN#{peTxn0>`x~s#evFqWF&B{ARyE;MnKE-w=Ku zc1Z9Q4McM>Y{7Fl>5qgZEWvv?%kw;*Kza-F_=4vo2tYtp&{XgR^~SK(7CQI>+wS!T zvI0*51R%KFV)?z=&c9p<*E?y!aIKN5jdgi~UU7bxtm({Kz6eNa-fF#((FFuW69EPQ au8b#xy*_sC%p(*40000Eakt!I->2OMbP0l+XkK D1b0gb literal 0 HcmV?d00001 diff --git a/openhab2/icons/classic/light-0.png b/openhab2/icons/classic/light-0.png new file mode 100644 index 0000000000000000000000000000000000000000..f581dd94cf3052c62ebbeff321aeedb863c9fac5 GIT binary patch literal 750 zcmV%*@Qp%*;&JGB@j<%G`gT%uJ^;Gjo%*okW%`mzfzd_vLkLDb?@22}&C2 zn~5McNL)Z7kx1^|y_;Vp=4g$w^_szMM4n%2hV>l{U*l)^9hSke5Gy<+q^?fc4xL)x zbkqKu62r1s2kQzQagDOIkpcb2L8Z}tV;jO{M106>q!~8FK{#R97Pbi@5Fn(BM%gFq zxRZu$V%vO2K1f^W)c%Yej)q~|fuPYGc;x>5P*IJt$Jo(m8u~zAz#E!j?ZFPZVd#sm z!4uL3JLaaLPv8aJWXIhV0F5039tZ>i<#f~jjlzB$MM>%CV3pl=RV0Q;9$0-$dm=74t|&H?W@$N($kl>q3Qhb{0S zuLMBfJgfqWR|2R8ivzDw3907UMkpMv%E?KPUGrc9yb8Ra605KK(KmYoM`X~cb=$Sc zk6Jf@Hv*LPbS?UZ(G7S+H`tZvN8i2(yrPC^M;D^s4tPeV>}>R+&rSj7U>0KcFbefJn42LS#+#uaJBQrUphqyuS#P#Zf?%;R$KP-b~Az65}Un|EMUBnrA z$&D2LEyA)`2kXi`;>&d5a!!VY0u*e1xpn~1+DH^@_) zf=>wB#J0r_KC0E^27P98@CjktuOq%1ARr(IuVV@uh+@RasH2_7of(X2bHpyi{cuh>#LLS}&g5WhTBU*8<40w6KUkpTmGh(=J0A(NwCevEDZGfr!DTo3G_=Pii z)I9^pVGs?|(EP6D0(7l8h)AkIbr)`b2Lw)vHf!Yg=~U`NeLE$1F3`N8 zW1}B!Ru5!=8{~)sYyTj~g2}X=4jg^mKo+iVsQjuRUvjJ~m9`oF%tymT6n5pGasL)Iq(vcegeYCY-Un*_3AMw)fB zY5?vf62BnjD`nLH%s7FpEME@4aYpW2$okwJITC&anThFif`z2#Sdg7Fn~VI#S<0O6 zdUpuR>SWgO<)!}wMH0}jU%yS#+#uaJBQrUphqyuS#P#Zf?%;R$KP-b~Az65}Un|EMUBnrA z$&D2LEyA)`2kXi`;>&d5a!!VY0u*e1xpn~1+DH^@_) zf=>wB#J0r_KC0E^27P98@CjktuOq%1ARr(IuVV@uh+@RasH2_7of(X2bHpyi{cuh>#LLS}&g5WhTBU*8<40w6KUkpTmGh(=J0A(NwCevEDZGfr!DTo3G_=Pii z)I9^pVGs?|(EP6D0(7l8h)AkIbr)`b2Lw)vHf!Yg=~U`NeLE$1F3`N8 zW1}B!Ru5!=8{~)sYyTj~g2}X=4jg^mKo+iVsQjuRUvjJ~m9`oF%tymT6n5pGasL)Iq(vcegeYCY-Un*_3AMw)fB zY5?vf62BnjD`nLH%s7FpEME@4aYpW2$okwJITC&anThFif`z2#Sdg7Fn~VI#S<0O6 zdUpuR>SWgO<)!}wMH0}jU%yO~H`AVN*EYi1cAVO7xKWLuiqS@8P{yil+s1h@uhwa2@7`>6|8O<) z%lE#_^1p9ALCW$$p9fPi00NGMaLM3MRV`MFu?lz6Flue6(@NFUavUuES53d?Uo2J>?)Q^2xyoF3&Opp{+>t1YI!zT@;& zOdub0eKOK!sb`SIrJn%I@#g0rcjl8SC(yjRwif7Oty#2f-W{q0ghw^zASPt(HRi&j zss@MyV+D=)C|2UYDgjq?xh9Jw#zz*{bVXNHfN00uydXm0BSCIH+OaBt+^If-dVH0O zWR-xO>!eqJl)F>~a1$XCgRer|L=}JwV;37N0$&+id|{j#&^M}Q1a99Xu#mJ(8%#BjzA-k_)J%G1g_U$@SDN)rU$er?*N5s zNeMV36m=4f-z1{$j4%~oyhF?i?*KtCH{Ov7kaVgNXnZG&qyq%)3Q+h?krJTWwax;d zwQf%ZD7P6465knHZc7D_Jz9zk09xwaQ~=SVQ20;bx>GKp%mg3_((M4P3Yp0SXiWu3 z8nQZqq#+GJ5J>|3Cm}*q1YFxFiUNuM1fqCtV?}^&3ko2~qM#78Rs_ganPdf!iLMMN zw;7QYzzA0vpj(yB3ZQhF33Mn6K{f#EIw}H8pANE`fDVGbiU4{wSxrC_^i~FRDl*#v z=vw^V!rBz@QbqvRUU33RgC?u=;(r4Kzjs8`(Y`@r-xFlohuePp?WdpJKD7vN(MjSu zU8E+Jj63J@n->5sncN}@sZH}dH+5OOU4Xufrx^YAuM2GfC+>@GE{;gSU?#{gd(6U3lwFEe3%c1!@;1)M^e2`nfNQA z%-=g46>q=c_rCY}i#ou^j-S4vcl<^YTJCmdl5Ve;_|!v0@OP3DoE3l=zy>n{V!ERW-~5uk-D1fAoS6@X6!HZ=l|PaCLp7*X?%jM+Q0E zho1NibnQHNc@sR>2dUxT*?jh$03+bKP%!|6|w%#V))CNI7wD zTdNMf^QVJ%SN;XkTYMF=_&Z!EaroHq)1UtM?N!r}hXVurpBTGv#goS$*X{H=e?Iv1 zX5UBmUY|fb_zNvIWLc*ho3IPKo2R^rK7Cb(bG$Zr27Tx_w0RkPSO@d2F6?mIU(*FnXd`3+=c6HO4C67~0+_y7dlrPJ*x zD#;4Jt5*dPjr9}A3V6v42wyUfYJhb{D)|Y*c97hZ`I9PoIT1nD`)H!r z#>_jhwe|r7IN=gUsK{C$P365uY^{9&6FKVCr>MwMa|fszv)Eeu04g}0_#{Dv7k`VU zsv2EFa;EkH2z)|SL7f7W_GhkkS(jWU;tGZY^Bx# z-Us+HSjNoY*&&)NHU_gaHrF=5+|iA7W!WJj@Z1iXEH(}F0p^tz)Gg2kv6ZUkx&|OK>#;B>&Cv$2wXB)}(AWcf^uU1yhU7#9&I+_a zY>myaee40y(Nz)}A?4w zCaqxr0#;PWp~7i<22f?kEaMLVvUOFLqC&n!1F)tRus-$xs>vaCjuH70+CmaXqIzWP z0m$s2iXvh^KwHFSB05mVGhjnR(6)zQY^D(Qjs1UuW?@xS5uJbDozNDs*$`I8z5)Va zKCam|u{i+qyZTqzd*A!sz4i6=wWHtv$-+&(`IS$h#XfSSD_`qd>+738``OQa{^mEo zdF#Ip@XTjE^N~dKD(75|J)|g##LS-j;upX8+<$xqF!Rf=dey6D-un!D$Z$Bs7ryX? zmjO8UAD;nc*7M$DuZhPLj}8BTafzD_Fdg6@5Yeyu{XX`ZKONJr|Lb>xqtWQWU;XM= r-(Y4-*js*`=lO#%H8nLg^;f?KZ)Ji8z3!|K00000NkvXXu0mjf{Uf5K literal 0 HcmV?d00001 diff --git a/openhab2/icons/classic/siren.png b/openhab2/icons/classic/siren.png new file mode 100644 index 0000000000000000000000000000000000000000..f4ac8927004e82f1c423929fd9675d38f6d73bd1 GIT binary patch literal 1385 zcmV-v1(y1WP)4Xufrx^YAuM2GfC+>@GE{;gSU?#{gd(6U3lwFEe3%c1!@;1)M^e2`nfNQA z%-=g46>q=c_rCY}i#ou^j-S4vcl<^YTJCmdl5Ve;_|!v0@OP3DoE3l=zy>n{V!ERW-~5uk-D1fAoS6@X6!HZ=l|PaCLp7*X?%jM+Q0E zho1NibnQHNc@sR>2dUxT*?jh$03+bKP%!|6|w%#V))CNI7wD zTdNMf^QVJ%SN;XkTYMF=_&Z!EaroHq)1UtM?N!r}hXVurpBTGv#goS$*X{H=e?Iv1 zX5UBmUY|fb_zNvIWLc*ho3IPKo2R^rK7Cb(bG$Zr27Tx_w0RkPSO@d2F6?mIU(*FnXd`3+=c6HO4C67~0+_y7dlrPJ*x zD#;4Jt5*dPjr9}A3V6v42wyUfYJhb{D)|Y*c97hZ`I9PoIT1nD`)H!r z#>_jhwe|r7IN=gUsK{C$P365uY^{9&6FKVCr>MwMa|fszv)Eeu04g}0_#{Dv7k`VU zsv2EFa;EkH2z)|SL7f7W_GhkkS(jWU;tGZY^Bx# z-Us+HSjNoY*&&)NHU_gaHrF=5+|iA7W!WJj@Z1iXEH(}F0p^tz)Gg2kv6ZUkx&|OK>#;B>&Cv$2wXB)}(AWcf^uU1yhU7#9&I+_a zY>myaee40y(Nz)}A?4w zCaqxr0#;PWp~7i<22f?kEaMLVvUOFLqC&n!1F)tRus-$xs>vaCjuH70+CmaXqIzWP z0m$s2iXvh^KwHFSB05mVGhjnR(6)zQY^D(Qjs1UuW?@xS5uJbDozNDs*$`I8z5)Va zKCam|u{i+qyZTqzd*A!sz4i6=wWHtv$-+&(`IS$h#XfSSD_`qd>+738``OQa{^mEo zdF#Ip@XTjE^N~dKD(75|J)|g##LS-j;upX8+<$xqF!Rf=dey6D-un!D$Z$Bs7ryX? zmjO8UAD;nc*7M$DuZhPLj}8BTafzD_Fdg6@5Yeyu{XX`ZKONJr|Lb>xqtWQWU;XM= r-(Y4-*js*`=lO#%H8nLg^;f?KZ)Ji8z3!|K00000NkvXXu0mjf{Uf5K literal 0 HcmV?d00001 diff --git a/openhab2/items/groups.items b/openhab2/items/groups.items index aa39dff..8523626 100755 --- a/openhab2/items/groups.items +++ b/openhab2/items/groups.items @@ -1,3 +1,3 @@ Group All -Group gNilan "Alle Modbus Attribute (input + holding)" (All) -Group gNilanInput "Alle Sensoren" (gNilan) +Group gNilan "All Modbus attributes (input + holding)" (All) +Group gNilanProgram "User program settings" \ No newline at end of file diff --git a/openhab2/items/nilan.items b/openhab2/items/nilan.items index 34a6c36..1fa1200 100755 --- a/openhab2/items/nilan.items +++ b/openhab2/items/nilan.items @@ -1,150 +1,212 @@ -Number Nilan_Bus_Version "Protocol version number [%d]" (gNilanInput) -String Nilan_App_VersionMajor "Software version - major (2 character ascii text) [%s]" (gNilanInput) -String Nilan_App_VersionMinor "Software version - minor (2 character ascii text) [%s]" (gNilanInput) -String Nilan_App_VersionRelease "Software version - release (2 character ascii text) [%s]" (gNilanInput) -Number Nilan_Input_UserFunc "User function [%d]" (gNilanInput) -Number Nilan_Input_AirFilter "Air filter alarm [%d]" (gNilanInput) -Number Nilan_Input_DoorOpen "Door contact [%d]" (gNilanInput) -Number Nilan_Input_Smoke "Fire/Smoke alarm [%d]" (gNilanInput) -Number Nilan_Input_MotorThermo "Motor thermo fuse [%d]" (gNilanInput) -Number Nilan_Input_Frost_Overht "Heating surface frost / overheat [%d]" (gNilanInput) -Number Nilan_Input_AirFlow "Airflow monitor (guard) [%d]" (gNilanInput) -Number Nilan_Input_P_HI "High pressure switch [%d]" (gNilanInput) -Number Nilan_Input_P_LO "Low pressure switch [%d]" (gNilanInput) -Number Nilan_Input_Boil "Hot water boiling [%d]" (gNilanInput) -Number Nilan_Input_3WayPos "Hot water 3-way valve position [%d]" (gNilanInput) -Number Nilan_Input_DefrostHG "Hotgas defrost type selection [%d]" (gNilanInput) -Number Nilan_Input_Defrost "Defrost thermostat [%d]" (gNilanInput) -Number Nilan_Input_UserFunc_2 "User function 2 [%d]" (gNilanInput) -Number Nilan_Input_T0_Controller "Controller board temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T1_Intake "Fresh air intake temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T2_Inlet "Inlet temperature (before heater) [%.1f] °C" (gNilanInput) -Number Nilan_Input_T3_Exhaust "Room exhaust temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T4_Outlet "Outlet temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T5_Cond "Condenser temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T6_Evap "Evaporator temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T7_Inlet "Inlet temperature (after heater) [%.1f] °C" (gNilanInput) -Number Nilan_Input_T8_Outdoor "Outdoor temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T9_Heater "Heating surface temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T10_Extem "External room temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T11_Top "Hot water top temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T12_Bottom "Hot water bottom temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T13_Retum "EK return temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T14_Supply "EK supply temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T15_Room "User panel room temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T16 "AUX temperature (sacrificial anode) [%.1f] °C" (gNilanInput) -Number Nilan_Input_RH "Humidity [%.1f] %" (gNilanInput) -Number Nilan_Input_0O2 "Carbon dioxide [%d]" (gNilanInput) -Number Nilan_Alarm_Status "Alarm state bit mask [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" (gNilanInput) -Number Nilan_Control_RunAct "Actual on/off state [%d]" (gNilanInput) -Number Nilan_Control_ModeAct "Actual operation mode [%d]" (gNilanInput) -Number Nilan_Control_State "Actual control state [%d]" (gNilanInput) -Number Nilan_Control_SeclnState "Actual time in state [%d]" (gNilanInput) -Number Nilan_AirTemp_IsSummer "Summer state [%d]" (gNilanInput) -Number Nilan_AirTemp_Tempinlet "Inlet temperature request (T7 setpoint) [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempCont "Actual value for controlled temperature [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempRoom "Actual room temperature (T15 or T10) [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_EffPct "Passive heat exchanger efficiency [%.1f] %" (gNilanInput) -Number Nilan_AirTemp_CapSet "Requested capacity [%.1f] %" (gNilanInput) -Number Nilan_AirTemp_CapAct "Actual capacity [%.1f] %" (gNilanInput) -Number Nilan_Display_LED_1 "User panel indicator light [%d]" (gNilanInput) -Number Nilan_Display_LED_2 " [%d]" (gNilanInput) -String Nilan_Display_Text_1_2 "Text line 1 character 1-2 [%s]" (gNilanInput) -String Nilan_Display_Text_3_4 " [%s]" (gNilanInput) -String Nilan_Display_Text_5_6 " [%s]" (gNilanInput) -String Nilan_Display_Text_7_8 " [%s]" (gNilanInput) -Number Nilan_Display_Attr_1_8 "Text line 1 flags [%d]" (gNilanInput) -String Nilan_Display_Text_9_10 "ext line 2 character 9-10 [%s]" (gNilanInput) -String Nilan_Display_Text_11_12 " [%s]" (gNilanInput) -String Nilan_Display_Text_13_14 " [%s]" (gNilanInput) -String Nilan_Display_Text_15_16 " [%s]" (gNilanInput) -Number Nilan_Display_Attr_9_16 "Text line 2 flags [%d]" (gNilanInput) -Number Nilan_Bus_Address "Protocol node address (default = 30) [%d]" (gNilanInput) -Number Nilan_Output_AirFlap "Air flap [%d]" (gNilanInput) -Number Nilan_Output_SmokeFlap "Fire/Smoke flap [%d]" (gNilanInput) -Number Nilan_Output_BypassOpen "Bypass flap open [%d]" (gNilanInput) -Number Nilan_Output_BypassClose "Bypass flap close [%d]" (gNilanInput) -Number Nilan_Output_AirCircPump "Air heat circulation pump [%d]" (gNilanInput) -Number Nilan_Output_AirHeatAllo "Air heating selected [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_1 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_2 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_3 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_Compressor "Compressor [%d]" (gNilanInput) -Number Nilan_Output_Compressor2 "Compressor 2 [%d]" (gNilanInput) -Number Nilan_Output_4WayCool "4-way valve [%d]" (gNilanInput) -Number Nilan_Output_HotgasHeat "Hotgas valve - heat [%d]" (gNilanInput) -Number Nilan_Output_HotgasCool "Hotgas valve - cool [%d]" (gNilanInput) -Number Nilan_Output_CondOpen "Air condenser active [%d]" (gNilanInput) -Number Nilan_Output_CondClose "Air condenser inactive [%d]" (gNilanInput) -Number Nilan_Output_WaterHeat "Hot water heater [%d]" (gNilanInput) -Number Nilan_Output_3WayValve "Hot water 3-way valve [%d]" (gNilanInput) -Number Nilan_Output_CenCircPump "EK circulation pump [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_1 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_2 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_3 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeatExt "External radiator heat [%d]" (gNilanInput) -Number Nilan_Output_UserFunc "User function active [%d]" (gNilanInput) -Number Nilan_Output_UserFunc_2 "User function active [%d]" (gNilanInput) -Number Nilan_Output_Defrosting "Defrost function active [%d]" (gNilanInput) -Number Nilan_Output_ExhaustSpeed "Exhaust fan speed [%.1f] %" (gNilanInput) -Number Nilan_Output_InletSpeed "Inlet fan speed [%.1f] %" (gNilanInput) -Number Nilan_Output_AirHeatCap "Air heater capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_CenHeatCap "Central heater capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_CprCap "Compresor capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_EarthSpeed "Earth tube air intake fan speed [%.1f] %" (gNilanInput) -Number Nilan_Time_Second "Second [%d]" (gNilanInput) -Number Nilan_Time_Minute "Minute [%d]" (gNilanInput) -Number Nilan_Time_Hour "Hour [%d]" (gNilanInput) -Number Nilan_Time_Day "Day [%d]" (gNilanInput) -Number Nilan_Time_Month "Month [%d]" (gNilanInput) -Number Nilan_Time_Year "Year [%d]" (gNilanInput) -Number Nilan_Alarm_Reset "Clear one specific alarm code or all [%d]" (gNilanInput) -Number Nilan_Program_Select "Week program nb. select [%d]" (gNilanInput) -Number Nilan_Program_UserFuncAct "User function active (See UserFuncSet) [%d]" (gNilanInput) -Number Nilan_Program_UserFuncSet "User function select [%d]" (gNilanInput) -Number Nilan_Program_UserTimeSet "Min User function period [%d]" (gNilanInput) -Number Nilan_Program_UserVentSet "Step User function ventilation [%d]" (gNilanInput) -Number Nilan_Program_UserTempSet "User function temperature (Extend function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_UserOffsSet "User function temperature(Offset function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_User2FuncAct "User function active (See UserFuncSet2) [%d]" (gNilanInput) -Number Nilan_Program_User2FuncSet "User function select [%d]" (gNilanInput) -Number Nilan_Program_User2TimeSet "Min User function period [%d]" (gNilanInput) -Number Nilan_Program_User2VentSet "Step User function ventilation [%d]" (gNilanInput) -Number Nilan_Program_User2TempSet "User function temperature (Extend function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_User2OffsSet "User function temperature(Offset function only) [%.1f] °C" (gNilanInput) -Number Nilan_Control_Type "Machine type select [%d]" (gNilanInput) -Number Nilan_Control_RunSet "User on / off select [%d]" (gNilanInput) -Number Nilan_Control_ModeSet "User operation mode select [%d]" (gNilanInput) -Number Nilan_Control_VentSet "User ventilation step select [%d]" (gNilanInput) -Number Nilan_Control_TempSet "User temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_Control_ServiceMode "Service mode select [%d]" (gNilanInput) -Number Nilan_Control_ServicePct "Service mode capacity [%.1f] %" (gNilanInput) -Number Nilan_Control_Preset "Request preset to factory [%d]" (gNilanInput) -Number Nilan_AirFlow_AirExchMode "Air exchange mode [%d]" (gNilanInput) -Number Nilan_AirFlow_CoolVent "Cooling high ventilation step [%d]" (gNilanInput) -Number Nilan_AirTemp_CoolSet "Cooling temperature setpoint select [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMinSum "Inlet temp. min. summer [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMinWin "Inlet temp. min. winter [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMax "Inlet temp. max. summer [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMaxWin "Inlet temp. max. winter [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempSummer "Summer/winter limit [%.1f] °C" (gNilanInput) -Number Nilan_HotWater_TempSet_T11 "Top temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_HotWater_TempSet_T12 "Bottom temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_CentralHeat_HeatExtern "External heating offset from room temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_AirQual_RH_VentLo "Humidity low winter step select [%d]" (gNilanInput) -Number Nilan_AirQual_RH_VentHi "Humidity high step select [%d]" (gNilanInput) -Number Nilan_AirQual_RH_LimLo "Humidity limit for low ventilation [%.1f] %" (gNilanInput) -Number Nilan_AirQual_RH_TimeOut "Humidity max. time on high ventilation [%d]" (gNilanInput) -Number Nilan_AirQual_CO2_VentHi "CO2 high step select [%d]" (gNilanInput) -Number Nilan_AirQual_CO2_LimLo "CO2 limit for normal ventilation [%d]" (gNilanInput) -Number Nilan_AirQual_0O2_LimHi "CO2 limit for high ventilation [%d]" (gNilanInput) -Number Nilan_Display_KeyCode "User panel keypress [%d]" (gNilanInput) +Number Nilan_Bus_Version "Protocol version number [%d]" (gNilan) {modbus="nilan_input_device:0"} +String Nilan_App_VersionMajor "Software version - major (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:1"} +String Nilan_App_VersionMinor "Software version - minor (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:2"} +String Nilan_App_VersionRelease "Software version - release (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:3"} + +Number Nilan_Input_UserFunc "User function [%d]" (gNilan) {modbus="nilan_input_discreteio:0"} +Number Nilan_Input_AirFilter "Air filter alarm [%d]" (gNilan) {modbus="nilan_input_discreteio:1"} +Number Nilan_Input_DoorOpen "Door contact [%d]" (gNilan) {modbus="nilan_input_discreteio:2"} +Number Nilan_Input_Smoke "Fire/Smoke alarm [%d]" (gNilan) {modbus="nilan_input_discreteio:3"} +Number Nilan_Input_MotorThermo "Motor thermo fuse [%d]" (gNilan) {modbus="nilan_input_discreteio:4"} +Number Nilan_Input_Frost_Overht "Heating surface frost / overheat [%d]" (gNilan) {modbus="nilan_input_discreteio:5"} +Number Nilan_Input_AirFlow "Airflow monitor (guard) [%d]" (gNilan) {modbus="nilan_input_discreteio:6"} +Number Nilan_Input_P_HI "High pressure switch [%d]" (gNilan) {modbus="nilan_input_discreteio:7"} +Number Nilan_Input_P_LO "Low pressure switch [%d]" (gNilan) {modbus="nilan_input_discreteio:8"} +Number Nilan_Input_Boil "Hot water boiling [%d]" (gNilan) {modbus="nilan_input_discreteio:9"} +Number Nilan_Input_3WayPos "Hot water 3-way valve position [%d]" (gNilan) {modbus="nilan_input_discreteio:10"} +Number Nilan_Input_DefrostHG "Hotgas defrost type selection [%d]" (gNilan) {modbus="nilan_input_discreteio:11"} +Number Nilan_Input_Defrost "Defrost thermostat [%d]" (gNilan) {modbus="nilan_input_discreteio:12"} +Number Nilan_Input_UserFunc_2 "User function 2 [%d]" (gNilan) {modbus="nilan_input_discreteio:13"} + +Number Nilan_Input_T0_Controller_Internal "Controller board temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:0"} +Number Nilan_Input_T0_Controller "Controller board temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T1_Intake_Internal "Fresh air intake temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:1"} +Number Nilan_Input_T1_Intake "Fresh air intake temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T2_Inlet_Internal "Inlet temperature (before heater) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:2"} +Number Nilan_Input_T2_Inlet "Inlet temperature (before heater) [%.1f °C]" (gNilan) +Number Nilan_Input_T3_Exhaust_Internal "Room exhaust temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:3"} +Number Nilan_Input_T3_Exhaust "Room exhaust temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T4_Outlet_Internal "Outlet temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:4"} +Number Nilan_Input_T4_Outlet "Outlet temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T5_Cond_Internal "Condenser temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:5"} +Number Nilan_Input_T5_Cond "Condenser temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T6_Evap_Internal "Evaporator temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:6"} +Number Nilan_Input_T6_Evap "Evaporator temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T7_Inlet_Internal "Inlet temperature (after heater) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:7"} +Number Nilan_Input_T7_Inlet "Inlet temperature (after heater) [%.1f °C]" (gNilan) +Number Nilan_Input_T8_Outdoor_Internal "Outdoor temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:8"} +Number Nilan_Input_T8_Outdoor "Outdoor temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T9_Heater_Internal "Heating surface temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:9"} +Number Nilan_Input_T9_Heater "Heating surface temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T10_Extem_Internal "External room temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:10"} +Number Nilan_Input_T10_Extem "External room temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T11_Top_Internal "Hot water top temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:11"} +Number Nilan_Input_T11_Top "Hot water top temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T12_Bottom_Internal "Hot water bottom temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:12"} +Number Nilan_Input_T12_Bottom "Hot water bottom temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T13_Retum_Internal "EK return temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:13"} +Number Nilan_Input_T13_Retum "EK return temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T14_Supply_Internal "EK supply temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:14"} +Number Nilan_Input_T14_Supply "EK supply temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T15_Room_Internal "User panel room temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:15"} +Number Nilan_Input_T15_Room "User panel room temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T16_Internal "AUX temperature (sacrificial anode) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:16"} +Number Nilan_Input_T16 "AUX temperature (sacrificial anode) [%.1f °C]" (gNilan) +Number Nilan_Input_RH_Internal "Humidity [%.0f %%]" (gNilan) {modbus="nilan_input_analogio:21"} +Number Nilan_Input_RH "Humidity [%.0f %%]" (gNilan) +Number Nilan_Input_CO2_Internal "Carbon dioxide [%d]" (gNilan) {modbus="nilan_input_analogio:22"} +Number Nilan_Input_CO2 "Carbon dioxide [%d]" (gNilan) + +Number Nilan_Alarm_Status "Alarm state bit mask [%d]" (gNilan) {modbus="nilan_input_alarm:0"} +Number Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:1"} +Number Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:2"} +Number Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:3"} +Number Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:4"} +Number Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:5"} +Number Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:6"} +Number Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:7"} +Number Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:8"} +Number Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:9"} + +Number Nilan_Control_RunAct "Actual on/off state [MAP(nilan_on_off.map):%s]" (gNilan) {modbus="nilan_input_control:0"} +Number Nilan_Control_ModeAct "Actual operation mode [MAP(nilan_control_modeact.map):%s]" (gNilan) {modbus="nilan_input_control:1"} +Number Nilan_Control_State "Actual control state [MAP(nilan_control_state.map):%s]" (gNilan) {modbus="nilan_input_control:2"} +Number Nilan_Control_SeclnState "Actual time in state [%d]" (gNilan) {modbus="nilan_input_control:3"} + +Number Nilan_AirTemp_IsSummer "Summer state [%d]" (gNilan) {modbus="nilan_input_airtemp:0"} +Number Nilan_AirTemp_TempinletSet_Internal "Inlet temperature request (T7 setpoint) [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:1"} +Number Nilan_AirTemp_TempinletSet "Inlet temperature request (T7 setpoint) [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempControl_Internal "Actual value for controlled temperature [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:2"} +Number Nilan_AirTemp_TempControl "Actual value for controlled temperature [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempRoom_Internal "Actual room temperature (T15 or T10) [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:3"} +Number Nilan_AirTemp_TempRoom "Actual room temperature (T15 or T10) [%.1f °C]" (gNilan) +Number Nilan_AirTemp_EffPct_Internal "Passive heat exchanger efficiency [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:4"} +Number Nilan_AirTemp_EffPct "Passive heat exchanger efficiency [%.1f %%]" (gNilan) +Number Nilan_AirTemp_CapSet "Requested capacity [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:5"} +Number Nilan_AirTemp_CapAct "Actual capacity [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:6"} + +Number Nilan_Display_LED_1 "User panel indicator light" (gNilan) {modbus="nilan_input_userpanel:0"} +Number Nilan_Display_LED_2 "User panel indicator light2" (gNilan) {modbus="nilan_input_userpanel:1"} +String Nilan_Display_Text_1_2 "Text line 1 character 1-2 [%s]" (gNilan) {modbus="nilan_input_userpanel:2"} +String Nilan_Display_Text_3_4 "Text line 1 character 3-4 [%s]" (gNilan) {modbus="nilan_input_userpanel:3"} +String Nilan_Display_Text_5_6 "Text line 1 character 5-6 [%s]" (gNilan) {modbus="nilan_input_userpanel:4"} +String Nilan_Display_Text_7_8 "Text line 1 character 7-8 [%s]" (gNilan) {modbus="nilan_input_userpanel:5"} +Number Nilan_Display_Attr_1_8 "Text line 1 flags [%d]" (gNilan) {modbus="nilan_input_userpanel:6"} +String Nilan_Display_Text_9_10 "Text line 2 character 9-10 [%s]" (gNilan) {modbus="nilan_input_userpanel:7"} +String Nilan_Display_Text_11_12 "Text line 2 character 11-12 [%s]" (gNilan) {modbus="nilan_input_userpanel:8"} +String Nilan_Display_Text_13_14 "Text line 2 character 13-14 [%s]" (gNilan) {modbus="nilan_input_userpanel:9"} +String Nilan_Display_Text_15_16 "Text line 2 character 15-16 [%s]" (gNilan) {modbus="nilan_input_userpanel:10"} +Number Nilan_Display_Attr_9_16 "Text line 2 flags [%d]" (gNilan) {modbus="nilan_input_userpanel:11"} + + + + +Number Nilan_Bus_Address "Protocol node address (default = 30) [%d]" (gNilan) {modbus="nilan_holding_device:0"} + +Number Nilan_Output_AirFlap "Air flap [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:0"} +Number Nilan_Output_SmokeFlap "Fire/Smoke flap [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:1"} +Number Nilan_Output_BypassOpen "Bypass flap open [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:2"} +Number Nilan_Output_BypassClose "Bypass flap close [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:3"} +Number Nilan_Output_AirCircPump "Air heat circulation pump [%d]" (gNilan) {modbus="nilan_holding_discreteio:4"} +Number Nilan_Output_AirHeatAllo "Air heating selected [%d]" (gNilan) {modbus="nilan_holding_discreteio:5"} +Number Nilan_Output_AirHeat_1 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:6"} +Number Nilan_Output_AirHeat_2 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:7"} +Number Nilan_Output_AirHeat_3 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:8"} +Number Nilan_Output_Compressor "Compressor [%d]" (gNilan) {modbus="nilan_holding_discreteio:9"} +Number Nilan_Output_Compressor2 "Compressor 2 [%d]" (gNilan) {modbus="nilan_holding_discreteio:10"} +Number Nilan_Output_4WayCool "4-way valve [%d]" (gNilan) {modbus="nilan_holding_discreteio:11"} +Number Nilan_Output_HotgasHeat "Hotgas valve - heat [%d]" (gNilan) {modbus="nilan_holding_discreteio:12"} +Number Nilan_Output_HotgasCool "Hotgas valve - cool [%d]" (gNilan) {modbus="nilan_holding_discreteio:13"} +Number Nilan_Output_CondOpen "Air condenser active [%d]" (gNilan) {modbus="nilan_holding_discreteio:14"} +Number Nilan_Output_CondClose "Air condenser inactive [%d]" (gNilan) {modbus="nilan_holding_discreteio:15"} +Number Nilan_Output_WaterHeat "Hot water heater [%d]" (gNilan) {modbus="nilan_holding_discreteio:16"} +Number Nilan_Output_3WayValve "Hot water 3-way valve [%d]" (gNilan) {modbus="nilan_holding_discreteio:17"} +Number Nilan_Output_CenCircPump "EK circulation pump [%d]" (gNilan) {modbus="nilan_holding_discreteio:18"} +Number Nilan_Output_CenHeat_1 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:19"} +Number Nilan_Output_CenHeat_2 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:20"} +Number Nilan_Output_CenHeat_3 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:21"} +Number Nilan_Output_CenHeatExt "External radiator heat [%d]" (gNilan) {modbus="nilan_holding_discreteio:22"} +Number Nilan_Output_UserFunc "User function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:23"} +Number Nilan_Output_UserFunc_2 "User function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:24"} +Number Nilan_Output_Defrosting "Defrost function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:25"} + +Number Nilan_Output_ExhaustSpeed_Internal "Exhaust fan speed [%.0f %%]" (gNilan) {modbus="nilan_holding_analogio:0"} +Number Nilan_Output_ExhaustSpeed "Exhaust fan speed [%.0f %%]" (gNilan) +Number Nilan_Output_InletSpeed_Internal "Inlet fan speed [%.0f %%]" (gNilan) {modbus="nilan_holding_analogio:1"} +Number Nilan_Output_InletSpeed "Inlet fan speed [%.0f %%]" (gNilan) +Number Nilan_Output_AirHeatCap "Air heater capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:2"} +Number Nilan_Output_CenHeatCap "Central heater capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:3"} +Number Nilan_Output_CprCap "Compresor capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:4"} +Number Nilan_Output_EarthSpeed "Earth tube air intake fan speed [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:5"} + +Number Nilan_Time_Second "Second [%d]" (gNilan) {modbus="nilan_holding_time:0"} +Number Nilan_Time_Minute "Minute [%d]" (gNilan) {modbus="nilan_holding_time:1"} +Number Nilan_Time_Hour "Hour [%d]" (gNilan) {modbus="nilan_holding_time:2"} +Number Nilan_Time_Day "Day [%d]" (gNilan) {modbus="nilan_holding_time:3"} +Number Nilan_Time_Month "Month [%d]" (gNilan) {modbus="nilan_holding_time:4"} +Number Nilan_Time_Year "Year [%d]" (gNilan) {modbus="nilan_holding_time:5"} + +Number Nilan_Alarm_Reset "Clear one specific alarm code or all [%d]" (gNilan) {modbus="nilan_holding_alarm:0"} + +Number Nilan_Program_Select "Week program nb. select [MAP(nilan_program_select.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_weekprogram:0"} + +Number Nilan_Program_UserFuncAct "User function active (See UserFuncSet) [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:0"} +Number Nilan_Program_UserFuncSet "User function select [MAP(nilan_program_userfuncset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:1"} +Number Nilan_Program_UserTimeSet "Min User function period [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:2"} +Number Nilan_Program_UserVentSet "Step User function ventilation [MAP(nilan_ventset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:3"} +Number Nilan_Program_UserTempSet "User function temperature (Extend function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:4"} +Number Nilan_Program_UserOffsSet "User function temperature(Offset function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:5"} + +Number Nilan_Program_User2FuncAct "User function active (See UserFuncSet2) [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:0"} +Number Nilan_Program_User2FuncSet "User function select [MAP(nilan_program_userfuncset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:1"} +Number Nilan_Program_User2TimeSet "Min User function period [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:2"} +Number Nilan_Program_User2VentSet "Step User function ventilation [MAP(nilan_ventset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:3"} +Number Nilan_Program_User2TempSet "User function temperature (Extend function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:4"} +Number Nilan_Program_User2OffsSet "User function temperature(Offset function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:5"} + +Number Nilan_Control_Type "Machine type select [%d]" (gNilan) {modbus="nilan_holding_control:0"} +Number Nilan_Control_RunSet "User on / off select [MAP(nilan_on_off.map):%s]" (gNilan) {modbus="nilan_holding_control:1"} +Number Nilan_Control_ModeSet "User operation mode select [MAP(nilan_control_modeact.map):%s]" (gNilan) {modbus="nilan_holding_control:2"} +Number Nilan_Control_VentSet "User ventilation step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_control:3"} +Number Nilan_Control_TempSet_Internal "User temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_control:4"} +Number Nilan_Control_TempSet "User temperature setpoint [%.1f °C]" (gNilan) +Number Nilan_Control_ServiceMode "Service mode select [MAP(nilan_control_servicemode.map):%s]" (gNilan) {modbus="nilan_holding_control:5"} +Number Nilan_Control_ServicePct_Internal "Service mode capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_control:6"} +Number Nilan_Control_ServicePct "Service mode capacity [%.1f %%]" (gNilan) +Number Nilan_Control_Preset "Request preset to factory [%d]" (gNilan) {modbus="nilan_holding_control:7"} + +Number Nilan_AirFlow_AirExchMode "Air exchange mode [MAP(nilan_airflow_airexchmode.map):%s]" (gNilan) {modbus="nilan_holding_airflow:0"} +Number Nilan_AirFlow_CoolVent "Cooling high ventilation step [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airflow:1"} + +Number Nilan_AirTemp_CoolSet "Cooling temperature setpoint select [%d]" (gNilan) {modbus="nilan_holding_airtemp:0"} +Number Nilan_AirTemp_TempMinSum_Internal "Inlet temp. min. summer [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:1"} +Number Nilan_AirTemp_TempMinSum "Inlet temp. min. summer [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMinWin_Internal "Inlet temp. min. winter [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:2"} +Number Nilan_AirTemp_TempMinWin "Inlet temp. min. winter [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMax_Internal "Inlet temp. max. summer [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:3"} +Number Nilan_AirTemp_TempMax "Inlet temp. max. summer [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMaxWin_Internal "Inlet temp. max. winter [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:4"} +Number Nilan_AirTemp_TempMaxWin "Inlet temp. max. winter [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempSummer_Internal "Summer/winter limit [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:5"} +Number Nilan_AirTemp_TempSummer "Summer/winter limit [%.1f °C]" (gNilan) + +Number Nilan_HotWater_TempSet_T11_Internal "Top temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_hotwater:0"} +Number Nilan_HotWater_TempSet_T11 "Top temperature setpoint [%.1f °C]" (gNilan) +Number Nilan_HotWater_TempSet_T12_Internal "Bottom temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_hotwater:1"} +Number Nilan_HotWater_TempSet_T12 "Bottom temperature setpoint [%.1f °C]" (gNilan) + +Number Nilan_CentralHeat_HeatExtern_Internal "External heating offset from room temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_centheat:0"} +Number Nilan_CentralHeat_HeatExtern "External heating offset from room temperature setpoint [%.1f °C]" (gNilan) + +Number Nilan_AirQual_RH_VentLo "Humidity low winter step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualrh:0"} +Number Nilan_AirQual_RH_VentHi "Humidity high step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualrh:1"} +Number Nilan_AirQual_RH_LimLo_Internal "Humidity limit for low ventilation [%.0f %%]" (gNilan) {modbus="nilan_holding_airqualrh:2"} +Number Nilan_AirQual_RH_LimLo "Humidity limit for low ventilation [%.0f %%]" (gNilan) +Number Nilan_AirQual_RH_TimeOut "Humidity max. time on high ventilation [%d min.]" (gNilan) {modbus="nilan_holding_airqualrh:3"} + +Number Nilan_AirQual_CO2_VentHi "CO2 high step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualco2:0"} +Number Nilan_AirQual_CO2_LimLo "CO2 limit for normal ventilation [%d]" (gNilan) {modbus="nilan_holding_airqualco2:1"} +Number Nilan_AirQual_CO2_LimHi "CO2 limit for high ventilation [%d]" (gNilan) {modbus="nilan_holding_airqualco2:2"} + +Number Nilan_Display_KeyCode "User panel keypress [%d]" (gNilan) {modbus="nilan_holding_userpanel:0"} + diff --git a/openhab2/items/nilan_generated.items b/openhab2/items/nilan_generated.items index 655f25e..1e2fb16 100755 --- a/openhab2/items/nilan_generated.items +++ b/openhab2/items/nilan_generated.items @@ -1,2 +1 @@ -String nilan_generated_displaytext "Display: [%s]" (gNilan) -String nilan_generated_time "[%s]" (gNilan) +String nilan_generated_time "Systemzeit [%s]" (gNilan) diff --git a/openhab2/items/nilan_write.items b/openhab2/items/nilan_write.items deleted file mode 100755 index aa22949..0000000 --- a/openhab2/items/nilan_write.items +++ /dev/null @@ -1,7 +0,0 @@ -Group gNilanHolding (All, gNilan) -Switch nilan_onoff "Lüftung aktiv [%d]" (gNilanHolding) {modbus="nilan2:0"} -Number nilan_user_operation_mode "Betriebsart [%d]" (gNilanHolding) {modbus="nilan2:1"} -Number nilan_vent "Lüfterstufe" (gNilanHolding) {modbus="nilan2:2"} -Number nilan_user_tempset "User temperature selection [%d °C]" (gNilanHolding) {modbus="nilan2:3"} -Number nilan_exhaust_speed "Exhaust Speed [%d]" (gNilanHolding) {modbus="nilan3:0"} -Number nilan_inlet_speed "Inlet Speed [%d]" (gNilanHolding) {modbus="nilan3:1"} diff --git a/openhab2/rules/nilan.rules b/openhab2/rules/nilan.rules index fc33db7..f04c274 100755 --- a/openhab2/rules/nilan.rules +++ b/openhab2/rules/nilan.rules @@ -1,36 +1,411 @@ - -rule "nilan displaytext items concatenation" -when - Item Nilan_Display_Text_1_2 received update or - Item Nilan_Display_Text_3_4 received update or - Item Nilan_Display_Text_5_6 received update or - Item Nilan_Display_Text_7_8 received update or - Item Nilan_Display_Text_9_10 received update or - Item Nilan_Display_Text_11_12 received update or - Item Nilan_Display_Text_13_14 received update or - Item Nilan_Display_Text_15_16 received update or - - System started -then - var String formattedString = String::format("%s%s%s%s%s%s%s%s",Nilan_Display_Text_1_2.state, Nilan_Display_Text_3_4.state, Nilan_Display_Text_5_6.state, Nilan_Display_Text_7_8.state, Nilan_Display_Text_9_10.state, Nilan_Display_Text_11_12.state, Nilan_Display_Text_13_14.state, Nilan_Display_Text_15_16.state) - logInfo(">>> Display items <<<", formattedString) - nilan_generated_displaytext.postUpdate(formattedString) -end - - - -rule "nilan date items concatenation" -when - //Item Nilan_Time_Second received update or - Item Nilan_Time_Minute received update or - Item Nilan_Time_Hour received update or - Item Nilan_Time_Day received update or - Item Nilan_Time_Month received update or - Item Nilan_Time_Year received update or - - System started -then - var String formattedString = String::format("%s:%s %s.%s.%s",Nilan_Time_Hour.state, Nilan_Time_Minute.state, Nilan_Time_Day.state, Nilan_Time_Month.state, Nilan_Time_Year.state) - logInfo(">>> Datum Zusammenfassung <<<", formattedString) - nilan_generated_time.postUpdate(formattedString) -end +import org.openhab.core.library.types.* + + +// some Nilan Items need to be scaled +val Functions$Function3 scale = [ NumberItem internalItem, NumberItem item, DecimalType factor | + var Number decimalValue = (internalItem.state as DecimalType) + // shape negative values + if(decimalValue > 0x8000) { + decimalValue = decimalValue - 0xFFFF + } + val scaledValue = decimalValue * factor + item.postUpdate(scaledValue) +] + + +rule "nilan date items concatenation" +when + //Item Nilan_Time_Second received update or + Item Nilan_Time_Minute received update or + Item Nilan_Time_Hour received update or + Item Nilan_Time_Day received update or + Item Nilan_Time_Month received update or + Item Nilan_Time_Year received update or + + System started +then + var String formattedString = String::format("%02.0f:%02.0f Uhr - %02.0f.%02.0f.%04.0f",Float.parseFloat(Nilan_Time_Hour.state.toString()), Float.parseFloat(Nilan_Time_Minute.state.toString()), Float.parseFloat(Nilan_Time_Day.state.toString()), Float.parseFloat(Nilan_Time_Month.state.toString()), Float.parseFloat(Nilan_Time_Year.state.toString())) + nilan_generated_time.postUpdate(formattedString) +end + + + +rule "scale Nilan_Input_T0_Controller_Internal" +when + Item Nilan_Input_T0_Controller_Internal received update or + System started +then + scale.apply(Nilan_Input_T0_Controller_Internal, Nilan_Input_T0_Controller, 0.01) +end + +rule "scale Nilan_Input_T1_Intake_Internal" +when + Item Nilan_Input_T1_Intake_Internal received update or + System started +then + scale.apply(Nilan_Input_T1_Intake_Internal, Nilan_Input_T1_Intake, 0.01) +end + +rule "scale Nilan_Input_T2_Inlet_Internal" +when + Item Nilan_Input_T2_Inlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T2_Inlet_Internal, Nilan_Input_T2_Inlet, 0.01) +end + +rule "scale Nilan_Input_T3_Exhaust_Internal" +when + Item Nilan_Input_T3_Exhaust_Internal received update or + System started +then + scale.apply(Nilan_Input_T3_Exhaust_Internal, Nilan_Input_T3_Exhaust, 0.01) +end + +rule "scale Nilan_Input_T4_Outlet_Internal" +when + Item Nilan_Input_T4_Outlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T4_Outlet_Internal, Nilan_Input_T4_Outlet, 0.01) +end + +rule "scale Nilan_Input_T5_Cond_Internal" +when + Item Nilan_Input_T5_Cond_Internal received update or + System started +then + scale.apply(Nilan_Input_T5_Cond_Internal, Nilan_Input_T5_Cond, 0.01) +end + +rule "scale Nilan_Input_T6_Evap_Internal" +when + Item Nilan_Input_T6_Evap_Internal received update or + System started +then + scale.apply(Nilan_Input_T6_Evap_Internal, Nilan_Input_T6_Evap, 0.01) +end + +rule "scale Nilan_Input_T7_Inlet_Internal" +when + Item Nilan_Input_T7_Inlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T7_Inlet_Internal, Nilan_Input_T7_Inlet, 0.01) +end + +rule "scale Nilan_Input_T8_Outdoor_Internal" +when + Item Nilan_Input_T8_Outdoor_Internal received update or + System started +then + scale.apply(Nilan_Input_T8_Outdoor_Internal, Nilan_Input_T8_Outdoor, 0.01) +end + +rule "scale Nilan_Input_T9_Heater_Internal" +when + Item Nilan_Input_T9_Heater_Internal received update or + System started +then + scale.apply(Nilan_Input_T9_Heater_Internal, Nilan_Input_T9_Heater, 0.01) +end + +rule "scale Nilan_Input_T10_Extem_Internal" +when + Item Nilan_Input_T10_Extem_Internal received update or + System started +then + scale.apply(Nilan_Input_T10_Extem_Internal, Nilan_Input_T10_Extem, 0.01) +end + +rule "scale Nilan_Input_T11_Top_Internal" +when + Item Nilan_Input_T11_Top_Internal received update or + System started +then + scale.apply(Nilan_Input_T11_Top_Internal, Nilan_Input_T11_Top, 0.01) +end + +rule "scale Nilan_Input_T12_Bottom_Internal" +when + Item Nilan_Input_T12_Bottom_Internal received update or + System started +then + scale.apply(Nilan_Input_T12_Bottom_Internal, Nilan_Input_T12_Bottom, 0.01) +end + +rule "scale Nilan_Input_T13_Retum_Internal" +when + Item Nilan_Input_T13_Retum_Internal received update or + System started +then + scale.apply(Nilan_Input_T13_Retum_Internal, Nilan_Input_T13_Retum, 0.01) +end + +rule "scale Nilan_Input_T14_Supply_Internal" +when + Item Nilan_Input_T14_Supply_Internal received update or + System started +then + scale.apply(Nilan_Input_T14_Supply_Internal, Nilan_Input_T14_Supply, 0.01) +end + +rule "scale Nilan_Input_T15_Room_Internal" +when + Item Nilan_Input_T15_Room_Internal received update or + System started +then + scale.apply(Nilan_Input_T15_Room_Internal, Nilan_Input_T15_Room, 0.01) +end + +rule "scale Nilan_Input_T16_Internal" +when + Item Nilan_Input_T16_Internal received update or + System started +then + scale.apply(Nilan_Input_T16_Internal, Nilan_Input_T16, 0.01) +end + +rule "scale Nilan_Input_RH_Internal" +when + Item Nilan_Input_RH_Internal received update or + System started +then + scale.apply(Nilan_Input_RH_Internal, Nilan_Input_RH, 0.01) +end + +rule "scale Nilan_Input_CO2_Internal" +when + Item Nilan_Input_CO2_Internal received update or + System started +then + scale.apply(Nilan_Input_CO2_Internal, Nilan_Input_CO2, 0.01) +end + +rule "scale Nilan_AirTemp_TempinletSet_Internal" +when + Item Nilan_AirTemp_TempinletSet_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempinletSet_Internal, Nilan_AirTemp_TempinletSet, 0.01) +end + +rule "scale Nilan_AirTemp_TempControl_Internal" +when + Item Nilan_AirTemp_TempControl_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempControl_Internal, Nilan_AirTemp_TempControl, 0.01) +end + +rule "scale Nilan_AirTemp_TempRoom_Internal" +when + Item Nilan_AirTemp_TempRoom_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempRoom_Internal, Nilan_AirTemp_TempRoom, 0.01) +end + +rule "scale Nilan_AirTemp_EffPct_Internal" +when + Item Nilan_AirTemp_EffPct_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_EffPct_Internal, Nilan_AirTemp_EffPct, 0.01) +end + + + + + + + +rule "scale Nilan_Output_ExhaustSpeed_Internal" +when + Item Nilan_Output_ExhaustSpeed_Internal received update or + System started +then + scale.apply(Nilan_Output_ExhaustSpeed_Internal, Nilan_Output_ExhaustSpeed, 0.01) +end +rule "scale Nilan_Output_ExhaustSpeed" +when + Item Nilan_Output_ExhaustSpeed received command +then + var Number realValue = (Nilan_Output_ExhaustSpeed.state as DecimalType) + sendCommand(Nilan_Output_ExhaustSpeed_Internal, realValue*100); +end + + +rule "scale Nilan_Output_InletSpeed_Internal" +when + Item Nilan_Output_InletSpeed_Internal received update or + System started +then + scale.apply(Nilan_Output_InletSpeed_Internal, Nilan_Output_InletSpeed, 0.01) +end +rule "scale Nilan_Output_InletSpeed" +when + Item Nilan_Output_InletSpeed received command +then + var Number realValue = (Nilan_Output_InletSpeed.state as DecimalType) + sendCommand(Nilan_Output_InletSpeed_Internal, realValue*100); +end + + +rule "scale Nilan_Control_TempSet_Internal" +when + Item Nilan_Control_TempSet_Internal received update or + System started +then + scale.apply(Nilan_Control_TempSet_Internal, Nilan_Control_TempSet, 0.01) +end +rule "scale Nilan_Control_TempSet" +when + Item Nilan_Control_TempSet received command +then + var Number realValue = (Nilan_Control_TempSet.state as DecimalType) + sendCommand(Nilan_Control_TempSet_Internal, realValue*100); +end + + +rule "scale Nilan_Control_ServicePct_Internal" +when + Item Nilan_Control_ServicePct_Internal received update or + System started +then + scale.apply(Nilan_Control_ServicePct_Internal, Nilan_Control_ServicePct, 0.01) +end +rule "scale Nilan_Control_ServicePct" +when + Item Nilan_Control_ServicePct received command +then + var Number realValue = (Nilan_Control_ServicePct.state as DecimalType) + sendCommand(Nilan_Control_ServicePct_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMinSum_Internal" +when + Item Nilan_AirTemp_TempMinSum_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMinSum_Internal, Nilan_AirTemp_TempMinSum, 0.01) +end +rule "scale Nilan_AirTemp_TempMinSum" +when + Item Nilan_AirTemp_TempMinSum received command +then + var Number realValue = (Nilan_AirTemp_TempMinSum.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMinSum_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMinWin_Internal" +when + Item Nilan_AirTemp_TempMinWin_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMinWin_Internal, Nilan_AirTemp_TempMinWin, 0.01) +end +rule "scale Nilan_AirTemp_TempMinWin" +when + Item Nilan_AirTemp_TempMinWin received command +then + var Number realValue = (Nilan_AirTemp_TempMinWin.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMinWin_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMax_Internal" +when + Item Nilan_AirTemp_TempMax_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMax_Internal, Nilan_AirTemp_TempMax, 0.01) +end +rule "scale Nilan_AirTemp_TempMax" +when + Item Nilan_AirTemp_TempMax received command +then + var Number realValue = (Nilan_AirTemp_TempMax.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMax_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMaxWin_Internal" +when + Item Nilan_AirTemp_TempMaxWin_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMaxWin_Internal, Nilan_AirTemp_TempMaxWin, 0.01) +end +rule "scale Nilan_AirTemp_TempMaxWin" +when + Item Nilan_AirTemp_TempMaxWin received command +then + var Number realValue = (Nilan_AirTemp_TempMaxWin.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMaxWin_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempSummer_Internal" +when + Item Nilan_AirTemp_TempSummer_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempSummer_Internal, Nilan_AirTemp_TempSummer, 0.01) +end +rule "scale Nilan_AirTemp_TempSummer" +when + Item Nilan_AirTemp_TempSummer received command +then + var Number realValue = (Nilan_AirTemp_TempSummer.state as DecimalType) + sendCommand(Nilan_AirTemp_TempSummer_Internal, realValue*100); +end + + +rule "scale Nilan_HotWater_TempSet_T11_Internal" +when + Item Nilan_HotWater_TempSet_T11_Internal received update or + System started +then + scale.apply(Nilan_HotWater_TempSet_T11_Internal, Nilan_HotWater_TempSet_T11, 0.01) +end +rule "scale Nilan_HotWater_TempSet_T11" +when + Item Nilan_HotWater_TempSet_T11 received command +then + var Number realValue = (Nilan_HotWater_TempSet_T11.state as DecimalType) + sendCommand(Nilan_HotWater_TempSet_T11_Internal, realValue*100); +end + +rule "scale Nilan_HotWater_TempSet_T12_Internal" +when + Item Nilan_HotWater_TempSet_T12_Internal received update or + System started +then + scale.apply(Nilan_HotWater_TempSet_T12_Internal, Nilan_HotWater_TempSet_T12, 0.01) +end +rule "scale Nilan_HotWater_TempSet_T12" +when + Item Nilan_HotWater_TempSet_T12 received command +then + var Number realValue = (Nilan_HotWater_TempSet_T12.state as DecimalType) + sendCommand(Nilan_HotWater_TempSet_T12_Internal, realValue*100); +end + +rule "scale Nilan_AirQual_RH_LimLo_Internal" +when + Item Nilan_AirQual_RH_LimLo_Internal received update or + System started +then + scale.apply(Nilan_AirQual_RH_LimLo_Internal, Nilan_AirQual_RH_LimLo, 0.01) +end +rule "scale Nilan_AirQual_RH_LimLo" +when + Item Nilan_AirQual_RH_LimLo received command +then + var Number realValue = (Nilan_AirQual_RH_LimLo.state as DecimalType) + sendCommand(Nilan_AirQual_RH_LimLo_Internal, realValue*100); +end + diff --git a/openhab2/services/modbus.cfg b/openhab2/services/modbus.cfg index 30e155f..1bacee3 100755 --- a/openhab2/services/modbus.cfg +++ b/openhab2/services/modbus.cfg @@ -112,32 +112,250 @@ # See: org.openhab.binding.modbus/src/main/java/net/wimpi/modbus/util/SerialParameters.java # See: org.openhab.binding.modbus/src/main/java/org/openhab/binding/modbus/internal/ModbusBinding.java -#serial.nilan.connection=/dev/ttyUSB0:19200:8:even:1:rtu -#serial.nilan.id=30 -#serial.nilan.start=200 -#serial.nilan.length=16 -#serial.nilan.type=input -#serial.pollinterval=2000 -#serial.nilan.valuetype=int16 +writemultipleregisters=true + + +serial.nilan_input_device.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_device.id=30 +serial.nilan_input_device.start=0 +serial.nilan_input_device.length=4 +serial.nilan_input_device.type=input + +serial.nilan_holding_device.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_device.id=30 +serial.nilan_holding_device.start=0 +serial.nilan_holding_device.length=1 +serial.nilan_holding_device.type=holding + + +serial.nilan_input_discreteio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_discreteio.id=30 +serial.nilan_input_discreteio.start=100 +serial.nilan_input_discreteio.length=14 +serial.nilan_input_discreteio.type=input + +serial.nilan_holding_discreteio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_discreteio.id=30 +serial.nilan_holding_discreteio.start=100 +serial.nilan_holding_discreteio.length=28 +serial.nilan_holding_discreteio.type=holding + + +serial.nilan_input_analogio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_analogio.id=30 +serial.nilan_input_analogio.start=200 +serial.nilan_input_analogio.length=23 +serial.nilan_input_analogio.type=input + +serial.nilan_holding_analogio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_analogio.id=30 +serial.nilan_holding_analogio.start=200 +serial.nilan_holding_analogio.length=6 +serial.nilan_holding_analogio.type=holding + + +#serial.nilan_input_time.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_time.id=30 +#serial.nilan_input_time.start=300 +#serial.nilan_input_time.length=x +#serial.nilan_input_time.type=input + +serial.nilan_holding_time.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_time.id=30 +serial.nilan_holding_time.start=300 +serial.nilan_holding_time.length=6 +serial.nilan_holding_time.type=holding + + +serial.nilan_input_alarm.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_alarm.id=30 +serial.nilan_input_alarm.start=400 +serial.nilan_input_alarm.length=10 +serial.nilan_input_alarm.type=input + +serial.nilan_holding_alarm.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_alarm.id=30 +serial.nilan_holding_alarm.start=400 +serial.nilan_holding_alarm.length=1 +serial.nilan_holding_alarm.type=holding + + +#serial.nilan_input_weekprogram.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_weekprogram.id=30 +#serial.nilan_input_weekprogram.start=500 +#serial.nilan_input_weekprogram.length=x +#serial.nilan_input_weekprogram.type=input + +serial.nilan_holding_weekprogram.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_weekprogram.id=30 +serial.nilan_holding_weekprogram.start=500 +serial.nilan_holding_weekprogram.length=1 +serial.nilan_holding_weekprogram.type=holding + + +#serial.nilan_input_user1functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_user1functions.id=30 +#serial.nilan_input_user1functions.start=600 +#serial.nilan_input_user1functions.length=x +#serial.nilan_input_user1functions.type=input + +serial.nilan_holding_user1functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_user1functions.id=30 +serial.nilan_holding_user1functions.start=600 +serial.nilan_holding_user1functions.length=6 +serial.nilan_holding_user1functions.type=holding + + +#serial.nilan_input_user2functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_user2functions.id=30 +#serial.nilan_input_user2functions.start=600 +#serial.nilan_input_user2functions.length=x +#serial.nilan_input_user2functions.type=input + +serial.nilan_holding_user2functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_user2functions.id=30 +serial.nilan_holding_user2functions.start=610 +serial.nilan_holding_user2functions.length=6 +serial.nilan_holding_user2functions.type=holding + + +serial.nilan_input_control.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_control.id=30 +serial.nilan_input_control.start=1000 +serial.nilan_input_control.length=4 +serial.nilan_input_control.type=input + +serial.nilan_holding_control.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_control.id=30 +serial.nilan_holding_control.start=1000 +serial.nilan_holding_control.length=8 +serial.nilan_holding_control.type=holding + + +#serial.nilan_input_airflow.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airflow.id=30 +#serial.nilan_input_airflow.start=1100 +#serial.nilan_input_airflow.length=x +#serial.nilan_input_airflow.type=input + +serial.nilan_holding_airflow.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airflow.id=30 +serial.nilan_holding_airflow.start=1100 +serial.nilan_holding_airflow.length=2 +serial.nilan_holding_airflow.type=holding + + +serial.nilan_input_airtemp.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_airtemp.id=30 +serial.nilan_input_airtemp.start=1200 +serial.nilan_input_airtemp.length=7 +serial.nilan_input_airtemp.type=input + +serial.nilan_holding_airtemp.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airtemp.id=30 +serial.nilan_holding_airtemp.start=1200 +serial.nilan_holding_airtemp.length=6 +serial.nilan_holding_airtemp.type=holding + + +#serial.nilan_input_airbypass.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airbypass.id=30 +#serial.nilan_input_airbypass.start=1300 +#serial.nilan_input_airbypass.length=x +#serial.nilan_input_airbypass.type=input + +#serial.nilan_input_airheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airheat.id=30 +#serial.nilan_input_airheat.start=1400 +#serial.nilan_input_airheat.length=x +#serial.nilan_input_airheat.type=input + +#serial.nilan_input_compressor.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_compressor.id=30 +#serial.nilan_input_compressor.start=1500 +#serial.nilan_input_compressor.length=x +#serial.nilan_input_compressor.type=input + +#serial.nilan_input_defrost.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_defrost.id=30 +#serial.nilan_input_defrost.start=1600 +#serial.nilan_input_defrost.length=x +#serial.nilan_input_defrost.type=input + + +#serial.nilan_input_hotwater.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_hotwater.id=30 +#serial.nilan_input_hotwater.start=1700 +#serial.nilan_input_hotwater.length=x +#serial.nilan_input_hotwater.type=input + +serial.nilan_holding_hotwater.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_hotwater.id=30 +serial.nilan_holding_hotwater.start=1700 +serial.nilan_holding_hotwater.length=2 +serial.nilan_holding_hotwater.type=holding + + +#serial.nilan_input_centheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_centheat.id=30 +#serial.nilan_input_centheat.start=1800 +#serial.nilan_input_centheat.length=1 +#serial.nilan_input_centheat.type=input + +serial.nilan_holding_centheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_centheat.id=30 +serial.nilan_holding_centheat.start=1800 +serial.nilan_holding_centheat.length=1 +serial.nilan_holding_centheat.type=holding + + +#serial.nilan_input_airqualrh.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airqualrh.id=30 +#serial.nilan_input_airqualrh.start=1900 +#serial.nilan_input_airqualrh.length=x +#serial.nilan_input_airqualrh.type=input + +serial.nilan_holding_airqualrh.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airqualrh.id=30 +serial.nilan_holding_airqualrh.start=1910 +serial.nilan_holding_airqualrh.length=4 +serial.nilan_holding_airqualrh.type=holding + + +#serial.nilan_input_airqualco2.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airqualco2.id=30 +#serial.nilan_input_airqualco2.start=1900 +#serial.nilan_input_airqualco2.length=x +#serial.nilan_input_airqualco2.type=input + +serial.nilan_holding_airqualco2.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airqualco2.id=30 +serial.nilan_holding_airqualco2.start=1920 +serial.nilan_holding_airqualco2.length=3 +serial.nilan_holding_airqualco2.type=holding + + +serial.nilan_input_userpanel.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_userpanel.id=30 +serial.nilan_input_userpanel.start=2000 +serial.nilan_input_userpanel.length=12 +serial.nilan_input_userpanel.type=input + +serial.nilan_holding_userpanel.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_userpanel.id=30 +serial.nilan_holding_userpanel.start=2000 +serial.nilan_holding_userpanel.length=1 +serial.nilan_holding_userpanel.type=holding + +#serial.nilan_input_preheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_preheat.id=30 +#serial.nilan_input_preheat.start=2100 +#serial.nilan_input_preheat.length=x +#serial.nilan_input_preheat.type=input -writemultipleregisters=true -# we need a sleep time of a few seconds to get our workaround python script running -serial.nilan2.connection=/dev/ttyUSB0:19200:8:even:1:rtu:3000 -serial.nilan2.id=30 -serial.nilan2.start=1001 -serial.nilan2.length=8 -serial.nilan2.type=holding - -# we need a sleep time of a few seconds to get our workaround python script running -serial.nilan3.connection=/dev/ttyUSB0:19200:8:even:1:rtu:6000 -serial.nilan3.id=30 -serial.nilan3.start=200 -serial.nilan3.length=2 -serial.nilan3.type=holding -#serial.nilan3.valuetype=uint16 diff --git a/openhab2/sitemaps/main.sitemap b/openhab2/sitemaps/main.sitemap index 4e86550..0266339 100755 --- a/openhab2/sitemaps/main.sitemap +++ b/openhab2/sitemaps/main.sitemap @@ -15,131 +15,164 @@ sitemap main label="Main Menu" } } + Frame label="Heizung und Lüftung" { - Text item=nilan icon="fan" label="Nilan Lüftungsanlage" { + Text icon="fan" label="Nilan Lüftungsanlage" { Frame label="Ãœbersicht" { - Default item=nilan_generated_displaytext - Default item=nilan_generated_time - Switch item=nilan_onoff - //Text item=Nilan_Control_RunAct label="Actual on/off state [%d]" - //Text item=Nilan_Control_RunSet mappings=[0="Off", 1="On"] - - Switch item=nilan_vent icon="fan_ceiling" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=nilan_exhaust_speed label="Auslassgeschwindigkeit" icon="fan" - Text item=nilan_inlet_speed label="Einlassgeschwindigkeit" icon="fan" - //Text item=Nilan_Control_VentSet - - //Selection item=nilan_user_operation_mode mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] - Selection item=Nilan_Control_ModeAct label="Betriebsart [%d]" mappings=[0="Off", 1="Heat", 2="Cool", 3="Auto", 4="Service"] - //Text item=Nilan_Control_ModeSet mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] - - //Text item=Nilan_Control_TempSet - - - //Switch item=nilan_userfunc label="Ãœberdruck für Feuerstätte aktiv [%d]" icon="fire" - Text item=Nilan_Output_UserFunc icon="fire" - - //Text item=Nilan_Output_UserFunc_2 - //Default item=Nilan_Input_UserFunc_2 - + Text item=nilan_generated_time { + Setpoint item=Nilan_Time_Second label="Sekunde [%d]" minValue=0 maxValue=59 step=1 + Setpoint item=Nilan_Time_Minute label="Minute [%d]" minValue=0 maxValue=59 step=1 + Setpoint item=Nilan_Time_Hour label="Stunde [%d]" minValue=0 maxValue=23 step=1 + Setpoint item=Nilan_Time_Day label="Tag [%d]" minValue=1 maxValue=31 step=1 + Setpoint item=Nilan_Time_Month label="Monat [%d]" minValue=1 maxValue=12 step=1 + Setpoint item=Nilan_Time_Year label="Jahr [%d]" minValue=1900 maxValue=2300 step=1 + } + + Switch item=Nilan_Control_RunSet label="Lüftung aktiv" mappings=[0="OFF", 1="ON"] icon="switch" + Selection item=Nilan_Control_ModeSet label="Betriebsart" mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] + Selection item=Nilan_Control_State label="Betriebsmodus" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] + Setpoint item=Nilan_Control_TempSet label="Zieltemperatur [%.1f °C]" minValue=0 maxValue=65 step=1 + Switch item=Nilan_Control_VentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Output_ExhaustSpeed label="Absauggeschwindigkeit [%.0f %%]" + Setpoint item=Nilan_Output_InletSpeed label="Einlassgeschwindigkeit [%.0f %%]" + Selection item=Nilan_Output_UserFunc label="Ãœberdruck für Feuerstätte" mappings=[0="nicht aktiv", 1="aktiv"] icon="fire" + //Switch item=Nilan_Output_UserFunc_2 } + Frame label="Sensoren" { - Text item=Nilan_Input_T15_Room label="Wohnzimmer" - Text item=Nilan_Input_T7_Inlet label="Raumauslass" - Text item=Nilan_Input_RH icon="humidity" label="Luftfeuchtigkeit" + Text item=Nilan_Input_T15_Room label="Wohnzimmer" + Text item=Nilan_Input_T3_Exhaust label="Raumabluft" + Text item=Nilan_Input_T7_Inlet label="Raumeinlass" + Text item=Nilan_Input_RH label="Luftfeuchtigkeit" Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" } - Frame label="Alarme" { - Text item=Nilan_Alarm_Reset - Default item=Nilan_Input_AirFilter - Default item=Nilan_Input_DoorOpen - Default item=Nilan_Input_Smoke - Default item=Nilan_Input_MotorThermo - Default item=Nilan_Input_Frost_Overht - Default item=Nilan_Input_AirFlow - Default item=Nilan_Input_P_HI - Default item=Nilan_Input_Defrost - - Default item=Nilan_Alarm_Status - //Text item=Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" - //Text item=Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" - //Text item=Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" - //Text item=Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" - //Text item=Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" - //Text item=Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" - //Text item=Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" - //Text item=Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" - //Text item=Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" - - Default item=Nilan_Display_LED_1 - Default item=Nilan_Display_LED_2 + + Frame label="Status" { + + Text item=Nilan_Display_LED_1 label="Alarme" icon="light" { + Selection item=Nilan_Display_LED_1 label="Bedienpanel LED" mappings=[0="Off", 1="On"] + //Selection item=Nilan_Display_LED_2 + Selection item=Nilan_Alarm_Reset label="Alarm-Code zurücksetzen" + mappings=[ + 0="No command", + //1..99="1..99 : (reserved internal commands)", + //101..199="101..199 : Clear alarm display code 1..99", + 101="Clear alarm display code 1", + 102="Clear alarm display code 2", + 103="Clear alarm display code 3", + 104="Clear alarm display code 4", + //... + 255="Clear all alarms" + ] + Selection item=Nilan_Input_AirFilter label="Luftfilter-Alarm" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_DoorOpen label="Türkontakt" mappings=[0="Closed", 1="Open"] + Selection item=Nilan_Input_Smoke label="Feuer- / Rauchalarm" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_MotorThermo label="Motor-Thermo-Sicherung" mappings=[0="OK", 1="Burned"] + Selection item=Nilan_Input_Frost_Overht label="Frost / Ãœberhitzung" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_AirFlow label="Luftstromüberwachung" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_P_HI label="Ãœberdruckventil" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_Defrost label="Enteisungsthermostat" mappings=[0="OK", 1="Alarm"] - Selection item=Nilan_Control_State label="Actual control state [%d]" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] - //Text item=Nilan_Control_SeclnState label="Actual time in state [%d]" - Selection item=Nilan_Control_ServiceMode mappings=[0="Off", 1="Defrost", 2="Flaps", 3="Inlet", 4="Exhaust", 5="Compressor", 6="Heating", 7="Hot water", 8="Central heat"] + Text item=Nilan_Alarm_Status label="Alarm-Code (Bitmask)" + //Bitmaks: 0x80 : Active / 0x03 : Nb. of alarms + + Text item=Nilan_Alarm_List_1_ID label="Alarm 1 - Code [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_1_Date label="Alarm 1 - Date [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_1_Time label="Alarm 1 - Time [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_2_ID label="Alarm 2 - Code [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_2_Date label="Alarm 2 - Date [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_2_Time label="Alarm 2 - Time [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_3_ID label="Alarm 3 - Code [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + Text item=Nilan_Alarm_List_3_Date label="Alarm 3 - Date [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + Text item=Nilan_Alarm_List_3_Time label="Alarm 3 - Time [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + + Selection item=Nilan_Control_ServiceMode label="Service-Modus" mappings=[0="Off", 1="Defrost", 2="Flaps", 3="Inlet", 4="Exhaust", 5="Compressor", 6="Heating", 7="Hot water", 8="Central heat"] + } + + Text item=Nilan_Output_BypassOpen label="Bypass Status" icon="flap" { + Switch item=Nilan_Output_AirFlap label="Luftklappe" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_SmokeFlap label="Feuer-/Rauchklappe" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_BypassOpen label="Bypass offen" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_BypassClose label="Bypass zu" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_Defrosting label="Enteisung" mappings=[0=Off, 1=On] + } } - Frame label="Regelung" { - Text item=Nilan_AirTemp_EffPct icon="line" label="Effektivität (Wärmetauscher)" - Text item=Nilan_AirTemp_IsSummer icon="sun" - Default item=Nilan_AirTemp_Tempinlet - Default item=Nilan_AirTemp_TempCont - //Default item=Nilan_AirTemp_TempRoom - - Text item=Nilan_Input_T3_Exhaust label="Raumauslass (Anlage)" - Text item=Nilan_Input_T4_Outlet label="Auslass (Abluft)" - Text item=Nilan_Input_T7_Inlet label="Raumauslass (Nach Heizelement)" - Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" - Text item=Nilan_Input_T15_Room label="Wohnzimmer" - Text item=Nilan_Input_T0_Controller - - //Default item=Nilan_AirTemp_CapSet - //Default item=Nilan_AirTemp_CapAct - - Selection item=Nilan_AirFlow_AirExchMode mappings=[0="Energy", 1="Comfort", 2="ComfortWater"] - Text item=Nilan_AirFlow_CoolVent - Text item=Nilan_AirTemp_CoolSet - Text item=Nilan_AirTemp_TempMinSum - Text item=Nilan_AirTemp_TempMinWin - Text item=Nilan_AirTemp_TempMax - Text item=Nilan_AirTemp_TempMaxWin - Text item=Nilan_AirTemp_TempSummer - - Text item=Nilan_AirQual_RH_VentLo - Text item=Nilan_AirQual_RH_VentHi - Text item=Nilan_AirQual_RH_LimLo - Text item=Nilan_AirQual_RH_TimeOut - //Text item=Nilan_AirQual_CO2_VentHi - //Text item=Nilan_AirQual_CO2_LimLo - //Text item=Nilan_AirQual_0O2_LimHi + + Frame label="Regler" { + + Text item=Nilan_AirTemp_EffPct label="Temperaturregler" icon="temperature"{ + Selection item=Nilan_Control_State label="Betriebsmodus" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] + //Text item=Nilan_Control_SeclnState label="Actual time in state [%d]" + Text item=Nilan_AirTemp_EffPct label="Effektivität (Wärmetauscher)" + Selection item=Nilan_AirTemp_IsSummer label="Reglermodus (Jahreszeit)" mappings=[0="Winter", 1="Sommer"] + Setpoint item=Nilan_AirTemp_TempSummer label="Grenzwert Sommer/Winter" minValue=0 maxValue=65 step=1 + Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" + //Text item=Nilan_Input_T1_Intake label="Frischluftzufuhr (Vor Wärmetauscher)" + Text item=Nilan_Input_T3_Exhaust label="Raumabluft" + Text item=Nilan_Input_T4_Outlet label="Auslass (Abluft)" + Text item=Nilan_AirTemp_TempinletSet label="Zieltemperatur Raumeinlass (Sollwert)" + Text item=Nilan_AirTemp_TempControl label="Tatsächliche Temperatur (Istwert/Raumabluft)" + Text item=Nilan_Input_T2_Inlet label="Raumeinlass (Vor Heizelement)" + Text item=Nilan_Input_T7_Inlet label="Raumeinlass (Nach Heizelement)" + Text item=Nilan_Input_T15_Room label="Wohnzimmer" + //Text item=Nilan_AirTemp_TempRoom //same as T15 + + Text item=Nilan_Input_T0_Controller label="Temperatur auf Elektronik-Platine" + + //Default item=Nilan_AirTemp_CapSet + //Default item=Nilan_AirTemp_CapAct + + Setpoint item=Nilan_AirTemp_TempMinSum label="Temperaturminimum (Sommer)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMax label="Temperaturmaximum (Sommer)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMinWin label="Temperaturminimum (Winter)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMaxWin label="Temperaturmaximum (Winter)" minValue=0 maxValue=65 step=1 + + Selection item=Nilan_AirFlow_AirExchMode label="Luftwechselrate (Modus)" mappings=[0="Energy", 1="Comfort", 2="ComfortWater"] + Selection item=Nilan_AirFlow_CoolVent label="Lüfterstufe zum Abkühlen" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Selection item=Nilan_AirTemp_CoolSet label="Temperaturoffset zum Abkühlen" mappings=[0="Off (No cooling allowed)", 1="Set + 0 °C (User setpoint plus 0 degrees)", 2="Set + 1 °C", 3="Set + 2 °C", 4="Set + 3 °C", 5="Set + 4 °C", 6="Set + 5 °C", 7="Set + 7 °C", 8="Set + 10 °C"] + } + + Text item=Nilan_Input_RH label="Luftfeuchtigkeitsregler" icon="humidity" { + Text item=Nilan_Input_RH label="Luftfeuchtigkeit" + Selection item=Nilan_AirQual_RH_VentLo label="Lüfterstufe bei zu niedriger Luftfeuchtigkeit (Winter)" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Selection item=Nilan_AirQual_RH_VentHi label="Lüfterstufe bei zu hoher Luftfeuchtigkeit" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_AirQual_RH_LimLo label="Grenzwert für zu niedrige Luftfeuchtigkeit" minValue=0 maxValue=100 step=1 + Setpoint item=Nilan_AirQual_RH_TimeOut label="Lüftungsdauer bei zu hoher Luftfeuchtigkeit [%d min.]" minValue=0 maxValue=65000 step=1 + } + + //Text label="CO2-Regler" icon="carbondioxide" { + //Text item=Nilan_AirQual_CO2_VentHi + //Text item=Nilan_AirQual_CO2_LimLo + //Text item=Nilan_AirQual_CO2_LimHi + //} + } - Frame label="Bypass Status" { - Text item=Nilan_Output_AirFlap - Text item=Nilan_Output_SmokeFlap - Text item=Nilan_Output_BypassOpen - Text item=Nilan_Output_BypassClose - - Text item=Nilan_Output_Defrosting - Text item=Nilan_Output_ExhaustSpeed - Text item=Nilan_Output_InletSpeed - } + Frame label="Benutzerwahlprogramm" { - Selection item=Nilan_Program_Select mappings=[0="None", 1="Program 1", 2="Program 2", 3="Program 3", 4="Erase"] - Text item=Nilan_Program_UserFuncAct - Selection item=Nilan_Program_UserFuncSet mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] - Text item=Nilan_Program_UserTimeSet - Selection item=Nilan_Program_UserVentSet mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=Nilan_Program_UserTempSet - Text item=Nilan_Program_UserOffsSet - Text item=Nilan_Program_User2FuncAct - Selection item=Nilan_Program_User2FuncSet mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] - Text item=Nilan_Program_User2TimeSet - Selection item=Nilan_Program_User2VentSet mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=Nilan_Program_User2TempSet - Text item=Nilan_Program_User2OffsSet + Selection item=Nilan_Program_Select label="Wochenprogramm" mappings=[0="None", 1="Program 1", 2="Program 2", 3="Program 3", 4="Erase"] + + Text label="Benutzerfunktion 1" icon="boy_2" { + Selection item=Nilan_Program_UserFuncAct label="Status (Ãœberdruck für Feuerstätte)" mappings=[0="nicht aktiv", 1="aktiv"] icon="fire" + Selection item=Nilan_Program_UserFuncSet label="Funktion" mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] + Setpoint item=Nilan_Program_UserTimeSet label="Dauer [%d min.]" minValue=0 maxValue=65000 step=1 + Selection item=Nilan_Program_UserVentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Program_UserTempSet label="Temperaturvorgabe" minValue=0 maxValue=65 step=1 visibility=[Nilan_Program_UserFuncSet==1] + Setpoint item=Nilan_Program_UserOffsSet label="Temperatur-Offset" minValue=0 maxValue=65000 step=1 visibility=[Nilan_Program_UserFuncSet==4] + } + + Text label="Benutzerfunktion 2" icon="boy_2" { + Selection item=Nilan_Program_User2FuncAct label="Status" mappings=[0="nicht aktiv", 1="aktiv"] + Selection item=Nilan_Program_User2FuncSet label="Funktion" mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] + Setpoint item=Nilan_Program_User2TimeSet label="Dauer [%d min.]" minValue=0 maxValue=65000 step=1 + Selection item=Nilan_Program_User2VentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Program_User2TempSet label="Temperaturvorgabe" minValue=0 maxValue=65 step=1 visibility=[Nilan_Program_User2FuncSet==1] + Setpoint item=Nilan_Program_User2OffsSet label="Temperatur-Offset" minValue=0 maxValue=65000 step=1 visibility=[Nilan_Program_User2FuncSet==4] + } } + Frame label="Details" { - Group item=gNilanInput + Group item=gNilan label="Alle Modbus-Attribute (Input + Holding)" } } } diff --git a/openhab2/transform/nilan_airflow_airexchmode.map b/openhab2/transform/nilan_airflow_airexchmode.map new file mode 100644 index 0000000..38fe9ca --- /dev/null +++ b/openhab2/transform/nilan_airflow_airexchmode.map @@ -0,0 +1,3 @@ +0=Energy +1=Comfort +2=ComfortWater \ No newline at end of file diff --git a/openhab2/transform/nilan_control_modeact.map b/openhab2/transform/nilan_control_modeact.map new file mode 100644 index 0000000..eb5cd55 --- /dev/null +++ b/openhab2/transform/nilan_control_modeact.map @@ -0,0 +1,5 @@ +0=Off +1=Heat +2=Cool +3=Auto +4=Service \ No newline at end of file diff --git a/openhab2/transform/nilan_control_servicemode.map b/openhab2/transform/nilan_control_servicemode.map new file mode 100644 index 0000000..157aca3 --- /dev/null +++ b/openhab2/transform/nilan_control_servicemode.map @@ -0,0 +1,9 @@ +0=Off +1=Defrost +2=Flaps +3=Inlet +4=Exhaust +5=Compressor +6=Heating +7=Hot water +8=Central heat \ No newline at end of file diff --git a/openhab2/transform/nilan_control_state.map b/openhab2/transform/nilan_control_state.map new file mode 100644 index 0000000..1cccf24 --- /dev/null +++ b/openhab2/transform/nilan_control_state.map @@ -0,0 +1,15 @@ +-=Undefined +0=Off +1=Shift +2=Stop +3=Start +4=Standby +5=Ventilation stop +6=Ventilation +7=Heating +8=Cooling +9=Hot water +10=Legionella +11=Cooling + hot water +12=Central heating +13=Defrost \ No newline at end of file diff --git a/openhab2/transform/nilan_flap.map b/openhab2/transform/nilan_flap.map new file mode 100644 index 0000000..1659cc2 --- /dev/null +++ b/openhab2/transform/nilan_flap.map @@ -0,0 +1,2 @@ +0=closed +1=open \ No newline at end of file diff --git a/openhab2/transform/nilan_on_off.map b/openhab2/transform/nilan_on_off.map new file mode 100644 index 0000000..4cdc2f2 --- /dev/null +++ b/openhab2/transform/nilan_on_off.map @@ -0,0 +1,2 @@ +0=Off +1=On diff --git a/openhab2/transform/nilan_program_select.map b/openhab2/transform/nilan_program_select.map new file mode 100644 index 0000000..759c25e --- /dev/null +++ b/openhab2/transform/nilan_program_select.map @@ -0,0 +1,5 @@ +0=None +1=Program 1 +2=Program 2 +3=Program 3 +4=Erase \ No newline at end of file diff --git a/openhab2/transform/nilan_program_userfuncset.map b/openhab2/transform/nilan_program_userfuncset.map new file mode 100644 index 0000000..918211f --- /dev/null +++ b/openhab2/transform/nilan_program_userfuncset.map @@ -0,0 +1,6 @@ +0=None +1=Extend +2=Inlet +3=Exhaust +4=External heater offset +5=Ventilate \ No newline at end of file diff --git a/openhab2/transform/nilan_ventset.map b/openhab2/transform/nilan_ventset.map new file mode 100644 index 0000000..c9dddb0 --- /dev/null +++ b/openhab2/transform/nilan_ventset.map @@ -0,0 +1,5 @@ +0=Off +1=1 +2=2 +3=3 +4=4 \ No newline at end of file