dinge getan
This commit is contained in:
parent
a651257b3b
commit
7bf9d7e5ae
@ -1 +1,2 @@
|
||||
TAPO ADMIN: vT6Vsd^p
|
||||
TAPO ADMIN: vT6Vsd^p
|
||||
Admin-PW: 744563017196
|
@ -32,8 +32,6 @@ app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7)
|
||||
# Steckdosen-Konfiguration
|
||||
TAPO_USERNAME = os.environ.get('TAPO_USERNAME')
|
||||
TAPO_PASSWORD = os.environ.get('TAPO_PASSWORD')
|
||||
# SOCKET_DEVICES Format: {"192.168.1.100": {"number": "1"}, "192.168.1.101": {"number": "2"}, ...}
|
||||
SOCKET_DEVICES = json.loads(os.environ.get('SOCKET_DEVICES', '{}'))
|
||||
|
||||
# Logging
|
||||
if not os.path.exists('logs'):
|
||||
@ -108,48 +106,27 @@ def init_db():
|
||||
|
||||
db.commit()
|
||||
|
||||
# Initialisierung der Steckdosen
|
||||
def init_sockets():
|
||||
"""
|
||||
Initialisiert die Steckdosen-Einträge in der Datenbank basierend auf SOCKET_DEVICES Umgebungsvariable.
|
||||
Stellt sicher, dass alle Steckdosen zu Beginn ausgeschaltet sind.
|
||||
"""
|
||||
app.logger.info("Initialisiere Steckdosen aus Umgebungsvariablen")
|
||||
PRINTERS = json.loads(os.environ.get('PRINTERS', '{}'))
|
||||
|
||||
def init_printers():
|
||||
app.logger.info("Initialisiere Drucker aus Umgebungsvariablen")
|
||||
db = get_db()
|
||||
|
||||
# Alle IP-Adressen aus der Datenbank abrufen
|
||||
# Existierende IP-Adressen aus der Datenbank abrufen
|
||||
existing_ips = {row['ip_address']: row['id'] for row in db.execute('SELECT id, ip_address FROM socket').fetchall() if row['ip_address']}
|
||||
|
||||
for ip_address, device_config in SOCKET_DEVICES.items():
|
||||
socket_number = device_config.get('number', '0')
|
||||
name = f"Printer {socket_number}"
|
||||
description = f"3D-Drucker mit SmartPlug (IP: {ip_address})"
|
||||
for printer_name, config in PRINTERS.items():
|
||||
ip_address = config.get('ip')
|
||||
if not ip_address:
|
||||
continue # Überspringe Einträge ohne IP
|
||||
description = f"Drucker mit IP: {ip_address}"
|
||||
|
||||
if ip_address in existing_ips:
|
||||
# Steckdose existiert bereits, nichts zu tun
|
||||
app.logger.info(f"Steckdose mit IP {ip_address} existiert bereits in der Datenbank")
|
||||
socket_id = existing_ips[ip_address]
|
||||
app.logger.info(f"Drucker mit IP {ip_address} existiert bereits in der Datenbank")
|
||||
else:
|
||||
# Steckdose erstellen, wenn sie noch nicht existiert
|
||||
socket = create_socket(name=name, description=description, ip_address=ip_address, status=0)
|
||||
socket_id = socket['id']
|
||||
app.logger.info(f"Neue Steckdose angelegt: {name} mit IP {ip_address}")
|
||||
|
||||
# Steckdose ausschalten, um sicherzustellen, dass alle Steckdosen im AUS-Zustand starten
|
||||
try:
|
||||
turn_off_socket(ip_address)
|
||||
app.logger.info(f"Steckdose {ip_address} wurde beim Start ausgeschaltet")
|
||||
except Exception as e:
|
||||
app.logger.error(f"Fehler beim Ausschalten der Steckdose {ip_address}: {e}")
|
||||
|
||||
# Initialisiere die Datenbank und Steckdosen beim Starten der Anwendung
|
||||
with app.app_context():
|
||||
init_db()
|
||||
# Nur initialisieren, wenn Steckdosen konfiguriert sind
|
||||
if SOCKET_DEVICES:
|
||||
init_sockets()
|
||||
|
||||
app.teardown_appcontext(close_db)
|
||||
# Neuen Drucker eintragen
|
||||
create_socket(name=printer_name, description=description, ip_address=ip_address, status=0)
|
||||
app.logger.info(f"Neuer Drucker angelegt: {printer_name} mit IP {ip_address}")
|
||||
|
||||
# Benutzerverwaltung
|
||||
def get_user_by_id(user_id):
|
||||
@ -1214,4 +1191,8 @@ def stats_page():
|
||||
|
||||
# Server starten
|
||||
if __name__ == '__main__':
|
||||
with app.app_context():
|
||||
init_db()
|
||||
if PRINTERS:
|
||||
init_printers()
|
||||
app.run(debug=True, host='0.0.0.0')
|
Loading…
x
Reference in New Issue
Block a user