TCP/IP - Dual Relay Bricklet – Tinkerforge

- Getting Started
  - Primer
  - Tutorials
  - FAQ
- Hardware
  - Bricks
  - Bricklets
  - Master Extensions
  - Power Supplies
  - Accessories
  - Timeline
- Software
  - Brick Daemon (brickd)
  - Brick Viewer (brickv)
  - API Bindings
  - Firmwares and Plugins
  - Device Identifier
  - Source Code and Bug Tracking
  - Programming Interface
- Starter Kits
  - Weather Station
  - Hardware Hacking
  - Server Room Monitoring
  - Blinkenlights
  - Internet of Things
  - Camera Slider
- Embedded Boards
  - Raspberry Pi
- Specifications
  - Technical Data
  - TCP/IP Protocol
    - Protocol
    - API
      - Brick Daemon Functions
      - Broadcast Functions
      - General Callbacks
      - Bricks and Bricklets
        - Bricks
        - Bricklets
          - Ambient Light Bricklet
          - Analog In Bricklet
          - Analog Out Bricklet
          - Barometer Bricklet
          - Color Bricklet
          - Current12 Bricklet
          - Current25 Bricklet
          - Distance IR Bricklet
          - Distance US Bricklet
          - Dual Button Bricklet
          - Dual Relay Bricklet
            - API
              - Basic Functions
              - Advanced Functions
              - Callbacks
          - GPS Bricklet
          - Hall Effect Bricklet
          - Humidity Bricklet
          - Industrial Digital In 4 Bricklet
          - Industrial Digital Out 4 Bricklet
          - Industrial Dual 0-20mA Bricklet
          - Industrial Quad Relay Bricklet
          - IO-16 Bricklet
          - IO-4 Bricklet
          - Joystick Bricklet
          - LCD 16x2 Bricklet
          - LCD 20x4 Bricklet
          - LED Strip Bricklet
          - Line Bricklet
          - Linear Poti Bricklet
          - Moisture Bricklet
          - Motion Detector Bricklet
          - Multi Touch Bricklet
          - NFC/RFID Bricklet
          - Piezo Buzzer Bricklet
          - Piezo Speaker Bricklet
          - PTC Bricklet
          - Remote Switch Bricklet
          - Rotary Encoder Bricklet
          - Rotary Poti Bricklet
          - Segment Display 4x7 Bricklet
          - Solid State Relay Bricklet
          - Sound Intensity Bricklet
          - Temperature Bricklet
          - Temperature IR Bricklet
          - Tilt Bricklet
          - Voltage Bricklet
          - Voltage/Current Bricklet
  - Modbus Protocol
  - Wireshark Dissector

# TCP/IP - Dual Relay Bricklet

This is the description of the TCP/IP protocol for the Dual Relay Bricklet. General information and technical specifications for the Dual Relay Bricklet are summarized in its hardware description.

## API

A general description of the TCP/IP protocol structure can be found here.

### Basic Functions

`BrickletDualRelay.``set_state`

  Function ID: | 1

  Request:

  - relay1 -- bool
  - relay2 -- bool

  Response: | no response

  Sets the state of the relays, true means on and false means off. For example: (true, false) turns relay 1 on and relay 2 off.

  If you just want to set one of the relays and don't know the current state of the other relay, you can get the state with `get_state` or you can use `set_selected_state`.

  Running monoflop timers will be overwritten if this function is called.

  The default value is (false, false).

`BrickletDualRelay.``get_state`

  Function ID: | 2
  Request: | empty payload

  Response:

  - relay1 -- bool
  - relay2 -- bool

  Returns the state of the relays, true means on and false means off.

### Advanced Functions

`BrickletDualRelay.``set_monoflop`

  Function ID: | 3

  Request:

  - relay -- uint8
  - state -- bool
  - time -- uint32

  Response: | no response

  The first parameter can be 1 or 2 (relay 1 or relay 2). The second parameter is the desired state of the relay (true means on and false means off). The third parameter indicates the time (in ms) that the relay should hold the state.

  If this function is called with the parameters (1, true, 1500): Relay 1 will turn on and in 1.5s it will turn off again.

  A monoflop can be used as a failsafe mechanism. For example: Lets assume you have a RS485 bus and a Dual Relay Bricklet connected to one of the slave stacks. You can now call this function every second, with a time parameter of two seconds. The relay will be on all the time. If now the RS485 connection is lost, the relay will turn off in at most two seconds.

`BrickletDualRelay.``get_monoflop`

  Function ID: | 4

  Request:

  - relay -- uint8

  Response:

  - state -- bool
  - time -- uint32
  - time_remaining -- uint32

  Returns (for the given relay) the current state and the time as set by `set_monoflop` as well as the remaining time until the state flips.

  If the timer is not running currently, the remaining time will be returned as 0.

`BrickletDualRelay.``set_selected_state`

  Function ID: | 6

  Request:

  - relay -- uint8
  - state -- bool

  Response: | no response

  Sets the state of the selected relay (1 or 2), true means on and false means off.

  The other relay remains untouched.

`BrickletDualRelay.``get_identity`

  Function ID: | 255
  Request: | empty payload

  Response:

  - uid -- char[8]
  - connected_uid -- char[8]
  - position -- char
  - hardware_version -- uint8[3]
  - firmware_version -- uint8[3]
  - device_identifier -- uint16

  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' or 'd'.

  The device identifier numbers can be found here.

### Callbacks

`BrickletDualRelay.``CALLBACK_MONOFLOP_DONE`

  Function ID: | 5

  Response:

  - relay -- uint8
  - state -- bool

  This callback is triggered whenever a monoflop timer reaches 0. The parameter contain the relay (1 or 2) and the current state of the relay (the state after the monoflop).

The content of this page is licensed under Creative Commons Attribution 3.0 Unported License.