# Class: WeDo2SmartHub

## WeDo2SmartHub

#### new WeDo2SmartHub()

  The WeDo2SmartHub is emitted if the discovered device is a WeDo 2.0 Smart Hub.

  Source:
    - wedo2smarthub.js, line 16

### Extends

- Hub

### Members

#### <readonly> batteryLevel

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `batteryLevel` | number | Battery level of the hub (Percentage between 0-100)

  Inherited From:
    - Hub#batteryLevel
  Source:
    - hub.js, line 85

#### <readonly> current

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `current` | number | Current usage of the hub (Milliamps)

  Inherited From:
    - Hub#current
  Source:
    - hub.js, line 106

#### <readonly> firmwareVersion

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `firmwareVersion` | string | Firmware version of the hub

  Inherited From:
    - Hub#firmwareVersion
  Source:
    - hub.js, line 57

#### <readonly> hardwareVersion

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `firmwareVersion` | string | Hardware version of the hub

  Inherited From:
    - Hub#hardwareVersion
  Source:
    - hub.js, line 64

#### <readonly> name

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `name` | string | Name of the hub

  Inherited From:
    - Hub#name
  Source:
    - hub.js, line 50

#### <readonly> primaryMACAddress

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `primaryMACAddress` | string | Primary MAC address of the hub

  Inherited From:
    - Hub#primaryMACAddress
  Source:
    - hub.js, line 71

#### <readonly> rssi

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `rssi` | number | Signal strength of the hub

  Inherited From:
    - Hub#rssi
  Source:
    - hub.js, line 92

#### <readonly> uuid

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `uuid` | string | UUID of the hub

  Inherited From:
    - Hub#uuid
  Source:
    - hub.js, line 78

#### <readonly> voltage

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voltage` | number | Voltage of the hub (Volts)

  Inherited From:
    - Hub#voltage
  Source:
    - hub.js, line 99

### Methods

#### brakeMotor(port)

  Fully (hard) stop the motor on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Source:
    - wedo2smarthub.js, line 214

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### connect()

  Connect to the Hub.

  Inherited From:
    - Hub#connect
  Overrides:
    - Hub#connect
  Source:
    - hub.js, line 109

  ##### Returns:

  Resolved upon successful connect.

  Type
    Promise

#### disconnect()

  Disconnect the Hub.

  Inherited From:
    - Hub#disconnect
  Source:
    - hub.js, line 127

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### getHubType()

  Get the hub type.

  Inherited From:
    - Hub#getHubType
  Source:
    - hub.js, line 191

  ##### Returns:

  Type
    HubType

#### getPortDeviceType(port)

  Get the device type for a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#getPortDeviceType
  Source:
    - hub.js, line 199

  ##### Returns:

  Type
    DeviceType

#### playTone(frequency, time)

  Play a tone on the Hub's in-built buzzer

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `frequency` | number |
  `time` | number | How long the tone should play for (in milliseconds).

  Source:
    - wedo2smarthub.js, line 223

  ##### Returns:

  Resolved upon successful completion of command (ie. once the tone has finished playing).

  Type
    Promise

#### rampMotorSpeed(port, fromSpeed, toSpeed, time)

  Ramp the motor speed on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `fromSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `toSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `time` | number | How long the ramp should last (in milliseconds).

  Source:
    - wedo2smarthub.js, line 194

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### setLEDColor(color)

  Set the color of the LED on the Hub via a color value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | Color |

  Source:
    - wedo2smarthub.js, line 113

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setLEDRGB(red, green, blue)

  Set the color of the LED on the Hub via RGB values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `red` | number |
  `green` | number |
  `blue` | number |

  Source:
    - wedo2smarthub.js, line 143

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setLightBrightness(port, brightness [, time])

  Set the light brightness on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `brightness` | number |  | Brightness value between 0-100 (0 is off)
  `time` | number | <optional> | How long to turn the light on (in milliseconds). Leave empty to turn the light on indefinitely.

  Source:
    - wedo2smarthub.js, line 239

  ##### Returns:

  Resolved upon successful completion of command. If time is specified, this is once the light is turned off.

  Type
    Promise

#### setMotorSpeed(port, speed [, time])

  Set the motor speed on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `speed` | number |  | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `time` | number | <optional> | How long to activate the motor for (in milliseconds). Leave empty to turn the motor on indefinitely.

  Source:
    - wedo2smarthub.js, line 160

  ##### Returns:

  Resolved upon successful completion of command. If time is specified, this is once the motor is finished.

  Type
    Promise

#### setName(name)

  Set the name of the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | string | New name of the hub (14 characters or less, ASCII only).

  Source:
    - wedo2smarthub.js, line 94

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### shutdown()

  Shutdown the Hub.

  Source:
    - wedo2smarthub.js, line 131

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### sleep(delay)

  Sleep a given amount of time.

  This is a helper method to make it easier to add delays into a chain of commands.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `delay` | number | How long to sleep (in milliseconds).

  Inherited From:
    - Hub#sleep
  Source:
    - hub.js, line 167

  ##### Returns:

  Resolved after the delay is finished.

  Type
    Promise

#### subscribe(port [, mode])

  Subscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `mode` | number | <optional> | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen.

  Inherited From:
    - Hub#subscribe
  Source:
    - hub.js, line 135

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### unsubscribe(port)

  Unsubscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#unsubscribe
  Source:
    - hub.js, line 153

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### wait(commands)

  Wait until a given list of concurrently running commands are complete.

  This is a helper method to make it easier to wait for concurrent commands to complete.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `commands` | Array.<Promise.<any>> | Array of executing commands.

  Inherited From:
    - Hub#wait
  Source:
    - hub.js, line 180

  ##### Returns:

  Resolved after the commands are finished.

  Type
    Promise

### Events

#### attach

  Emits when a motor or sensor is attached to the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `type` | DeviceType |

  Inherited From:
    - Hub#event:attach
  Source:
    - hub.js, line 237

#### button

  Emits when a button is pressed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `button` | string |
  `state` | ButtonState |

  Source:
    - wedo2smarthub.js, line 318

#### color

  Emits when a color sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `color` | Color |

  Source:
    - wedo2smarthub.js, line 363

#### detach

  Emits when an attached motor or sensor is detached from the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#event:detach
  Source:
    - hub.js, line 248

#### disconnect

  Emits when the hub is disconnected.

  Inherited From:
    - Hub#event:disconnect
  Source:
    - hub.js, line 39

#### distance

  Emits when a distance sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `distance` | number | Distance, in millimeters.

  Source:
    - wedo2smarthub.js, line 352

#### rotate

  Emits when a rotation sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `rotation` | number |

  Source:
    - wedo2smarthub.js, line 387

#### tilt

  Emits when a tilt sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `x` | number |
  `y` | number |

  Source:
    - wedo2smarthub.js, line 375

#### Search results