Files
Brancheneinstufung2/ARCHIVE_legacy_scripts/debug_screenshot.py
Floke d021b6b71c refactor: [30388f42] Strukturiere Root-Skripte thematisch neu
- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten.
- Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in .
- Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in .
- Archiviert eindeutig veraltete und ungenutzte Skripte in .
- Die zentralen Helfer  und  bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
2026-03-06 10:16:08 +00:00

50 lines
1.7 KiB
Python

import asyncio
import os
import logging
from pyppeteer import launch
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Token direkt aus der Umgebungsvariable holen
HA_TOKEN = os.environ.get("HA_ACCESS_TOKEN")
# URL wird dynamisch mit dem Token zusammengesetzt
HA_URL = f"http://192.168.178.131:8123/lovelace/solar?kiosk&auth_callback=1&access_token={HA_TOKEN}"
OUTPUT_FILE = "/screenshots/final_screenshot.png"
async def main():
if not HA_TOKEN:
logging.error("Fehler: Umgebungsvariable HA_ACCESS_TOKEN nicht gefunden!")
return
logging.info("Starte Puppeteer-Browser...")
browser = await launch(
executablePath='/usr/bin/chromium',
headless=True,
args=['--no-sandbox', '--disable-setuid-sandbox']
)
page = await browser.newPage()
await page.setViewport({'width': 1280, 'height': 1024})
try:
logging.info(f"Navigiere direkt zur authentifizierten URL...")
await page.goto(HA_URL, {'waitUntil': 'networkidle0', 'timeout': 60000})
logging.info("Seite geladen. Warte 15 Sekunden auf das finale Rendering...")
await asyncio.sleep(15)
logging.info("Erstelle Screenshot...")
await page.screenshot({'path': OUTPUT_FILE})
logging.info(f"Screenshot erfolgreich unter {OUTPUT_FILE} gespeichert.")
except Exception as e:
logging.error(f"Ein Fehler ist aufgetreten: {e}", exc_info=True)
await page.screenshot({'path': '/screenshots/debug_error_final.png'})
finally:
logging.info("Schließe Browser.")
await browser.close()
if __name__ == '__main__':
asyncio.run(main())