Versions Compared

Key

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

...

  • 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

...

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

  • DoubleFloat

  • 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 <Your_Datatype> is not a valid datatype"


User Defined Types (UDTs)

  • Azure Digital Twins have a maximum size of 32K. Therefore UDTs which exceed that limit will result in the Digital Twin 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-Z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$ (for more information on regex expression patterns go to https://regexr.com)

Editing User Defined Types (UDTs)

Due to caching within Azure when editing models which may take 10-15 minutes or longer, see Azure Digital Twins - Manage DTDL models, the recommended approach for when a UDT at the Edge requires modification is to use versioning in the UDT name.

Delete the Digital Twin instance(s) using this model. 

Tip
You can use the query
Warning

If a UDT is modified, then the user will need to delete the associated model and any digital twins created and refresh Transmission.

SELECT * FROM digitaltwins DT WHERE IS_OF_MODEL(DT, 'dtmi:domain:Conveyormodelname;1', exact) to find all digital twins using the model

Replicate the UDT adding a version number to the name ie. UDT_name_1.0.0. In your UDT Definitions you will now have both the original UDT and the modified one.  For each of your tags using this original UDT, edit these to use the Parent Type of your modified UDT and refresh Transmission.

A new Azure Digital Twin model will be created along with the associated Digital Twin(s) for that model. 

Nested/Hierarchical User Defined Types (UDTs)

...

  • ConnectedEdgeNodes
    • Count of all connected Edge Nodes for this IBAZ instance
  • InstanceCount
    • ??Count UDT instance
  • LastError
    • UDT timestamp of last error
  • MeasurementCount
    • ??
  • PropertyCount
    • Count of UDT instance member tags
  • PropertyUpdateCount
    • Count of UDT instance member tags updates
    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

...

  • 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
  • PropertyUpdateCount
    • Count of UDT instance member tags updates
    MeasurementUpdateCount
    • ??
  • MQTTMessageCount
    • Count of MQTT messages received from this edge node
  • ResetMetrics
    • Option to reset all metrics for this digital twin