Changes for page 2 Script
Last modified by Devin Chen on 2025/06/06 14:03
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -349,6 +349,118 @@ 349 349 end 350 350 {{/code}} 351 351 352 +== **1.8 How to parse value from HTTP response body** == 353 + 354 +This example use [[https:~~/~~/www.weatherapi.com/>>https://www.weatherapi.com/]] as example, to show how to parse value from HTTP response body. When we input the city name into address "@HDW5050": 355 + 356 +(% style="text-align:center" %) 357 +[[image:InputHTTPparameter.png]] 358 + 359 +Then the response body would be like as following: 360 + 361 +{{code language="json"}} 362 +{ 363 + "location": { 364 + "name": "Madrid", 365 + "region": "Madrid", 366 + "country": "Spain", 367 + "lat": 40.4, 368 + "lon": -3.68, 369 + "tz_id": "Europe/Madrid", 370 + "localtime_epoch": 1669022636, 371 + "localtime": "2022-11-21 10:23" 372 + }, 373 + "current": { 374 + "last_updated_epoch": 1669022100, 375 + "last_updated": "2022-11-21 10:15", 376 + "temp_c": 13.0, 377 + "temp_f": 55.4, 378 + "is_day": 1, 379 + "condition": { 380 + "text": "Partly cloudy", 381 + "icon": "//cdn.weatherapi.com/weather/64x64/day/116.png", 382 + "code": 1003 383 + }, 384 + "wind_mph": 11.9, 385 + "wind_kph": 19.1, 386 + "wind_degree": 210, 387 + "wind_dir": "SSW", 388 + "pressure_mb": 1015.0, 389 + "pressure_in": 29.97, 390 + "precip_mm": 0.0, 391 + "precip_in": 0.0, 392 + "humidity": 88, 393 + "cloud": 75, 394 + "feelslike_c": 10.8, 395 + "feelslike_f": 51.4, 396 + "vis_km": 10.0, 397 + "vis_miles": 6.0, 398 + "uv": 3.0, 399 + "gust_mph": 22.1, 400 + "gust_kph": 35.6 401 + } 402 +} 403 +{{/code}} 404 + 405 +(% class="wikigeneratedid" %) 406 +So we decode json into lua object to assign the value into addresses HDW6060(temperature), HDW7070(humidity), the code example like follows: 407 + 408 +{{code language="lua"}} 409 +local APIkey = '70faaecf926b4341b1974006221711' 410 + 411 + 412 +local http = require("socket.http") 413 +local json = require("json") 414 + 415 +-- Send http.get request and return response result 416 +function getHttpsUrl(url) 417 + local result_table, code, headers, status = http.request(url) 418 + print("code:"..code) 419 + if code~= 200 then 420 + return 421 + else 422 + return result_table 423 + end 424 +end 425 + 426 +function sendAPI(key, city) 427 + local url = "http://api.weatherapi.com/v1/current.json?key="..key.."&q="..city.."&aqi=no" 428 + --local url = 'http://v-box.net' 429 + --local url = 'https://www.google.com/' 430 + --http://api.weatherapi.com/v1/current.json?key=70faaecf926b4341b1974006221711&q=Barcelona&aqi=no 431 + print("Get the link:"..url) 432 + local body = getHttpsUrl(url) 433 + --print(body) 434 + local jsonBody = json.decode(body) 435 + --print(jsonBody["current"]["temp_c"]) 436 + --print(type(jsonBody["current"]["temp_c"])) 437 + --print(type(jsonBody["current"]["humidity"])) 438 + addr_setfloat("@HDW6060", jsonBody["current"]["temp_c"]) 439 + addr_setword("@HDW7070", jsonBody["current"]["humidity"]) 440 +end 441 + 442 + 443 +function Weather.main() 444 + local cityName = addr_getstring("@HDW5050",6) 445 + print("cityName: "..cityName) 446 + sendAPI(APIkey, cityName) 447 +end 448 +{{/code}} 449 + 450 +== **1.9 High-Low Byte Switch** == 451 + 452 +The following example is converting the floating number from order 1234 to order 3412. About which high-low word order corresponding to which value, please refer to the [[Address operation table>>doc:V-BOX.V-Net.Manual.04 Lua Script.01 Lua Functions.WebHome||anchor="H2Addressoperation"]]. 453 + 454 +{{code language="lua"}} 455 +function highLowByteSwitch(floatNumber) 456 + addr_setfloat("@W_0#HDW23036",floatNumber,0,2) 457 + local newFloat = addr_getfloat("@W_0#HDW23036") 458 + local formattedFloat = string.format("%.2f",newFloat) 459 + print("The formatted float value is the : "..formattedFloat) 460 + return formattedFloat 461 +end 462 +{{/code}} 463 + 352 352 = **2 V-Box connect with third part server** = 353 353 354 354 V-Box have two mode.One is for V-Net,User need to use WECON server to store data.We call this V-NET platform. ... ... @@ -367,8 +367,9 @@ 367 367 368 368 (% class="mark" %)2.If your server requires SSL certificate to log in,please use OpenCloud.Because only OpenCloud platform can support to upload certificate 369 369 370 - (% class="wikigeneratedid" %)482 +{{info}} 371 371 **✎Note: **Before program the script of MQTT, please make sure the server(MQTT broker) can be connected through MQTT Client tool. 484 +{{/info}} 372 372 373 373 (% class="wikigeneratedid" %) 374 374 Tool link: **[[MQTT.fx>>http://mqttfx.jensd.de/index.php/download]]** ... ... @@ -375,6 +375,25 @@ 375 375 376 376 == **2.1 V-Box connect with test server(General Example)** == 377 377 491 +The following example is trying to publish to the topic "testtopic/test/no1/7890", and subscribe the topic "testtopic/test/no1/123456". 492 + 493 +And the JSON message is like follows: 494 + 495 +{{code language="JSON"}} 496 +{ 497 + "timestamp": 1631152760, 498 + "messageId": 1, 499 + "event": "test_data", 500 + "mfrs": "HMI/box", 501 + "data": 502 + { 503 + "id" : 1436217747670454274, 504 + "waterlevel" : 48, 505 + "temperture" : 23 506 + } 507 +} 508 +{{/code}} 509 + 378 378 {{code language="lua"}} 379 379 --MQTT configuration table 380 380 local MQTT_CFG={} ... ... @@ -416,9 +416,13 @@ 416 416 --initialize mqtt 417 417 function mqtt_init() 418 418 print(string.format("mqtt init mqtt_url:%s mqtt_clientid:%s", MQTT_URL, MQTT_CLIENT_ID)) 551 + if g_mq then 552 + mqtt.close() --Close mqtt object 553 + end 419 419 g_mq, err = mqtt.create(MQTT_URL, MQTT_CLIENT_ID) -- create mqtt object,and declare it as a global variable 420 420 if g_mq then 421 421 g_mq:on("message", mqtt_msg_callback) -- Register a callback for receiving messages 557 + g_mq:on("offline", mqtt_msg_offline) -- Register a callback for offline 422 422 print("mqtt init success") 423 423 else 424 424 print("mqtt init failed:", err) ... ... @@ -438,6 +438,11 @@ 438 438 g_mq:subscribe(SUBSCRIBE_TOPIC, 0) 439 439 end 440 440 577 +--Offline callback function 578 +function mqtt_msg_offline(cause) 579 + print("mqtt offline, cause:", cause) 580 +end 581 + 441 441 -- Received message callback function 442 442 function mqtt_msg_callback(topic, msg) 443 443 print("topic:", topic) ... ... @@ -476,9 +476,11 @@ 476 476 if g_mq:isconnected() then 477 477 send_data() 478 478 else 479 - --if exceed 20sec not connect, reconnect once480 - if os.time() - LAST_TIME > 20then620 + --if exceed 5 sec not connect, reconnect once 621 + if os.time() - LAST_TIME > 5 then 481 481 LAST_TIME = os.time() 623 + --reinitial the mqtt object 624 + mqtt_init() 482 482 --connect to mqtt or reconnect 483 483 mqtt_connect() 484 484 end ... ... @@ -501,142 +501,134 @@ 501 501 -- Meta class 502 502 --main 503 503 function mq.main() 504 - 505 - 647 + if not mq.m then 648 + local err = "" 506 506 507 - mq.m, err = mqtt.create("tcp://grouprobotinfo.com:1883", "ClienID") -- create connection 508 - if mq.m then 509 - mq.config = { 510 - username = "",-- ID 511 - password = "",-- password 512 - netway = 1, -- Ethernet connection, WIFI=1 513 - -- keepalive = 100, -- Optional, set the connection heartbeat interval for 100 seconds. 514 - -- cleansession = 0, -- Optional, keep session 515 - } 516 - mq.m:on("message", function(topic, msg) -- Register for receiving message callbacks 517 - local str = string.format("%s:%s", topic, msg) 518 - -- print("mqtt msg:", str) -- Print out the received topics and content 519 - end 520 - ) 521 - mq.m:on("offline", function (cause) -- Register for lost connection callbacks 522 - -- addr_setstring("@xxx", "cause"..(cause or " got nil")) 523 - end) 524 - mq.m:on("arrived", function() -- Registration for sending messages to callbacks 525 - print("msg arrived") 526 - end) 527 - else 528 - print("mqtt create failed:", err) -- Create object failed 529 - end 530 - else 531 - if mq.m:isconnected() then -- If online, post a message 532 - local phaseStatus ="unknow" 533 - if addr_getbit("@Standby")== 1 then 534 - phaseStatus = "Standby" 535 - elseif addr_getbit("@Pre-Freeze")==1 then 536 - phaseStatus= "Pre-Freeze" 537 - elseif addr_getbit("@Prepare")==1 then 538 - phaseStatus ="Prepare" 539 - elseif addr_getbit("@Primary Dry")==1 then 540 - phaseStatus = "Primary dry" 541 - elseif addr_getbit("@Secondary Dry")==1 then 542 - phaseStatus = "Secondary Dry" 543 - end 544 --- print(addr_getbit("@Primary Dry")) 650 + mq.m, err = mqtt.create("tcp://grouprobotinfo.com:1883", "ClienID") -- create connection 651 + if mq.m then 652 + mq.config = { 653 + username = "",-- ID 654 + password = "",-- password 655 + netway = 1, -- Ethernet connection, WIFI=1 656 + -- keepalive = 100, -- Optional, set the connection heartbeat interval for 100 seconds. 657 + -- cleansession = 0, -- Optional, keep session 658 + } 659 + mq.m:on("message", function(topic, msg) -- Register for receiving message callbacks 660 + local str = string.format("%s:%s", topic, msg) 661 + -- print("mqtt msg:", str) -- Print out the received topics and content 662 + end) 663 + mq.m:on("offline", function (cause) -- Register for lost connection callbacks 664 + -- addr_setstring("@xxx", "cause"..(cause or " got nil")) 665 + end) 666 + mq.m:on("arrived", function() -- Registration for sending messages to callbacks 667 + print("msg arrived") 668 + end) 669 + else 670 + print("mqtt create failed:", err) -- Create object failed 671 + end 672 + else 673 + if mq.m:isconnected() then -- If online, post a message 674 + local phaseStatus ="unknow" 675 + if addr_getbit("@Standby")== 1 then 676 + phaseStatus = "Standby" 677 + elseif addr_getbit("@Pre-Freeze")==1 then 678 + phaseStatus= "Pre-Freeze" 679 + elseif addr_getbit("@Prepare")==1 then 680 + phaseStatus ="Prepare" 681 + elseif addr_getbit("@Primary Dry")==1 then 682 + phaseStatus = "Primary dry" 683 + elseif addr_getbit("@Secondary Dry")==1 then 684 + phaseStatus = "Secondary Dry" 685 + end 686 + --print(addr_getbit("@Primary Dry")) 545 545 ------------------------------------------------------------------------------------------------------------------------- 546 - local activating ="unknow" 547 - if addr_getbit("@Compressor")==1 then 548 - activating = ",".."Compressor" 549 - end 550 - if addr_getbit("@Silicone Pump")==1 then 551 - activating = activating..",".."Silicone Pump" 552 - end 553 - if addr_getbit("@Vacuum Pump")==1 then 554 - activating = activating..",".."Vacuum Pump" 555 - end 556 - if addr_getbit("@Root Pump")==1 then 557 - activating = activating..",".."Root Pump" 558 - end 559 - if addr_getbit("@Heater")==1 then 560 - activating = activating..",".."Heater" 561 - end 562 - if addr_getbit("@Valve Silicone")==1 then 563 - activating = activating..",".."Valve Silicone" 564 - end 565 - if addr_getbit("@Valve Ice Condenser")==1 then 566 - activating = activating..",".."Valve Ice Condenser" 567 - end 568 - if addr_getbit("@Valve Vacuum Pump")==1 then 569 - activating = activating..",".."Valve Vacuum Pump" 570 - end 571 - local pr_activating =string.sub(activating,2) 572 - -- print(pr_activating) 688 + local activating ="unknow" 689 + if addr_getbit("@Compressor")==1 then 690 + activating = ",".."Compressor" 691 + end 692 + if addr_getbit("@Silicone Pump")==1 then 693 + activating = activating..",".."Silicone Pump" 694 + end 695 + if addr_getbit("@Vacuum Pump")==1 then 696 + activating = activating..",".."Vacuum Pump" 697 + end 698 + if addr_getbit("@Root Pump")==1 then 699 + activating = activating..",".."Root Pump" 700 + end 701 + if addr_getbit("@Heater")==1 then 702 + activating = activating..",".."Heater" 703 + end 704 + if addr_getbit("@Valve Silicone")==1 then 705 + activating = activating..",".."Valve Silicone" 706 + end 707 + if addr_getbit("@Valve Ice Condenser")==1 then 708 + activating = activating..",".."Valve Ice Condenser" 709 + end 710 + if addr_getbit("@Valve Vacuum Pump")==1 then 711 + activating = activating..",".."Valve Vacuum Pump" 712 + end 713 + local pr_activating =string.sub(activating,2) 714 + -- print(pr_activating) 715 + local status_text ="unknow" 716 + if addr_getbit("@Status Run")==1 then 717 + status_text = "RUNNING" 718 + else 719 + status_text = "STOP" 720 + end 721 +------------------------------------------------------------------------------------------------------------------------- 722 + local js = {type="status", 723 + mc_name ="FD300", 724 + status=status_text, 725 + elapsed_time={ 726 + hour=addr_getword("@Elapsed Time (Hour)"), 727 + min=addr_getword("@Elapsed Time (Minute)"), 728 + sec=addr_getword("@Elapsed Time (Second)") 729 + }, 730 + phase = phaseStatus, 731 + step = addr_getword("@Step"), 732 + activating_output = pr_activating, 733 + sv=addr_getshort("@SV Silicone")/10, 734 + pv=addr_getshort("@PV Silicone")/10, 735 + product1=addr_getshort("@Product 1")/10, 573 573 737 + product2=addr_getshort("@Product 2")/10, 738 + product3=addr_getshort("@Product 3")/10, 739 + product4=addr_getshort("@Product 4")/10, 740 + ice1=addr_getshort("@Ice condenser 1")/10, 741 + ice2=addr_getshort("@Ice condenser 2")/10, 742 + vacuum=addr_getfloat("@Vacuum") 743 + } 744 + local jsAlarm = { HPC = addr_getbit("@B_25395#W0.00"), 745 + ODPC = addr_getbit("@B_25395#W0.01"), 746 + MTPC=addr_getbit("@B_25395#W0.02"), 747 + HTT = addr_getbit("@B_25395#W1.03"), 748 + CPC = addr_getbit("@B_25395#W0.08"), 749 + CPSP =addr_getbit("@B_25395#W1.00"), 750 + CPVP =addr_getbit("@B_25395#W0.10"), 751 + CPRP =addr_getbit("@B_25395#W0.11"), 752 + HP =addr_getbit("@B_25395#W1.01"), 753 + PP= addr_getbit("@B_25395#W1.02"), 754 + PO=addr_getbit("@B_25395#W0.07"), 755 + FSE=addr_getbit("@B_25395#W2.04"), 756 + AVVSVV=addr_getbit("@B_25395#W1.12"), 757 + ICHT=addr_getbit("@B_25395#W3.06") 758 + } 759 + -- ("@B_25395#CIO1.02") 760 + mq.m:publish("mqtt-v-box-epsilon-fd300", json.encode(js) , 0, 0) 761 + mq.m:publish("mqtt-v-box-epsilon-alarm-fd300", json.encode(jsAlarm) , 0, 0) 762 + else 763 + local stat, err = mq.m:connect(mq.config) -- connection 764 + if stat == nil then --Determine whether to connect 765 + print("mqtt connect failed:", err) 766 + return -- Connection failed, return directly 767 + end 768 + mq.m:subscribe("mqtt-v-box-epsilon", 0)-- Subscribe to topics 574 574 575 - 576 - local status_text ="unknow" 577 - if addr_getbit("@Status Run")==1 then 578 - status_text = "RUNNING" 579 - else 580 - status_text = "STOP" 581 - end 582 -------------------------------------------------------------------------------------------------------------------------- 583 - 584 - local js = {type="status", 585 - mc_name ="FD300", 586 - status=status_text, 587 - elapsed_time={ 588 - hour=addr_getword("@Elapsed Time (Hour)"), 589 - min=addr_getword("@Elapsed Time (Minute)"), 590 - sec=addr_getword("@Elapsed Time (Second)") 591 - }, 592 - phase = phaseStatus, 593 - step = addr_getword("@Step"), 594 - activating_output = pr_activating, 595 - sv=addr_getshort("@SV Silicone")/10, 596 - pv=addr_getshort("@PV Silicone")/10, 597 - product1=addr_getshort("@Product 1")/10, 598 - 599 - product2=addr_getshort("@Product 2")/10, 600 - product3=addr_getshort("@Product 3")/10, 601 - product4=addr_getshort("@Product 4")/10, 602 - ice1=addr_getshort("@Ice condenser 1")/10, 603 - ice2=addr_getshort("@Ice condenser 2")/10, 604 - vacuum=addr_getfloat("@Vacuum") 605 - 606 - } 607 - local jsAlarm = { HPC = addr_getbit("@B_25395#W0.00"), 608 - ODPC = addr_getbit("@B_25395#W0.01"), 609 - MTPC=addr_getbit("@B_25395#W0.02"), 610 - HTT = addr_getbit("@B_25395#W1.03"), 611 - CPC = addr_getbit("@B_25395#W0.08"), 612 - CPSP =addr_getbit("@B_25395#W1.00"), 613 - CPVP =addr_getbit("@B_25395#W0.10"), 614 - CPRP =addr_getbit("@B_25395#W0.11"), 615 - HP =addr_getbit("@B_25395#W1.01"), 616 - PP= addr_getbit("@B_25395#W1.02"), 617 - PO=addr_getbit("@B_25395#W0.07"), 618 - FSE=addr_getbit("@B_25395#W2.04"), 619 - AVVSVV=addr_getbit("@B_25395#W1.12"), 620 - ICHT=addr_getbit("@B_25395#W3.06") 621 - 622 - } 623 - 624 - -- ("@B_25395#CIO1.02") 625 - mq.m:publish("mqtt-v-box-epsilon-fd300", json.encode(js) , 0, 0) 626 - mq.m:publish("mqtt-v-box-epsilon-alarm-fd300", json.encode(jsAlarm) , 0, 0) 627 - else 628 - local stat, err = mq.m:connect(mq.config) -- connection 629 - if stat == nil then --Determine whether to connect 630 - print("mqtt connect failed:", err) 631 - return -- Connection failed, return directly 632 - end 633 - mq.m:subscribe("mqtt-v-box-epsilon", 0)-- Subscribe to topics 634 - 635 - end 636 - -- mq.m:unsubscribe("stc/test") 637 - -- mq.m:disconnect() -- close matt 638 - -- mq.m:close() -- close clase 639 - end 770 + end 771 + -- mq.m:unsubscribe("stc/test") 772 + -- mq.m:disconnect() -- close matt 773 + -- mq.m:close() -- close clase 774 + end 640 640 end 641 641 {{/code}} 642 642 ... ... @@ -1066,35 +1066,20 @@ 1066 1066 1067 1067 {{code language="java"}} 1068 1068 { 1069 - 1070 1070 "Version": "2012-10-17", 1071 - 1072 1072 "Statement": [ 1073 - 1074 1074 { 1075 - 1076 1076 "Effect": "Allow", 1077 - 1078 1078 "Action": [ 1079 - 1080 1080 "iot:Connect", 1081 - 1082 1082 "iot:Publish", 1083 - 1084 1084 "iot:Subscribe", 1085 - 1086 1086 "iot:Receive", 1087 - 1088 1088 "greengrass:Discover" 1089 - 1090 1090 ], 1091 - 1092 1092 "Resource": "*" 1093 - 1094 1094 } 1095 - 1096 1096 ] 1097 - 1098 1098 } 1099 1099 {{/code}} 1100 1100 ... ... @@ -1159,185 +1159,190 @@ 1159 1159 1160 1160 [[image:image-20220709165402-20.png]] 1161 1161 1282 +{{info}} 1283 +**✎Note:** Before using the following demo script, please make sure the V-Box firmware is newer than 22110701 1284 +{{/info}} 1285 + 1286 +{{code language="lua"}} 1162 1162 sprint = print 1163 1163 1164 - ~-~-Cloud mode interface to obtain the MQTT information configured by the cloud platform: (5 returns, namely the server address, client ID, connection table, last word table, certificate table)1289 +--Cloud mode interface to obtain the MQTT information configured by the cloud platform: (5 returns, namely the server address, client ID, connection table, last word table, certificate table) 1165 1165 1166 1166 local MQTT_URL, MQTT_CLIENTID, MQTT_CFG, MQTT_LWT, MQTT_CART = mqtt.setup_cfg() 1167 1167 1168 - ~-~-publish to topics1293 +--publish to topics 1169 1169 1170 1170 local pub_RE_TOPIC = string.format('TEST') 1171 1171 1172 - ~-~-Subscribe topics1297 +--Subscribe topics 1173 1173 1174 1174 local Subscribe_RE_TOPIC1 = string.format('TEST') 1175 1175 1176 - ~-~-variable1301 +--variable 1177 1177 1178 1178 local last_time = 0 1179 1179 1180 - ~-~-Timing main function1305 +--Timing main function 1181 1181 1182 1182 function aws.main() 1183 1183 1184 - sprint(os.date("%Y-%m-%d %H:%M %S", os.time()) .. " aws.main start") 1309 + sprint(os.date("%Y-%m-%d %H:%M %S", os.time()) .. " aws.main start") 1185 1185 1186 - if g_mq then 1311 + if g_mq then 1187 1187 1188 - if g_mq:isconnected() then 1313 + if g_mq:isconnected() then 1189 1189 1190 - send_Data() 1315 + send_Data() 1191 1191 1192 - else 1317 + else 1193 1193 1194 - if os.time() - last_time > 5 then 1319 + if os.time() - last_time > 5 then 1195 1195 1196 - last_time = os.time() 1321 + last_time = os.time() 1197 1197 1198 - mymqtt_connect() 1323 + mymqtt_connect() 1199 1199 1325 + end 1326 + 1200 1200 end 1201 1201 1202 - e nd1329 + else 1203 1203 1204 - else1331 + mymqtt_init() 1205 1205 1206 - mymqtt_init()1333 + end 1207 1207 1208 - end 1335 + sprint(os.date("%Y-%m-%d %H:%M %S", os.time()) .. " aws.main end") 1209 1209 1210 - sprint(os.date("%Y-%m-%d %H:%M %S", os.time()) .. " aws.main end") 1211 - 1212 1212 end 1213 1213 1214 1214 1215 -~-~- Initialize MQTT 1216 1216 1341 +-- Initialize MQTT 1342 + 1217 1217 function mymqtt_init() 1218 1218 1219 - sprint(string.format("mqtt init mqtt_url:%s mqtt_clientid:%s", MQTT_URL, MQTT_CLIENTID)) 1345 + sprint(string.format("mqtt init mqtt_url:%s mqtt_clientid:%s", MQTT_URL, MQTT_CLIENTID)) 1220 1220 1221 - g_mq, err = mqtt.create(MQTT_URL, MQTT_CLIENTID) ~-~- Create the object and declare it as a global variable1347 + g_mq, err = mqtt.create(MQTT_URL, MQTT_CLIENTID, 1) -- Create the object and declare it as a global variable, 1 means using the domain to connect 1222 1222 1223 - if g_mq then 1349 + if g_mq then 1224 1224 1225 - g_mq:on("message", mymqtt_msg_callback) ~-~- Register to receive message callbacks1351 + g_mq:on("message", mymqtt_msg_callback) -- Register to receive message callbacks 1226 1226 1227 - sprint("mqtt init success") 1353 + sprint("mqtt init success") 1228 1228 1229 - else 1355 + else 1230 1230 1231 - sprint("mqtt init failed:", err) 1357 + sprint("mqtt init failed:", err) 1232 1232 1233 - end 1359 + end 1234 1234 1235 1235 end 1236 1236 1237 - ~-~- Connect to MQTT server1363 +-- Connect to MQTT server 1238 1238 1239 1239 function mymqtt_connect() 1240 1240 1241 - sprint("mqtt connecting...") 1367 + sprint("mqtt connecting...") 1242 1242 1243 - local stat, err = g_mq:connect(MQTT_CFG,MQTT_LWT, MQTT_CART) 1369 + local stat, err = g_mq:connect(MQTT_CFG,MQTT_LWT, MQTT_CART) 1244 1244 1245 - if stat == nil then 1371 + if stat == nil then 1246 1246 1247 - sprint("mqtt connect failed:", err) 1373 + sprint("mqtt connect failed:", err) 1248 1248 1249 - return 1375 + return 1250 1250 1251 - else 1377 + else 1252 1252 1253 - sprint("mqtt connected") 1379 + sprint("mqtt connected") 1254 1254 1255 - end 1381 + end 1256 1256 1257 - g_mq:subscribe( TEST, 0)1383 + g_mq:subscribe(Subscribe_RE_TOPIC1, 0) 1258 1258 1259 1259 end 1260 1260 1261 - ~-~- Receive MQTT message callback function1387 +-- Receive MQTT message callback function 1262 1262 1263 1263 function mymqtt_msg_callback(topic, msg) 1264 1264 1265 - print("topic:",topic) 1391 + print("topic:",topic) 1266 1266 1267 - print("revdata:",msg) 1393 + print("revdata:",msg) 1268 1268 1269 - local revData = json.decode(msg) 1395 + local revData = json.decode(msg) 1270 1270 1271 - print (revData) 1397 + print (revData) 1272 1272 1273 - if topic == Subscribe_RE_TOPIC1 then ~-~-Process topic information subscribed from the cloud1399 + if topic == Subscribe_RE_TOPIC1 then --Process topic information subscribed from the cloud 1274 1274 1275 -if string.match(topic,Subscribe_RE_TOPIC1) then 1401 + if string.match(topic,Subscribe_RE_TOPIC1) then 1276 1276 1277 - ~-~-if revData ~~= nil then1403 + --if revData ~= nil then 1278 1278 1279 - for k,v in pairs (revData) do 1405 + for k,v in pairs (revData) do 1280 1280 1281 - print("printing revdata after kv here") 1407 + print("printing revdata after kv here") 1282 1282 1283 - print (k,v) 1409 + print (k,v) 1284 1284 1285 - end 1411 + end 1286 1286 1287 - print ("current state is",fanstate) 1413 + print ("current state is",fanstate) 1288 1288 1289 - ~-~-end1415 + --end 1290 1290 1291 -end 1417 + end 1292 1292 1293 -end 1419 + end 1294 1294 1295 1295 end 1296 1296 1297 1297 1298 -~-~-Get real-time data 1299 1299 1425 +--Get real-time data 1426 + 1300 1300 function getData() 1301 1301 1302 - local jdata = {} 1429 + local jdata = {} 1303 1303 1304 - local addr = bns_get_alldata() 1431 + local addr = bns_get_alldata() 1305 1305 1306 - print(json.encode(addr)) 1433 + print(json.encode(addr)) 1307 1307 1308 - for i,v in pairs(addr) do 1435 + for i,v in pairs(addr) do 1309 1309 1310 - if v[2] == 1 then 1437 + if v[2] == 1 then 1311 1311 1312 - jdata[v[3]] = v[4] 1439 + jdata[v[3]] = v[4] 1313 1313 1314 - end 1441 + end 1315 1315 1316 - end 1443 + end 1317 1317 1318 - return jdata 1445 + return jdata 1319 1319 1320 1320 end 1321 1321 1322 - ~-~-send data1449 +--send data 1323 1323 1324 1324 function send_Data() 1325 1325 1326 - local pub_data = 1453 + local pub_data = 1454 + { 1455 + 123 1456 + } 1327 1327 1328 - { 1329 - 1330 -123 1331 - 1332 -} 1333 - 1334 1334 sprint(json.encode(pub_data)) 1335 1335 1336 1336 print("..........",pub_RE_TOPIC) 1337 1337 1338 - return g_mq:publish(pub_RE_TOPIC, json.encode(pub_data), 0, 0) 1462 + return g_mq:publish(pub_RE_TOPIC, json.encode(pub_data), 0, 0) 1339 1339 1340 1340 end 1465 +{{/code}} 1341 1341 1342 1342 Get message in AWS 1343 1343
- InputHTTPparameter.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Hunter - Size
-
... ... @@ -1,0 +1,1 @@ 1 +17.9 KB - Content