Skip to main content

Facilitate access to Demeter REST interface endpoints, provided by Hidroconta S.A.U.

Project description

Integrations-PythonAPI

Python API to facilitate access to Demeter REST interface endpoints. https://pypi.org/project/hidroconta/

Current version: 1.5.0 Added:

# Added parameters position and expansion to global_update method to select a specific water meter in a device that has more than one of them
# Added method get_criteria_value_list_from_dataframe to get a a list of criteria values from an already existing dataframe of elements (more efficient than get_criteria)

The API allows the management of large amounts of data using the Pandas library, provided that the following directive is used in method calls:

# Pandas = True returns a pandas dataframe instead a json

The way to use the API is the following:

  • Import the desired modules:
import hidroconta.api as demeter
import hidroconta.types as hidrotypes
import pandas as pd
import datetime
import hidroconta.endpoints as hidroendpoints
  • Select the server with which you want to communicate (you can modify it at any time):
# Set server
demeter.set_server(hydroendpoints.Server.MAIN)
  • Login to this server
# Login
demeter.login('USERNAME', 'PASSWORD')

Once the previous steps have been followed, you can make any query about the system. Some of them are:

  • Search
# Search
df = demeter.search(text='SAT', element_types=[hidrotypes.Element.COUNTER, hidrotypes.Element.ANALOG_INPUT, hidrotypes.Element.RTU], status=hidrotypes.Status.ENABLED, pandas=True)
print(df)
  • Getting history
# Get historics
df = demeter.get_historics(start_date=datetime.datetime.now(), end_date=datetime.datetime.now(), element_ids=[1000], subtype=hidrotypes.AnalogInputHist.subtype, subcode=[hidrotypes.AnalogInputHist.subcode], pandas=True)
print(df)
  • Getting elements
# Get
df = demeter.get_rtus(element_id=17512, pandas=True)
print(df)

The API also defines a special exception when the call to the Demeter endpoint does not return the expected result. The exception is called 'DemeterStatusCodeException' and contains the HTTP error code.

# Exception treatment
try:
    df = demeter.get_rtus(element_id=17512, pandas=True).
except demeter.DemeterStatusCodeException as status_code:
    print('Error {}'.format(status_code))
  • Finally, a logout should be made on the server
demeter.logout()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hidroconta-1.5.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hidroconta-1.5.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file hidroconta-1.5.0.tar.gz.

File metadata

  • Download URL: hidroconta-1.5.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.2

File hashes

Hashes for hidroconta-1.5.0.tar.gz
Algorithm Hash digest
SHA256 68145a272d6ee06f4e292686da304ff57d3d76c42a660c9e2870c7e9cde9b3a4
MD5 0d5e16d7abf2c449363b84555c0bef00
BLAKE2b-256 3a985fa1ef158050004e50fba55c0002452316f8695b74f82e0fdf3fc6c02a8a

See more details on using hashes here.

File details

Details for the file hidroconta-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: hidroconta-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.2

File hashes

Hashes for hidroconta-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28b91aee33490fb792303a66b46efe07c5c63d09ac0648e6a61ac95458a13381
MD5 bd1e1d26fd951fb20196d6eb53bac8b9
BLAKE2b-256 a314c9ec71cea7d53406a913570bb0d4caa89a6db71ce95550a0982644cb034c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page