FogLAMP Plugins

The following set of plugins are available for FogLAMP. These plugins extend the functionality by adding new sources of data, new destinations, processing filters that can enhance or modify the data, rules for notification delivery and notification delivery mechanisms.

South Plugins

South plugins add new ways to get data into FogLAMP, a number of south plugins are available ready built or users may add new south plugins of their own by writing them in Python or C/C++.

FogLAMP South Plugins

Name

Description

abb

A south plugin to pull data from the ABB cloud

am2315

FogLAMP south plugin for an AM2315 temperature and humidity sensor

armfield

A plugin for the Armfield IFD7

b100-modbus-python

A south plugin to read data from a Dynamic Ratings B100 device over Modbus

beckhoff

A Beckhoff ADS data ingress plugin for FogLAMP, this monitors Beckhoff PLCs and returns the state of internal variables within the PLC

benchmark

A FogLAMP benchmark plugin to measure the ingestion rates on particular hardware

cc2650

A FogLAMP south plugin for the Texas Instruments SensorTag CC2650

coap

A south plugin for FogLAMP that pulls data from a COAP sensor

coral-enviro

A south plugin for the Google Coral Environmental Sensor Board

csv

A FogLAMP south plugin in C++ for reading CSV files

csv-async

A FogLAMP asynchronous plugin for reading CSV data

csvplayback

Plays a CSV at some configurable speed and each column of the file will become a datapoint of an asset using pandas library.

dht

A FogLAMP south plugin in C++ that interfaces to a DHT-11 temperature and humidity sensor

dht11

A FogLAMP south plugin that interfaces a DHT-11 temperature sensor

digiducer

South plugin for the Digiducer 333D01 vibration sensor

dnp3

A south plugin for FogLAMP that implements the DNP3 protocol

dt9837

A south plugin for the Data Translation DT9837 Series DAQ

edgeml

ML south plugin which forwards the video frames to a model running inside micro k8’s; parses the response, generates readings and shows the detection results on browser.

etherip

A south plugin to read tags data from a number of different Allen-Bradley and Rockwell PLCs.

expression

A FogLAMP south plugin that uses a user define expression to generate data

FlirAX8

A FogLAMP hybrid south plugin that uses foglamp-south-modbus-c to get temperature data from a Flir Thermal camera

game

The south plugin used for the FogLAMP lab session game involving remote controlled cars

gw65

FogLAMP plugin for getting vibration data from a set of FLIR GW65 vibration sensors

http

A Python south plugin for FogLAMP used to connect one FogLAMP instance to another

ina219

A FogLAMP south plugin for the INA219 voltage and current sensor

J1708

A plugin that uses the SAE J1708 protocol to load data from the ECU of heavy duty vehicles.

J1939

A CANBUS J1939 plugin to collect data into FogLAMP.

kafka

Kafka Consumer Plugin to consume message from Kafka Broker.

lathesim

A simulation plugin used as a demonstration to show how data can be collected within FogLAMP. This plugin simulates various properties of a lathe.

modbus-c

A FogLAMP south plugin that implements modbus-tcp and modbus-rtu

modbustcp

A FogLAMP south plugin that implements modbus-tcp in Python

mqtt

FogLAMP South MQTT Subscriber Plugin

mqtt-sparkplug

A FogLAMP south plugin that implements the Sparkplug API over MQTT

mqtt-scripted

An MQTT south plugin that allows a Python script to be added to decode the MQTT payload

observer

A south plugin for collecting data from the SKF Observer Platform

opcua

A FogLAMP south service that pulls data from an OPC-UA server

openweathermap

A FogLAMP south plugin to pull weather data from OpenWeatherMap

person-detection

FogLAMP south service plugin that detects person in the live video stream

person-detector

Person detection plugin

phidget

FogLAMP south plugin for different phidgets

piserver

A South plugin to stream data from a local PI Server to FogLAMP

piwebapi

A South plugin to ingest data from a PI Server using the PI Web API.

playback

A FogLAMP south plugin to replay data stored in a CSV file

pt100

A FogLAMP south plugin for the PT100 temperature sensor

random

A south plugin for FogLAMP that generates random numbers

randomwalk

A FogLAMP south plugin that returns data that with randomly generated steps

roxtec

A FogLAMP south plugin for the Roxtec cable gland project

rpienviro

