Initial testing commit for JSON export

This commit is contained in:
benni336
2022-03-23 23:18:50 +01:00
parent 18cf401889
commit e6e032da8a
+51
View File
@@ -0,0 +1,51 @@
from http.server import BaseHTTPRequestHandler, HTTPServer
import JSON
from threading import Thread
from version import __version__
import logging
class export_webserver(object):
html_body = "Pending Data Retrieval"
def __init__(self):
False
# Configure Webserver
def configure(self, config, inverter):
try:
self.webServer = HTTPServer(('', config.get('port',8080)), MyServer)
self.t = Thread(target=self.webServer.serve_forever)
self.t.daemon = True # Make it a deamon, so if main loop ends the webserver dies
self.t.start()
logging.info(f"JSON-Export: Configured")
except Exception as err:
logging.error(f"JSON-Export: Error: {err}")
return False
return True
def publish(self, inverter):
json_cache={"registers":{}, "client_config":{}, "inverter_config":{}}
for register, value in inverter.latest_scrape.items():
json_cache["registers"][str(inverter.getRegisterAddress(register))]={"register": str(register), "value":str(value), unit: str(inverter.getRegisterUnit(register))}
# Client Config
for setting, value in inverter.client_config.items():
json_cache["client_config"][str(setting)]=str(value)
# Inverter Config
for setting, value in inverter.inverter_config.items():
json_cache["inverter_config"][str(setting)]=str(value)
export_webserver.html_body = json.dump(json_cache)
return True
class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(bytes(export_webserver.html_body, "utf-8"))
def log_message(self, format, *args):
pass