rockwell-factorytalk · AsyncAPI Specification

Rockwell FactoryTalk Hub Real-Time Events API

Version 1.0.0

Rockwell FactoryTalk Hub provides real-time industrial event streaming via webhooks and subscriptions. Events include tag value changes, alarm activations, and device connectivity notifications for connected FactoryTalk applications.

View Spec View on GitHub AsyncAPIWebhooksEvents

Channels

tag/value-changed
subscribe onTagValueChanged
Tag value change notification
Event published when a monitored tag value changes beyond deadband
alarm/activated
subscribe onAlarmActivated
Alarm activated notification
Event published when an alarm condition is triggered
alarm/acknowledged
subscribe onAlarmAcknowledged
Alarm acknowledged notification
Event published when an alarm is acknowledged by an operator
device/status-changed
subscribe onDeviceStatusChanged
Device connectivity status change
Event published when a connected device connectivity status changes

Messages

TagValueChangedEvent
Tag Value Changed
AlarmActivatedEvent
Alarm Activated
AlarmAcknowledgedEvent
Alarm Acknowledged
DeviceStatusChangedEvent
Device Status Changed

Servers

https
factorytalk-hub https://ftconnect.rockwellautomation.com/events
FactoryTalk Hub event stream endpoint

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Rockwell FactoryTalk Hub Real-Time Events API
  version: 1.0.0
  description: >-
    Rockwell FactoryTalk Hub provides real-time industrial event streaming via
    webhooks and subscriptions. Events include tag value changes, alarm activations,
    and device connectivity notifications for connected FactoryTalk applications.
  contact:
    name: Rockwell Automation Support
    url: https://www.rockwellautomation.com/en-us/support/
  license:
    name: Rockwell Automation Software License
    url: https://www.rockwellautomation.com/en-us/company/about-us/legal-notices/

servers:
  factorytalk-hub:
    url: https://ftconnect.rockwellautomation.com/events
    protocol: https
    description: FactoryTalk Hub event stream endpoint

defaultContentType: application/json

channels:
  tag/value-changed:
    description: Event published when a monitored tag value changes beyond deadband
    subscribe:
      operationId: onTagValueChanged
      summary: Tag value change notification
      description: >-
        Published when a subscribed tag value changes. Subscription filters
        control which tags generate events and deadband settings.
      tags:
        - name: Tags
      message:
        $ref: '#/components/messages/TagValueChangedEvent'

  alarm/activated:
    description: Event published when an alarm condition is triggered
    subscribe:
      operationId: onAlarmActivated
      summary: Alarm activated notification
      description: >-
        Published when a tag value crosses a configured alarm setpoint,
        triggering an alarm condition.
      tags:
        - name: Alarms
      message:
        $ref: '#/components/messages/AlarmActivatedEvent'

  alarm/acknowledged:
    description: Event published when an alarm is acknowledged by an operator
    subscribe:
      operationId: onAlarmAcknowledged
      summary: Alarm acknowledged notification
      description: Published when an operator acknowledges an active alarm.
      tags:
        - name: Alarms
      message:
        $ref: '#/components/messages/AlarmAcknowledgedEvent'

  device/status-changed:
    description: Event published when a connected device connectivity status changes
    subscribe:
      operationId: onDeviceStatusChanged
      summary: Device connectivity status change
      description: Published when an industrial device goes online or offline.
      tags:
        - name: Devices
      message:
        $ref: '#/components/messages/DeviceStatusChangedEvent'

components:
  messages:
    TagValueChangedEvent:
      name: TagValueChanged
      title: Tag Value Changed
      contentType: application/json
      headers:
        type: object
        properties:
          x-ft-event-id:
            type: string
            format: uuid
          x-ft-event-type:
            type: string
            const: tag.value-changed
      payload:
        $ref: '#/components/schemas/TagValueChangedPayload'

    AlarmActivatedEvent:
      name: AlarmActivated
      title: Alarm Activated
      contentType: application/json
      payload:
        $ref: '#/components/schemas/AlarmEventPayload'

    AlarmAcknowledgedEvent:
      name: AlarmAcknowledged
      title: Alarm Acknowledged
      contentType: application/json
      payload:
        $ref: '#/components/schemas/AlarmAcknowledgedPayload'

    DeviceStatusChangedEvent:
      name: DeviceStatusChanged
      title: Device Status Changed
      contentType: application/json
      payload:
        $ref: '#/components/schemas/DeviceStatusChangedPayload'

  schemas:
    TagValueChangedPayload:
      type: object
      required:
        - eventId
        - eventTimestamp
        - tagName
        - newValue
      properties:
        eventId:
          type: string
          format: uuid
        eventTimestamp:
          type: string
          format: date-time
        tagName:
          type: string
          description: Fully qualified tag name
        newValue:
          description: New tag value
        previousValue:
          description: Previous tag value
        quality:
          type: string
          enum: [GOOD, BAD, UNCERTAIN, COMM_FAILURE]
        engineeringUnit:
          type: string
          nullable: true
        deviceName:
          type: string
          nullable: true

    AlarmEventPayload:
      type: object
      required:
        - eventId
        - eventTimestamp
        - alarmId
        - tagName
        - alarmName
        - severity
      properties:
        eventId:
          type: string
          format: uuid
        eventTimestamp:
          type: string
          format: date-time
        alarmId:
          type: string
        tagName:
          type: string
        alarmName:
          type: string
        description:
          type: string
        severity:
          type: string
          enum: [LOW, MEDIUM, HIGH, CRITICAL]
        triggerValue:
          description: Tag value that triggered the alarm
        setpoint:
          description: Configured alarm setpoint
        activationTime:
          type: string
          format: date-time

    AlarmAcknowledgedPayload:
      type: object
      required:
        - eventId
        - eventTimestamp
        - alarmId
        - acknowledgedBy
      properties:
        eventId:
          type: string
          format: uuid
        eventTimestamp:
          type: string
          format: date-time
        alarmId:
          type: string
        tagName:
          type: string
        alarmName:
          type: string
        acknowledgedBy:
          type: string
          description: Username of the operator who acknowledged the alarm
        comment:
          type: string
          nullable: true
        acknowledgmentTime:
          type: string
          format: date-time

    DeviceStatusChangedPayload:
      type: object
      required:
        - eventId
        - eventTimestamp
        - deviceName
        - newStatus
      properties:
        eventId:
          type: string
          format: uuid
        eventTimestamp:
          type: string
          format: date-time
        deviceName:
          type: string
        deviceType:
          type: string
        previousStatus:
          type: string
          enum: [ONLINE, OFFLINE, DEGRADED, UNKNOWN]
        newStatus:
          type: string
          enum: [ONLINE, OFFLINE, DEGRADED, UNKNOWN]
        ipAddress:
          type: string
          nullable: true
        location:
          type: string
          nullable: true