Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # przed uruchomieniem programu nalezy w tym samym folderze utworzyć następujące pliki:
- # - HA_API_automations.json - pusty plik, w którym będzie zapisywana lista automatyzacji
- # - HA_API_KEY.txt - plik z wygenerowanym w HA "Long-Lived Access Tokens"
- from requests import get
- import json
- import os
- import datetime
- end_time = datetime.datetime.now()
- start_time = end_time - datetime.timedelta(days=1)
- # definicja END_POINT w API HA
- END_POINT = "history/period/{}?end_time={}".format(start_time, end_time)
- # adres serwera z HA
- url = "http://192.168.1.5:8123/api/{}".format(END_POINT)
- # otwieramy plik i czytamy "Long-Lived Access Tokens" wygenerowany w HA
- # Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- f = open("HA_API_KEY.txt", "r")
- HA_API_KEY = f.readline()
- f.close()
- headers={
- "Authorization": HA_API_KEY,
- "content-type": "application/json"
- }
- response = get(url, headers=headers)
- # zapis odpowiedzi do formatu JSON
- response_json = response.json()
- table = []
- dict = {}
- for x in range(len(response_json)):
- if "automation." in response_json[x][0]["entity_id"]:
- dict = {
- "entity_name": response_json[x][0]["entity_id"],
- "state": response_json[x][0]["state"],
- "last_triggered": response_json[x][0]["attributes"]["last_triggered"][0:19].replace("T", " ")
- }
- table.append(dict)
- # utworzenie posortowanej po dacie liście encji "automation" z danego okresu
- new_table = sorted(table, key=lambda k: datetime.datetime.strptime(k["last_triggered"], "%Y-%m-%d %H:%M:%S"), reverse=True)
- #zapis wygenerowanej listy do pliku
- json_object = json.dumps(new_table, indent = 4)
- with open("HA_API_automations.json", "w") as outfile:
- outfile.write(json_object)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement