Beamish

Feature Support
Sending yes
Receiving yes
Config yes

Supported Brands

Brand Protocol
Beamish 4-AE4 beamish_switch

Sender Arguments

1
2
3
4
5
-t --on                    send a toggle state signal to the device
-f --off                   send a toggle state signal to the device
-i --id=id                 control the device with this system id (1 ... 65535)
-u --unit=unit             control the device with this unit code (1 ... 4)
-a --all                   send on/off command to all device units belonging to this system id

Config

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
  "devices": {
    "dimmer": {
      "protocol": [ "beamish_switch" ],
      "id": [{
        "id": 8,
        "unit": 2
      }],
      "state": "off"
    }
  },
  "gui": {
    "Lamp": {
      "name": "TV Backlit",
      "group": [ "Living" ],
      "media": [ "all" ]
    }
  }
}
Option Value
systemcode 1 - 65535
unit 1 - 4
state on / off

Optional Settings

GUI Settings

Setting Default Format Description
readonly 1 1 or 0 Disable controlling this device from the GUIs
confirm 1 1 or 0 Ask for confirmation when switching device

Protocol

This protocol sends 50 pulses like this

323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 323 1292 1292 323 323 1292 323 1292 323 1292 323 1292 323 1292 1292 323 1292 323 323 1292 323 1292 323 1292 323 1292 323 10982

It has no header and the last 2 pulses are the footer. These are meant to identify the pulses as genuine, and the protocol also has some bit checks to filter false positives. We don’t use them for further processing. The next step is to transform this output into 12 groups of 4 pulses (and thereby dropping the footer pulses).

323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
323 1292
1292 323
323 1292
323 1292
323 1292
323 1292
323 1292
1292 323
1292 323
323 1292
323 1292
323 1292
323 1292
323 10982

If we now look at carefully at these groups you can distinguish three types of groups:

  • 323 1292
  • 1292 323

The 1st group is defined by a short-long sequence (logical 0) The 2nd group is defined by a long-short sequence (logical 1):

000000000000100000110000

We can group the sequence of bits into the following groups A and B:

AAAAAAAAAAAAAAAA BBBB BBBB
0000000000001000 0011 0000

Each of the groups of bits (A and B) has a specific meaning:

Group Bit # Config name Range Description
A 1 to 16 id 1 to 65535 SystemCode id
B 17 to 24 unit 1 to 4 ButtonCode unit

The protocol driver creates the binary presentation as required by the device

1100 0000 -u 1 Button A Toggle device status
0011 0000 -u 2 Button B Toggle device status
0000 1100 -u 3 Button C Toggle device status
0000 0011 -u 4 Button D Toggle device status
0000 1111 -a -t Button ALL ON
1100 0011 -a -f Button ALL OFF

So this code represents:

{
   "code": {
     "id": 8,
     "unit": 2
   },
   "origin": "receiver",
   "protocol": "beamish_switch",
   "uuid": "0000-00-00-00-000000",
   "repeats": 2
}

Examples

CLI command:

pilight-send -p beamish_switch -i 8 -u 1
{
  "code": {
    "systemcode": 2,
    "id": 8,
    "unit": 1
  },
  "origin": "receiver",
  "protocol": "beamish_switch",
  "uuid": "0000-00-00-00-000000",
  "repeats": 1
}
pilight-send -p beamish_switch -i 8 -a -t
{
  "origin": "sender",
  "protocol": "beamish_switch",
  "code": {
    "id": 8,
    "all": 1,
    "state": "on"
  },
  "repeat": 1,
  "uuid": "0000-00-00-00-000000"
}