Changes for page 2 Script

Last modified by Devin Chen on 2025/06/06 14:03

From version 29.1
edited by Hunter
on 2022/11/21 17:30
Change comment: There is no comment for this version
To version 27.1
edited by Hunter
on 2022/10/25 09:39
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -349,105 +349,6 @@
349 349  end
350 350  {{/code}}
351 351  
352 -
353 -== **1.8 How to parse value from HTTP response body** ==
354 -
355 -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":
356 -
357 -(% style="text-align:center" %)
358 -[[image:InputHTTPparameter.png]]
359 -
360 -Then the response body would be like as following:
361 -
362 -{{code language="json"}}
363 -{
364 - "location": {
365 - "name": "Madrid",
366 - "region": "Madrid",
367 - "country": "Spain",
368 - "lat": 40.4,
369 - "lon": -3.68,
370 - "tz_id": "Europe/Madrid",
371 - "localtime_epoch": 1669022636,
372 - "localtime": "2022-11-21 10:23"
373 - },
374 - "current": {
375 - "last_updated_epoch": 1669022100,
376 - "last_updated": "2022-11-21 10:15",
377 - "temp_c": 13.0,
378 - "temp_f": 55.4,
379 - "is_day": 1,
380 - "condition": {
381 - "text": "Partly cloudy",
382 - "icon": "//cdn.weatherapi.com/weather/64x64/day/116.png",
383 - "code": 1003
384 - },
385 - "wind_mph": 11.9,
386 - "wind_kph": 19.1,
387 - "wind_degree": 210,
388 - "wind_dir": "SSW",
389 - "pressure_mb": 1015.0,
390 - "pressure_in": 29.97,
391 - "precip_mm": 0.0,
392 - "precip_in": 0.0,
393 - "humidity": 88,
394 - "cloud": 75,
395 - "feelslike_c": 10.8,
396 - "feelslike_f": 51.4,
397 - "vis_km": 10.0,
398 - "vis_miles": 6.0,
399 - "uv": 3.0,
400 - "gust_mph": 22.1,
401 - "gust_kph": 35.6
402 - }
403 -}
404 -{{/code}}
405 -
406 -(% class="wikigeneratedid" %)
407 -So we decode json into lua object to assign the value into addresses HDW6060(temperature), HDW7070(humidity) the code example like follows:
408 -
409 -{{code language="lua"}}
410 -local APIkey = '70faaecf926b4341b1974006221711'
411 -
412 -
413 -local http = require("socket.http")
414 -local json = require("json")
415 -
416 --- Send http.get request and return response result
417 -function getHttpsUrl(url)
418 - local result_table, code, headers, status = http.request(url)
419 - print("code:"..code)
420 - if code~= 200 then
421 - return
422 - else
423 - return result_table
424 - end
425 -end
426 -
427 -function sendAPI(key, city)
428 - local url = "http://api.weatherapi.com/v1/current.json?key="..key.."&q="..city.."&aqi=no"
429 - --local url = 'http://v-box.net'
430 - --local url = 'https://www.google.com/'
431 - --http://api.weatherapi.com/v1/current.json?key=70faaecf926b4341b1974006221711&q=Barcelona&aqi=no
432 - print("Get the link:"..url)
433 - local body = getHttpsUrl(url)
434 - --print(body)
435 - local jsonBody = json.decode(body)
436 - --print(jsonBody["current"]["temp_c"])
437 - --print(type(jsonBody["current"]["temp_c"]))
438 - --print(type(jsonBody["current"]["humidity"]))
439 - addr_setfloat("@HDW6060", jsonBody["current"]["temp_c"])
440 - addr_setword("@HDW7070", jsonBody["current"]["humidity"])
441 -end
442 -
443 -
444 -function Weather.main()
445 - local cityName = addr_getstring("@HDW5050",6)
446 - print("cityName: "..cityName)
447 - sendAPI(APIkey, cityName)
448 -end
449 -{{/code}}
450 -
451 451  = **2 V-Box connect with third part server** =
452 452  
453 453  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.
... ... @@ -600,134 +600,142 @@
600 600  -- Meta class
601 601  --main
602 602  function mq.main()
603 - if not mq.m then
604 - local err = ""
504 + if not mq.m then
505 +  local err = ""
605 605  
606 - mq.m, err = mqtt.create("tcp://grouprobotinfo.com:1883", "ClienID") -- create connection
607 - if mq.m then
608 - mq.config = {
609 - username = "",-- ID
610 - password = "",-- password
611 - netway = 1, -- Ethernet connection, WIFI=1
612 - -- keepalive = 100, -- Optional, set the connection heartbeat interval for 100 seconds.
613 - -- cleansession = 0, -- Optional, keep session
614 - }
615 - mq.m:on("message", function(topic, msg) -- Register for receiving message callbacks
616 - local str = string.format("%s:%s", topic, msg)
617 - -- print("mqtt msg:", str) -- Print out the received topics and content
618 - end)
619 - mq.m:on("offline", function (cause) -- Register for lost connection callbacks
620 - -- addr_setstring("@xxx", "cause"..(cause or " got nil"))
621 - end)
622 - mq.m:on("arrived", function() -- Registration for sending messages to callbacks
623 - print("msg arrived")
624 - end)
625 - else
626 - print("mqtt create failed:", err) -- Create object failed
627 - end
628 - else
629 - if mq.m:isconnected() then -- If online, post a message
630 - local phaseStatus ="unknow"
631 - if addr_getbit("@Standby")== 1 then
632 - phaseStatus = "Standby"
633 - elseif addr_getbit("@Pre-Freeze")==1 then
634 - phaseStatus= "Pre-Freeze"
635 - elseif addr_getbit("@Prepare")==1 then
636 - phaseStatus ="Prepare"
637 - elseif addr_getbit("@Primary Dry")==1 then
638 - phaseStatus = "Primary dry"
639 - elseif addr_getbit("@Secondary Dry")==1 then
640 - phaseStatus = "Secondary Dry"
641 - end
642 - --print(addr_getbit("@Primary Dry"))
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"))
643 643  -------------------------------------------------------------------------------------------------------------------------
644 - local activating ="unknow"
645 - if addr_getbit("@Compressor")==1 then
646 - activating = ",".."Compressor"
647 - end
648 - if addr_getbit("@Silicone Pump")==1 then
649 - activating = activating..",".."Silicone Pump"
650 - end
651 - if addr_getbit("@Vacuum Pump")==1 then
652 - activating = activating..",".."Vacuum Pump"
653 - end
654 - if addr_getbit("@Root Pump")==1 then
655 - activating = activating..",".."Root Pump"
656 - end
657 - if addr_getbit("@Heater")==1 then
658 - activating = activating..",".."Heater"
659 - end
660 - if addr_getbit("@Valve Silicone")==1 then
661 - activating = activating..",".."Valve Silicone"
662 - end
663 - if addr_getbit("@Valve Ice Condenser")==1 then
664 - activating = activating..",".."Valve Ice Condenser"
665 - end
666 - if addr_getbit("@Valve Vacuum Pump")==1 then
667 - activating = activating..",".."Valve Vacuum Pump"
668 - end
669 - local pr_activating =string.sub(activating,2)
670 - -- print(pr_activating)
671 - local status_text ="unknow"
672 - if addr_getbit("@Status Run")==1 then
673 - status_text = "RUNNING"
674 - else
675 - status_text = "STOP"
676 - end
677 --------------------------------------------------------------------------------------------------------------------------
678 - local js = {type="status",
679 - mc_name ="FD300",
680 - status=status_text,
681 - elapsed_time={
682 - hour=addr_getword("@Elapsed Time (Hour)"),
683 - min=addr_getword("@Elapsed Time (Minute)"),
684 - sec=addr_getword("@Elapsed Time (Second)")
685 - },
686 - phase = phaseStatus,
687 - step = addr_getword("@Step"),
688 - activating_output = pr_activating,
689 - sv=addr_getshort("@SV Silicone")/10,
690 - pv=addr_getshort("@PV Silicone")/10,
691 - product1=addr_getshort("@Product 1")/10,
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)  
692 692  
693 - product2=addr_getshort("@Product 2")/10,
694 - product3=addr_getshort("@Product 3")/10,
695 - product4=addr_getshort("@Product 4")/10,
696 - ice1=addr_getshort("@Ice condenser 1")/10,
697 - ice2=addr_getshort("@Ice condenser 2")/10,
698 - vacuum=addr_getfloat("@Vacuum")
699 - }
700 - local jsAlarm = { HPC = addr_getbit("@B_25395#W0.00"),
701 - ODPC = addr_getbit("@B_25395#W0.01"),
702 - MTPC=addr_getbit("@B_25395#W0.02"),
703 - HTT = addr_getbit("@B_25395#W1.03"),
704 - CPC = addr_getbit("@B_25395#W0.08"),
705 - CPSP =addr_getbit("@B_25395#W1.00"),
706 - CPVP =addr_getbit("@B_25395#W0.10"),
707 - CPRP =addr_getbit("@B_25395#W0.11"),
708 - HP =addr_getbit("@B_25395#W1.01"),
709 - PP= addr_getbit("@B_25395#W1.02"),
710 - PO=addr_getbit("@B_25395#W0.07"),
711 - FSE=addr_getbit("@B_25395#W2.04"),
712 - AVVSVV=addr_getbit("@B_25395#W1.12"),
713 - ICHT=addr_getbit("@B_25395#W3.06")
714 - }
715 - -- ("@B_25395#CIO1.02")
716 - mq.m:publish("mqtt-v-box-epsilon-fd300", json.encode(js) , 0, 0)
717 - mq.m:publish("mqtt-v-box-epsilon-alarm-fd300", json.encode(jsAlarm) , 0, 0)
718 - else
719 - local stat, err = mq.m:connect(mq.config) -- connection
720 - if stat == nil then --Determine whether to connect
721 - print("mqtt connect failed:", err)
722 - return -- Connection failed, return directly
723 - end
724 - mq.m:subscribe("mqtt-v-box-epsilon", 0)-- Subscribe to topics
725 725  
726 - end
727 - -- mq.m:unsubscribe("stc/test")
728 - -- mq.m:disconnect() -- close matt
729 - -- mq.m:close() -- close clase
730 - end
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
731 731  end
732 732  {{/code}}
733 733  
InputHTTPparameter.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -17.9 KB
Content