JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q21415F
  • License MIT

Package Exports

  • b715_api

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (b715_api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Simple lightweight API for Huawei Router B715 (perhaps works for more models but only tested on 715)

INSTALLATION

npm install b715_api

ROUTER EXPOSED FUNCTIONS

  • getToken
  • login
  • ping
  • requestReboot
  • markAsRead
  • getSMSList
  • getSMSListPage
  • sendSMS
  • deleteSMS
  • getNotifications
  • setRadioSettings
  • getRadioSettings
  • getMonthStatistics
  • getSignal
  • getStatus
  • getTrafficStatistics
  • getBasicSettings
  • getInformation
  • getProfiles
  • getCurrentPLMN

Look at the example.js to get inspiration, have fun !

SAMPLE CODE

var router = require('b715_api').create({
    gateway: '192.168.8.1'
  });

async function monitor(){
  var lastCell;
  var tk=await router.getToken();
  //LOGIN
  await router.login(tk,"admin","superpasswordheydamncool");
  //SEND SMS
  var ret =await router.sendSMS("0600000000","Demo Started",tk);
  console.log("sendSMS",ret.response || ret.error);
  //DAEMON START, 20sec
  setInterval(async ()=>{
    //STAY CONNECTED  
    await router.ping(tk);
    //GET NOTIFICATIONS
    ret=await router.getNotifications(tk);
    if(ret.response && ret.response.UnreadMessage[0]!='0') console.log("getNotifications",ret.response || ret.error);
    //GET SMS
    ret=await router.getSMSList(1,tk);
    if(ret.length>0) console.log("getSMSList","SMS Count",ret.length);
    //DELETE SMS
    await deleteReadSMS(tk,ret);
    //GET SIGNAL
    ret=await router.getSignal(tk);
    if(ret.response && ret.response.cell_id[0]!=lastCell)console.log("getSignal: cellID=",ret.response.cell_id[0] || ret.error);
    lastCell=ret.response.cell_id[0]
    //GE RADIO SETTINGS
    ret=await router.getRadioSettings(tk);
    var fav={
      networKMode:"00",
      NetworkBand:"3FFFFFFF",
      LTEBand:"8000044" 
    }
    await forceRadio(tk,ret.response,fav);
  },20000)
}

async function forceRadio(token,curRawSettings,favSettings){
  if(curRawSettings.NetworkMode[0]!=favSettings.networKMode || 
    curRawSettings.LTEBand[0]!=favSettings.LTEBand || 
    curRawSettings.NetworkBand[0]!=favSettings.NetworkBand){
      //networkMode=08=5G,03=4G,02=3G,01=2G,00=Auto,0803=4G+5G,0302=3G+4G
      //lteband=0.7=8000000,all=8000044,1.8=4,2.1=1,2.6=40,0.8=80000,0.9=80
      var ret=await router.setRadioSettings(token,favSettings.networKMode,favSettings.NetworkBand,favSettings.LTEBand);
      //SET RADIO SETTINGS
      console.log("setRadioSettings",ret.response || ret.error);
  }
}

async function deleteReadSMS(token,mess){
  var toDel=[];
  mess.map(async (m)=>{
    if(m.Smstat[0]=='0'){
      console.log(m.Content[0] + " will be processed!");
      toDel.push(m.Index[0])
    }
  })
  if(toDel.length>0){
    var ret=await router.deleteSMS(toDel,token);
    //DELETE SMS
    console.log("deleteSMS",ret.response || ret.error);
  }
}

monitor();