support PostgreSQL database
This commit is contained in:
@@ -47,6 +47,11 @@ Wymagane parametry:
|
||||
* ENERGA_USERNAME - nazwa użytkownika w aplikacji Energa Mój licznik
|
||||
* ENERGA_PASSWORD - hasło użytkownika w aplikacji Energa Mój licznik
|
||||
|
||||
Opcjonalne parametry:
|
||||
|
||||
* POSTGRESQL_CONNSTRING - namiar na bazę PostgreSQL do przechowywania odczytów;
|
||||
format opisany w [dokumentacji PGSQL](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING-URIS)
|
||||
(przykładowo `postgresql://uzytkownik:haslo@serwer/mojlicznik`)
|
||||
|
||||
## Konfiguracja sensorów
|
||||
Do HA możesz dodać sensory, które zawierają informacje udostępniane przez API
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from peewee import SqliteDatabase
|
||||
from peewee import SqliteDatabase, PostgresqlDatabase
|
||||
from flask import Flask, jsonify, request, redirect, url_for, abort
|
||||
from waitress import serve
|
||||
#from datetime
|
||||
@@ -9,7 +9,11 @@ import urllib.parse
|
||||
|
||||
logger = logging.getLogger("energaMeter.api")
|
||||
|
||||
|
||||
if postgresql_connstring := os.getenv("POSTGRESQL_CONNSTRING"):
|
||||
from psycopg2.extensions import parse_dsn
|
||||
db_name = parse_dsn(postgresql_connstring)['dbname']
|
||||
db = PostgresqlDatabase(db_name, dsn=postgresql_connstring)
|
||||
else:
|
||||
path = os.path.dirname(os.path.abspath(__file__))
|
||||
db_file = 'data/database.sqlite'
|
||||
db = SqliteDatabase(os.path.join(path, db_file))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from peewee import SqliteDatabase
|
||||
from peewee import SqliteDatabase, PostgresqlDatabase
|
||||
from datetime import datetime, timedelta, date
|
||||
import calendar, requests, re, time, json, os, logging
|
||||
import http.cookiejar as cookiejar
|
||||
@@ -10,6 +10,13 @@ import urllib.parse
|
||||
|
||||
logger = logging.getLogger("energaMeter")
|
||||
|
||||
if postgresql_connstring := os.getenv("POSTGRESQL_CONNSTRING"):
|
||||
from psycopg2.extensions import parse_dsn
|
||||
db_name = parse_dsn(postgresql_connstring)['dbname']
|
||||
db_host = parse_dsn(postgresql_connstring)['host']
|
||||
db = PostgresqlDatabase(db_name, dsn=postgresql_connstring)
|
||||
logger.info(f"Używam bazy PostgreSQL „{db_name}” na {db_host}")
|
||||
else:
|
||||
path = os.path.dirname(os.path.abspath(__file__))
|
||||
db_file = 'data/database.sqlite'
|
||||
db = SqliteDatabase(os.path.join(path, db_file))
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user