1.6.1 • Published 2 years ago
@jupgt/shellies-ng v1.6.1
node-shellies-ng
Handles communication with the next generation of Shelly devices.
For the first generation, see node-shellies.
Supported devices
- Shelly Plus 1 (Mini)
- Shelly Plus 1 PM (Mini)
- Shelly Plus 2 PM
- Shelly Plus I4
- Shelly Plus Plug US
- Shelly Plus H&T 1
- Shelly Pro 1
- Shelly Pro 1 PM
- Shelly Pro 2
- Shelly Pro 2 PM
- Shelly Pro 3
- Shelly Pro 4 PM
1 Support for outbound websockets is a work in progress.
Basic usage example
import {
  Device,
  DeviceId,
  MdnsDeviceDiscoverer,
  Shellies,
  ShellyPlus1,
} from 'shellies-ng';
const shellies = new Shellies();
// handle discovered devices
shellies.on('add', async (device: Device) => {
  console.log(`${device.modelName} discovered`);
  console.log(`ID: ${device.id}`);
  // use instanceof to determine the device model
  if (device instanceof ShellyPlus1) {
    const plus1 = device as ShellyPlus1;
    // toggle the switch
    await plus1.switch0.toggle();
  }
});
// handle asynchronous errors
shellies.on('error', (deviceId: DeviceId, error: Error) => {
  console.error('An error occured:', error.message);
});
// create an mDNS device discoverer
const discoverer = new MdnsDeviceDiscoverer();
// register it
shellies.registerDiscoverer(discoverer);
// start discovering devices
discoverer.start();See homebridge-shelly-ng for a real-world example.