From 39318f64f27ecc6c41c1c68645614a26b65a33f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gy=C3=B6rgy=20Bal=C3=A1ssy?= Date: Sun, 16 Aug 2020 15:47:14 +0200 Subject: [PATCH] feat: show extension fields --- CHANGELOG.md | 4 ++++ MMM-RemoteTemperature.css | 5 ++++ MMM-RemoteTemperature.js | 39 +++++++++++++++++++++++++++++- README.md | 46 ++++++++++++++++++++++++++++++++++++ doc/screenshot-ext-data.png | Bin 0 -> 10866 bytes node_helper.js | 3 ++- package.json | 2 +- 7 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 doc/screenshot-ext-data.png diff --git a/CHANGELOG.md b/CHANGELOG.md index aaa3d27..df69e8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project is documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [2.1.0] + +Added support for arbitrary extension fields. + ## [2.0.1] This is a maintenance release to modernize the development environment. There are no changes in the code of the module so these updates should not affect the functionality of the module. diff --git a/MMM-RemoteTemperature.css b/MMM-RemoteTemperature.css index 816fea0..40bd909 100644 --- a/MMM-RemoteTemperature.css +++ b/MMM-RemoteTemperature.css @@ -11,6 +11,11 @@ margin-left: 15px; } +.MMM-RemoteTemperature .ext { + display: inline-block; + margin-left: 15px; +} + .MMM-RemoteTemperature .more { margin: 0; } diff --git a/MMM-RemoteTemperature.js b/MMM-RemoteTemperature.js index 13e03d1..fc35f19 100644 --- a/MMM-RemoteTemperature.js +++ b/MMM-RemoteTemperature.js @@ -9,7 +9,8 @@ Module.register('MMM-RemoteTemperature', { defaults: { sensorId: null, icon: 'home', - showMore: true + showMore: true, + ext: [] }, requiresVersion: '2.1.0', @@ -68,6 +69,19 @@ Module.register('MMM-RemoteTemperature', { wrapper.appendChild(firstLineEl); + if (this.viewModel.ext) { + const extLineEl = document.createElement('div'); + + this.viewModel.ext.forEach((extData) => { + const extEl = document.createElement('span'); + extEl.innerHTML = `${extData.value}${extData.unit}`; + extEl.classList = 'ext'; + extLineEl.appendChild(extEl); + }); + + wrapper.appendChild(extLineEl); + } + if (this.config.showMore) { const secondLineEl = document.createElement('div'); secondLineEl.classList = 'more dimmed small'; @@ -96,6 +110,7 @@ Module.register('MMM-RemoteTemperature', { temp: payload.temp, humidity: payload.humidity, battery: payload.battery, + ext: this._parseExtFields(payload.ext), timestamp: Date.now() }; @@ -112,5 +127,27 @@ Module.register('MMM-RemoteTemperature', { _formatTimestamp(timestamp) { return moment(timestamp).format('HH:mm'); + }, + + _parseExtFields(extPayload) { + const parsedExtValues = []; + + if (this.config.ext && extPayload) { + this.config.ext.forEach((extConfig) => { + const { name } = extConfig; + const value = extPayload[name]; + const unit = extConfig.unit || ''; + + if (typeof value !== 'undefined') { + parsedExtValues.push({ + name, + value, + unit + }); + } + }); + } + + return parsedExtValues; } }); diff --git a/README.md b/README.md index 6cc88d5..e1e9b8d 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ If the sensor sends battery level data, it can be displayed in the second line: ![Default](./doc/screenshot-with-battery.png) +If your sensor can send more data then the module can display these arbitrary values in a new line: + +![Default](./doc/screenshot-ext-data.png) + + If the sensor does not send humidity data, then only the temperature is displayed: ![Default](./doc/screenshot-temp-only.png) @@ -89,6 +94,7 @@ For security reasons the MagicMirror is *not* reachable externally, which also m | `sensorId` | **REQUIRED** An arbitrary value that determines from which sensor this module accepts updates. It can also be used as an API key to restrict access to your mirror.