A FogLAMP south service for the Raspberry Pi Enviro pHAT sensors

rtsp

A south plugin to capture RTSP stream from a device.

s2opcua

An OPC UA south plugin based on the Systerel S2OPC OPC UA Toolkit. This plugin offers similar functionality to the foglamp-south-opcua plugin but also offers data encryption and authentication.

s7-python

Read Siemens S7 PLCs data over TCP

s7

A south plugin that uses the S7 Communications protocol to read data from a Siemens S7 series PLC.

samotics4

A south plugin that will gather data from Samotics 4 API used to monitor AC Motors

sarcos

A south plugin to process the Sarcos XO data files

sensehat

A FogLAMP south plugin for the Raspberry Pi Sensehat sensors

sensorphone

A FogLAMP south plugin the task to the iPhone SensorPhone app

simple-rest

A generic REST south plugin with support for a variety of common REST payloads and Python scripting to manipulate call results.

sinusoid

A FogLAMP south plugin that produces a simulated sine wave

spinnaker

A south plugin that uses the FLIR Spinnaker library to pull radiometric data from FLIR cameras for use within machine learning models

suez

A south plugin to extract data from the Suez Water Insight API

systeminfo

A FogLAMP south plugin that gathers information about the system it is running on.

usb4704

A FogLAMP south plugin the Advantech USB-4704 data acquisition module

video4linux

A south plugin to ingests images from various devices using the Video4Linux API. Video4Linux supports a wide variety of video capture devices on Linux platforms.

webcam-media

A FogLAMP south plugin that forwards image data, either directly from a webcam or from a directory of images

wind-turbine

A FogLAMP south plugin for a number of sensor connected to a wind turbine demo

North Plugins

North plugins add new destinations to which data may be sent by FogLAMP. A number of north plugins are available ready built or users may add new north plugins of their own by writing them in Python or C/C++.

FogLAMP North Plugins

Name

Description

aws-iot

A north plugin to create things and publish readings to AWS IoT Core

aws-redshift

North plugin to send data to AWS Redshift

azure

A north plugin that sends data to Microsoft Azure IoT Hub device

azure-blob

FogLAMP Azure Blob Storage North Plugin

edna

A north plugin for sending data to the AVEVA eDNA historian

gcp-ps

FogLAMP North Python based gcp plugin for sending an image data to Google Cloud for training machine learning models.

graphite

A north plugin for FogLAMP that sends data to the Graphite Carbon storage system.

harperdb

A north plugin that sends data to the HarperDB SQL/NoSQL data management platform

http

A Python implementation of a north plugin to send data between FogLAMP instances using HTTP

http-c

A FogLAMP north plugin that sends data between FogLAMP instances using HTTP/HTTPS. The plugin support use of an optional Python script to format the data into the required format for there destination.

influxdb

A north plugin for sending data to InfluxDB

influxdbcloud

A north plugin to send data from FogLAMP to the InfuxDBCloud

kafka

A FogLAMP plugin for sending data north to Apache Kafka

kafka-python

A Python implementation of a north plugin that can send data to Apache Kafka

mqtt

MQTT publisher plugin

mqtt-scripted

A bi-directional MQTT publisher with scriptable payloads. This provides a way to forward data from FogLAMP to an MQTT broker using a Python script to control the format of the payload. Control messages can also be send back via MQTT into FogLAMP.

mqtt-sparkplug

MQTT Sparkplug B publisher

omf

Send data to OSIsoft PI Server, Edge Data Store or OSIsoft Cloud Services

opcua

A north plugin for FogLAMP that makes it act as an OPC-UA server for the data it reads from sensors

opcuaclient

A north plugin for FogLAMP that sends data with OPC UA Client to an OPC UA Server

png

A plugin to write an image type data points to PNG files in the local filesystem

s7-python

foglamp-north-s7-python repository

splunk

A north plugin for sending data to Splunk

thingspeak

A FogLAMP north plugin to send data to Matlab’s ThingSpeak cloud

Filter Plugins

Filter plugins add new ways in which data may be modified, enhanced or cleaned as part of the ingress via a south service or egress to a destination system. A number of north plugins are available ready built or users may add new north plugins of their own by writing them in Python or C/C++.

It is also possible, using particular filters, to supply expressions or script snippets that can operate on the data as well. This provides a simple way to process the data in FogLAMP as it is read from devices or written to destination systems.

