openHAB - Outdoor Weather Bricklet

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

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

Usage

The outdoor weather bricklet functions as bridge for WS-6147 stations and TH-6148 sensors. Sensors/stations must be added as things to openHAB manually with the Paper UI, as each sensor/station gives itself a random identifier on startup. The Outdoor Weather Bricklet reports seen IDs. If you have to restart a sensor/station for example to change it's batteries, you can keep the configured thing and only have to change the ID of the sensor/station thing.

Thing

UID:
  • tinkerforge:brickletoutdoorweather:[UID]
Required firmware version:
  • 2.0.0
Firmware update supported:
  • yes
Channels:
Actions:
Parameters:
  • 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

Sensor Identifiers

The identifiers (number between 0 and 255) of all sensors that have been seen since the startup of the Bricklet.

Each sensor gives itself a random identifier on first startup.

Since firmware version 2.0.2 a sensor is removed from the list if no data was received for 12 hours.

This channel will only update after the configured update interval, not on changed values.

Type:
  • String
UID:
  • tinkerforge:brickletoutdoorweather:[UID]:BrickletOutdoorWeatherSensorIdentifiers
Read only:
  • No
Parameters:
  • Update Interval – Type: integer, Default: 1000, Unit: ms
  • Specifies the update interval in milliseconds. A value of 0 disables automatic updates.
Station Identifiers

The identifiers (number between 0 and 255) of all stations that have been seen since the startup of the Bricklet.

Each station gives itself a random identifier on first startup.

Since firmware version 2.0.2 a station is removed from the list if no data was received for 12 hours.

This channel will only update after the configured update interval, not on changed values.

Type:
  • String
UID:
  • tinkerforge:brickletoutdoorweather:[UID]:BrickletOutdoorWeatherStationIdentifiers
Read only:
  • No
Parameters:
  • Update Interval – Type: integer, Default: 1000, Unit: ms
  • Specifies the update interval in milliseconds. A value of 0 disables automatic updates.

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

Basic Actions

brickletOutdoorWeatherGetStationIdentifiers()
Return Map:
  • identifiers – Type: int[], Length: variable, Range: [0 to 255]

Returns the identifiers (number between 0 and 255) of all stations that have been seen since the startup of the Bricklet.

Each station gives itself a random identifier on first startup.

Since firmware version 2.0.2 a station is removed from the list if no data was received for 12 hours.

brickletOutdoorWeatherGetSensorIdentifiers()
Return Map:
  • identifiers – Type: int[], Length: variable, Range: [0 to 255]

Returns the identifiers (number between 0 and 255) of all sensors that have been seen since the startup of the Bricklet.

Each sensor gives itself a random identifier on first startup.

Since firmware version 2.0.2 a sensor is removed from the list if no data was received for 12 hours.

brickletOutdoorWeatherGetStationData(int identifier)
Parameters:
  • identifier – Type: int, Range: [0 to 255]
Return Map:
  • temperature – Type: int, Unit: 1/10 °C, Range: [-400 to 650]
  • humidity – Type: int, Unit: 1 %, Range: [10 to 99]
  • windSpeed – Type: long, Unit: 1/10 m/s, Range: [0 to 232 - 1]
  • gustSpeed – Type: long, Unit: 1/10 m/s, Range: [0 to 232 - 1]
  • rain – Type: long, Unit: 1/10 mm, Range: [0 to 232 - 1]
  • windDirection – Type: int, Range: See constants
  • batteryLow – Type: boolean
  • lastChange – Type: int, Unit: 1 s, Range: [0 to 216 - 1]

Returns the last received data for a station with the given identifier. Call Station Identifiers for a list of all available identifiers.

The return values are:

  • Temperature,
  • Humidity,
  • Wind Speed,
  • Gust Speed,
  • Rain Fall,
  • Wind Direction,
  • Battery Low (true if battery is low) and
  • Last Change (seconds since the reception of this data).

The following constants are available for this function:

For windDirection:

  • val WIND_DIRECTION_N = 0
  • val WIND_DIRECTION_NNE = 1
  • val WIND_DIRECTION_NE = 2
  • val WIND_DIRECTION_ENE = 3
  • val WIND_DIRECTION_E = 4
  • val WIND_DIRECTION_ESE = 5
  • val WIND_DIRECTION_SE = 6
  • val WIND_DIRECTION_SSE = 7
  • val WIND_DIRECTION_S = 8
  • val WIND_DIRECTION_SSW = 9
  • val WIND_DIRECTION_SW = 10
  • val WIND_DIRECTION_WSW = 11
  • val WIND_DIRECTION_W = 12
  • val WIND_DIRECTION_WNW = 13
  • val WIND_DIRECTION_NW = 14
  • val WIND_DIRECTION_NNW = 15
  • val WIND_DIRECTION_ERROR = 255
brickletOutdoorWeatherGetSensorData(int identifier)
Parameters:
  • identifier – Type: int, Range: [0 to 255]
Return Map:
  • temperature – Type: int, Unit: 1/10 °C, Range: [-215 to 215 - 1]
  • humidity – Type: int, Unit: 1 %, Range: [0 to 255]
  • lastChange – Type: int, Unit: 1 s, Range: [0 to 216 - 1]

Returns the last measured data for a sensor with the given identifier. Call Sensor Identifiers for a list of all available identifiers.

The return values are:

  • Temperature,
  • Humidity and
  • Last Change (seconds since the last reception of data).

Advanced Actions

brickletOutdoorWeatherGetChipTemperature()
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.

brickletOutdoorWeatherGetStatusLEDConfig()
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
brickletOutdoorWeatherGetSPITFPErrorCount()
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.

brickletOutdoorWeatherGetIdentity()
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

brickletOutdoorWeatherReadUID()
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.