LogoLogo
Contact Uscybus.io
Connectware 1.9.0
Connectware 1.9.0
  • Getting Started
    • Introduction
    • Installing Connectware
      • System Requirements
      • Acquiring your License Key
      • Installing Connectware on Docker
      • Installing Connectware on Kubernetes
    • Connectware Admin UI
    • Basic Components of Connectware
    • Connecting your First Machine
      • Your First Service Commissioning File
  • Documentation
    • Services
      • Service Commissioning Files
        • Structure of Service Commissioning Files
          • description
          • metadata
          • parameters
          • definitions
          • resources
            • Cybus::Connection
            • Cybus::Endpoint
            • Cybus:Mapping
            • Cybus::Container
              • Docker problem with network changes
            • Cybus::Link
            • Cybus::IngressRoute
            • Cybus::User
            • Cybus::Role
            • Cybus::Volume
            • Cybus::File
            • Cybus::Server
            • Cybus::Node
        • Sample Service Commissioning Files
          • Modbus
            • “Bearbeitungszentrum BAZ” - Single File
            • “Bearbeitungszentrum BAZ” - Multiple Files
            • “Bearbeitungszentrum BAZ” - Single File and Custom Topics
            • “Bearbeitungszentrum BAZ” - Agent Mode
          • Machine Condition Monitoring : OPC UA + InfluxDB + Grafana Dashboard
            • “Machine Condition Monitoring Example” - Single File
          • Machine Utilization Example (Multi file service composition) : Modbus TCP + InfluxDB + Grafana + MSS
            • “Machine Utilization Example” - Machine Connectivity
            • “Machine Utilization Example” - Dashboards with role based access permission
            • “Machine Utilization Example” - Push data to MSSQL Database
      • Services View
      • Setting Up and Configuring Services
        • Installing Services
        • Enabling Services
        • Updating Services
        • Disabling Services
        • Deleting Services
      • Service Details View
      • FlowSync
        • Example 1 - Node with Transaction Mode (HTTP)
        • Example 2 - Node Responds (HTTP)
        • Example 3 - Node with Error (HTTP)
        • Example 4 - Node with Timeout Error Code and Error Message (HTTP)
        • Example 5 - Full Transactional Data Flow (HTTP)
        • Example 6 - Full Transactional Data Flow (OPC UA)
      • ServiceID
      • Inter-Service Referencing
      • Deviation
      • Service Logs
        • Logs of Individual Services
        • Logs of All Services
      • Rule Engine
        • Data Processing Rules
        • Rule Sandbox
      • Shared Subscriptions
        • Setting Up Shared Subscriptions
      • API Definition
    • Resources
      • Servers
      • Containers
      • Volumes
      • Connections
      • Endpoints
      • Mappings
      • Nodes
      • API Definition
    • User Management
      • Users and Roles View
      • Users
      • Roles
      • Permissions
      • Password Policy Rules
      • Default Admin User
      • MQTT Users
      • Adding a MQTT Publish Prefix for Users
      • Multi-Factor Authentication
      • Long lived JSON Web Tokens
      • Access Permissions for Admin-UI
        • UI Access
        • Minimum Access Role Pages
      • API Definition
    • Client Registry
      • Implicit Flow
      • Explicit Flow
      • Granting Access
      • API Definition
    • Certificates
    • Monitoring
      • Data Explorer
      • Live Data
    • Workbench
      • Flows in Git Repositories
    • System Status
      • Info
      • Metrics
      • Status
      • Retrieving More System Information
      • System Health
      • API Definition
    • Backup and Restore
      • Volumes
      • User Database
    • Configuration
      • Environment Variables
      • LDAP Configuration
      • MFA Configuration
    • Agents
      • Agents View
      • Installing Agents
        • Installing Agents via Docker
        • Installing Agents via Docker Compose
        • Installing Agents via Kubernetes
        • Using Mutual TLS for Agents
      • Registering Agents in Connectware
      • Using Agents
      • Monitoring Agents
      • Troubleshooting Agents
    • Industry Protocol Details
      • ADS
        • AdsConnection
        • AdsEndpoint
      • BACnet
        • BacnetConnection
        • BacnetEndpoint
      • EtherNet/IP
        • EthernetIpConnection
        • EthernetIpEndpoint
      • Focas
        • FocasConnection
        • FocasEndpoint
      • Generic VRPC
        • GenericVrpcConnection
        • GenericVrpcEndpoint
      • Hottinger Baldwin Messtechnik (HBM)
        • HbmdaqConnection
        • HbmdaqEndpoint
      • Heidenhain DNC
        • HeidenhainConnection
        • HeidenhainEndpoint
      • HTTP/REST
        • HttpConnection
        • HttpEndpoint
      • HTTP Server
        • HttpServer
        • HttpNode
      • InfluxDB
        • InfluxdbConnection
        • InfluxdbEndpoint
      • Kafka
        • KafkaConnection
        • KafkaEndpoint
      • Modbus/TCP
        • ModbusConnection
        • ModbusEndpoint
      • MQTT
        • MqttConnection
        • MqttEndpoint
      • MSSQL
        • MssqlConnection
        • MssqlEndpoint
      • OPC DA
        • OpcdaConnection
        • OpcdaEndpoint
      • OPC UA
        • OPC UA Client
          • OpcuaConnection
          • OpcuaEndpoint
        • OPC UA Server
          • OpcuaServer
          • OpcuaNode
        • OPC UA Object Types
        • OPC UA Server References
          • OpcuaReferenceNode
          • OpcuaObjectNode
      • Siemens SIMATIC S7
        • S7Connection
        • S7Endpoint
      • Shdr
        • ShdrConnection
        • ShdrEndpoint
      • Sinumerik
        • SinumerikConnection
        • SinumerikEndpoint
      • Sopas
        • SopasConnection
        • SopasEndpoint
      • SQL
        • SqlConnection
        • SqlEndpoint
      • Werma WIN Ethernet
        • WermaConnection
        • WermaEndpoint
      • Systemstate
        • SystemstateConnection
        • SystemstateEndpoint
      • API Definition
    • Connectware Licensing
    • Changelog
      • General changes from 0.x to 1.0
        • Upgrading from 0.x to 1.0
    • Upgrade Guide
      • Upgrading from 1.x to 1.7.0
      • Upgrading from 1.x to 1.5.0