FogLAMP Filter Plugins

Name

Description

ADM-LD-prediction

Filter to detect whether a large discharge is required for a centrifuge

anomaly-injection

Anomaly injection filter can be used to inject an anomaly into the data pipeline, as an aid to development and testing.

asset

A FogLAMP processing filter that is used to block or allow certain assets to pass onwards in the data stream

asset-join

Filter to join two assets together to create a single asset

asset-split

A filter to split an asset with multiple data points into several assets, each with a single data point.

aws-redshift-hints

FogLAMP Hints Filter for AWS Redshift plugins

blocktest

A filter designed to aid testing. It combines incoming readings into bigger blocks before sending onwards

bounds

A filter to add status datapoint for numeric value datapoints based on upper and lower bounds.

breakover

Filter to forecast the possibility of a breakover.

change

A FogLAMP processing filter plugin that only forwards data that changes by more than a configurable amount

changedetection

A filter to process data and create time interval information while a particular tag/datapoint remains set to a given value

conditional-labeling

Attach labels the reading data based on a set of expressions matched against the data stream.

contrast

A filter that implements automatic and manual contrast adjustment of images.

csv-writer

FogLAMP filter which writes selected readings passing through it out as a rotating sequence of .csv files.

delta

A FogLAMP processing filter plugin that removes duplicates from the stream of data and only forwards new values that differ from previous values by more than a given tolerance

downsample

A data downsampling filter which may be used to reduce the data rate using sampling or averaging techniques.

edgeml

Filter which takes image data, calls out to ML process, and forwards the inference from ML as asset contents.

ednahint

A hint filter for controlling how data is written using the eDNA north plugin to AVEVA’s eDNA historian

ema

Generate exponential moving average datapoint: include a rate of current value and a rate of history values

enumeration

A filter to map between symbolic names and numeric values in a datapoint.

eventrate

A filter designed for use in the north to trigger sending rates based on event notification assets

expression

A FogLAMP processing filter plugin that applies a user define formula to the data as it passes through the filter

fft

A FogLAMP processing filter plugin that calculates a Fast Fourier Transform across sensor data

fft2

Filter for FFT signal processing, finding peak frequencies, etc.

Flir-Validity

A FogLAMP processing filter used for processing temperature data from a Flir thermal camera

greyscale

Convert 24bit RGB images to greyscale images

image-bounding-box

Uses the output of an ML model to crop out or draw bounding boxes on an image.

image-resize

Python based plugin to resize images by scaling or cropping.

inventory

A plugin that can inventory the data that flow through a FogLAMP pipeline.

log

A FogLAMP filter that converts the readings data to a logarithmic scale. This is the example filter used in the plugin developers guide.

metadata

A FogLAMP processing filter plugin that adds metadata to the readings in the data stream

mirror

A filter plugin to mirror image type data points

moving-measure

Calculate measure on moving window with weightage. Some techniques in this includes SMA, LWMA, EMA.

normalise

Normalise the timestamps of all readings that pass through the filter. This allows data collected at different rate or with skewed timestamps to be directly compared.

omfhint

A filter plugin that allows data to be added to assets that will provide extra information to the OMF north plugin.

python27

A FogLAMP processing filter that allows Python 2 code to be run on each sensor value.

python35

A FogLAMP processing filter that allows Python 3 code to be run on each sensor value.

rate

A FogLAMP processing filter plugin that sends reduced rate data until an expression triggers sending full rate data

regex

Regular expression filter to match & replace the string datapoint values

rename

A FogLAMP processing filter that is used to modify the name of an asset, datapoint or both.

replace

Filter to replace characters in the names of assets and data points in readings object.

rms

A FogLAMP processing filter plugin that calculates RMS value for sensor data

rms-trigger

An RMS filter that uses a trigger asset rather than a fixed set of readings for each calculation

rotate

Rotate all images found in datapoints within a reading

sam

A single Asset Model filter for creating a semantic model of an asset from one or more data sources

scale

A FogLAMP processing filter plugin that applies an offset and scale factor to the data

scale-set

A FogLAMP processing filter plugin that applies a set of sale factors to the data

sigfns

Signal processing functions

sigmacleanse

A data cleansing plugin that removes data that differs from the mean value by more than x sigma

simple-python

The simple Python filter plugin is analogous to the expression filter but accept Python code rather than the expression syntax

