Display

Endpoints

Method Path Description
GET /api/v2/device/display Returns display state
PUT /api/v2/device/display Changes display state

Get Display State

URL /api/v2/device/display
Method GET
Authentication basic
Version 2.0.0

Description

Returns information about the display like brightness, mode and size in pixels. Since version 2.1.0 returns information about screen saver settings.

Response

{
  "brightness": <0-100>,
  "brightness_mode": "[auto|manual]",
  "height": 8,
  "width": 37,
  "type": "mixed"
}

Since version 2.1.0 screensaver node has been added:

{
  "brightness": <0-100>,
  "brightness_mode": "[auto|manual]",
  "brightess_limit": {
    "max": 75,
    "min": 2
  }
  "brightness_range": {
   "max": 100
   "min": 0
  }
  "height": 8,
  "width": 37,
  "type": "mixed",
  "screensaver": {
    "enabled": [true|false],
    "modes": {
      "time_based": {
        "enabled": [true|false]
        "start_time": "<time in GMT>"
        "end_time": "<time in GMT>",
        "local_start_time": "<local time>",
        "local_end_time": "<local time>"
      },
      "when_dark": {
        "enabled": [true|false]
      }
    },
    "widget": "<widget_uuid>"
  }
}
Property Type Description
brightness Integer Brightness of the display. Valid values [0..100]
brighrness_mode Enum
[“auto”, “manual”]
  • auto – automatically adjust brightness
  • manual – brightness is configured by the user
width Integer Width of the display in pixels
height Integer Height of the display in pixels
type Enum Display type. Valid values are : [“monochrome”, “grayscale”, “color”, “mixed”]

Since API version 2.1.0

screensaver Object Object for screensaver configuration (off, when dark, timebased).
brightness_range Object

Optional.

The minimum and the maximum values of a brightness.
When setting new brightness, the new value must be in this range.
Usually valid values fall between 0 and 100.
brightness_limit Object

Optional.

Brightnesss limitations for current conditions.
When a device is powered from a computer, we can limit the maximum
brightness value in order to not exceed the maximum power consumption of
a device to avoid unexpected power-offs. In this case the new value of
brightness can not exceed the max value of this limit.

Screensaver

Property Type Description
enabled Boolean Enables or disables the screensaver.
modes Map

Map of modes supported by the device. Currently “time_based” and “when_dark” are supported

  • time_based – activates if time is between start_time and end_time
  • when_dark – activates when light sensor senses darkness.
widget String UUID of the widget that should be activated when screensaver is active. Currently clock is supported.

brightness_range

Property Type Description
max Integer Maximum possible brightness value
min Integer Minimum possible brightness value

brightness_limit

Property Type Description
max Integer Current maximum brightness value limit. Can be less than max value of brightness_range (for example, due to the power comsumption limitation).
min Integer Current minimum brightness value limit

Example

Request:

GET https://<device ip address>:4343/api/v2/device/display

cURL:

$ curl -X GET -u "dev" -k \
  -H "Accept: application/json" \
  https://<device ip address>:4343/api/v2/device/display
$ Enter host password for user 'dev': <device API key>

Response:

HTTP/1.1 200 OK
CONTENT-TYPE: application/json;charset=UTF8
Transfer-Encoding: chunked
Date: Wed, 29 Jun 2016 13:47:05 GMT
Server: lighttpd/1.4.35

{
  "brightness": 100,
  "brightness_limit": {
    "max": 100,
    "min": 2
  },
  "brightness_range": {
    "max": 100,
    "min": 0
  },
  "brightness_mode": "auto",
  "height": 8,
  "width": 37,
  "type": "mixed",
  "screensaver": {
    "enabled": true,
    "modes": {
      "time_based": {
        "enabled": true,
        "end_time": "18:42:56",
        "start_time": "18:41:53"
        "start_local_time": "20:41:53"
        "end_local_time": "20:42:56"
      },
      "when_dark": {
        "enabled": false
      }
    },
    "widget": "08b8eac21074f8f7e5a29f2855ba8060"
  }
}

Update Display State

URL /api/v2/device/display
Method PUT
Authentication basic
Version 2.0.0

Description

Updates display state. It is possible to change brightness, mode and screen saver settings. If brightness_mode is set to “auto”, brightness value still can be changed but this will not affect the actual brightness of the display. Brightness will be changed as soon as brightness_mode is set to “manual”. Since API 2.1.0 it is possible to configure screensaver settings.

Body

{
    "brightness": <0-100>,
    "brightness_mode": "[auto|manual]"
}

Since API 2.1.0:

{
    "brightness": <0-100>,
    "brightness_mode": "[auto|manual]",
    "screensaver": {
        "enabled": [true|false],
        "mode": ["when_dark"|"time_based"]
        "mode_params": {
            "enabled": [true|false],
            "start_time": "21:00:00",
            "end_time": "06:00:00"
        }
    }
}

Examples

