diff options
author | jwansek <eddie.atten.ea29@gmail.com> | 2023-10-07 00:11:46 +0100 |
---|---|---|
committer | jwansek <eddie.atten.ea29@gmail.com> | 2023-10-07 00:11:46 +0100 |
commit | 5d6668fda42ed9e8ed051e00fb0b64504aa23971 (patch) | |
tree | 074487a73e42f78acf9d24663c6d1c00e1f51617 | |
parent | 7b6b13f9f4c2ccae9a16db64f1f37b21bd4ba519 (diff) | |
download | power.eda.gay-5d6668fda42ed9e8ed051e00fb0b64504aa23971.tar.gz power.eda.gay-5d6668fda42ed9e8ed051e00fb0b64504aa23971.zip |
Made the database hhost be in the config file
-rw-r--r-- | .dockerignore | 1 | ||||
-rw-r--r-- | database.py | 7 | ||||
-rw-r--r-- | devices.py | 15 | ||||
-rw-r--r-- | docker-compose.yml | 9 | ||||
-rw-r--r-- | requirements.txt | 2 |
5 files changed, 19 insertions, 15 deletions
diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f827b66 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +db.env diff --git a/database.py b/database.py index 23e06f0..846da4d 100644 --- a/database.py +++ b/database.py @@ -4,7 +4,7 @@ import os @dataclass
class PowerDatabase:
- host: str = "db"
+ host: str = None
user: str = "root"
passwd: str = None
db: str = "power"
@@ -13,6 +13,9 @@ class PowerDatabase: def __enter__(self):
if self.passwd is None:
self.passwd = os.environ["MYSQL_ROOT_PASSWORD"]
+
+ if self.host is None:
+ self.host = os.environ["MYSQL_HOST"]
try:
self.__connection = self.__get_connection()
@@ -112,7 +115,7 @@ if __name__ == "__main__": dotenv.load_dotenv(dotenv_path = "db.env")
host = "srv.athome"
else:
- host = "db"
+ host = None
with PowerDatabase(host = host) as db:
print(db.get_tasmota_devices())
@@ -11,7 +11,7 @@ if not os.path.exists(os.path.join("/app", ".docker")): dotenv.load_dotenv(dotenv_path = "db.env") HOST = "srv.athome" else: - HOST = "db" + HOST = None async def get_energy_for(host, username = None, password = None): device = await tasmotadevicecontroller.TasmotaDevice().connect(host, username, password) @@ -39,15 +39,22 @@ def poll_watt_all(): asyncio.set_event_loop(loop) with database.PowerDatabase(host = HOST) as db: for host, username, password in db.get_tasmota_devices(): - asyncio.run(poll_watt_for(db, host, username, password)) + try: + asyncio.run(poll_watt_for(db, host, username, password)) + except: + print("Retrying %s..." % host) + asyncio.run(poll_watt_for(db, host, username, password)) def poll_kwh_all(): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) with database.PowerDatabase(host = HOST) as db: for host, username, password in db.get_tasmota_devices(): - asyncio.run(poll_yesterday_kwh_for(db, host, username, password)) - + try: + asyncio.run(poll_yesterday_kwh_for(db, host, username, password)) + except: + print("Retrying %s..." % host) + asyncio.run(poll_yesterday_kwh_for(db, host, username, password)) if __name__ == "__main__": if sys.argv[1] == "daily": diff --git a/docker-compose.yml b/docker-compose.yml index a752a0f..a387601 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,12 +8,3 @@ services: image: jwansek/power
env_file:
- ./db.env
- external_links:
- - mariadb:db
- networks:
- - db-network
-
-networks:
- db-network:
- external:
- name: mariadb
\ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ec38b64..d15029f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ tasmotadevicecontroller==0.0.8 aiohttp==3.8.3 pymysql +python-dotenv + |