sparkplugb-hint

A sparkplugb-hint filter plugin

specgram

FogLAMP filter to generate spectrogram images for vibration data

statistics

Generic statistics filter for FogLAMP data that supports the generation of mean, mode, median, minimum, maximum, standard deviation and variance.

threshold

A FogLAMP processing filter that only forwards data when a threshold is crossed

velocity

Filter to process acceleration data to generate velocity and acceleration envelope

vibration-features

A filter plugin that takes a stream of vibration data and generates a set of features that characterise that data

Notification Rule Plugins

Notification rule plugins provide the logic that is used by the notification service to determine if a condition has been met that should trigger or clear that condition and hence send a notification. A number of notification plugins are available as standard, however as with any plugin the user is able to write new plugins in Python or C/C++ to extend the set of notification rules.

FogLAMP Notification Rule Plugins

Name

Description

average

A FogLAMP notification rule plugin that evaluates an expression based sensor data notification rule plugin that triggers when sensors values depart from the moving average by more than a configured limit.

data-availability

Triggers every time when it receives data that matches an asset code or audit code those given in the configuration

delta

A notification rule plugin that triggers if the value of a datapoint is more than a prescribed percentage different from the currently observed delta for that data point

flatline

Flatline Notification Rule

match

Notification rule plugin for matching string values of an asset data-points or audit log attributes

ML-bad-bearing

Notification rule plugin to detect bad bearing

outofbound

A FogLAMP notification rule plugin that triggers when sensors values exceed limits set in the configuration of the plugin.

periodic

A rule that periodically fires based on a timer when data is observed.

simple-expression

A FogLAMP notification rule plugin that evaluates an expression based sensor data

simple-sigma

A FogLAMP notification rule that will send a notification if the values being monitored differ from the mean for the value by more than a multiple of the current standard deviation.

threshold

Detect the value of a data point within an asset going above or below a set threshold

watchdog

Notification rule designed to be triggered if data for a given asset is not ingested for a period of time.

Notification Delivery Plugins

Notification delivery plugins provide the mechanisms to deliver the notification messages to the systems that will receive them. A number of notification delivery plugins are available as standard, however as with any plugin the user is able to write new plugins in Python or C/C++ to extend the set of notification rules.

FogLAMP Notification Delivery Plugins

Name

Description

alert

A notification delivery plugin that creates alerts within the FogLAMP GUI

alexa-notifyme

A FogLAMP notification delivery plugin that sends notifications to the Amazon Alexa platform

asset

A FogLAMP notification delivery plugin that creates an asset in FogLAMP when a notification occurs

blynk

A FogLAMP notification delivery plugin that sends notifications to the Blynk service

config

A notification delivery plugin that allows a configuration item within the local FogLAMP instance to be changed when the notification triggers or is cleared.

control

Allows a notification to call a control operations via the dispatcher service.

customasset

A FogLAMP notification delivery plugin that creates an event asset in readings.

email

A FogLAMP notification delivery plugin that sends notifications via email

google-hangouts

A FogLAMP notification delivery plugin that sends alerts on the Google hangout platform

ifttt

A FogLAMP notification delivery plugin that triggers an action of IFTTT

jira

A notification plugin that creates tickets in Jira

jsonconfig

A delivery mechanism that updates one element within a JSON configuration type configuration category item.

management

A notification delivery plugin the triggers the FogLAMP management service to check for updates to the configuration of FogLAMP

microsoft-teams

A notification delivery plugin that sends notification messages to a Microsoft Teams channel.

mqtt

A notification delivery plugin that sends messages via MQTT when a notification is triggered or cleared. This is the example used in the notification delivery plugin writers guide.

north

Deliver notification data via a FogLAMP north task

operation

A notification delivery plugin that will cause an operation to be trigger via the set point control operation API of a south service.

python35

A FogLAMP notification delivery plugin that runs an arbitrary Python 3 script

rest

REST notification delivery plugin

schedule

A notification plugin that enables/disables the schedule of FogLAMP service(s)

setpoint

A foglamp notification plugin that invokes a set point operation on a south service.

slack

A FogLAMP notification delivery plugin that sends notifications via the slack instant messaging platform

telegram

A FogLAMP notification delivery plugin that sends notifications via the telegram service

zendesk

A notification delivery plugin that will create tickets within Zendesk ticketing application