add ha integration and added entity state api endpoint

This commit is contained in:
2024-09-12 01:04:25 +02:00
parent 249b111e67
commit 932168125c
6 changed files with 147 additions and 0 deletions

View File

@@ -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():

View File

@@ -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
}