bLIS uses MQTT to establish fast and reliable 2-way communication between laboratory instruments and the remote bLIS server. This is implemented via a python script which is installed and executed on a physical device in the lab and connected to the instrument(s).
You can configure the script using either command line arguments or environment variables. The table below shows all available configuration options.
| Flag | Description | Required | Default value |
|---|---|---|---|
serial-port |
The serial port the instrument is connected to | ✔︎ | |
mqtt-broker |
IPv6 address of the broker. | ||
| **This requires a wireguard connection | ✔︎ | ||
mqtt-username |
Username for the broker | ✔︎ | |
mqtt-password |
Password for the broker | ✔︎ | |
pod-id |
Deprecated - will remove | ✔︎ | |
integration-id |
Listed below for each instrument | ✔︎ | |
serial-baudrate |
Baud rate the serial port will use | 9600 | |
serial-bytesize |
Byte size the serial port will use | 8 | |
buffer-threshold |
Max buffer size before message is sent | 512 | |
timeout |
Max time (in seconds) before message is sent | 1 | |
reconnect-delay |
Delay (in seconds) before reconnecting on a failure | 5 | |
ping-interval |
Time (in seconds) in between pings | 60 | |
verbose |
Enable verbose logging. Helpful for troubleshooting. | false |
Different instruments require specific configuration values. Below is a list of known instruments and their required settings
| Instrument | integration-id |
serial-baudrate |
serial-bytesize |
|---|---|---|---|
| Siemens EXL | exl | 9600 | 7 |
| DiaSorin LIAISON XL | liaison | 9600 | 8 |
| Siemens CLINITEK | clinitek | 9600 | 8 |
| Siemens SYSMEX | sysmex | 9600 | 8 |
To test server communication, set the integration-id argument to echo. This will send test data to the server, which will display the output to verify the connection is working.
A server administrator must validate the output.
python /etc/config/scripts/blis-mqtt.py \\
--serial-port /dev/serial/port1 \\ # update with appropriate port for instrument
--mqtt-broker "<ipv6 address>" \\ # provided during setup
--mqtt-username "<username>" \\ # provided during setup
--mqtt-password "<password>" \\ # provided during setup
--integration-id "exl" \\ # use "echo" for testing purposes
--serial-baudrate 9600 \\ # see above table for instrument settings
--serial-bytesize 8 # see above table for instrument settings
Communication with the LIS server occurs through a secure Wireguard VPN tunnel. Since the MQTT broker is not exposed to the public internet, you'll receive a private IPv6 address.
You'll also receive a username and password for broker authentication.
Wireguard capability is required if you're using your own hardware.
For more information, see the private networking documentation for the cloud provider.