Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
# 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)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)