From aedda9fbef4b5b2aaf8354aa3d3c5d8bf0e8d0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9E=AC=EC=9B=85?= <wodnd999999@ajou.ac.kr> Date: Wed, 13 Dec 2017 05:35:01 +0900 Subject: [PATCH] Modify URI and functions. --- ADXL345/ADXL345.py | 2 +- ADXL345/app.js | 30 ++++++- ADXL345/conf.xml | 8 +- DHT11/DHT11 | Bin 7972 -> 8024 bytes DHT11/DHT11.cpp | 6 +- DHT11/app.js | 196 +++++++++++++++++++++++++++++++++++++++++++-- DHT11/conf.xml | 40 ++++++++- Makefile | 4 +- SEN0228/app.js | 25 +++++- SEN0228/conf.xml | 4 + thyme/conf.js | 65 +++++++++++++-- thyme/conf.json | 94 ++++++++++++++++++---- 12 files changed, 429 insertions(+), 45 deletions(-) diff --git a/ADXL345/ADXL345.py b/ADXL345/ADXL345.py index 79204ce..b2a316e 100644 --- a/ADXL345/ADXL345.py +++ b/ADXL345/ADXL345.py @@ -107,7 +107,7 @@ if __name__ == "__main__": count = 0 max = 0 - while count < 3000: + while count < 1000: axes = adxl345.getAxes(True) if max < math.sqrt(axes['x'] * axes['x'] + axes['y'] * axes['y'] + axes['z'] * axes['z']): max = math.sqrt(axes['x'] * axes['x'] + axes['y'] * axes['y'] + axes['z'] * axes['z']) diff --git a/ADXL345/app.js b/ADXL345/app.js index c3ccdd3..4477985 100755 --- a/ADXL345/app.js +++ b/ADXL345/app.js @@ -10,7 +10,7 @@ var fs = require('fs'); var xml2js = require('xml2js'); var exec = require("child_process").exec; var events = require('events'); - +var request = require('request'); var wdt = require('./wdt'); var useparentport = ''; @@ -21,6 +21,8 @@ var download_arr = []; var conf = {}; +var sleeping; + // This is an async file read fs.readFile('conf.xml', 'utf-8', function (err, data) { if (err) { @@ -63,7 +65,6 @@ fs.readFile('conf.xml', 'utf-8', function (err, data) { } }); - var tas_state = 'init'; var upload_client = null; @@ -104,6 +105,8 @@ function on_receive(data) { if (download_arr[j].ctname == sink_obj.ctname) { g_down_buf = JSON.stringify({id: download_arr[i].id, con: sink_obj.con}); console.log(g_down_buf + ' <----'); + if(sink_obj.ctname == 'cnt-sleeping') + sleeping = sink_obj.con; break; } } @@ -115,6 +118,7 @@ function on_receive(data) { } function tas_watchdog() { +console.log(download_arr); if(tas_state == 'init') { upload_client = new net.Socket(); @@ -157,14 +161,32 @@ function tas_watchdog() { } wdt.set_wdt(require('shortid').generate(), 3, tas_watchdog); +wdt.set_wdt(require('shortid').generate(), 3, checkSleeping); + +function checkSleeping() { + var options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-sleeping/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + sleeping = jObject.con; + }) +} function uploadData() { var cmd = 'sudo python ADXL345.py'; +console.log("exec"); exec(cmd, function callback(error, stdout, stderr) { - if(tas_state == 'upload') { + if(tas_state == 'upload' && sleeping == '1') { var data = stdout.split('\n'); for(var i = 0; i < upload_arr.length; i++) { - if(upload_arr[i].ctname == 'cnt-accel') { + if(upload_arr[i].ctname == 'cnt-acceleration') { var cin = {ctname: upload_arr[i].ctname, con: data[0]}; console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); upload_client.write(JSON.stringify(cin) + '<EOF>'); diff --git a/ADXL345/conf.xml b/ADXL345/conf.xml index cc61267..7e901d1 100755 --- a/ADXL345/conf.xml +++ b/ADXL345/conf.xml @@ -5,7 +5,11 @@ <parentport>3105</parentport> </tas> <upload> - <ctname>cnt-accel</ctname> - <id>accel#1</id> + <ctname>cnt-acceleration</ctname> + <id>acceleration#1</id> </upload> + <download> + <ctname>cnt-sleeping</ctname> + <id>sleeping#1</id> + </download> </m2m:conf> diff --git a/DHT11/DHT11 b/DHT11/DHT11 index 4ef9829310af84fa38f907434af5df62e0274c90..fb545a44a961af675b82f09bc83ef659e986c4d8 100755 GIT binary patch delta 1547 zcmZ2tcf)Ri0%OBOMRCqK+zbqJxEUGdOms|^J;2St0K%*cAi&7L$N=FV;AUbtF!7)` z=NWDWhBMqu3}+@joG%hNb-(gd##{3a%u&B#nVD47WBAi_^AtuAMnMB!CXfLP0t}K2 z`3wvU36pm+$umjtPQJyYrzn9W8Oq4OfUGzc#GkCmY!6bL#caoDuz4l3FjEu{FB5|( zBLl+&9wr7cZU%-YAX=P(;RT2mWMFs$q8S+&K7eQe28J&nT9kp|2Z$DCVE6-~IT#oi zc$pZ)Bp4W2K(q)00|)P9F*c?8Ic$s!49EH(37qPAH0Rr%r!e*uBz6xHy9J3|gTyXD zV&@>SQ;^s(NbC>@n+<HS&*Z&q#+)(Sj0_=Mj0`^}|74SAJTY04U7Jmsmx)1wcd{3| z5gRD*BzPw`v1@@sXdSx|<B81=*|V8gWq6qwawZ3Il^fJE1V8@p|Nkux1L>y?48e~X z85pDl80J5H`|tm227?8UnHd&5WVzt|h@oTeiwbT=hRF}OR2cV7X5}_#-NL}gux7F& zw>-D5rKP0;h+trt9M3H&sq*`OJt#G}{P|yh=l}ou761O%KluN@-evMcZg0s1Zbk-4 za9UwvkY-?DU}0cjkYZq9I5PPww>{&P$)-HjjAu4)<XO#B4^j$B8_W!RAc`S_8)Pg4 z12Y3ZnBM~D3xN5cv<YG`GYEnxhCOh3Auu15G(ikz24N7zaD*F@^q3h$!2A<%z9@)q z3{Jiv7Bhnwh+??H1JfW5<_kcRCo_Wtm@mOQnNJ{&an9si0eK;qYZ(~$8N3)67zB7H z&l8AaOql#vK%X&XvaTQ~%6tX$nM8Oe?-R5Gr*)A3K*0l24|5#@g9t+iBPf7mh3u7J zeqdk_W@u*wWjTnG7#W1Ywn*?!t`m|I1Vu5}Neq%;;hf29h4cks0mi@}02W;``K^#N zE6B1hlm80IEB@dDIRK=O7c3tF4L}A4UIt$V28Ni)w!-p;uwZ3i5MtQF$N&#!Mg}3U zE?6)!Fo-goVq{=AF}YV*-Vhdcj11xoZ$RFG1~$kee~~-_;tMb_Fr1luSJ<9OfOoQ- zh#X_gWLpt?CK=wzbs~C<36s}~*fVBKek-DH1d9Oy1_=gHW(EdOng_WbRGKIw@dcSA z81$JL7({p{`-#daB9|j!%nS@5kEbwzJjBb8#>~KAFu7M$-U!*S2_R8ubb}0^jmBR9 zwruh}(ICbpn+?Ux*%%j0&Xkd71*PGH$-OeloS^iO!Og%RGkK$w@Z>WxJglJTXqkLh zMwu0qa_3BDl~ra11@4~7y0XfgpqK^~uq<HpIkG&gpcHXra;>Z~Cn$(da5FGK<o3w& zu!2k4$!BGiIY9w^g@=K`X0oG<@MIo29yU-QfdW!ai4)`{30?*U39z9tasr^DAx}<? pF?8}&Id#Ui$$RD0dFSvkFg##qV31>AV2GalQBIn%W-_n5H~<MuOMCzT delta 1609 zcmca%x5RFO0;A7FMRCpwZU%-5ZbpWRiH^y#bGR88K$w*Q1Q;0@86f;Q+)NB}CLR>$ zT*1x2u!5V3Va3FU^F>yqh`C$-`!1OHDo~{1)L|?4nR<&hPhk{c6y)J$0vW&{z#z$x z&%nUoF?lDGJkuAR$+wvF6u<BwBtsb)7?2gmg7}j)ne9P}vzYA|c{Z<P7G{ci!NbHL z%E-X5hlhzljGKYs0EiZ6U^oJz1sNDlfM`YrhBF{qfPvuxh!$mFxB{Yu85nMWXbuL3 zJ0Mzuf#Cs&7GYp`!ZTTnO{u<ujgf)jSpOq|Q$3F=zU_GmV;3N?GmzK`NbCqCb^sFF z1BvZ`#I`_U8$j4>V2d>-?`1RQbm3-X2;pL6crf`Vn>^!^$&&2aY~Oj97{2gK_F^|; z0|nj}p2<z@TA&bG$8N;9Wb;GzY$nzpJWLEBlLNWRCF~i3AAk7&{}zM6g2&7Z3m&pu z@P5S5vG>K~A6zPoM<&a1o3pN9U}RV@Ig(r6&|x-X<Ax0lEuiQ^W_$epUk{4?j6eVD z@BIH?f9Bu+`Un62*9T1A%Iz)b!Oh4Z2~HbK4AKk?3@i)`3{ngX3=1Yp^4K$Om>kJd z&A4LoRi4#M^&q7n!<iZQKomm&H^^8924)6+Fh2p#7Xb4?X%WO=W)K8X3^U;JLSQ~9 zDS{Zx48kCaVF5QJH8C@YfcZ<{d{GeJ7@S-|EM^8V5XG<on*5j<#KHVGaJ~eX|Al9= zkw6?{#pH<s@<K4zGBEHncrh?Ayy2OANFa{UW3r;4KBLd%KtWIx6$<7vec+k=NYD<P zwn6>_1rJC)%ykS5A`Bsnpa60dvJZs$fq_Aop`8(w#UOrQWDo}10*Yj?TNor6mVu0e za2Qw^KK=)p3W{rpkR(`r$mEMc`hu{KWMB{gi#ALa6qcTBBP^o$fD2{_FIdI~8m0^k zybQh!3=A%l3x(wkVIj@HAjGhTkpUj^j0{3xU9ga4U=U?E#mK<0Wb#2_c|%xmGBSuW zyaD+T8vY=^{YCN{h%dmzz_4PnpoqO9EYKAgBp6g6o(Fpf6vw7aU>AwlGyUM1yh%il z(PQ#M5qrjf$%>--^)QVB3=#~Y%nS^$paPXN%1C@cCJ6?8W(I~2(AWj>ZJ5D!fC-RA ze$1$aPZ%=;11P9c7(hY5%aDd9U&PEX`Mjv05we{V(A3OE<1YZaX|j-55M$5gR55cl z#*WEzW#m~w*}`M;K^bLEP!bE^W?&GQ{8mPu6%>gHlLcj!SwR`0VzQ;IGAk%zW=u|$ zRb~YxoH>&dWyL2ikmX?oC9VaNH_9rrf}&;#Sp0)54=cEUp3Eqx%nFK}4U;wHl-WSx z_J(J2kem{%2&s}&0~H~Q<kT1qC!ds4XH1&>QBGa6f{%gW0y_hP90LPG6f|ptawaDO QD9?h!4orAVc9a(f0JE}9jQ{`u diff --git a/DHT11/DHT11.cpp b/DHT11/DHT11.cpp index 864f0ed..89be60b 100644 --- a/DHT11/DHT11.cpp +++ b/DHT11/DHT11.cpp @@ -63,10 +63,12 @@ int main( void ) { if ( wiringPiSetup() == -1 ) exit( 1 ); - - for(int i = 0; i < 64; i++) + int i; + for(i = 0; i < 128; i++) if(read_dht11_dat()) break; + if(i == 128) + printf("-999 -999"); return(0); } diff --git a/DHT11/app.js b/DHT11/app.js index 51ef0c3..925b5ce 100755 --- a/DHT11/app.js +++ b/DHT11/app.js @@ -9,7 +9,7 @@ var util = require('util'); var fs = require('fs'); var xml2js = require('xml2js'); var exec = require("child_process").exec; - +var request = require("request"); var wdt = require('./wdt'); var useparentport = ''; @@ -20,6 +20,16 @@ var download_arr = []; var conf = {}; +var sleeping; +var humidity; +var humidity_auto; +var humidity_low; +var humidity_high; +var temperature; +var temperature_auto; +var temperature_low; +var temperature_high; + // This is an async file read fs.readFile('conf.xml', 'utf-8', function (err, data) { if (err) { @@ -102,6 +112,29 @@ function on_receive(data) { for (j = 0; j < download_arr.length; j++) { if (download_arr[j].ctname == sink_obj.ctname) { g_down_buf = JSON.stringify({id: download_arr[i].id, con: sink_obj.con}); + switch(sink_obj.ctname) { + case 'cnt-sleeping': + sleeping = sink_obj.con; + break; + case 'cnt-humidity-auto': + humidity_auto = sink_obj.con; + break; + case 'cnt-humidity-low': + humidity_low = sink_obj.con; + break; + case 'cnt-humidity-high': + humidity_high = sink_obj.con; + break; + case 'cnt-temperature-auto': + temperature_auto = sink_obj.con; + break; + case 'cnt-temperature-low': + temperature_low = sink_obj.con; + break; + case 'cnt-temperature-high': + temperature_high = sink_obj.con; + break; + } console.log(g_down_buf + ' <----'); break; } @@ -136,9 +169,95 @@ function tas_watchdog() { } } else if(tas_state == 'init_thing') { + var options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-sleeping/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + sleeping = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-humidity-auto/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + humidity_auto = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-humidity-low/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + humidity_low = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-humidity-high/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + humidity_high = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-temperature-auto/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + temperature_auto = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-temperature-low/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + temperature_low = jObject.con; + }); + options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-temperature-high/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + temperature_high = jObject.con; + }); tas_state = 'connect'; - } + } else if(tas_state == 'connect' || tas_state == 'reconnect') { +console.log('port:' + useparentport + ', host:' + useparenthostname); upload_client.connect(useparentport, useparenthostname, function() { console.log('upload Connected'); tas_download_count = 0; @@ -156,7 +275,33 @@ function tas_watchdog() { } wdt.set_wdt(require('shortid').generate(), 3, tas_watchdog); -wdt.set_wdt(require('shortid').generate(), 3, uploadData); +wdt.set_wdt(require('shortid').generate(), 2, uploadData); +wdt.set_wdt(require('shortid').generate(), 1, controllActuator); +wdt.set_wdt(require('shortid').generate(), 3, checkSleeping); + +function checkSleeping() { + var options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-sleeping/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + if(sleeping == 1 && jObject.con == 0) { + var cin = {ctname: "cnt-fan", con: "0"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + cin = {ctname: "cnt-humidifier", con: "0"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } + sleeping = jObject.con; + }) +} function uploadData() { var cmd = 'sudo ./DHT11'; @@ -166,19 +311,54 @@ function uploadData() { for(var i = 0; i < upload_arr.length; i++) { if(upload_arr[i].ctname == 'cnt-humidity') { var cin = {ctname: upload_arr[i].ctname, con: stdoutArr[0]}; - console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); - upload_client.write(JSON.stringify(cin) + '<EOF>'); + if(stdoutArr[0] != -999) { + humidity = stdoutArr[0]; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } } - if(upload_arr[i].ctname == 'cnt-temp') { + if(upload_arr[i].ctname == 'cnt-temperature') { var cin = {ctname: upload_arr[i].ctname, con: stdoutArr[1]}; - console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); - upload_client.write(JSON.stringify(cin) + '<EOF>'); + if(stdoutArr[1] != -999) { + temperature = stdoutArr[1]; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } } } } }); } +function controllActuator() { + if(tas_state == 'upload' && sleeping == 1) { + if(humidity_auto == 1) { + if(!((humidity_low <= humidity) && (humidity <= humidity_high))) { + var cin = {ctname: "cnt-humidifier", con: "1"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } + else { + var cin = {ctname: "cnt-humidifier", con: "0"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } + } + if(temperature_auto == 1) { + if(!((temperature_low <= temperature) && (temperature <= temperature_high))) { + var cin = {ctname: "cnt-fan", con: "1"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } + else { + var cin = {ctname: "cnt-fan", con: "0"}; + console.log('SEND : ' + JSON.stringify(cin) + ' ---->'); + upload_client.write(JSON.stringify(cin) + '<EOF>'); + } + } + } +} + var cur_c = ''; var pre_c = ''; var g_sink_buf = ''; diff --git a/DHT11/conf.xml b/DHT11/conf.xml index 0e415b6..765e8c4 100755 --- a/DHT11/conf.xml +++ b/DHT11/conf.xml @@ -9,7 +9,43 @@ <id>humidity#1</id> </upload> <upload> - <ctname>cnt-temp</ctname> - <id>temp#1</id> + <ctname>cnt-temperature</ctname> + <id>temperature#1</id> </upload> + <upload> + <ctname>cnt-fan</ctname> + <id>fan#1</id> + </upload> + <upload> + <ctname>cnt-humidifier</ctname> + <id>humidifier#1</id> + </upload> + <download> + <ctname>cnt-sleeping</ctname> + <id>sleeping#1</id> + </download> + <download> + <ctname>cnt-humidity-auto</ctname> + <id>humidity#1</id> + </download> + <download> + <ctname>cnt-humidity-low</ctname> + <id>humidity#</id> + </download> + <download> + <ctname>cnt-humidity-high</ctname> + <id>humidity#1</id> + </download> + <download> + <ctname>cnt-temperature-auto</ctname> + <id>temperature#1</id> + </download> + <download> + <ctname>cnt-temperature-low</ctname> + <id>temperature#1</id> + </download> + <download> + <ctname>cnt-temperature-high</ctname> + <id>temperature#1</id> + </download> </m2m:conf> diff --git a/Makefile b/Makefile index b2294eb..e8bb3d1 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ install: sudo npm -g install forever cd thyme && npm install cd ADXL345 && npm install - cd DHT11 && npm install cd SEN0228 && npm install + cd DHT11 && npm install compile: cd DHT11 && g++ DHT11.cpp -o DHT11 -lwiringPi @@ -12,8 +12,8 @@ compile: start: cd thyme && forever start thyme.js cd ADXL345 && forever start app.js - cd DHT11 && forever start app.js cd SEN0228 && forever start app.js + cd DHT11 && forever start app.js stop: forever stopall diff --git a/SEN0228/app.js b/SEN0228/app.js index fc95269..36c506e 100755 --- a/SEN0228/app.js +++ b/SEN0228/app.js @@ -9,7 +9,7 @@ var util = require('util'); var fs = require('fs'); var xml2js = require('xml2js'); var exec = require("child_process").exec; - +var request = require("request"); var wdt = require('./wdt'); var useparentport = ''; @@ -20,6 +20,8 @@ var download_arr = []; var conf = {}; +var sleeping; + // This is an async file read fs.readFile('conf.xml', 'utf-8', function (err, data) { if (err) { @@ -102,6 +104,8 @@ function on_receive(data) { for (j = 0; j < download_arr.length; j++) { if (download_arr[j].ctname == sink_obj.ctname) { g_down_buf = JSON.stringify({id: download_arr[i].id, con: sink_obj.con}); + if(sink_obj.ctname == 'cnt-sleeping') + sleeping = sink_obj.con; console.log(g_down_buf + ' <----'); break; } @@ -157,11 +161,28 @@ function tas_watchdog() { wdt.set_wdt(require('shortid').generate(), 3, tas_watchdog); wdt.set_wdt(require('shortid').generate(), 3, uploadData); +wdt.set_wdt(require('shortid').generate(), 3, checkSleeping); + +function checkSleeping() { + var options = { method: 'GET', + url: 'http://52.79.78.134:7579/mobius-yt/SSS/cnt-sleeping/latest', + headers: + { 'cache-control': 'no-cache', + 'x-m2m-origin': 'SOrigin','x-m2m-ri': '12345', + accept: 'application/json' } }; + + request(options, function (error, response, body) { + if (error) throw new Error(error); + console.log(body); + var jObject = JSON.parse(body)["m2m:cin"]; + sleeping = jObject.con; + }) +} function uploadData() { var cmd = 'sudo ./SEN0228'; exec(cmd, function callback(error, stdout, stderr) { - if(tas_state == 'upload') { + if(tas_state == 'upload' && sleeping == '1') { for(var i = 0; i < upload_arr.length; i++) { if(upload_arr[i].ctname == 'cnt-lux') { var cin = {ctname: upload_arr[i].ctname, con: stdout}; diff --git a/SEN0228/conf.xml b/SEN0228/conf.xml index a3f17fa..87954ae 100755 --- a/SEN0228/conf.xml +++ b/SEN0228/conf.xml @@ -8,4 +8,8 @@ <ctname>cnt-lux</ctname> <id>lux#1</id> </upload> + <download> + <ctname>cnt-sleeping</ctname> + <id>sleeping#1</id> + </download> </m2m:conf> diff --git a/thyme/conf.js b/thyme/conf.js index f484beb..0fdb437 100755 --- a/thyme/conf.js +++ b/thyme/conf.js @@ -29,9 +29,9 @@ cse.id = '/mobius-yt'; cse.mqttport = '1883'; // build ae -ae.id = 'ae-edu0'; +ae.id = 'SSS'; ae.parent = '/' + cse.name; -ae.name = 'ae-edu0'; +ae.name = 'SSS'; ae.appid = '0.2.481.1.1'; ae.port = '9727'; ae.bodytype = 'json'; @@ -41,25 +41,74 @@ ae.tasport = '3105'; var count = 0; cnt_arr[count] = {}; cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-sleeping'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-acceleration'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; cnt_arr[count++].name = 'cnt-humidity'; cnt_arr[count] = {}; cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; -cnt_arr[count++].name = 'cnt-temp'; +cnt_arr[count++].name = 'cnt-humidity-auto'; cnt_arr[count] = {}; cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; -cnt_arr[count++].name = 'cnt-accel'; +cnt_arr[count++].name = 'cnt-humidity-low'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-humidity-high'; cnt_arr[count] = {}; cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; cnt_arr[count++].name = 'cnt-lux'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-temperature'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-temperature-auto'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-temperature-low'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-temperature-high'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-fan'; +cnt_arr[count] = {}; +cnt_arr[count].parent = '/' + cse.name + '/' + ae.name; +cnt_arr[count++].name = 'cnt-humidifier'; // build sub count = 0; sub_arr[count] = {}; -sub_arr[count].parent = '/' + cse.name + '/' + ae.name + '/' + cnt_arr[1].name; -sub_arr[count].name = 'sub-ctrl'; +sub_arr[count].parent = cnt_arr[0].parent + '/' + cnt_arr[0].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[3].parent + '/' + cnt_arr[3].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[4].parent + '/' + cnt_arr[4].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[5].parent + '/' + cnt_arr[5].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[8].parent + '/' + cnt_arr[8].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[9].parent + '/' + cnt_arr[9].name; +sub_arr[count].name = 'sub'; +sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; +sub_arr[count] = {}; +sub_arr[count].parent = cnt_arr[10].parent + '/' + cnt_arr[10].name; +sub_arr[count].name = 'sub'; sub_arr[count++].nu = 'mqtt://' + cse.host + '/' + ae.id; -//sub_arr[count++].nu = 'http://203.254.173.104:' + ae.port + '/noti'; -//sub_arr[count++].nu = 'coap://203.254.173.104:' + ae.port + '/noti'; // build acp: not complete acp.parent = '/' + cse.name + '/' + ae.name; diff --git a/thyme/conf.json b/thyme/conf.json index ca785cc..d9a9928 100644 --- a/thyme/conf.json +++ b/thyme/conf.json @@ -9,9 +9,9 @@ "mqttport": "1883" }, "ae": { - "id": "ae-edu0", + "id": "SSS", "parent": "/mobius-yt", - "name": "ae-edu0", + "name": "SSS", "appid": "0.2.481.1.1", "port": "9727", "bodytype": "json", @@ -19,32 +19,98 @@ }, "cnt": [ { - "parent": "/mobius-yt/ae-edu0", + "parent": "/mobius-yt/SSS", + "name": "cnt-sleeping" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-acceleration" + }, + { + "parent": "/mobius-yt/SSS", "name": "cnt-humidity" }, { - "parent": "/mobius-yt/ae-edu0", - "name": "cnt-temp" + "parent": "/mobius-yt/SSS", + "name": "cnt-humidity-auto" }, { - "parent": "/mobius-yt/ae-edu0", - "name": "cnt-accel" + "parent": "/mobius-yt/SSS", + "name": "cnt-humidity-low" }, { - "parent": "/mobius-yt/ae-edu0", + "parent": "/mobius-yt/SSS", + "name": "cnt-humidity-high" + }, + { + "parent": "/mobius-yt/SSS", "name": "cnt-lux" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-temperature" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-temperature-auto" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-temperature-low" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-temperature-high" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-fan" + }, + { + "parent": "/mobius-yt/SSS", + "name": "cnt-humidifier" } ], "sub": [ { - "parent": "/mobius-yt/ae-edu0/cnt-temp", - "name": "sub-ctrl", - "nu": "mqtt://52.79.78.134/ae-edu0" + "parent": "/mobius-yt/SSS/cnt-sleeping", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-humidity-auto", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-humidity-low", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-humidity-high", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-temperature-auto", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-temperature-low", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" + }, + { + "parent": "/mobius-yt/SSS/cnt-temperature-high", + "name": "sub", + "nu": "mqtt://52.79.78.134/SSS" } ], "acp": { - "parent": "/mobius-yt/ae-edu0", - "name": "acp-ae-edu0", - "id": "ae-edu0" + "parent": "/mobius-yt/SSS", + "name": "acp-SSS", + "id": "SSS" } } \ No newline at end of file -- GitLab