Eco-Connect Documentation¶
Welcome to documentation for eco-connect, a thin python wrapper for Ecorithm’s API Platform.
Requirements¶
python >= 3.6
Installation¶
eco-connect can be installed via pip from PyPI.
pip install eco-connect
This will likely require the installation of a number of dependencies, including Pandas, will require a compiler to compile required bits of code, and can take a few minutes to complete.
All supported connectors require authentication via your provided ecorithm username and password. These credentials are set through environment variables and can be set by running the following commands in shell:
export ECO_CONNECT_USER="MY_ECORITHM_USERNAME"
export ECO_CONNECT_PASSWORD="MY_ECORITHM_PASSWORD"
To verify your credentials and that the package has been installed correctly, run the following in a pythoninterpreter of your choice:
from eco_connect import validate_credentials
validate_credentials()
If everything was setup properly, you should see the print out:
Ecorithm credentials successfully validated!
Usage¶
All connectors can be imported directly from eco_connect. For example, to import the FactsService connector:
from eco_connect import FactsService
Supported Connectors¶
Facts-Service¶
This connector is used to access the facts-service api via python. For direct api documentation, please refer to https://facts.prod.ecorithm.com/api/v1/doc.
Example Usage¶
from eco_connect import FactsService
facts_service = FactsService()
data = facts_service.get_facts(building_id=26,
start_date='2017-12-20 00:00',
end_date='2017-12-21 00:00',
result_format='pandas')
FactsService¶
-
class
eco_connect.
FactsService
(environment_name='prod', version='v1')¶ A class to connect to Ecorithm’s facts-service API (https://facts.prod.ecorithm.com/api/v1/).
Args:
- Kwargs:
environment_name (str): Api environment. Supported environments (‘Prod’, ‘Qa’)
Example: ‘prod’
version (str): Api version. Supported versions: (‘v1’)
Example: ‘v1’
get_facts¶
-
FactsService.
get_facts
(building_id, start_date, end_date, start_hour='00:00', end_hour='23:55', equipment_names=[], equipment_types=[], excluded_days=[], excluded_dates=[], point_classes=[], eco_point_ids=[], display_names=[], native_names=[], point_class_expression=[], native_name_expression=[], display_name_expression=[], result_format='pandas')¶ Return the sensor facts for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Facts/Facts_get
Args:
building_id (str): Building id to get facts for.
Example: 1
start_date (str): Start date to return facts for.
Example: ‘2017-12-20 00:00’
end_date (str): End date to return facts for.
Example: ‘2017-12-21 23:55’
Kwargs:
start_hour (str): Start hour to filter facts for.
Example: ‘08:00’
end_hour (str): End hour to filter facts for.
Example: ‘17:00’
excluded_days (list): Specific days to filter data for. Monday=1, Sunday=7
Example: [6, 7] (Filters Saturday / Sunday)
excluded_dates (list): Specific dates to filter data for.
Example: [‘2017-12-20’, ‘2017-12-25’]
equipment_names (list): List of equipment names to filter facts for.
Example: [‘VAV_01’, ‘VAV_02’]
equipment_types (list): List of equipment types to filter facts for.
Example: [‘VAV’, ‘AHU’]
point_classes (list): List of point_classes to filter facts for.
Example: [‘SpaceAirTemperature’, ‘CoolingCoilUnitFeedback’]
eco_point_ids (list): List of eco_point_ids to filter facts for.
Example: [1, 2, 3]
display_names (list): List of display_names to filter facts for.
Example: [‘SpaceTemp’, ‘AirFlow’]
native_names (list): List of native_names to filter facts for.
Example: [‘name-1’, ‘name-2’]
point_class_expression (list): List of equipment / equipment type + point class regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited. for.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
native_name_expression (list): List of native-name regex expressions to filter facts.
Example: [‘nam.*’, ‘nati-.*’]
display_name_expression (list): List of equipment / equipment type + display name regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
result_format (str): Output format type. (Pandas, tuple, csv, json)
Example: ‘pandas’
- Returns:
(DataFrame or list or csv or json depending on the requested result format).
DataFrame Example:
index fact_time fact_value eco_point_id display_name native_name point_class equipment_name equipment_type ===== ================ ========== ============ ============ =========== ========================== ============== ============== 0 2017-12-20 00:00 1 192 'SpaceTemp' 'name-1' 'SpaceAirTemperature' 'VAV-01' 'VAV' 1 2017-12-21 00:00 2 304 'CoolingCoil' 'name-2' 'CoolingCoilUnitFeedback' 'AHU-01' 'AHU'
Json Example:
{ "data": [ { "87238": { "data": { "2017-08-01 00:00": 67.5, "2017-08-01 00:05": 68.5 }, "meta": { "display_name": "SpaceTemp", "eco_point_id": 85743, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T", "equipment": "VAV-301", "equipment_type": "VAV", "point_class": "SpaceAirTemperature" } }, "87239": { "data": { "2017-08-01 00:00": 0, "2017-08-01 00:05": 100 }, "meta": { "display_name": "Cooling", "eco_point_id": 87239, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.CV", "equipment": "VAV_301", "equipment_type": "VAV", "point_class": "CoolingCoilUnitFeedback" } } } ] }
Csv Example:
',fact_time,fact_value,point_class,display_name,native_name, equipment_type,equipment_name,eco_point_id 0,2017-12-20 00:05,70.1923,SpaceAirTemperature,SpaceTemp, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T,VAV,VAV_301,85743, 2017-12-20 00:05,76.08,SpaceAirTemperatureSetPointWhenCooling, SpaceTempSetPoint_ActualCooling, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET,VAV,VAV_301, 85744, 2017-12-20 00:05,70.08, SpaceAirTemperatureSetPointWhenHeating, SpaceTempSetPoint_ActualHeating, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.AHTG-SET,VAV,VAV_301,85745'
Tuple Example:
[response_tuple(fact_time='2017-12-20 00:05', fact_value=70.1923, point_class='SpaceAirTemperature', display_name='SpaceTemp', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85743), response_tuple(fact_time='2017-12-20 00:05', fact_value=76.08, point_class='SpaceAirTemperatureSetPointWhenCooling', display_name='SpaceTempSetPoint_ActualCooling', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85744)]
Note
And invalid api request will return back the raw api response.
- Example:
{“message”: {“NoData”: “No data found for the provided filters. This building has data from ‘2017-12-20 00:00’ to ‘2017-12-21 00:00’”}}
Example Usage:
>>> from eco_connect import FactsService >>> facts_service = FactsService() >>> facts_service.get_facts(building_id=26, start_date='2017-12-20 00:00', end_date='2017-12-21 00:00', result_format='json') { "data": [ { "87238": { "data": { "2017-08-01 00:00": 67.5, "2017-08-01 00:05": 68.5 }, "meta": { "display_name": "SpaceTemp", "eco_point_id": 85743, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T", "equipment": "VAV-301", "equipment_type": "VAV", "point_class": "SpaceAirTemperature" } }, "87239": { "data": { "2017-08-01 00:00": 0, "2017-08-01 00:05": 100 }, "meta": { "display_name": "Cooling", "eco_point_id": 87239, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.CV", "equipment": "VAV_301", "equipment_type": "VAV", "point_class": "CoolingCoilUnitFeedback" } } } ] }
get_avg_facts¶
-
FactsService.
get_avg_facts
(building_id, start_date, end_date, start_hour='00:00', end_hour='23:55', period='day', equipment_names=[], equipment_types=[], excluded_days=[], excluded_dates=[], point_classes=[], eco_point_ids=[], display_names=[], native_names=[], point_class_expression=[], native_name_expression=[], display_name_expression=[], result_format='pandas')¶ Return the average sensor facts for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Facts/get_avg
Args:
building_id (str): Building id to get facts for.
Example: 1
start_date (str): Start date to return facts for.
Example: ‘2017-12-20 00:00’
end_date (str): End date to return facts for.
Example: ‘2017-12-21 23:55’
Kwargs:
start_hour (str): Start hour to filter facts for.
Example: ‘08:00’
end_hour (str): End hour to filter facts for.
Example: ‘17:00’
excluded_days (list): Specific days to filter data for. Monday=1, Sunday=7
Example: [6, 7] (Filters Saturday / Sunday)
excluded_dates (list): Specific dates to filter data for.
Example: [‘2017-12-20’, ‘2017-12-25’]
equipment_names (list): List of equipment names to filter facts for.
Example: [‘VAV_01’, ‘VAV_02’]
equipment_types (list): List of equipment types to filter facts for.
Example: [‘VAV’, ‘AHU’]
point_classes (list): List of point_classes to filter facts for.
Example: [‘SpaceAirTemperature’, ‘CoolingCoilUnitFeedback’]
eco_point_ids (list): List of eco_point_ids to filter facts for.
Example: [1, 2, 3]
display_names (list): List of display_names to filter facts for.
Example: [‘SpaceTemp’, ‘AirFlow’]
native_names (list): List of native_names to filter facts for.
Example: [‘name-1’, ‘name-2’]
point_class_expression (list): List of equipment / equipment type + point class regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited. for.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
native_name_expression (list): List of native-name regex expressions to filter facts.
Example: [‘nam.*’, ‘nati-.*’]
display_name_expression (list): List of equipment / equipment type + display name regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
period (string): Aggregate period to average on. Supports the following aggregates [minute, hour, day, week, month, year]
Example: ‘hour’
Default: ‘day’
result_format (str): Output format type. (Pandas, tuple, csv, json)
Example: ‘pandas’
- Returns:
(DataFrame or list or csv or json depending on the requested result format).
DataFrame Example:
index fact_time fact_value eco_point_id display_name native_name point_class equipment_name equipment_type ===== ================ ========== ============ ============ =========== ========================== ============== ============== 0 2017-12-20 00:00 1 192 'SpaceTemp' 'name-1' 'SpaceAirTemperature' 'VAV-01' 'VAV' 1 2017-12-21 00:00 2 304 'CoolingCoil' 'name-2' 'CoolingCoilUnitFeedback' 'AHU-01' 'AHU'
Json Example:
{ "data": [ { "87238": { "data": { "2017-08-01 00:00": 67.5, "2017-08-01 00:05": 68.5 }, "meta": { "display_name": "SpaceTemp", "eco_point_id": 85743, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T", "equipment": "VAV-301", "equipment_type": "VAV", "point_class": "SpaceAirTemperature" } }, "87239": { "data": { "2017-08-01 00:00": 0, "2017-08-01 00:05": 100 }, "meta": { "display_name": "Cooling", "eco_point_id": 87239, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.CV", "equipment": "VAV_301", "equipment_type": "VAV", "point_class": "CoolingCoilUnitFeedback" } } } ] }
Csv Example:
',fact_time,fact_value,point_class,display_name,native_name, equipment_type,equipment_name,eco_point_id 0,2017-12-20 00:05,70.1923,SpaceAirTemperature,SpaceTemp, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T,VAV,VAV_301,85743, 2017-12-20 00:05,76.08,SpaceAirTemperatureSetPointWhenCooling, SpaceTempSetPoint_ActualCooling, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET,VAV,VAV_301, 85744, 2017-12-20 00:05,70.08, SpaceAirTemperatureSetPointWhenHeating, SpaceTempSetPoint_ActualHeating, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.AHTG-SET,VAV,VAV_301,85745'
Tuple Example:
[response_tuple(fact_time='2017-12-20 00:05', fact_value=70.1923, point_class='SpaceAirTemperature', display_name='SpaceTemp', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85743), response_tuple(fact_time='2017-12-20 00:05', fact_value=76.08, point_class='SpaceAirTemperatureSetPointWhenCooling', display_name='SpaceTempSetPoint_ActualCooling', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85744)]
Note
And invalid api request will return back the raw api response.
- Example:
{“message”: {“NoData”: “No data found for the provided filters. This building has data from ‘2017-12-20 00:00’ to ‘2017-12-21 00:00’”}}
Example Usage:
>>> from eco_connect import FactsService >>> facts_service = FactsService() >>> facts_service.get_avg_facts(building_id=26, start_date='2017-12-20 00:00', end_date='2017-12-21 00:00', period='minute', result_format='json') { "data": [ { "87238": { "data": { "2017-08-01 00:00": 67.5, "2017-08-01 00:05": 68.5 }, "meta": { "display_name": "SpaceTemp", "eco_point_id": 85743, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T", "equipment": "VAV-301", "equipment_type": "VAV", "point_class": "SpaceAirTemperature" } }, "87239": { "data": { "2017-08-01 00:00": 0, "2017-08-01 00:05": 100 }, "meta": { "display_name": "Cooling", "eco_point_id": 87239, "native_name": "UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.CV", "equipment": "VAV_301", "equipment_type": "VAV", "point_class": "CoolingCoilUnitFeedback" } } } ] }
put_facts¶
-
FactsService.
put_facts
(building_id, data=Empty DataFrame Columns: [fact_time, fact_value, native_name] Index: [])¶ Insert facts for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Facts/put
Args:
building_id (str): Building id to get facts for.
Example: 1
data (DataFrame): DataFrame with data to upload.
Example:
index fact_time fact_value native-name ===== ================ ========== ============= 0 2017-12-20 00:00 1 native-name-1 1 2017-12-21 00:00 2 native-name-2
Note
If errors are present, a message key will be returned.
- Example:
{ ‘message’: {‘field_errors’: [‘native-name-1’]} }
Example Usage:
>>> from eco_connect import FactsService >>> import pandas as pd >>> facts_service = FactsService() >>> data = pd.DataFrame(data=[['2017-12-20 00:00', 1, 'native-name-1'], ['2017-12-21 00:00', 2, 'native-name-2']], columns=['fact_time', 'fact_value', 'native_name']) >>> fs.put_facts(building_id=26, data=data) {'data': {'building_id': 26, 'max_process_timestamp': '2017-12-21 00:00', 'min_process_timestamp': '2017-12-21 00:00', 'records_stored': 1}, 'message': {'field_errors': ['native-name-1']}}
get_point_mapping¶
-
FactsService.
get_point_mapping
(building_id, equipment_names=[], equipment_types=[], point_classes=[], eco_point_ids=[], display_names=[], native_names=[], point_class_expression=[], native_name_expression=[], display_name_expression=[], is_active=True, result_format='pandas')¶ Return the point mapping for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Point-Mapping/point_mapping_get
Args:
building_id (str): Building id to get facts for.
Example: 1
Kwargs:
equipment_names (list): List of equipment names to filter facts for.
Example: [‘VAV_01’, ‘VAV_02’]
equipment_types (list): List of equipment types to filter facts for.
Example: [‘VAV’, ‘AHU’]
point_classes (list): List of point_classes to filter facts for.
Example: [‘SpaceAirTemperature’, ‘CoolingCoilUnitFeedback’]
eco_point_ids (list): List of eco_point_ids to filter facts for.
Example: [1, 2, 3]
display_names (list): List of display_names to filter facts for.
Example: [‘SpaceTemp’, ‘AirFlow’]
native_names (list): List of native_names to filter facts for.
Example: [‘name-1’, ‘name-2’]
point_class_expression (list): List of equipment / equipment type + point class regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited. for.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
native_name_expression (list): List of native-name regex expressions to filter facts.
Example: [‘nam.*’, ‘nati-.*’]
display_name_expression (list): List of equipment / equipment type + display name regex expressions to filter facts. Equipment / equipment type and point class regex expressions are space delimited.
Example: [‘VAV.* SpaceAirTemperature’, ‘AHU Space.*’]
is_active (boolean): Return the active / in-active native-names
Example: True
result_format (str): Output format type. (Pandas, tuple, csv, json)
Example: ‘pandas’
- Returns:
(DataFrame or list or csv or json depending on the requested result format).
DataFrame Example:
index eco_point_id display_name native_name point_class equipment_name equipment_type last_updated ===== ================ ============ ============ ========================= ============== ================ ======================= 0 192 'SpaceTemp' 'name-1' 'SpaceAirTemperature' 'VAV-01' 'VAV' "2017-12-07T19:04:18Z" 1 304 'CoolingCoil' 'name-2' 'CoolingCoilUnitFeedback' 'AHU-01' 'AHU' "2017-12-07T19:04:18Z"
Json Example:
{ "data": [ { "equipment_name": "VAV_01", "equipment_type": "VAV", "native_name": "Native-Name-1", "eco_point_id": 3, "point_class": "SpaceAirTemperature", "native_name_id": 1283, "display_name": "SpaceTemp", "last_updated": "2017-11-17T17:44:04Z" }, { "equipment_name": "VAV_02", "equipment_type": "VAV", "native_name": "Native-Name-1", "eco_point_id": 4, "point_class": "SpaceAirTemperature", "native_name_id": 1283, "display_name": "SpaceTemp", "last_updated": "2017-11-17T17:44:04Z" } ] }
Csv Example:
'point_class,display_name,native_name, equipment_type,equipment_name,eco_point_id SpaceAirTemperature,SpaceTemp, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T,VAV,VAV_301,85743, SpaceAirTemperatureSetPointWhenCooling, SpaceTempSetPoint_ActualCooling, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET,VAV,VAV_301, 85744, SpaceAirTemperatureSetPointWhenHeating, SpaceTempSetPoint_ActualHeating, UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.AHTG-SET,VAV,VAV_301,85745'
Tuple Example:
[response_tuple(point_class='SpaceAirTemperature', display_name='SpaceTemp', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85743), response_tuple(point_class='SpaceAirTemperatureSetPointWhenCooling', display_name='SpaceTempSetPoint_ActualCooling', native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', equipment_type='VAV', equipment_name='VAV_301', eco_point_id=85744)]
Note
And invalid api request will return back the raw api response.
- Example:
{“message”: {“NoData”: “No data for provided parameters”}}
Example Usage:
>>> from eco_connect import FactsService >>> facts_service = FactsService() >>> facts_service.get_point_mapping(building_id=26, result_format='json') { "data": [ { "equipment_name": "VAV_01", "equipment_type": "VAV", "native_name": "Native-Name-1", "eco_point_id": 3, "point_class": "SpaceAirTemperature", "native_name_id": 1283, "display_name": "SpaceTemp", "last_updated": "2017-11-17T17:44:04Z" }, { "equipment_name": "VAV_02", "equipment_type": "VAV", "native_name": "Native-Name-1", "eco_point_id": 4, "point_class": "SpaceAirTemperature", "native_name_id": 1283, "display_name": "SpaceTemp", "last_updated": "2017-11-17T17:44:04Z" } ] }
get_native_names¶
-
FactsService.
get_native_names
(building_id, native_name=None, is_active=True, result_format='pandas')¶ Return the native names for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Native-Names/native_names_get
Args:
building_id (str): Building id to get facts for.
Example: 1
Kwargs:
native_name (string): Filter on this native_name
Example: ‘native-name-1’
is_active (boolean): Return the active / in-active native-names
Example: True
result_format (str): Output format type. (Pandas, tuple, csv, json)
Example: ‘pandas’
- Returns:
(DataFrame or list or csv or json depending on the requested result format).
DataFrame Example:
index native_name_id native_name native_name expecting_data origin trend_period last_updated ===== ================ ============ ============ ================ ============== ================ ==================== 0 192 'name-1' 'name-1' True 'CLIENT' 300 seconds 2017-12-19T20:36:36Z 1 304 'name-2' 'name-2' False 'ECORITHM' 300 seconds 2017-12-19T20:36:36Z
Json Example:
{'data': [{'expecting_data': True, 'last_updated': '2017-12-19T20:36:36Z', 'native_name': 'UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', 'native_name_id': 88826, 'origin': 'CLIENT', 'trend_period': '300 seconds', 'trend_type': 'INTERVAL'}, {'expecting_data': True, 'last_updated': '2017-12-19T20:36:36Z', 'native_name': 'UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', 'native_name_id': 88827, 'origin': 'CLIENT', 'trend_period': '300 seconds', 'trend_type': 'INTERVAL'} }
Csv Example:
'native_name_id,native_name,expecting_data, origin,trend_type,trend_period,last_updated 88826,UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T, True,CLIENT,INTERVAL,300 seconds,2017-12-19T20:36:36Z, 88827,UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET,True, CLIENT,INTERVAL,300 seconds,2017-12-19T20:36:36Z'
Tuple Example:
[response_tuple(native_name_id=88826, native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', expecting_data=True, origin='CLIENT', trend_type='INTERVAL', trend_period='300 seconds', last_updated='2017-12-19T20:36:36Z'), response_tuple(native_name_id=88827, native_name='UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', expecting_data=True, origin='CLIENT', trend_type='INTERVAL', trend_period='300 seconds', last_updated='2017-12-19T20:36:36Z')
Note
And invalid api request will return back the raw api response.
- Example:
{“message”: {“NoData”: “No data for provided parameters”}}
Example Usage:
>>> from eco_connect import FactsService >>> facts_service = FactsService() >>> facts_service.get_native_names(building_id=26, result_format='json') {'data': [{'expecting_data': True, 'last_updated': '2017-12-19T20:36:36Z', 'native_name': 'UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ZN-T', 'native_name_id': 88826, 'origin': 'CLIENT', 'trend_period': '300 seconds', 'trend_type': 'INTERVAL'}, {'expecting_data': True, 'last_updated': '2017-12-19T20:36:36Z', 'native_name': 'UCSB/275/VAV_301/NAE11/N2-2.275-VAV-301.ACLG-SET', 'native_name_id': 88827, 'origin': 'CLIENT', 'trend_period': '300 seconds', 'trend_type': 'INTERVAL'} }
get_equipment¶
-
FactsService.
get_equipment
(building_id, equipment_name=None, equipment_type=None, is_active=True, result_format='pandas')¶ Return the equipments for a building.
API documentation: http://facts.prod.ecorithm.com/api/v1/#/Equipment/equipment_get
Args:
building_id (str): Building id to get facts for.
Example: 1
Kwargs:
equipment_name (string): Equipment name to filter on.
Example: ‘VAV_01’
equipment_type (string): equipment_type to filter on.
Example: ‘AHU’
is_active (boolean): Return the active / in-active native-names
Example: True
result_format (str): Output format type. (Pandas, tuple, csv, json)
Example: ‘pandas’
- Returns:
(DataFrame or list or csv or json depending on the requested result format).
DataFrame Example:
index equipment_id equipment_type equipment_name last_updated ===== ================ ============== ================ ===================== 0 192 'AHU' 'VAV-01' '2017-12-07T19:04:18Z' 1 304 'VAV' 'AHU-01' '2017-12-07T19:04:18Z'
Json Example:
{'data': [{'equipment_id': 1092, 'equipment_name': 'AHU_G1', 'equipment_type': 'AHU', 'last_updated': '2017-12-07T19:04:18Z'}, {'equipment_id': 1093, 'equipment_name': 'AHU_G1_ExhaustFan', 'equipment_type': 'AHU', 'last_updated': '2017-12-07T19:04:18Z'}] }
Csv Example:
'equipment_id,equipment_type,equipment_name,last_updated 1092,AHU,AHU_G1,2017-12-07T19:04:18Z 1094,AHU,AHU_G1_ReturnFanVFD,2017-12-07T19:04:18Z
Tuple Example:
[response_tuple(equipment_id=1092, equipment_type='AHU', equipment_name='AHU_G1', last_updated='2017-12-07T19:04:18Z'), response_tuple(equipment_id=1093, equipment_type='AHU', equipment_name='AHU_G1_ExhaustFan', last_updated='2017-12-07T19:04:18Z')]
Note
And invalid api request will return back the raw api response.
- Example:
{“message”: {“NoData”: “No data for provided parameters”}}
Example Usage:
>>> from eco_connect import FactsService >>> facts_service = FactsService() >>> facts_service.get_equipment(building_id=26, result_format='json') {'data': [{'equipment_id': 1092, 'equipment_name': 'AHU_G1', 'equipment_type': 'AHU', 'last_updated': '2017-12-07T19:04:18Z'}, {'equipment_id': 1093, 'equipment_name': 'AHU_G1_ExhaustFan', 'equipment_type': 'AHU', 'last_updated': '2017-12-07T19:04:18Z'}] }