add ha integration and added entity state api endpoint
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import json
|
||||
import os
|
||||
from flask import Flask
|
||||
from flask import jsonify
|
||||
@@ -6,6 +7,8 @@ from flask_cors import CORS
|
||||
from flask_cors import cross_origin
|
||||
from check_update import check_for_update
|
||||
|
||||
from data_class import LogEntry
|
||||
|
||||
|
||||
class API:
|
||||
"""
|
||||
@@ -48,6 +51,15 @@ class API:
|
||||
workdir, filename = os.path.split(os.path.abspath(__file__))
|
||||
return send_from_directory(f'{workdir}/data', path)
|
||||
|
||||
@self.app.route('/api/state/<path:path>')
|
||||
@cross_origin()
|
||||
def serve_entity_state(path):
|
||||
workdir, filename = os.path.split(os.path.abspath(__file__))
|
||||
state = json.load(open(f'{workdir}/data/{path}', mode='r'))
|
||||
print(state['measurements'])
|
||||
entity_state = LogEntry(data=state)
|
||||
return jsonify(entity_state.to_json())
|
||||
|
||||
@self.app.route('/charts')
|
||||
@cross_origin()
|
||||
def serve_index():
|
||||
|
||||
@@ -37,3 +37,28 @@ class Data:
|
||||
"battery_volt": self.battery_volt,
|
||||
"count": self.count,
|
||||
}
|
||||
|
||||
|
||||
class LogEntry:
|
||||
def __init__(self, data):
|
||||
self.name = data['name']
|
||||
self.room = data['room']
|
||||
self.timestamp = data['measurements'][:-1]['timestamp']
|
||||
self.temperature = data['measurements'][:-1]['temperature']
|
||||
self.humidity = data['measurements'][:-1]['humidity']
|
||||
self.battery_percent = data['measurements'][:-1]['battery_percent']
|
||||
self.battery_volt = data['measurements'][:-1]['battery_volt']
|
||||
self.rssi = data['measurements'][:-1]['rssi']
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"name": self.name,
|
||||
"room": self.room,
|
||||
"timestamp": self.timestamp,
|
||||
"temperature": self.temperature,
|
||||
"humidity": self.humidity,
|
||||
"battery_percent": self.battery_percent,
|
||||
"battery_volt": self.battery_volt,
|
||||
"rssi": self.rssi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user