Sign inSign up

dataristix/dataristix-for-iotdevices

By dataristix

Updated 3 days ago

Dataristix Industrial Data Processing

Image
Internet of things
0

6.3K

dataristix/dataristix-for-iotdevices repository overview

Dataristix® for IoT Devices

Experimental!

This connector module is part of Dataristix, which means you can exchange data with other connectors. The connector for IoT devices is based on the .NET IoT library (https://github.com/dotnet/iot) and so far integrates around 50 IoT devices that may be available on your Raspberry Pi (see example). We cannot test all devices, but should you have any problems or there is a device or feature missing that you would like to see added, then please contact us and we may be able to help.

Requirements

Connector modules are provided as Docker containers for 64-bit architectures only, that means, you need a 64-bit operating system, install Docker and then "docker compose" your module configuration (example given below). You may be able to get away with a 1 GB Raspberry Pi for a setup with one or two connector modules and a limited number of tasks, but will probably need a 2 GB system or better for anything else. You can find instructions for Docker installation on Debian based operating systems here: https://docs.docker.com/engine/install/debian/

Installation

Please see the Dataristix Core module for general information. Here is an example that installs connectors CSV, E-Mail, Excel, IoT Devices, MQTT, Power BI, REST, Script, and SQLite. You can exchange your IoT device data with the other connector modules.

Summary

Use docker compose up with the files provided below, then browse to http://localhost:8282 on your Raspberry Pi or browse to http://raspberrypi:8282 on another computer connected to your Raspberry Pi.

Docker Compose File

The following Docker Compose file configures Dataristix for the selected connectors. Remove modules that are not required. Save the text below into a docker-compose.yml file together with the docker-compose.override.yml file below , then type docker compose up to run. See also notes in the next section.

name: dataristix-pod

# Common settings for services. The 'dataristix-secrect' volume should be configured with restricted access.
# ===========================================================================================================
x-dataristix-common: &dataristix-common
    volumes:
      - dataristix-data:/dataristix-data
      - dataristix-secret:/dataristix-secret

services:

# Core Service. Module services specified with '--modules=' must follow below.
# =============================================================================
  dataristix-core:
    image: dataristix/dataristix-core:latest
    container_name: dataristix-core
    command: --modules="CSV, E-Mail, Excel, IoT Devices, MQTT, Power BI, REST, Script, SQLite"
    depends_on:
      - dataristix-for-csv
      - dataristix-for-email
      - dataristix-for-excel
      - dataristix-for-iotdevices
      - dataristix-for-mqtt
      - dataristix-for-powerbi
      - dataristix-for-rest
      - dataristix-for-script
      - dataristix-for-sqlite
    <<: *dataristix-common

# Dataristix proxy and backend-for-frontend
# =================================
  dataristix-proxy:
    image: dataristix/dataristix-proxy:latest
    container_name: dataristix-proxy
    depends_on:
      - dataristix-core
    ports:
      - "8282:8282"
    expose:
      - "8282"
    <<: *dataristix-common

# CSV Connector 
# ===============================
  dataristix-for-csv:
    image: dataristix/dataristix-for-csv:latest
    container_name: dataristix-for-csv
    # command: --CsvDataFolder="<defaults to /dataristix-data/modules/CSV Connector/CSV>" 
    <<: *dataristix-common

# Email Connector 
# ===============================
  dataristix-for-email:
    image: dataristix/dataristix-for-email:latest
    container_name: dataristix-for-email
    <<: *dataristix-common

# Excel Connector 
# ===============================
  dataristix-for-excel:
    image: dataristix/dataristix-for-excel:latest
    container_name: dataristix-for-excel
    <<: *dataristix-common

# IoT Devices Connector 
# ===============================
  dataristix-for-iotdevices:
    image: dataristix/dataristix-for-iotdevices:latest-experimental
    container_name: dataristix-for-iotdevices
    privileged: true
    <<: *dataristix-common

# MQTT Connector 
# ===============================
  dataristix-for-mqtt:
    image: dataristix/dataristix-for-mqtt:latest
    container_name: dataristix-for-mqtt
    ports:
      # Expose broker ports. Adjust if different ports are configured. Add WebSocket ports if required.
      # Expose default TCP broker port
      - 1883:1883    
      # Expose TLS TCP broker port
      - 8883:8883
    <<: *dataristix-common
    
# Power BI Connector 
# ===============================
  dataristix-for-powerbi:
    image: dataristix/dataristix-for-powerbi:latest
    container_name: dataristix-for-powerbi
    <<: *dataristix-common

# REST Connector 
# ===============================
  dataristix-for-rest:
    image: dataristix/dataristix-for-rest:latest
    container_name: dataristix-for-rest
    <<: *dataristix-common

# Script Connector 
# ===============================
  dataristix-for-script:
    image: dataristix/dataristix-for-script:latest
    container_name: dataristix-for-script
    <<: *dataristix-common

# SQLite Connector 
# ===============================
  dataristix-for-sqlite:
    image: dataristix/dataristix-for-sqlite:latest
    container_name: dataristix-for-sqlite
    <<: *dataristix-common

volumes:
    dataristix-data:
        name: dataristix-data
    dataristix-secret:
        name: dataristix-secret
Docker Compose Override File

Dataristix containers run as a non-root user by default. Add the following docker-compose.override.yml file to override the container user as root (or configure another suitable user) to ensure that Dataristix containers have read and write access to the dataristix-data and dataristix-secret volumes. The IoT Connector needs to be privileged to access system devices.

# Override user as 'root' or specific Dataristix user with read and write access
# to the 'dataristix-data' and 'dataristix-secret' volumes.

services:

# Core
# ===============================
  dataristix-core:
    user: root

# Proxy
# ===============================
  dataristix-proxy:
    user: root

# CSV
# ===============================
  dataristix-for-csv:
    user: root

# Email
# ===============================
  dataristix-for-email:
    user: root

# Excel
# ===============================
  dataristix-for-excel:
    user: root

# IoT Devices
# ===============================
  dataristix-for-iotdevices:
    user: root    

# MQTT
# ===============================
  dataristix-for-mqtt:
    user: root

# Power BI
# ===============================
  dataristix-for-powerbi:
    user: root

# REST
# ===============================
  dataristix-for-rest:
    user: root

# Script
# ===============================
  dataristix-for-script:
    user: root

# SQLite
# ===============================
  dataristix-for-sqlite:
    user: root

Tip

Use the Dataristix JSON Decoder to extract values from complex types. For example, enter x, y, z in separate lines to extract vector components.

Tag summary

Content type

Image

Digest

sha256:f94c8adce

Size

77.8 MB

Last updated

3 days ago

docker pull dataristix/dataristix-for-iotdevices:latest-experimental-beta