---
title: devicestatus
slug: develop/devicestatus
docTags: 
createdAt: 2025-03-11T07:07:19.526Z
---

This object provides information about the device hardware, firmware, and features.

**devicestatus IDL**

```text
interface devicestatus {
    Promise<BVNinformationList> getBVNPipelines();
    Promise<BVNinformationList> getBVNComponents();
    Promise<Powerinformation> getPowerStatus();
    Promise<ExtensionsinformationList> getExtensions();
    Promise<POEinformation> getPOEStatus();
};

interface Powerinformation {
    attribute String source;
    attribute String switch_mode;
    attribute String battery;
    attribute int soc_percent;
};

interface BVNinformation {
    attribute String name;
    attribute int index;
    attribute BVNRegisterList registers;
    attribute BVNPipelineList items;                //@Optional
};

interface BVNRegister {
    attribute String name;
    attribute int offset;
};

interface BVNPipeline {
    attribute String name;
};

interface Extensionsinformation {
    attribute String name;
    attribute int size;            //@Optional
    attribute String id;
    attribute String version       //SEMVER
};

interface POEpowerinformation {
    attribute float value;
    attribute String units;
};

interface POEinformation {
    attribute String status;
    attribute POEpowerinformation power;     //@Optional
};                                                                                                  
```

## Object Creation

To create a *devicestatus* object, load the *@brightsign/status* module using the  `require()` method. 

```javascript
var DeviceStatusClass = require("@brightsign/devicestatus");
var devicestatus = new DeviceStatusClass();
```

## devicestatus

### getPowerStatus()

```javascript
Promise<Powerinformation> getPowerStatus()
```

Returns the device battery status as "charging", "discharging", "complete", "absent", or "fault".

### getExtensions()

```javascript
Promise<ExtensionsinformationList> getExtensions()
```

Returns a promise which yields an object containing an `extensions` array with each element containing at least a `name` field. Other fields may also be present, but should not be relied on.

### getPOEStatus()

```javascript
Promise<POEinformation> getPOEStatus()
```

Returns information about whether PoE (Power over Ethernet) network is supported, available, and/or active on a device.

## Powerinformation

- `source` <font color="#704ae0">string</font>:  Possible values are "battery", "Ethernet", or "AC"
- `switch_mode` <font color="#704ae0">string</font>: Returns "soft" or "hard"
- `battery` <font color="#704ae0">string</font>: Possible values are "charging", "discharging", "complete", "absent", or "fault"
- `soc_percent` <font color="#704ae0">int</font>: The state of charge of the battery in percent from 0 (empty) to 100 (full)

## Extensionsinformation

- `name` <font color="#704ae0">string</font>: The name of the extension
- `size` <font color="#704ae0">int</font>: Some extensions return a size and others do not. Players that have AC3 or E-AC3 licenses installed will report those as extensions but no size will be included.
- `id` <font color="#704ae0">string</font>: The extension id
- `version` <font color="#704ae0">string</font>: The extension version

## POEpowerinformation

- `value` <font color="#704ae0">float</font>: Returns the "Power value"
- `units` <font color="#704ae0">string</font>: returns the "Power value" units ("W")

## POEinformation

- `status` <font color="#704ae0">string</font>: The status string can be "active", "standby", or "inactive"
- `power` <font color="#704ae0">POEpowerinformation</font>: See `POEpowerinformation` above for details.

## Example

To get the power status of a device:

```javascript
var DeviceStatusClass = require("@brightsign/devicestatus");
var devicestatus = new DeviceStatusClass();

devicestatus.getPowerStatus().then(
        function(data){
                console.log(JSON.stringify(data));
        })
    .catch(
        function(data){
                console.log("Error: " + data);
        })
```

