openHAB - Motion Detector Bricklet 2.0

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

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

Thing

UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]
Required firmware version:
  • 2.0.0
Firmware update supported:
  • yes
Channels:
Actions:
Parameters:
  • Sensitivity – Type: integer, Default: 50, Min: 0, Max: 100
  • The sensitivity of the PIR sensor. The range is 0-100. At full sensitivity (100), the Bricklet can detect motion in a range of approximately 12m. The actual range depends on many things in the environment (e.g. reflections) and the size of the object to be detected. While a big person might be detected in a range of 10m a cat may only be detected at 2m distance with the same setting. So you will have to find a good sensitivity for your application by trial and error.

  • Status LED Config – Type: Choice, Default: Show Status
  • The status LED configuration. By default the LED shows communication traffic between Brick and Bricklet, it flickers once for every 10 received data packets. You can also turn the LED permanently on/off or show a heartbeat. If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
  • Options: Off, On, Show Heartbeat, Show Status

Channels

Motion Detected

This channel is triggered after a motion was detected.

Type:
  • Trigger (system.trigger)
UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]:BrickletMotionDetectorV2MotionDetected
Read only:
  • No
Detection Cycle Ended

This channel is triggered when the detection cycle ended. A new motion can be detected again after approximately 2 seconds.

Type:
  • Trigger (system.trigger)
UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]:BrickletMotionDetectorV2DetectionCycleEnded
Read only:
  • No
Top Left Indicator

Sets one of the blue backlight LEDs of the fresnel lens. A value of 0 turns the LED off and a value of 255 turns the LED to full brightness.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]:BrickletMotionDetectorV2TopLeftIndicator
Read only:
  • No
Range:
  • 0 to 255
Top Right Indicator

Sets one of the blue backlight LEDs of the fresnel lens. A value of 0 turns the LED off and a value of 255 turns the LED to full brightness.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]:BrickletMotionDetectorV2TopRightIndicator
Read only:
  • No
Range:
  • 0 to 255
Bottom Indicator

Sets one of the blue backlight LEDs of the fresnel lens. A value of 0 turns the LED off and a value of 255 turns the LED to full brightness.

Type:
  • Number:Dimensionless
UID:
  • tinkerforge:brickletmotiondetectorv2:[UID]:BrickletMotionDetectorV2BottomIndicator
Read only:
  • No
Range:
  • 0 to 255

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:brickletmotiondetectorv2:[UID]")
val hwVersion = actions.brickletMotionDetectorV2GetIdentity().get("hardwareVersion") as short[]
logInfo("Example", "Hardware version: " + hwVersion.get(0) + "." + hwVersion.get(1) + "." + hwVersion.get(2))

Basic Actions

brickletMotionDetectorV2GetMotionDetected()
Return Map:
  • motion – Type: int, Range: See constants

Returns 1 if a motion was detected. It returns 1 approx. for 1.8 seconds until the sensor checks for a new movement.

There is also a blue LED on the Bricklet that is on as long as the Bricklet is in the "motion detected" state.

The following constants are available for this function:

For motion:

  • val MOTION_NOT_DETECTED = 0
  • val MOTION_DETECTED = 1
brickletMotionDetectorV2GetSensitivity()
Return Map:
  • sensitivity – Type: int, Range: [0 to 100], Default: 50

Returns the sensitivity as set by the thing configuration.

brickletMotionDetectorV2SetIndicator(int topLeft, int topRight, int bottom)
Parameters:
  • topLeft – Type: int, Range: [0 to 255], Default: 0
  • topRight – Type: int, Range: [0 to 255], Default: 0
  • bottom – Type: int, Range: [0 to 255], Default: 0

Sets the blue backlight of the fresnel lens. The backlight consists of three LEDs. The brightness of each LED can be controlled with a 8-bit value (0-255). A value of 0 turns the LED off and a value of 255 turns the LED to full brightness.

brickletMotionDetectorV2GetIndicator()
Return Map:
  • topLeft – Type: int, Range: [0 to 255], Default: 0
  • topRight – Type: int, Range: [0 to 255], Default: 0
  • bottom – Type: int, Range: [0 to 255], Default: 0

Returns the indicator configuration as set by Top Left Indicator.

Advanced Actions

brickletMotionDetectorV2GetChipTemperature()
Return Map:
  • temperature – Type: int, Unit: 1 °C, Range: [-215 to 215 - 1]

Returns the temperature as measured inside the microcontroller. The value returned is not the ambient temperature!

The temperature is only proportional to the real temperature and it has bad accuracy. Practically it is only useful as an indicator for temperature changes.

brickletMotionDetectorV2GetStatusLEDConfig()
Return Map:
  • config – Type: int, Range: See constants, Default: 3

Returns the configuration as set by the thing configuration

The following constants are available for this function:

For config:

  • val STATUS_LED_CONFIG_OFF = 0
  • val STATUS_LED_CONFIG_ON = 1
  • val STATUS_LED_CONFIG_SHOW_HEARTBEAT = 2
  • val STATUS_LED_CONFIG_SHOW_STATUS = 3
brickletMotionDetectorV2GetSPITFPErrorCount()
Return Map:
  • errorCountAckChecksum – Type: long, Range: [0 to 232 - 1]
  • errorCountMessageChecksum – Type: long, Range: [0 to 232 - 1]
  • errorCountFrame – Type: long, Range: [0 to 232 - 1]
  • errorCountOverflow – Type: long, Range: [0 to 232 - 1]

Returns the error count for the communication between Brick and Bricklet.

The errors are divided into

  • ACK checksum errors,
  • message checksum errors,
  • framing errors and
  • overflow errors.

The errors counts are for errors that occur on the Bricklet side. All Bricks have a similar function that returns the errors on the Brick side.

brickletMotionDetectorV2GetIdentity()
Return Map:
  • uid – Type: String, Length: up to 8
  • connectedUid – Type: String, Length: up to 8
  • position – Type: char, Range: ['a' to 'h', 'i', '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). The Raspberry Pi HAT (Zero) Brick is always at position 'i' and the Bricklet connected to an Isolator Bricklet is always as position 'z'.

The device identifier numbers can be found here

Internal Actions

brickletMotionDetectorV2ReadUID()
Return Map:
  • uid – Type: long, Range: [0 to 232 - 1]

Returns the current UID as an integer. Encode as Base58 to get the usual string version.