Docs Ubus OpenWrt API

1. Mendapatkan Data dari UBUS Network/Jaringan yang terkoneksi di OpenWrt

Data yang diambil : MAC, status, statistik interface dan lainya

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?network=device

Contoh hasil data dari API tersebut

"network":{
      "status":true,
      "data":[
         {
            "br-lan":{
               "external":false,
               "present":true,
               "type":"bridge",
               "up":true,
               "carrier":true,
               "auth_status":false,
               "bridge-members":[
                  "eth0"
               ],
               "mtu":1500,
               "mtu6":1500,
               "macaddr":"00:15:18:01:81:31",
               "txqueuelen":1000,
               "ipv6":false,
               "ip6segmentrouting":false,
               "promisc":false,
               "rpfilter":0,
               "acceptlocal":false,
               "igmpversion":0,
               "mldversion":0,
               "neigh4reachabletime":30000,
               "neigh6reachabletime":30000,
               "neigh4gcstaletime":60,
               "neigh6gcstaletime":60,
               "neigh4locktime":99,
               "dadtransmits":1,
               "multicast":true,
               "sendredirects":true,
               "drop_v4_unicast_in_l2_multicast":false,
               "drop_v6_unicast_in_l2_multicast":false,
               "drop_gratuitous_arp":false,
               "drop_unsolicited_na":false,
               "arp_accept":false,
               "statistics":{
                  "collisions":0,
                  "rx_frame_errors":0,
                  "tx_compressed":0,
                  "multicast":0,
                  "rx_length_errors":0,
                  "tx_dropped":0,
                  "rx_bytes":1347973816,
                  "rx_missed_errors":0,
                  "tx_errors":0,
                  "rx_compressed":0,
                  "rx_over_errors":0,
                  "tx_fifo_errors":0,
                  "rx_crc_errors":0,
                  "rx_packets":12915564,
                  "tx_heartbeat_errors":0,
                  "rx_dropped":0,
                  "tx_aborted_errors":0,
                  "tx_packets":8925008,
                  "rx_errors":0,
                  "tx_bytes":39272951715,
                  "tx_window_errors":0,
                  "rx_fifo_errors":0,
                  "tx_carrier_errors":0
               }
            }
         }
      ],
      "error":null
   },

2. Mendapatkan Data dari UBUS Network per-Interface

Data yang diambil : localIP, status, uptime interface, mask localIP dan lainya

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?network=interfaceYangSupport

untuk interface yang support bisa cek di Terminal atau TTYD dengan format/command

ubus list | grep network.interface

Contoh hasil data dari API tersebut

{
   "status":true,
   "data":[
      {
         "up":true,
         "pending":false,
         "available":true,
         "autostart":true,
         "dynamic":false,
         "uptime":156,
         "l3_device":"br-lan",
         "proto":"static",
         "device":"br-lan",
         "updated":[
            "addresses"
         ],
         "metric":0,
         "dns_metric":0,
         "delegation":true,
         "ipv4-address":[
            {
               "address":"192.168.1.1",
               "mask":24
            }],
         "ipv6-address":[ ],
         "ipv6-prefix":[ ],
         "ipv6-prefix-assignment":[
            {
               "address":"fdd7:8206:fe3e::",
               "mask":60,
               "local-address":{ }
            }
         ],
         "route":[ ],
         "dns-server":[ ],
         "dns-search":[ ],
         "neighbors":[ ],
         "inactive":{
            "ipv4-address":[ ],
            "ipv6-address":[ ],
            "route":[ ],
            "dns-server":[ ],
            "dns-search":[ ],
			"neighbors":[ ]
			},
         "data":{ }
      }
   ],
   "error":null
}

3. Mendapatkan Data dari UBUS informasi dari System

Data yang diambil : localtime, uptime, cpuload, memory

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?system=info

Contoh hasil data dari API tersebut

{
   "status":true,
   "data":[{
         "localtime":1675889498,
         "uptime":1270,
         "load":[
            0,
            2656,
            4512
         ],
         "memory":{
            "total":843821056,
            "free":477286400,
            "shared":17694720,
            "buffered":3760128,
            "available":638783488,
            "cached":211587072
         },
         "swap":{
            "total":0,
            "free":0
         }
      }
   ],
   "error":null
}

4. Mendapatkan Data dari UBUS informasi System Board atau Device yang dipakai

Data yang diambil : kernel, device, hostname dan lainya

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?system=board

Contoh hasil data dari API tersebut

{
      "status":true,
      "data":[
         {
            "kernel":"5.4",
            "hostname":"terongWrt",
            "system":"ARMv8 Processor rev 4",
            "model":"Amlogic Meson GXL (S905X) P212 Development Board",
            "board_name":"amlogic,p212",
            "release":{
               "distribution":"OpenWrt",
               "version":"21.02.5",
               "revision":"r16688-fa9a932fdb",
               "target":"armvirt/64",
               "description":"OpenWrt 21.02.5 r16688-fa9a932fdb"
            }
         }
      ],
      "error":null
}

5. Mendapatkan Data dari VnStat

Data yang diambil : network usage

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?vnstat=Interface

Interface = Interface yang tersimpan dalam VnStat kamu seperti eth0, br-lan, wan0 dan lainya

Contoh hasil data dari API tersebut

{
   "vnstat":{
      "status":true,
      "data":[
         {
            "vnstatversion":"1.18",
            "jsonversion":"1",
            "interfaces":[
               {
                  "id":"eth0",
                  "nick":"eth0",
                  "created":{
                     "date":{
                        "year":2022,
                        "month":7,
                        "day":4
                     }
                  },
                  "updated":{
                     "date":{
                        "year":2023,
                        "month":4,
                        "day":19
                     },
                     "time":{
                        "hour":5,
                        "minutes":21
                     }
                  },
                  "traffic":{
                     "total":{
                        "rx":199985635,
                        "tx":3292880982
                     },
                     "days":[
                        {
                           "id":0,
                           "date":{
                              "year":2023,
                              "month":4,
                              "day":19
                           },
                           "rx":23047,
                           "tx":351322
                        }
                     ],
                     "months":[
                        {
                           "id":0,
                           "date":{
                              "year":2023,
                              "month":4
                           },
                           "rx":10925925,
                           "tx":260103627
                        }
                     ],
                     "tops":[
                        {
                           "id":0,
                           "date":{
                              "year":2023,
                              "month":1,
                              "day":30
                           },
                           "time":{
                              "hour":0,
                              "minutes":0
                           },
                           "rx":2611220,
                           "tx":124756927
                        }
                     ],
                     "hours":[
                        {
                           "id":0,
                           "date":{
                              "year":2023,
                              "month":4,
                              "day":19
                           },
                           "rx":451,
                           "tx":762
                        }
                     ]
                  }
               }
            ]
         }
      ],
      "error":null
   }
}

6. Mendapatkan Data dari NetData (hanya untuk mempersingkat)

Data yang diambil : semua data dari netdata

Untuk mengambil data bisa menggunakan browser atau pakai CURL untuk mendapatkan data, Akses di

http://ipOpenwrt/api/api.php?netdata=parameter

parameter :

Contoh hasil data dari API Netdata dari system.cpu

{
   "netdata":{
      "status":true,
      "data":[
         {
            "labels":[
               "time",
               "guest_nice",
               "guest",
               "steal",
               "softirq",
               "irq",
               "user",
               "system",
               "nice",
               "iowait"
            ],
            "data":[
               [
                  1681857842,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0.125,
                  0,
                  1.5
               ]
            ]
         }
      ],
      "error":null
   }
}

Credits