openHAB - Joystick Bricklet

Warning

The openHAB bindings are still in beta, but the development was stopped.

This is the description of the openHAB API bindings for the Joystick Bricklet. General information and technical specifications for the Joystick Bricklet are summarized in its hardware description.

An installation guide for the openHAB API bindings is part of their general description.

Thing

UID:
  • tinkerforge:brickletjoystick:[UID]
Required firmware version:
  • 2.0.0
Firmware update supported:
  • yes
Channels:
Actions:
Parameters:
  • Position Update Interval – Type: integer, Default: 1000, Unit: ms, Min: 0, Max: 4294967295
  • Specifies the update interval for X and Y position in milliseconds. A value of 0 disables automatic updates.

  • Analog Value Update Interval – Type: integer, Default: 1000, Unit: ms, Min: 0, Max: 4294967295
  • Specifies the update interval for X and Y analog value in milliseconds. A value of 0 disables automatic updates.

Channels

Position X

The position of the joystick. The middle position of the joystick is x=0, y=0. The returned values are averaged and calibrated.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletjoystick:[UID]:BrickletJoystickPositionX
Read only:
  • Yes
Range:
  • -100 to 100 (Step 1)
Position Y

The position of the joystick. The middle position of the joystick is x=0, y=0. The returned values are averaged and calibrated.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletjoystick:[UID]:BrickletJoystickPositionY
Read only:
  • Yes
Range:
  • -100 to 100 (Step 1)
Pressed

Triggers if the button is pressed or released.

Type:
  • Trigger (system.rawbutton)
UID:
  • tinkerforge:brickletjoystick:[UID]:BrickletJoystickPressed
Read only:
  • No
Analog Value X

The X value as read by a 12-bit analog-to-digital converter.

Note

The position X value is averaged over several samples to yield less noise, while this channel gives back raw unfiltered analog values. The only reason to use this channel is, if you need the full resolution of the analog-to-digital converter.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletjoystick:[UID]:BrickletJoystickAnalogValueX
Read only:
  • Yes
Range:
  • 0 to 4095 (Step 1)
Analog Value Y

The Y value as read by a 12-bit analog-to-digital converter.

Note

The position Y value is averaged over several samples to yield less noise, while this channel gives back raw unfiltered analog values. The only reason to use this channel is, if you need the full resolution of the analog-to-digital converter.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletjoystick:[UID]:BrickletJoystickAnalogValueY
Read only:
  • Yes
Range:
  • 0 to 4095 (Step 1)

Actions

Actions can be used in rules by creating an action object. All actions return a Map<String, Object>. Returned values can be accessed by name, sometimes the type deduction needs some hints, as shown below:

val actions = getActions("tinkerforge", "tinkerforge:brickletjoystick:[UID]")
val hwVersion = actions.brickletJoystickGetIdentity().get("hardwareVersion") as short[]
logInfo("Example", "Hardware version: " + hwVersion.get(0) + "." + hwVersion.get(1) + "." + hwVersion.get(2))

Basic Actions

brickletJoystickGetPosition()
Return Map:
  • x – Type: short, Range: [-100 to 100]
  • y – Type: short, Range: [-100 to 100]

Returns the position of the joystick. The middle position of the joystick is x=0, y=0. The returned values are averaged and calibrated (see This function is not available in openHAB. Please use Brick Viewer to change persistant device settings).

If you want to get the position periodically, it is recommended to use the Position X channel and set the period with the thing configuration.

brickletJoystickIsPressed()
Return Map:
  • pressed – Type: boolean

Returns true if the button is pressed and false otherwise.

It is recommended to use the Pressed and Pressed channels to handle the button.

Advanced Actions

brickletJoystickGetAnalogValue()
Return Map:
  • x – Type: int, Range: [0 to 212 - 1]
  • y – Type: int, Range: [0 to 212 - 1]

Returns the values as read by a 12-bit analog-to-digital converter.

Note

The values returned by Position X are averaged over several samples to yield less noise, while Analog Value X gives back raw unfiltered analog values. The only reason to use Analog Value X is, if you need the full resolution of the analog-to-digital converter.

If you want the analog values periodically, it is recommended to use the Analog Value X channel and set the period with the thing configuration.

brickletJoystickGetIdentity()
Return Map:
  • uid – Type: String, Length: up to 8
  • connectedUid – Type: String, Length: up to 8
  • position – Type: char, Range: ['a' to 'h', 'z']
  • hardwareVersion – Type: short[], Length: 3
    • 0: major – Type: short, Range: [0 to 255]
    • 1: minor – Type: short, Range: [0 to 255]
    • 2: revision – Type: short, Range: [0 to 255]
  • firmwareVersion – Type: short[], Length: 3
    • 0: major – Type: short, Range: [0 to 255]
    • 1: minor – Type: short, Range: [0 to 255]
    • 2: revision – Type: short, Range: [0 to 255]
  • deviceIdentifier – Type: int, Range: [0 to 216 - 1]

Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.

The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port). A Bricklet connected to an Isolator Bricklet is always at position 'z'.

The device identifier numbers can be found here