Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

There are six primary components used in a system using IoT Bridge. There are:

  • Edge Gateways publishing Sparkplug based MQTT data
    • Our examples will use Ignition with MQTT Transmission for the Edge Gateway
  • An MQTT Server
    • This could be any v3.1.1 compliant MQTT Server and our examples will use Cirrus Link MQTT Distributor.
  • IoT Bridge for Azure (IBAZ)
  • Azure Digital Twins Explorer
  • Azure Event Hub
  • Azure Data Explorer


NEED IMAGEImage Added


There are some translations that need to take place between the components and these platforms have different capabilities that result in some limitations in how an Edge Gateway can be configured. For example, UDTs in Ignition support more data types that Azure Digital Twin (ADT) does. As a result, use of data types in Ignition must be limited to those supported by Azure Digital Twin (ADT) in order for data to properly show up and be updated in Azure Data Explorer. 

Mappings

Ignition and Azure Digital Twins use different terminology for similar constructs. Those definitions are below.

  • An Ignition 'UDT Definition' is mapped to an 'model'
  • An Ignition 'UDT Instance' is mapped to a 'digital twin'.
  • Ignition ‘UDT parameters’ are mapped to specific digital twin property called ‘templateParameters’.

  • Transform, Metric, and Hierarchy definitions in Azure Digital Twins are not used by IBAZ.

Constraints and Limitations

Supported Data Types

Azure Digital Twin only supports Boolean, Date, DateTime, Double, Duration, Float, Integer, Long, String, and Time. As a result, this is the list of data types in Ignition that are supported for consumption into Azure Digital Twin.

  • Boolean

  • DateTime

  • Double

  • Float

  • Integer

  • Long

  • Byte (will be up-casted to an Integer)

  • Short (will be up-casted to an Integer)

  • Integer

  • Float (will be up-casted to a Double)

  • Double

  • String

Any non-supported data type will be converted to a String in ADT and the measurement value for any instance will show an error with a message similar to "Long is not a valid datatype"


*** check with Chad ***User Defined Types (UDTs)

  • Azure Digital Twin Asset Models have a limit of 200 Attributes and/or Measurements. Therefore UDTs with more than 200 Parameters or member tags will result in the Model not being created in Azure.
  • UDT Tag and Property names that result in creating Azure Digital Twin Measurements and Attributes name, you must follow the regex expression pattern
    • ^[a-zA-Z0-9_-]+$ (for more information on regex expression patterns go to https://regexr.com)
  • UDT parameter 'Integers' in Ignition are actually Long values. As a result, UDT parameters of type Integer are not supported at this time.

** check with Chad ** Nested/Hierarchical User Defined Types (UDTs)

These are not supported currently in IoT Bridge. Azure Digital Twin allows Asset Models to have one or more child Asset Models. Ignition supports UDTs having children UDTs as well as UDTs referencing a parent UDT. However, these hierarchical relationships will not be maintained by IBAZ. Support for simple hierarchies as supported by Azure Digital Twin will be added in a future version of IoT Bridge.

Azure Digital Twin Limits and Quotas

Azure Digital Twin has limits and quotas on many different aspects of asset model counts, asset counts, number or attributes per model, etc. For details on those limits seethis document.


Metrics Digital Twins created by IBAZ

There are three types of digital twins created by IBAZ to show the connection metrics.

  • IBAZ_Metrics_IBAZ_Info_ibaz_instance_name
  • IBAZ_Metrics_MQTT_Client_Info_ibaz_instance_name
  • IBAZ_Metrics_Edge_Node_Info_groupfoldername_edgefoldername


IBAZ_Metrics_IBAZ_Info

  • ConnectedEdgeNodes
    • Count of all connected Edge Nodes for this IBAZ instance
  • InstanceCount
    • ??
  • LastError
    • UDT timestamp of last error
  • MeasurementCount
    • ??
  • MeasurementUpdateCount
    • ??
  • ModelCount
    • Number of models for this IBAZ instance
  • MQTTMessageCount
    • Number of MQTT messages received by this IBAZ instance since startup
  • ResetMetrics
    • Option to reset all metrics in this digital twin
  • PrimaryHostId
    • Primary Host ID

IBAZ_Metrics_MQTT_Client

  • ClientID
    • ClientID for connected MQTT Client
  • ConnectDateTime
    • Latest connect datetime for MQTT Client (UTC)
  • Connected
    • Status of MQTT Client connection
  • DisconnectDateTime
    • Lastest disconnect datetime for MQTT Client (UTC)

IBAZ_Metrics_Edge_Node_Info

  • BirthCount
    • Count of birth messages received from this edge node
  • ConnectDateTime
    • Latest connect datetime for this edge node (UDT)
  • Connected
    • Connection status for this edge node
  • DeathCount
    • Count of death messages received from this edge node
  • DisconnectDateTime
    • Latest disconnect timestamp for this edge node (UDT)
  • EdgeNodeName
    • Name for this edge node
  • GroupName
    • Name for this group
  • MeasurementUpdateCount
    • ??
  • MQTTMessageCount
    • Count of MQTT messages received from this edge node
  • ResetMetrics
    • Option to reset all metrics for this digital twin