1_Installation
Create folders
Create a mosquitto.conf
echo "listener 1883" >> mosquitto.conf
docker-compose file
Create a docker-compose.yml from the below contents. As per the below example, 2 DataGate instances as well as the dataswitch application will be brought up. Via the containers, we can support any number of DataGate instances, as much as the hardware supports.
datagate-1:
image: "brinkhausgmbh/datagate"
container_name: "datagate-1"
restart: unless-stopped
ports:
- "8081:8081"
- "22101:22101"
volumes:
- settings-datagate-1:/var/bos/settings/datagate-1
- logs-datagate-1:/var/bos/logs/datagate-1
datagate-2:
image: "brinkhausgmbh/datagate"
container_name: "datagate-2"
restart: unless-stopped
ports:
- "8082:8081"
- "22102:22102"
volumes:
- settings-datagate-2:/var/bos/settings/datagate-1
- logs-datagate-2:/var/bos/logs/datagate-1
dataswitch:
image: "brinkhausgmbh/dataswitch"
container_name: "dataswitch"
depends_on:
- datagate-1
- datagate-2
- mosquitto
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- settings-dataswitch:/var/bos/settings/dataswitch
- logs-dataswitch:/var/bos/logs/dataswitch
mosquitto:
image: "eclipse-mosquitto"
container_name: "mosquitto"
restart: unless-stopped
ports:
- "1883:1883"
volumes:
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
# DataStore with backend CrateDB
crate01:
image: crate
hostname: crate
ports:
- "4200:4200"
- "4300:4300"
- "5432:5432"
volumes:
- ./data/databaseBackend:/data
datastore:
image: brinkhausgmbh/datastore
hostname: datastore
environment:
- MQTT_CONNECTION_TARGET=mosquitto
ports:
- "8089:80"
depends_on:
- crate01
- mosquitto
volumes:
- ./data/datastore:/data/datastore
volumes:
settings-datagate-1:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/settings/datagate-1_docker'
logs-datagate-1:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/logs/datagate-1_docker'
settings-datagate-2:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/settings/datagate-2_docker'
logs-datagate-2:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/logs/datagate-2_docker'
settings-dataswitch:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/settings/dataswitch_docker'
logs-dataswitch:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/var/bos/logs/dataswitch_docker'
Run the docker compose file to start up the container.
To check if the containers are up and running,
Configuration of the sources (datagate-1 and datagate-2)
For configuration of the DataGate instances keep in mind that they are accessible at the ports 8081 and 8082 (as configured via the docker-compose.yml).
For datagate-1, navigate to
For datagate-2, navigate to
Navigate to "Settings > Sampling" and configure a data sampling. Press "Save".
Navigate to "Settings > Processing" and configure a data processing (data output) of DataGate to gRPC. Press "Save".
Configuration of dataswitch
Navigate to "Settings > DataSwitch sources > DataSwitch Sources 0" and set the hostname to datagate-1, port 22101. If you want to configure a second source, do accordingly for "DataSwitch Sources 1" (with datagate-2 and port 22102). Press "Save" each time.
The DataSwitch and DataGate instances should now be set up and running.
Test
From now on the mosquitto server, configured in the docker-compose.yml will receive sensor values. You can test and see them with:
The output should look like
{"header": { "key": "EupgDataDescription","message_type": "MQTT","source_id": "EupgInput"},"body":{"uri": "dataswitch","normalizationOfTimeToSec": 0.000001,"channelDescriptions": [{"key": "ProgName","axis": "","signal": "ProgName","unit": "Name","min": 1.000000,"max": 10.000000},{"key": "blockNoStr","axis": "","signal": "blockNoStr","unit": "Name","min": 1.000000,"max": 10.000000}],"frequency": 10.000000}}
{"header": { "key": "EupgDataContent","message_type": "MQTT","source_id": "EupgInput"},"body":{"uri": "dataswitch","timestamp": [1681313357911747,1681313358007799,1681313358107282,1681313358219402,1681313358312129,1681313358408431,1681313358506504,1681313358607267,1681313358710570,1681313358810300],"dataValues":{"key": "ProgName","value": ["_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF","_N_TEST_BRINKHAUS_MPF"]}}}