Graphical Monitoring

The library offers a graphical display of PSU outputs (currently only TTI MX100TP-class and Keithley24X0-class) using Eclipse-Mosquitto, Telegraf, InfluxDB and Grafana, all contained in Docker containers.

Prerequisites

To use the graphical monitoring, Docker and Docker-Compose need to be installed. For installation guides, see:

Setup

Change into the monitoring directory and run docker-compose using the docker-compose.yml configuration file:

cd monitoring
docker-compose -f docker-compose.yml up -d

This will start Docker containers of Eeclipse-Mosquitto, Telegraf, IndluxDB and Grafana. The Grafana docker can be accessed in your browser under: http://localhost:3000.

The data of InfluxDB and Grafana are stored in the docker volumes monitoring_influxdb-data and monitoring_grafana-data. To stop the docker containers simmply run:

docker-compose -f docker-compose.yml down

Once the containers are running, executing <device> monitor -m on the same machine should confirm the connection to the MQTT broker and will send the measurements to the InfluxDB database, from where they can be accessed with Grafana. For example:

$ tti monitor -m ALL
Connected to MQTT broker!
# MONITORING_START 01/01/22
# Time              Voltage1 (V)        Current1 (A)        Voltage2 (V)        Current2 (A)
01/01/22 12:34:56   1.234               0.4567              -9.876              -4.321

This works with the default settings and if everything is run on the same machine. If the Docker containers run on a different machine, or if the measurements should be sent to your own MQTT broker, you can use the options

  • --broker to set the host address of the MQTT broker (the IP address where the Docker is running)

  • --port to set the port where the MQTT broker listens (usually 1883)

  • --username to set the username for broker authentification

  • --password to set the password for broker authentification.

Configuring Grafana

To view the monitored data, you have to setup Grafana. Once the Dockers are running, go to http://localhost:3000 in your browser. Login to Grafana using the default credentials

  • Username: admin

  • Password: admin

and set a new password on the next page.

Next you have to add InfluxDB as a data source. Select Add your first data source, and choose InfluxDB.

_images/grafana_select_InfluxDB.png

You have to set the URL to http://influxdb:8086, which is the address of InfluxDB in the Docker network, and on the bootom of the page, set Database to telegraf. Click Save & test and Grafana should tell you that the data source is working.

_images/grafana_influxdb_1.png

_images/grafana_influxdb_2.png

Now you can create a new dashboard and add a new panel with the data you want to display. The data is sent to InfluxDB in the InfluxDB line protocol syntax as follows:

<device name> <quantity>=<value>

The different quantities for the different devices are shown in the table below. The device name is derived from the VISA resource address. An instrument with VISA resource address ASRL/dev/ttyACM0::INSTR will have the device name ttyACM0.

For example, if a TTi low voltage power supply is connected with VISA resource address ASRL/dev/ttyACM0::INSTR and you want to monitor the voltage of output 1 in a simple time series, you need to set the query of the panel to:

SELECT last("voltage1") FROM "ttyACM0" WHERE $timeFilter GROUP BY time($__interval) fill(previous)

PSU class

Quantity

Unit

description

TTI MX100TP

voltage#
(# = 1, 2, 3)

V

voltage on the given channel
e. g. voltage1 for channel 1
current#
(# = 1, 2, 3)

A

current on the given channel
e. g. current1 for channel 1

Keithley24X0

voltage

V

measured output voltage

current

A

measured output current

resistance

\(\Omega\)

measured resistance

PSUTime

s

PSU timestamp

statusRegister

status information of the PSU