Skip to content

JavaScript SDK to add Improv Wi-Fi over serial to your website.

License

Notifications You must be signed in to change notification settings

ParetoSecurity/sdk-serial-js

 
 

Repository files navigation

JavaScript SDK for Improv Wi-Fi over Serial

Installation

If you are using a bundler and JavaScript package manager, you can install the SDK via NPM:

npm install --save improv-wifi-sdk

And then import it in your code:

import 'improv-wifi-serial-sdk';

Usage

Add the following to your website to show a button to start the provisioning process:

<improv-wifi-serial-launch-button></improv-wifi-serial-launch-button>

A warning message will be rendered if the browser does not support WebSerial.

The SDK will render an error when the connected device does not support Improv. If it is opt-in for your software, you can set a link as the learnMoreUrl attribute to include this link in the error message.

<improv-wifi-serial-launch-button
  learnMoreUrl="https://www.esphome.io/components/improv_serial.html"
></improv-wifi-serial-launch-button>

Attributes

The following attributes are automatically added to <improv-wifi-serial-launch-button> and can be used for styling:

Attribute Description
supported Added if this browser is supported
unsupported Added if this browser is not supported

Slots

It is possible to customize the button and the message. You do this by putting your elements inside the <improv-wifi-serial-launch-button> element and adding the appropriate slot attribute. Use activate to replace the activation button and unsupported to replace the unsupported message:

<improv-wifi-serial-launch-button>
  <button slot='activate'>Start provisioning!</button>
  <span slot='unsupported'>Your browser does not support provisioning.</span>
</improv-wifi-serial-launch-button>

Browser Support

This SDK requires a browser with support for WebSerial. Currently this is supported by Google Chrome, Microsoft Edge and other browsers based on the Blink engine.

No iOS devices are supported.

Standalone usage

The serial SDK can also be used standalone without the UI.

import { ImprovSerial } from "improv-wifi-serial-sdk/dist/serial.ts";

const port = await navigator.serial.requestPort();
await port.open({ baudRate: 115200 });
const improv = new ImprovSerial(port, console);

improv.addEventListener("state-changed", console.log);
improv.addEventListener("error-changed", console.log);

await improv.initialize();

improv.addEventListener("disconnect", console.log);

console.log({
  info: improv.info,
  nextUrl: improv.nextUrl,
});

await improv.provision("My Wifi", "My password");

About

JavaScript SDK to add Improv Wi-Fi over serial to your website.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.1%
  • HTML 2.4%
  • JavaScript 1.5%