40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import requests
|
|
import pandas as pd
|
|
from pydantic_settings import BaseSettings
|
|
|
|
class Settings(BaseSettings):
|
|
|
|
token: str = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
entity_id: str = "a2538791-5723-42f2-af2a-a134c95ecba1"
|
|
attr_name: str = "SolarPanel1"
|
|
attr_type: str = "Number"
|
|
|
|
from_date: str = "2024-12-19T15:44:34Z"
|
|
to_date: str = "2024-12-20T15:44:34Z"
|
|
|
|
limit: int = 100
|
|
|
|
config = Settings()
|
|
|
|
url = f'https://api.panoptis.finot.cloud/historical/v1/entities/{config.entity_id}/attrs/{config.attr_name}?fromDate={config.from_date}&toDate={config.to_date}&lastN={config.limit}'
|
|
|
|
headers = {
|
|
'Content-Type': 'application/json',
|
|
'User-Agent': 'Apidog/1.0.0 (https://apidog.com)',
|
|
'X-Tenant': 'tenant1',
|
|
'Authorization': f'Bearer {config.token}'
|
|
}
|
|
|
|
json_response = requests.request("GET", url, headers=headers).json()
|
|
|
|
if json_response.get("status") != 200:
|
|
print(json_response)
|
|
else:
|
|
try:
|
|
data = {'dates': json_response.get("result").get("index"), 'values': json_response.get("result").get("values")}
|
|
print(pd.DataFrame(data))
|
|
except ValueError:
|
|
print(json_response)
|
|
|
|
|