Example 1. Let’s set auto brightness and enable screensaver in mode “when dark”:

Request

REST:

PUT https://<device ip address>:4343/api/v2/device/display

Content-Type: application/json
Accept: application/json

{
    "brightness_mode": "auto",
    "screensaver": {
        "enabled" : true,
        "mode": "when_dark",
        "mode_params": {
            "enabled": true
        }
    }
}

cURL:

$ curl -X PUT -k -u "dev" \
  -H "Accept: application/json"
  -H "Content-Type: application/json" \
  -d '{
        "brightness_mode": "auto",
        "screensaver": {
            "enabled" : true,
            "mode": "when_dark",
            "mode_params": {
                "enabled": true
            }
        }
    }' https://<device ip address>:4343/api/v2/device/display
$ Enter host password for user 'dev': <device API key>

Response

HTTP/1.1 200 OK
CONTENT-TYPE: application/json;charset=UTF8
Transfer-Encoding: chunked
Date: Wed, 29 Jun 2016 14:25:48 GMT
Server: lighttpd/1.4.35

{
    "success": {
        "data": {
            "brightness": 40,
            "brightness_mode": "auto",
            "height": 8,
            "type": "mixed",
            "width": 37
        },
        "path": "/api/v2/device/display"
    }
}

Since API 2.1.0:

HTTP/1.1 200 OK
CONTENT-TYPE: application/json;charset=UTF8
Transfer-Encoding: chunked
Date: Thu, 02 Mar 2017 16:24:18 GMT
Server: lighttpd/1.4.35

{
    "success": {
        "data": {
            "type": "mixed",
            "width": 37
            "height": 8,
            "brightness": 40,
            "brightness_mode": "auto",
            "brightness_range": {
                "max": 100,
                "min": 0
            },
            "brightness_limit": {
                "max": 100,
                "min": 2
            },
            "screensaver": {
               "enabled": true,
                "modes": {
                    "time_based": {
                        "enabled": true,
                        "end_time": "09:21:00",
                        "local_end_time": "12:21:00",
                        "local_start_time": "12:20:00",
                        "start_time": "09:20:00"
                    },
                    "when_dark": {
                        "enabled": false
                    }
                },
               "widget": "486f5adeee1511ebab78273c1141c9c8"
            },
        },
        "path": "/api/v2/device/display"
    }
}

Example 2. Let’s set time based screensaver from 9:00 PM to 6:00 AM. First of all, we need to convert our times to GMT. For example, if we are in GMT+2 timezone, we need to set activation time to 19:00 and deactivation time to 4:00 (subtract 2 hours from 9 pm and 6 am)

Request

REST:

PUT https://<device ip address>:4343/api/v2/device/display

Content-Type: application/json
Accept: application/json

{
    "screensaver": {
        "enabled" : true,
        "mode": "time_based",
        "mode_params": {
            "enabled": true,
            "start_time": "19:00:00",
            "end_time": "04:00:00"
        }
    }
}

cURL:

$ curl -X PUT -k -u "dev" \
  -H "Accept: application/json"
  -H "Content-Type: application/json" \
  -d '{
        "screensaver": {
            "enabled" : true,
            "mode": "time_based",
            "mode_params": {
                "enabled": true,
                "start_time": "19:00:00",
                "end_time": "4:00:00"
            }
        }
    }' https://<device ip address>:4343/api/v2/device/display
$ Enter host password for user 'dev': <device API key>

Response

HTTP/1.1 200 OK
CONTENT-TYPE: application/json;charset=UTF8
Transfer-Encoding: chunked
Date: Wed, 29 Jun 2016 14:25:48 GMT
Server: lighttpd/1.4.35

{
    "success": {
        "data": {
            "brightness": 40,
            "brightness_mode": "auto",
            "height": 8,
            "type": "mixed",
            "width": 37
        },
        "path": "/api/v2/device/display"
    }
}

Since API 2.1.0:

HTTP/1.1 200 OK
CONTENT-TYPE: application/json;charset=UTF8
Transfer-Encoding: chunked
Date: Thu, 02 Mar 2017 16:24:18 GMT
Server: lighttpd/1.4.35

{
    "success": {
        "data": {
            "type": "mixed",
            "width": 37
            "height": 8,
            "brightness": 100,
            "brightness_mode": "auto",
            "brightness_range": {
                "max": 100,
                "min": 0
            },
            "brightness_limit": {
                "max": 100,
                "min": 2
            },
            "screensaver": {
                "enabled": true,
                "modes": {
                    "time_based": {
                        "enabled": true,
                        "start_time": "19:00:00"
                        "end_time": "4:00:00",
                        "local_start_time": "6:00:00",
                        "local_end_time": "21:00:00"
                    },
                    "when_dark": {
                        "enabled": false
                    }
                },
                "widget": "08b8eac21074f8f7e5a29f2855ba8060"
            },

        },
        "path": "/api/v2/device/display"
    }
}
Note:
All timestamps must be given in GMT.