> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tangoanalytics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obvius Device Meter Reading File Upload

> To setup the integration between Obvius and WatchWire:

1.  Configure the meter in **WatchWire** following steps in "**Add Meter**" within the Real Time Monitoring section.
    1.  Follow the steps for Obvius meter provider
    2.  Include the valid Serial # / Modbus Device # / and other fields from the metering device - and create a Password (please note it down for next step)
2.  Go to your Obvius device Portal and input the upload url for the target upload URL destination. The Upload URL is listed above in the **POST field, ending in /uploads/obvius**
    

> NOTE: Please configure params correctly in WatchWire, or else data won't flow properly. Pay attention to the "Readings Per Hour" field, if misconfigured the analytics won't work properly. For any question, please contact support.
> 
> Also note, you can ignore all the BODY formdata below which is automatically generated from your Obvius device.



## OpenAPI

````yaml /tango_watchwire/integrations/guides/watchwire-api.yaml post /uploads/obvius
openapi: 3.1.0
info:
  title: WatchWire API
  version: 1.0.0
  description: >-
    The WatchWire Platform has APIs that allow you to access your data
    programmatically. There are several APIs designed for the modules in the
    WatchWire platform including - Invoice Data, Real-Time, Accounts Payable,
    and Measurement & Verification. All are highly scalable, and secure APIs
    that communicate over HTTPS RESTful protocols with JSON based documents.


    > **Note**: Not all WatchWire modules are available as an API.


    # Authentication


    You need credentials to access the APIs - it is the same credentials as your
    WatchWire login. The `/authenticate` will return a Token that needs to be
    included in the header of every subsequent request. The token renews with
    each request and expires after 60 minutes of inactivity (at which point you
    will need to re-authenticate and get a new token).


    > Please contact the WatchWire team for any questions or request for API
    credential access.


    # Error Codes


    There will be various error codes specific to the API you are using, but
    generally follows these principles:


    *   `Unauthorized` - *you are unauthenticated or unauthorized to request
    actions on an asset*

    *   `Asset doesn't exist` - *the item you are querying for doesn't exist*

    *   `Server error`\- *general exception raised in our application code*
        

    # Rate limit


    Rate limited to 10 transactions per meter / second
servers:
  - url: https://auth.replace-me.example.com
    description: Authentication service (Postman variable {{ww-api-baseurl}})
  - url: https://realtime.replace-me.example.com
    description: RealTime API (Postman variable {{gateway-realtime-api}})
  - url: https://ap.replace-me.example.com
    description: Accounts Payable API (Postman variable {{gateway-ap-api}})
  - url: https://invoice.replace-me.example.com
    description: Invoice API (Postman variable {{portal-api-baseurl}})
  - url: https://mv.replace-me.example.com
    description: Measurement & Verification API (Postman variable {{invoice-api}})
security:
  - BearerAuth: []
tags:
  - name: Authentication
  - name: RealTime API - Custom Meter
  - name: RealTime API - Meter Readings
  - name: RealTime API - Meter Readings Aggregations
  - name: RealTime API - Meter Readings Batch Operations
  - name: RealTime API - Obvius Meter Readings
  - name: Accounts Payable API - Audit Statements
  - name: Accounts Payable API - Nexus Statements
  - name: Accounts Payable API - Standard Statements
  - name: Accounts Payable API - Statement PDFs
  - name: Invoice API - Reference IDs
  - name: Invoice API - Invoice
  - name: Measurement & Verification API - M&V
paths:
  /uploads/obvius:
    post:
      tags:
        - RealTime API - Obvius Meter Readings
      summary: Obvius Device Meter Reading File Upload
      description: >-
        To setup the integration between Obvius and WatchWire:


        1.  Configure the meter in **WatchWire** following steps in "**Add
        Meter**" within the Real Time Monitoring section.
            1.  Follow the steps for Obvius meter provider
            2.  Include the valid Serial # / Modbus Device # / and other fields from the metering device - and create a Password (please note it down for next step)
        2.  Go to your Obvius device Portal and input the upload url for the
        target upload URL destination. The Upload URL is listed above in the
        **POST field, ending in /uploads/obvius**
            

        > NOTE: Please configure params correctly in WatchWire, or else data
        won't flow properly. Pay attention to the "Readings Per Hour" field, if
        misconfigured the analytics won't work properly. For any question,
        please contact support.

        > 

        > Also note, you can ignore all the BODY formdata below which is
        automatically generated from your Obvius device.
      operationId: obviusDeviceMeterReadingFileUpload
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - MODE
                - SERIALNUMBER
                - MODBUSDEVICE
                - PASSWORD
                - LOGFILE
              properties:
                MODE:
                  type: string
                  description: Always LOGFILEUPLOAD.
                SERIALNUMBER:
                  type: string
                  description: Serial number specified during meter setup in WatchWire.
                MODBUSDEVICE:
                  type: string
                  description: Device number specified during meter setup in WatchWire.
                PASSWORD:
                  type: string
                  description: Password specified during meter setup in WatchWire.
                LOGFILE:
                  type: string
                  format: binary
                  description: Gzipped meter log file.
      responses:
        '200':
          description: Successful response
      security: []
      servers:
        - url: https://realtime.replace-me.example.com
          description: RealTime API (Postman variable {{gateway-realtime-api}})
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token returned by `POST /authenticate`. Expires after 60 minutes of
        inactivity.

````