Powered by GitBook
LogoLogo

Cybus

  • Terms and Condition
  • Imprint
  • Data Privacy

© Copyright 2025, Cybus GmbH

On this page

Was this helpful?

  1. Documentation
  2. Services
  3. Service Commissioning Files
  4. Sample Service Commissioning Files
  5. Machine Condition Monitoring : OPC UA + InfluxDB + Grafana Dashboard

“Machine Condition Monitoring Example” - Single File

PreviousMachine Condition Monitoring : OPC UA + InfluxDB + Grafana DashboardNextMachine Utilization Example (Multi file service composition) : Modbus TCP + InfluxDB + Grafana + MSS

Last updated 5 months ago

Was this helpful?

This example shows an entire Machine condition monitoring service expressed within a single commissioning file.

The example below uses an additional Docker image provided by Cybus that requires a suitable license. You can check the current capabilities and permissions of your Connectware license in the Cybus Portal (). If your license is not eligible to use the example Docker image, please contact Cybus Sales ().

opcuaSimulated.yml
description: >
    Temperature & Vibration Visualization for a Machine

metadata:
    name: Condition Monitoring
    icon: https://www.cybus.io/wp-content/uploads/2019/03/Cybus-logo-Claim-lang.svg
    provider: cybus
    homepage: https://www.cybus.io
    version: 0.0.1

definitions:
    SID: !ref Cybus::ServiceId

parameters:
    IP_Address:
        type: string
        default: 172.17.0.1

    Port_Number:
        type: integer
        default: 4840

    Azure_Iot_Hub_Connection_String:
        type: string
        default: some_azure_connection_string

resources:
    # OPC UA simulator container used for the demo
    opcuaServer:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-factory/opcua-server:1.0.1
            ports:
                - 4840:50000/tcp
            command:
                - '--unsecuretransport'
                - '--autoaccept'
                - '--defaultuser=user'
                - '--defaultpassword=pass'

    opcuaConnection:
        type: Cybus::Connection
        properties:
            protocol: Opcua
            targetState: connected
            connection:
                host: !ref IP_Address
                port: !ref Port_Number
                username: user
                password: pass

    opcuaCurrentServerTime:
        type: Cybus::Endpoint
        properties:
            protocol: Opcua
            connection: !ref opcuaConnection
            subscribe:
                nodeId: i=2258
                samplingInterval: 1000

    opcuaTemperature:
        type: Cybus::Endpoint
        properties:
            protocol: Opcua
            connection: !ref opcuaConnection
            subscribe:
                nodeId: ns=2;s=SpikeData
                samplingInterval: 2000

    opcuaVibration:
        type: Cybus::Endpoint
        properties:
            protocol: Opcua
            connection: !ref opcuaConnection
            subscribe:
                nodeId: ns=2;s=DipData
                samplingInterval: 2000

    mapping:
        type: Cybus::Mapping
        properties:
            mappings:
                - subscribe:
                      endpoint: !ref opcuaCurrentServerTime
                  publish:
                      topic: !sub '${Cybus::MqttRoot}/current-server-time'
                - subscribe:
                      endpoint: !ref opcuaTemperature
                  rules:
                      - transform:
                            expression: |
                                {
                                  "timestamp": timestamp,
                                  "value": (value - 32) * (5/9),
                                  "unit": "celsius"
                                }
                  publish:
                      topic: !sub '${Cybus::MqttRoot}/temperature'
                - subscribe:
                      endpoint: !ref opcuaVibration
                  publish:
                      topic: !sub '${Cybus::MqttRoot}/vibration'

    #----------------------------------------------------------------------------
    # VOLUMES
    #----------------------------------------------------------------------------

    grafanaVolume:
        type: Cybus::Volume

    influxdbVolume:
        type: Cybus::Volume

    #----------------------------------------------------------------------------
    # FRONTENDS
    #----------------------------------------------------------------------------

    # Grafana
    grafanaURL:
        type: Cybus::IngressRoute
        properties:
            container: !ref genericGrafana
            type: http
            slug: grafana
            target:
                path: '/'
                port: 3000

    dashboard:
        type: Cybus::Link
        properties:
            name: Dashboard
            ingressRoute: !ref grafanaURL
            href: ''

    #----------------------------------------------------------------------------
    # Cybus Timeseris & Dashboard service containers
    #----------------------------------------------------------------------------

    influxdbPush:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/influxdb-push:0.0.3
            environment:
                MQTT_HOST: !ref Cybus::MqttHost
                MQTT_USER: !ref Cybus::MqttUser
                MQTT_PORT: !ref Cybus::MqttPort
                MQTT_PASS: !ref Cybus::MqttPassword
                MQTT_ROOT_TOPIC: !sub '${Cybus::MqttRoot}/#'
                INFLUX_HOST: !ref influxdb
                INFLUX_PORT: 8086
                INFLUX_DB: generic
                HTTP_ROOT: /

    influxdb:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/influxdb:1.7.7-alpine
            ports:
                - 8086:8086/tcp
            volumes:
                - !sub '${influxdbVolume}:/var/lib/influxdb'
            environment:
                INFLUXDB_DB: generic

    genericGrafana:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/generic-grafana:1.2.1
            volumes:
                - !sub '${grafanaVolume}:/var/lib/grafana'
            environment:
                GF_SERVER_ROOT_URL: !sub '/services/${SID}/grafana'
                GF_AUTH_ANONYMOUS_ENABLED: true
                INFLUX_DB: generic
                INFLUX_HOST: !ref influxdb
                INFLUX_PORT: 8086

    #----------------------------------------------------------------------------
    # Cybus Azure IoT Hub Connector Service
    #----------------------------------------------------------------------------

    azureIoTConnector:
        type: Cybus::Container
        properties:
            image: registry.cybus.io/cybus-services/azure-iot-connector:0.0.5
            environment:
                LOG_LEVEL: 'info'
                CONNECTOR_CONFIG: !sub |
                    {
                      "general": {
                        "name": "Azure Connector"
                      },
                      "source": {
                        "driver": "azure.iot",
                        "connection": {
                          "connectionString": "${Azure_Iot_Hub_Connection_String}"
                        },
                        "defaults": {
                          "operation": "write"
                        }
                      },
                      "target": {
                        "driver": "mqtt",
                        "connection": {
                          "protocol": "mqtt",
                          "host": "${Cybus::MqttHost}",
                          "port": ${Cybus::MqttPort},
                          "username": "admin",
                          "password": "admin"
                        },
                        "defaults": {
                          "operation": "subscribe",
                          "topicPrefix": "${Cybus::MqttRoot}"
                        }
                      },
                      "mappings": [
                        {
                          "source": {
                            "name": "temperature",
                            "type": "telemetry"
                          },
                          "target": {
                            "topic": "${Cybus::MqttRoot}/temperature"
                          }
                        },
                        {
                          "source": {
                            "name": "vibration",
                            "type": "telemetry",
                            "properties": {
                              "default": false,
                              "route": "storage"
                            }
                          },
                          "target": {
                            "topic": "${Cybus::MqttRoot}/vibration"
                          }
                        }
                      ]
                    }
https://portal.cybus.io
sales@cybus.io
8KB
opcuaSimulated.yml