Giter VIP home page Giter VIP logo

deadbandfilter's Introduction

Azure Industrial Iot - OPC UA Deadband Filter

This module can be chained on Azure IoT Edge in a pipeline after the opc publisher to effectively filter messages that fall within bookends.
For more info OPC UA deadband, see the foundation website here
As of the last commit of this repo, the feature was still in the backlog for Azure IIoT team. Whenever this feature is implemented this becomes obsolete.

Disclaimer: This sample is for demonstration purposes only. It has not being thouroughly tested outside sunny day scenarios.

How does it work

You can configure the module in one of the two available modes, Absolute or Percent. This is controlled by setting the environmental variable DBF_TYPE (percent or absolute).
If the mode is percent, You can specify the percentage on the environmental variable (DBF_WEIGHT).
The absolute mode needs a config file declaring the bookends as below:

[
  {
    "ApplicationUri": "<App Uri 1",
    "OpcNodes": [
      {
        "Id": "i=<an integer>",
        "DBF": {"min": 116, "max": 118}
      },
      {
        "Id": "s=<a string>",
        "DBF": {"min": 4, "max": 6}
      },
    ]
  },
  {
    "ApplicationUri": "<App Uri 2",
    "OpcNodes": [
      {
        "Id": "i=<an integer>",
        "DBF": {"min": 116, "max": 118}
      }
    ]
  },
  <AS MANY ASSETS AS YOU NEED....>
]

This file needs to exist on the iot edge host and must be mounted using container creation options as usual.

The default mode is PERCENT with a WEIGHT of 25%.

How to use it

Clone or download and create a module for your archtecture.
The log files can be used to give an accurate account of what messages have been filtered out. Set verbose by assigning the environmental variable DEBUG to true. You can toggle verbose also by adding a module desired property 'debug'.

deadbandfilter's People

Stargazers

António Sérgio Azevedo avatar

Watchers

James Cloos avatar Tayo Carvalhal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.