New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

iot-sim

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iot-sim

Simulation of IoT devices

latest
Source
npmnpm
Version
1.1.0
Version published
Maintainers
1
Created
Source

iot-sim NPM Package

Representational simulation of IoT devices.

About

This project creates simulated IoT devices and facilities. Realistic data is generated based on the type of device and time of day. IoT telemetry data can be handled by a custom user defined function.

Devices

  • Energy Device
  • Tank Device
  • Wind Device

Device API

/**
 * Device
 *
 * @constructor
 * @param {String} dsn - device serial number.
 * @param {String} type  - type of device.
 * @param {String} connectionString  - connection parameter for Azure IoT hub.
 * @param {String} profile  - device signature.
 * @param {boolean} log  - True=print fancy output console/False=no output
 * @param {function} handler - User defined function to handle the telemetry data
 */

Facility API

/**
 * Facility
 *
 * Models the composition of IoT objects into a single IoT "Facility"
 *
 * @constructor
 * @param {string} name  - name of the facility.
 * @param {array} devices  - IoT devices in the facility.
 * @param {array} geolocation  - lat and lon of the facility.
 * @param {number} frequency - milliseconds between messages.
 */

Usage

import {TankDevice, WindDevice, EnergyDevice, Facility} from "iot-sim"

// Facility 1

// Tank Monitoring Device
const tank_iot_01 = new TankDevice({
    dsn: "tank_iot_01",
    type: "tank",
    profile: null,
    log: false,
    handler: console.log
});

// Wind Monitoring Device
const wind_iot_01 = new WindDevice({
    dsn: "wind_iot_01",
    type: "wind",
    profile: "profile1",
    log: false,
    handler: console.log
});

// Energy Monitoring Device
const energy_iot_01 = new EnergyDevice({
    dsn: "energy_iot_01",
    type: "energy",
    profile: "profile1",
    log: false,
    handler: console.log
});

const facility_01 = new Facility({
    name: "facility_01",
    devices: [energy_iot_01, wind_iot_01, tank_iot_01],
    geolocation: {
        lat: 51.0447,
        lon: 114.0719
    },
    frequency: 10000, 
});

facility_01.setupFacility();
facility_01.putOnline();

Output data

{
  data: { watts: '171.189' },
  timestamp: 1586550588454,
  id: 'a855447a-b488-475b-bb2c-be80cabba8ca',
  _id: 'a855447a-b488-475b-bb2c-be80cabba8ca',
  dsn: 'energy_iot_01',
  geolocation: { lat: 51.0447, lon: 114.0719 },
  facility: 'facility_01',
  type: 'energy'
}
{
  data: { mph: '20.995', direction: 'S' },
  timestamp: 1586550588459,
  id: '6042d595-b93f-4ff8-884a-38d860fa73c4',
  _id: '6042d595-b93f-4ff8-884a-38d860fa73c4',
  dsn: 'wind_iot_01',
  geolocation: { lat: 51.0447, lon: 114.0719 },
  facility: 'facility_01',
  type: 'wind'
}
{
  data: { liters: '98.404', pH: '6.079' },
  timestamp: 1586550588460,
  id: 'd2befdfa-b2d9-4b9a-8970-523c486346b1',
  _id: 'd2befdfa-b2d9-4b9a-8970-523c486346b1',
  dsn: 'tank_iot_01',
  geolocation: { lat: 51.0447, lon: 114.0719 },
  facility: 'facility_01',
  type: 'tank'
}

Author

  • Andrew Moss - Creator - agmoss

Keywords

IoT

FAQs

Package last updated on 10 Apr 2020

Did you know?

Socket

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