Socket
Socket
Sign inDemoInstall

improv-wifi-serial-sdk

Package Overview
Dependencies
9
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    improv-wifi-serial-sdk

Improv Wi-Fi Serial SDK for the browser


Version published
Weekly downloads
261
increased by25.48%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

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:

AttributeDescription
supportedAdded if this browser is supported
unsupportedAdded 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>

Events

When the dialog is closed, a closed event will be fired on both <improv-wifi-serial-launch-button> and <improv-wifi-serial-provision-dialog>. This event will have a detail property with the following properties:

  • improv: Boolean indicating if we connected to a device running Improv.
  • provisioned: Boolean indicating if the device is connected to Wi-Fi.

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",
  30000  // Optional: Timeout in ms
);

FAQs

Last updated on 13 Jan 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc