Maximo Asset Monitor Python SDK

Use the Python SDK to get started quickly with using the REST APIs of Maximo Asset Monitor.

Using the modules, you can interact with the REST APIs to:

Modules

Description Module Input Output Script
Create a device type using json payload create_custom_entity_type
  • json_payload: See sample payload
  • credentials : See Adding credentials
  • **kwargs
    {
    drop_existing: Delete existing table and rebuild the asset type table in the database
    db_schema: If no schema is provided, use the default schema
    }
None Creating entities, adding functions, constants, dimensions script
Read metric data for an existing asset type load_metrics_data_from_csv None Loading data from csv script
Delete an asset type remove_entity_type API response Removing asset type, functions, constants, dimensions script
Add KPI functions to an asset type add_functions None Creating entities, adding functions, constants, dimensions script
Get all of the KPI functions of an asset type get_functions List of dict with KPI functions (API response) Getting functions, constants, and dimensions script
Delete a KPI function of an asset type remove_function API response Removing asset type, functions, constants, dimensions script
Register a constant globally create_constants API response None
Get all of constants for a tenant get_constants list of dict with constants information (API response) Get functions, constants, and dimensions script
Update constants for a tenant update_constants API response None
Unregister constants by name remove_constants API response None
Add dimension data to entities add_dimensions_data API response Creating entities, adding functions, constants, dimensions script
Get all the dimensional data for an asset type get_dimensions_data List of dict with dimension data information (API response) Getting functions, constants, and dimensions script
Update dimension data update_dimensions_data API response None
Delete a dimension by name remove_dimensions
  • dimension_names: List of dimension names to delete
  • entity_type_name: Name of asset type in string format
  • credentials: See Adding credentials
API response Removing asset type, functions, constants, dimensions script
Get all alerts using a json payload get_alerts API response Get alerts and update status and severity script
Update the alert status using the alert ID update_alert_status
  • alert_id: Find the alert ID using the get_alerts method
  • new_status: Available values are New, Acknowledged, Resolved, and Dismissed
  • credentials: See Adding credentials
None None
Update the alert severity using alert ID update_alert_severity
  • alert_id Find the alert ID using the get_alerts method
  • new_status: Available values are Low, Medium, and High
  • credentials: See Adding credentials
None None

Installing the SDK

Complete these steps to create a copy of the Python SDK and run it on your local system for development and testing purposes.

  1. Create a virtual environment
     python3 -m venv env
    
  2. Activate virtual environment
     source env/bin/activate
    
  3. Install sdk from GitHub
     pip install git+https://github.com/ibm-watson-iot/maximo-asset-monitor-sdk.git
    

On a MAS OS X environment, if the IBM database (ibm_db) fails, complete these steps:

  1. Activate the virtual environment to set up the $VIRTUAL_ENV variable
     source env/bin/activate
    
  2. Run the following command to download the driver:
     pip install git+https://github.com/ibm-watson-iot/maximo-asset-monitor-sdk.git
    
  3. Run the following command once to fix the driver:

     bash ./dev_resources/mac_ibmdb_fix.sh
    

For more information about the workaround, see https://github.com/ibmdb/python-ibmdb/issues/187#issuecomment-310765420

Adding credentials to your script

Important

The credentials file is used to run or test functions locally. Do not push this file to any external repository.

  1. Set credentials to connect to Analytics Service.
    1. Create a credentials.json file in the scripts folder in your working directory.
    2. On the user interface, go to the Services tab.
    3. Select Watson IoT Platform Analytics and click View Details.
    4. In the Environment Variables field, click Copy to Clipboard.
    5. Paste the contents of the clipboard into the credentials.json file.
  2. Load your credentials in your script. Add the following code to your script:
     credentials_path=<path to credentials.json>
     with open(credentials_path, 'r') as F:
         credentials = json.load(F)