**Type:** `string`
**Default value:** `null` (must be configured) | `icon` | *Optional* Name of a [FontAwesome icon](https://fontawesome.com/icons?d=gallery) that is displayed before the temperature value. For example set to `'home'` to indicate that the mirror displays an indoor value or `'car'` if you show the temperature your car enjoys in the garage. You can set it to `null` to not display any symbol.

**Type:** `string`
**Default value:** `'home'` | `showMore` | *Optional* Determines whether a second line with additional data (e.g. timestamp of the last data update and battery level) should be displayed on the mirror.

**Type:** `boolean`
**Default value:** `true` +| `ext` | *Optional* Configuration of additional data fields to display. See the `Show more data` section on this page for more information.

**Type:** `Array`
**Default value:** `[]` ## How it works @@ -119,6 +125,46 @@ The `sensorId` property must be a `string`, and can contain any value, but it is Make sure that your sensor properly sets the `Content-Type` header in the HTTP request to `application/json`, otherwise the module will not be able to parse the request body. +### Show more data + +If your sensor is capable to post additional data you can use this module to display these arbitrary values in a second data line. + +First, you have to specify the name and optionally the unit of the extensional data fields in the `ext` property of the module configuration. For example to display barometric pressure and wind speed: + +```js + config: { + sensorId: '1', + icon: 'home', + showMore: true, + ext: [ + { name: 'pressure', unit: ' hPa' }, + { name: 'windspeed', unit: ' km/h' } + ] + } +``` + +Then you have to program your sensor to specify the measured values in the `ext` object in the posted JSON: + +```javascript +{ + "temp": 27, + "humidity": 30.4, + "battery": 100, + "sensorId": "1", + "ext": { + "pressure": 1015, + "windspeed": 23 + } +} +``` + +Note that the names `pressure` and `windspeed` are completely arbitrary, you can choose any name you want, but it is important that the key name in the `ext` object in the POSTed data must match with the `name` value in the module configuration. The module ignores those data values that are sent by the sensor but not specified in the module configuration. + +The `unit` is an optional field in the configuration. If specified, it's string value will be appended to the measured value as a postfix. + +In this way you can specify as many extension fields as you want, they will be displayed in one line within the module. + + ## Recommended hardware The recommended and tested hardware sensor for this module is [SolarTherm](https://github.com/balassy/solar-wifi-weather-station). Both the hardware and the software of SolarTherm is open-source, and can be built as a DIY project. SolarTherm has built-in support for this MMM-RemoteTemperature module, and can push measured data also to other popular services, like Blynk and ThingSpeak. diff --git a/doc/screenshot-ext-data.png b/doc/screenshot-ext-data.png new file mode 100644 index 0000000000000000000000000000000000000000..dca9db41f97c4f56e4d521ae1288ff0375b86674 GIT binary patch literal 10866 zcmbt)Q*#V(N?{mTwuXRe=322fz$sxC&5Ad+ij{8=>7$8M(%CUjp&h8VgE9gPftmC2C`3gK382__e5ks#n=uyO9 z-daIbDlmg3Rc(3;8JSACZ4_;5 zl&3#2;5m5$iq5ATR%AL!PjxgN7v=P%eGo~#BD@$z}YDb9BL-ofMD5Xcyz=zHB z<`c_4tO1KT3smU>m+0fWyh(7$St1tUtP}Uw&=JCwtEoky-%}${QXg{E61@stRfldw z3zHJ*@>lW!(4-I!?pmwk?vCWZzwh9VC30)PQZ>(wh)2l2z4*jPj(T@dh&|gcFq8I5 zb&_&RCt7!Kk!jK(_}w3(KQJ)*M1eg}_b2(24rb2AwiV<@Pvh>Q;M`mrfag;M%^~=; zmnhU{%^ze`zv;%+2Uj(PC!7U>BZ5V)DI#P9v^CAOAr3~v!+lCTIvUD2-X#F_TxJ8hu6eaZf*yE)+bs0EVQ>EmKoqJUd zS?WYv0)KD&QT1>Jnt4=3XWqZE5(qC;46wZ)4)Y6$U7W~ydbq`Qos>i}qAxd9Y__U{ zGRGm(_Daf3aem|G(Qg)EK=-QCCz>8{2Ks1N!z|qPL?btR>4h|0QJ3WRWV#;_21ZB8pZlpXfSj*f42f z$u^=Dn=8AXi4`4M*{An_xVDg*BkfP8!dPGs<*9 z;_SqP23((BoKUV#qebB(wDOA=1;{sKWIkN~sww(X-YIw)QaPsSv@5AM7R_o^NLZQl zt_(b$VzU%4OXGu3cy-(Lc8|n;9`n_HVbs3m>e!MJX8gY;G?30RTkA96a*-2y+VcH- zNIxs#o~}*X3@qvL3=Gvys_9RVp5wtw`?A+{Y~Kre^#$c@jxNQ*|7%87>?vL-orY2uobtEh-BEx^~v zFtrt_>}9Rwu}B%K{uJfF_;DI*|DU4{c+Iu zJ8s8{$wF@mJ%hM{lt`^|#Ew9&GNV~1AbfYB7oHA#;83~5ilBW3V{jdqPxPBvoZs|q zXyT~vw=3Zq;D}_dJ*G*4&?Wu}8@=zib?k3{7ZjDEnQ=N6AxDbm)c0kYL2&-p@<&`Q zkLU=R@}MC8md1OI4jx<^rIh_|9C{^r?%xoCA{u^6Hxxpw-diX>+BR8$`OJ+B*1ICi z%=4^bKWJ8t$4Ep$$shg{nU_u5=@o+DFz}`h_%;yFH;7(KG6%`X*M)qzmMa=pn6)TP z;XmhAJOBt7+f?(H8{5NMoT`@lff0a56S1;y(Ahy#F$lM#G5);~A-mlWmtmx$rE0gg zfV+YZ&tS}A!tZ_R^h36QZW~!y0lqJj_;|^vBW}&B9)det3z15OrkNuqRUunluQGC& zzJ$(!OV!+S`)y!5=z@ILtvAD!4F$zO8q#ZmCh*#qxW-Xm@F{q*UhO#Pba zqEL)aq`(5YyTs{ZO^MqFzL4ikcqQMit|5Al!llcS%+aX4t$3;E%COWe!s_#TdJmigXH*NyN7Fh6A-~z|>^J{qwOaOA0F!#l`a&XwkLl*n=!}|J! zYe-Bm^-qH9FA-g&5tL|kx{#7qr;@rTx~K^Bu?%V;aaT6{4P4=wgE2RZxYN*=3Nu+6 z@pnuIIMsSKrTMxpOx8fZvcmt^=pRuTt>In!Npx&q5r5+zYO04e)Hm;$+59bV;CF zo@uX-`h{#`ijN7#yjoeqH2yI33YDCiXHXz}2&%x>iD9+vOOieWUbJ{^EDT}~|8YzD z_WQHE*vI(!4&T|i3w+W@)PyGq_7o+tcqou8VD7yPVRFCd468S+KC`;!LE*MKjrMnF z*wV#%o5=6K!xUPz81@V-gvdWGMNurJ=)+B_Rg*RJo8ES93P zEOZ9v)D2h4&dELEVovyNbDm!v?9tu4Z$ENSupx4W|3Yk2ir zpt{X2n$Mf8G~{i)UE=K2PRAZ<>KQNny6t;(YsbWxbrLhRD|c;0a*8Y0G5vYOgeCRY z(ozQT`@zL7NGt{73Z&Z!nr+Hv)9Keqe?8$Xcp{|!>JMdKG@8)?C^wnz?ky*3R8q$y zx|mY@efTkPFiaH8VIcSqY7C3J9NJ+^FMShBJJRUqjkb0F<}7BI?6Q!~Pqk+WZp56>;-+v_PxShuD;z`UE#@5%m@24D55C-8p+Kr?+B!7V2yAzkiFx$&Wj3s@~%Z+9|CcxqOzKW+{Ko zLg5D|5^RJk%?Bh*h-L7Z$1-R#VQya+u!t>4dwD61gYwH(`-|Z#r`8qi zwqKdC3;sSAmrQ)_!6ukg8trL+tZKcFI&im*|FwZenrKJQBxlI4OjU}2$pMzw-fqg@yLcmGk@cPr@QO(`U&iP30G)jOSxv;*hvMf**GnZyV0y;xzw_e=M zEuVI%oq|~^_Dn^|G+&M&TE+eBC#SVxmk}eNIE@J1zRvQ^Guvb`GMC8=X9xUbg>oI2 z0&Sc#5t|Q`ng*wFi%<1wY)kyK;L5HHkSpC%R#@vRq-VEvN30(Ds#C!-JNoSrCVX#6 zqcgSjq1Hz&j(98vi%7d(iRTvSCRRtAd?7ZOS!ifIk5>NomD7o~4AW$DpAw(ocLZlo zlZ%b%SZP^Uo1TsCBh`?UATvE9ys9aXGiPpznE2~GVl0&gv;i)$Hd|(>XTV}5L_7Ks zd)LP@ds=C{)hx&<7U##Jyd{K}hE;o>wFuj4;r1|nUblw?D<2}e}AwVAkcjS zbmMRO#HUB^=c(QIWY*-xq=0f>Cb<<^d~nw9BP@U`Blo9^f<2uF9C63+3%|e9l30>e zzqcIWvAN|JhfyV7osa(}Ps>pUV?G?I=-5<@9=MgmqHG+%PkDm=y!PGl8*|ufTy0Di zcx+RdCR;ifh$XeD^j(H*IH6&`Vx*TPXDR>Y;!NDA^UiCAUI|ph17oB!-YT7ZB!z}M z3VzWJP++vs1NwXT1LMz`irCnJH57n)NvtKFiloVpL z4;fj`pV@rrJ^g~({N6j$>Yqi#(qanw!t=a|dU+X=UcZVp2Z)7vlOL$`8sE^@936pI zYmG$K7GrYszTgP4!6FGI&%cdp^{QkRYmGl_`b*XEmel}?I5Y; zh;dnm+@Qgt;BTA#Kz<^ivtrk`sJfRc!W5bv(`H0FQgJvcn@mI9st3PwUmnI_iwC40 zs@S6&ED<%xt^~XHY<5@(2}wWuNsiL`Bq4_0mYT{FD(c)^5#%AD;GTXt>O_~Cpy`>4 zFC6dSB*Zeqjv93yM}*dZn4S9F9TMGW)N9F9WE@xx>(|->=a!B@wyo&^lTJLcE(en2VWWyX)x8crv~McjDC} z5ZjE2NT38AV*iBoedhTQK?3a}om8#8f8m28;Q z7${Pi8Z4~%s@QA>^1{Q4)f;B0%gfV|S7RhBi-fjNI=$!xgT3p~L#Pic&1mf`gsz%8 zOZM4J2_3VVs>!3u|pMWl9rcvxL75=>f7oRXCicCEV9=;SuLPq+Cc zZn%R-CES%}QP+h-+Zzv4fBK!E9nY@uoe4_p!&&f^lQm0rBGZZMnq=4?${EF`+EiYX zBVup~755$MbK+TH_&zg;HY^0`R^fV}#%1A_nd0GHr|Or+rZRT(?&>-UyZQ_}TQ@W1 zUk$VA>ozQ$>ee1+{EnW+@ZOK3Vo*k2GE&l|pGp#K>7QDuu-t!d0tfg86xwUj4blJS zO8);k06|P?@gSlsqgG#Rj((c&@(~;h#n|k%R{~I>joqJ?6el<&V#^j*mC{Z!t#IEq$L_3pD}zk)(a zDKxH(o5IAveJXthA9vEM5mZ_HdnmF&fXuZV@?L54E;ixg+AYiME-@)0dWzt{S6MnknV$G`vy zeL{chq|-S8hEu4(N#0N^9?p`~545x&H8)OP)IdZTy8r$}dzUnaTLA+B0W|ESx3My@ zc>Sn+`-wJz*}9W5$0eT+dv`71?-|<6jC4i64I>k;o7ohLrQDNeC~>&DuyFrQi_FIk z=--d3=0tni#mMD@9@r3PT&nfd<=x&yl7lkf+2P=xYjEYleNFqG>-<8A7u|6yi-0~} zWk-#eru)D!EHC{}E4Jm|mG468z)U9DGfG zKz|ZJOEvMx(&bZ@Mq226->1uk##^Io&>tyyR2*gjo2gZ&5TaF| zmhd%N#-OBq1bz*glY+b&&F}tbvF%CEB~}-2dovuV?S_?qYh@#pwhpmmQD^ymcUjCj z?bw{!M1p;8yF(EjrdA}iGB<#fMsXN|Facea%pilI?50k2BF*~ayKcb-RYs$&enS|8 z;jRe{=6MMO_`1`WXdf~U3G)Ur2ldXjh+svk6T{#)5H%1oO{8nf7B^qJamj*!}XgR_ojU7M{dfK)eN!)xYJ2hzUars-ks2p+0`j2hXzRvwOHT z00wWvri3IR9vvfwAUoXkX9#!=mr=;Xui`Hp55+~I@+V=mgN<@Sh&%!a%R*;pSx!R+ zxT-gs5zu48{fqu2Dhzd+Hw(8|2>}ojhX38JnCR@NbLU)bFfckrm4Dbj_gp*dIlL~q zAqKUpekWal0we$tyVY<~%9_>(iU<^(7yC)?`sbCFz2rD)Eo)5$>jcb0ZC{~|{U;3CN&i|?tMIQ#Jn3T4f<&8C5pGEPUqg5-zk5`dy-nvP)t z@Tg5f;+<#(D{Ni`3-X#`^NxUTeg&BV2JjLsnf0B$lU`G}^l6g9G9J8H2jjqOSZhj3I_hfC`UB0kb~SXu&*%eEM|(OB|n=)cW5) z8etfy@q8;NJH3afRkE%n9$ls3YHX*)z+eIG2 zTd$sl92U3A)j(_sNipp_d0YA3ti%huG*Buugf%SO`5S@nLshox>2?r&oH94Fqdr<6{4`owsUVmxVXw&cF_y=bl*6nj zB*8ET=f!5;<<2Ix36p#0I$EBJeFbaom9Ky`g7Mh3td?(W?lArj#uZq|RE6SEWH_-f|jB@th1ezx;VQWsa)I@LG9@Q zfgYEE0cHsaD*;EOlun2+pS9O49je}EN)Mg{2YRjXiF!6T4D6Q3wbbYh6gqtj5Jq|B zZXMy;%-hafs)U4>p#v3ZS+5`)MtddHWi~e`o*cSo7;E<>1V-CFwu&dNw&PNnVR*vk z@`*bi*#O=-@Ah~=|SjW9kWr;*UVh|H5B5vfj5lb6JOMVLh3=!UNJwcLH zH{~;yBOD`f;f{-w6VL;*NA#~LsqNp{0f{pVjs*dRVPn_2 z_+1y0PE`})HhZmZ0$lG{ z?&Hp|o6J=_*-lSZ&8<9?y}?ttJ3>wtU(BDcoH0@qFoA*s#XMZ3y8O{|gnz6lXr1fQ zBP0~j@w{EFqB|o@bs$RX#r~k;Av#~O;$L*}oBFsuH$@5j_Zr^m!@u>Vls`qbnb&~t}&9TuB2vURwEW-U33x)u97(Y!7z>)ub&iBWR!$V z>L5)sEKD8f8{~g3%5B#p&r*U&ki%XD`6EQ*O+f$x6B})rd`#Bfa17YZT}5XNH5J7k zRf98<(TR>6EX}~!TVg4=E&i*z!F?6KiHyH8@ z-`-j@@3!v3%}t(bxc_7d+zz1zKBO3fxj5T0lK*`Za>5&CBvc!2x_g%gYeKV4TK#YC zc+5RweUon9SqK*m98R~XRTV#9G0gY`}~vvX2x$;Z!u2k5^3ME13HNtt><_-dLH zArcAGVYuOlCGP$6BUP7^6pdSHC99GJ;ydzK0lY@knhUS zNUvYsr_c!SXG~U5+xNjaq$2NW+B(Le^t=48@n5{DR*`Rljnlvabs1y#C9Lm4dhL}t z>m*DoY{5yfuI~C+nKg)5YZ0m#gc?+RNEWM)QR}(L!{^}zn2ytOY8*QI)65R=*?uz9 zn@z-@|*KuY})o@2J>2-2OsOG_WO2cXIFrl*r1bc~$J@Uq>0FIN!IIrfv zykR{T!Qv3$Y{>eKi87j-?PK%De~>eZy= zKYxVb^_0Bk_7@fWsX~>rCSFRn;`o>d-jN-5>qV-n8QjkEE?#(K(f}tcW|yg~m}9T$ zs`YX9u)-%SwXBh^+S|-IF5NOxC?`Qz*D;4U) zy2Mo0f(JKswy?FeD46~^drfV_z5$pyXS&stgSROi0|lkjX2%jU6UcKW@0(x~W!0v? zL20QcCurXU_e~z$-kC>8E!Q$MY}bnTBClHL95YuvgxY(DadKdnl-O0wI;GkKiKjV5 z&Nx(11I^m4%H?{o!5exEyFm+R+8n6umqbVS-gA!pFaoaM{J{*yw1q}P%~V$1xE=2# zP2WEZ%C$wI`l%&{&;!reo{?5T#P@_G|Bv!z5QKU^@j4d31V?=|nT|(HjECWNq_#Yj zvCP;+V5gP(2N*lSs_z!R?D=Xi;C>m_{QVlTzrTRoOk6@-T>QS-YsR`Kfl82x<6&hM z#LVua=DvOslHubYcM}#t!8QQ#+?gj*env2r(q7GXP1>sRSJ|O0(KuW8*OUI+;l$yc zuIq4}ceow6vk#TU7?T+*-vtWtquw0h*QwH%WYx1s1I}1Z6e8;G-6hJ#$r<;*iAz|F2A}9&J|4&{MYq`?G=zdnwCP2w2TkFTWAQ^rTiN5kmCAr#<9{txh-b4TrD} z{m-4deI`j$nA<;>Izo=;4NIGK727Ch!{cxy{ix|l_qP+$Ibl&0qQ$UApBmfuXyoyc z($6O61s}`2cF^&6fI#;^F2=?UKTweWVCS`d5-4o6^m^vR|MUHG!mQ@+*XY~L^Uv!c zMFkWRzzwx;kyaWS_A}huHI$G~uT!4nH;1!+tndq#=g!3%dJKpM<8Ap2Vw&&)J8xK2 z!5@ElNB+p{Sssj_B7M)vHhg)+IN#5mE+0&lD5+z34JM(2`<|2T{&X6A>0AFtcLyi! zc{iX|LO86QmArf;$AxMl4mC(Ju_tK=O7;$Lk+{_;aYNE0^d(RcG#l2Vi$T!4(2try zj78uE*)60Oi}8y8l_phFsYhyjIXfe4S5jATguPAT6C;bd{RZu)hsCvVRT8^Rx+$!_ zW==T>I7*1wXk!D$#Q4uHD|YmoPEp&R%4~GYYfq!>$w0bymJX)igxtMp#SjYKE-UNj zbO9kT!~01PQ9e#s9Ti3TBj|qmcYa35`r0bwK)`-C`-iVT0mXOAU*PiBU~sy%tSk*$Y3sGTTR9K@WceW- zR_EG=;{W#Xp&~u8f|&KezD9ZcDaUIph)2jg11*QoZ8n>KECIVF@AWRr2 z9)sf2?BektNj zH(7_}sQHndP0tP9V)YP<6GY$=b0ef*?;8=cq* zj(AVVts!Rj#*Avbf3=6-G2$)Ml~npz40zKc84TXp7cnCAxpZ0mZw`Tj4x5UCf?pN} zReC*)vJvCGP+3}XQkRf`zjt8I6mvdRYPRvDzxB8yg{juXAh!egS((uqLLZGLNooKR zmdU${YF&rP|Beq;(!l9=FqZ&2(-bK2i}4Cer0}-QmTS{`t2b^XH8}VhC{u ztXH(d-g|#evH+1_mHO7Y$NY^*E-o>(G{(-mp7#V-H4+(_ZX5Tl=>)p&6~Ow=ntms; zEy5_!_Z|9k!5RXxLC{o<5QhWGWQ?7Tb^EgMx+EtW-iUfpcuCRT5L`myPePd|$B8V!~gi?{j4)U5fm-N5SPYW$Pru%x3} z0$2hC!zwOuJvs$?f{aj9tvQ26Q92HQW?45Z0i(u>+)Kl=Qm2I4I(c2wU)W;9xwtUt zRLBETz2RX~*|LCdJD*D>ai@2nLwsyp(MAa+q@qEIH!80;bp9brsiT&cm-Psc_jWxG zEl3K48fN+pmp`3p>ALF$B{)9H8tZ$@u(3Ynz(7ISL*`7N#0_z=t4aoG(pAqnq2BD{tU)Tc$wcKAzD{N)Ad zI7mG55XO@0$)tNi)Vb;ru4{&S%2yybaxb(qDfxJ<@eIAo7R>EA@K)pMZ}kT9ap^-E zX1){KRpUQu4V>E-J~=&|jgw5v-k=Rk73`{qB@%gm<@Cp{P07Ks=It}^ubvmn^ zb@UD~q0*F^zlH)@Yj`Q*O+sNkToth&CTfJhIWf?k#b>&?)bcCN&hy3XJ^bKC&a}uU zE+YH;M@X0m79@3~;GXR`G1pp(T$ojnQa z;(#z-KF>&0e^>!1nmiDkhxph!lxHHSHcmlX6sO8Cx-z`QmX_P+^$ibzf3Htiy#pqz z%RfJ?(K9N!^ox+a{A}@}D=-&xlgKEuy`g0VBr7O~GiGx`t*?>AKHu{+8Mk+tuOa5z z-gs`R5*K&gY9z6(jJWIPR*>K`vKc%%iK8JV-whT%k-7FxqM<2Bg&SA&#m;=^5<$|v zt-tHRp|97@C7n$OvR#3$yqg@{|CPCRO7^b+V75SGou}wMvud=gg3)cD#Ib$y^zC@u zV#E(di$TL(5S)pe^Muqo@KCAvtZ3SCW9{lu|FwPxlDTe0TeYO^QGJ`0`tKHBQ709!Cif5jc$LoYU+zzq2pakRR#iYru9GHxDTqa8f=nnW?Ap56EY|Rx z(DQn6C+hRnA|bf+1-8||Dk+a6fF)?dOV;XKl#qXQ11Xi}<@1-F*m;bFiXRvVkF^G* z3yLefaXZNA*-noc8J0lk7p*0zq=z({Nbtp*>{)x*pixUs_9VNh>+|1Xd$;r2TJ+@t z{%e`ho!a$Sl3;U)GwR^4&fd4!Uc+E&`!pWKf4-tVF^eXmOxgaZENT2x;Bj#*6WqBE2uie9G!q)4zdZMZ>dFd7u0BzTP`hZ<_Gji-s<{gKh4) zj*gG8sfmka=lMm*VqGPt1X?SIcSn_@26HqL$6uF{S;Z5@{n>saJ*~8}YeoGXuI-;L z`=hQX5N@K`Y5a)E7kS;)6@0EEQg>IIZEo)dY?!x1i=T>M65rekIm_~TPgKDZCc6CY zeRP+5hugtES(x6>9Of>K2J&5?GMaWdUM3A&>U)}YwrNbeFY*4XSe1UpJ<80?A!q6I zc9*6U=l1s-bFu_U_PkN&S-hSuJW1@V@|Kw$U&E literal 0 HcmV?d00001 diff --git a/node_helper.js b/node_helper.js index bf7ddd6..b8d2cd2 100644 --- a/node_helper.js +++ b/node_helper.js @@ -24,7 +24,8 @@ module.exports = NodeHelper.create({ temp: params.temp, humidity: params.humidity, battery: params.battery, - sensorId: params.sensorId + sensorId: params.sensorId, + ext: params.ext }; this.sendSocketNotification('MMM-RemoteTemperature.VALUE_RECEIVED', payload); diff --git a/package.json b/package.json index 23931eb..4039e96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "MMM-RemoteTemperature", - "version": "2.0.1", + "version": "2.1.0", "description": "MagicMirror module that displays temperature value from a remote sensor.", "main": "MMM-RemoteTemperature.js", "author": "György Balássy",