From 068976ebc42e7a85497507e49f23d94343b188c2 Mon Sep 17 00:00:00 2001 From: fenopy Date: Wed, 3 Jun 2026 14:48:34 -0500 Subject: [PATCH] fix: sending images in notifs --- kobrax_moonraker_bridge.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/kobrax_moonraker_bridge.py b/kobrax_moonraker_bridge.py index 0025d1b..0f9330e 100644 --- a/kobrax_moonraker_bridge.py +++ b/kobrax_moonraker_bridge.py @@ -948,7 +948,6 @@ class KobraXBridge: urls_plain = [e["url"] for e in matching if not e.get("include_image")] urls_image = [e["url"] for e in matching if e.get("include_image")] - jpeg_bytes = self.camera_cache.latest_jpeg if urls_image else b"" def _send(): import apprise, os, tempfile @@ -964,12 +963,25 @@ class KobraXBridge: ap2.add(u) attach = None tmppath = None - if jpeg_bytes: - with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as f: - f.write(jpeg_bytes) - tmppath = f.name - attach = apprise.AppriseAttachment() - attach.add(tmppath) + jpeg = self.camera_cache.latest_jpeg + if not jpeg and self.camera_cache._url: + # Camera URL is set but no frame yet — wait briefly (camera may be starting) + deadline = time.monotonic() + 5.0 + while not jpeg and time.monotonic() < deadline: + time.sleep(0.3) + jpeg = self.camera_cache.latest_jpeg + if jpeg: + try: + with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as f: + f.write(jpeg) + tmppath = f.name + attach = apprise.AppriseAttachment() + attach.add(tmppath) + except Exception as e: + log.warning(f"Kamera-Anhang fehlgeschlagen: {e}") + attach = None + else: + log.debug("Bild-Benachrichtigung ohne Anhang (kein Kamera-Frame verfügbar)") ap2.notify(title=title, body=body, attach=attach) if tmppath: try: