Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including cordova-plugin-esptouch-smartconfig with all npm packages installed. Try it out:

cordova-plugin-esptouch-smartconfig lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("cordova-plugin-esptouch-smartconfig/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

cordova-plugin-esptouch-smartconfig v1.0.0

Cordova plugin for Esptouch Smart config for esp8266 and ESP32 chips

cordova-plugin-esptouch-smartconfig

A cordova plugin for sending wifi configurations to esp8266 and esp32 based devices using Espressif Esptouch protocol.

Install

cordova plugin add https://github.com/kiot-innovations/cordova-plugin-esptouch-smartconfig

Use in Ionic project

Ionic (typescript) project will throw error because espTouchSmartConfig is not defined. To prevent this declare espTouchSmartConfig in app.ts or any other module where you are using it.

// In app.component.ts
declare var espTouchSmartConfig: any;

@Component({
    ...
})
...

Usage

To start smart config


/**
 * 
 * @param {string} ssid  SSID of the wifi network which you want to send too device
 * @param {string} bssid BSSID of the wifi network which you want to send to the device
 * @param {string} password Wifi Password
 * @param {boolean} how to send data(broadcast or multicast). send true for broadcasting false otherwise
 * @param {number} maxDevices Maximum number of devices you want to be configured
 * @param {string} encKey Encryption key for AES128 encryption
 * @param {function} successCallback Callback on success
 * @param {function} errorCallback  Callback on error
 */
espTouchSmartConfig.start(ssid,password,bssid,broadcast,maxDevices,encKey, (res)=>{
    // SuccessCallback
    // res is a Json String 
    //  res = [
    //      {
    //          "id": "1",  // Index of device in all configured devices.
    //          "bssid": "809010203040", // Bssid if device - usually mac address of the device
    //          "ip": "192.168.0.10" // Obtained ip by the device. 
    //      }
    //  ]
    console.log(res); 
}, (err)=>{
    // Errorcallback
    console.log(err);
});

// Notes
// maxDevices: It will not guarentee the maxium number of devices picking up the config. But it'll stop as soon as confirmation is received from these many devices. 
// encKey: Keep it's value "" (Empty String) if you are not using encryption 
// This function will automatically check permission for location and ask for permission if not granted. 

To stop smart config

espTouchSmartConfig.stop((res)=>{
    // Successcallback
}, (err)=>{
    // Errorcallback
});

Request Permissions

espTouchSmartConfig.requestLocationPermission(()=>{
    // Permission granted. 
}, (err)=>{
    // Boo!! Permission not granted.
    console.log(err); 
});

Android Permissions

This plugin requires permission for location access in Android.

Use with Wifiwizard

Todo

Todo

  • [ ] Ios has not been tested yet.
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free