Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [gelöst]VIS: Video Stream nur starten wenn View sichtbar ist

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst]VIS: Video Stream nur starten wenn View sichtbar ist

Geplant Angeheftet Gesperrt Verschoben Visualisierung
viscamera
3 Beiträge 1 Kommentatoren 698 Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BananaJoeB Offline
    BananaJoeB Offline
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von BananaJoe
    #1

    Hallo an euch,

    Ich hab in VIS in einer View den Videostream meiner Haustürkamera eingebunden. Die Kamera kann nur RTSP - weshalb ich nicht den Stream direkt von der Kamera nehmen sondern von meinem BlueIris Server.
    Eingebunden ist das Live-Bild per HTML Widget (Basic HTML) mit folgendem Inhalt:

    <img src="http://192.168.1.80:4481/mjpg/Cam215/video.mjpg" width="981" height="734">
    

    Das funktioniert super, das Bild ist sofort da, klappt auch auf dem Tablet mit dem Fully Kiosk Browser ...

    Nun ist mir aufgefallen warum: Sobald das Projekt (nicht die View) in VIS gestartet ist, wird das Bild gestreamt - egal ob die Seite mit dem View sichtbar ist oder nicht.

    Nun ja, mein BlueIris Server dümpelt mit all seinen Nebenaufgaben so bei 10% rum ... in dem Moment wo der Videostream abgerufen wird sind es 30 bis 40% mehr da BlueIris dann das Video passend kodiert und sendet.

    Wenn ich dann wie geplant meinen anderen 8 Kameras anbinde geht das ganze in die Knie.

    Ich hätte gerne das der Videostream erst startet wenn ich auch die Seite mit dem View aufrufe - und wenn ich die Seite wechsele soll der Stream bitte wieder enden.

    Ich meine das ich mal in einer Demo gesehen habe das es mit einem Dialog gelöst wurde - der nur das Vorschaubild zeigt und bei einem Klick das Live-Bild.

    Aber - ich habe auch hinbekommen das wenn es an der Haustür klingelt mein Tablet den Bildschirm anzeigt und auf die View wechselt und das Live-Bild zeigt. Das hätte ich gern weiter so, sprich mit "sichtbarwerden" des Views soll auch das Bild zu sehen sein. Ich fände es blöd wenn man dann erst noch klicken muss.

    Danke für jeden Tipp,
    Joe

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • BananaJoeB BananaJoe

      Hallo an euch,

      Ich hab in VIS in einer View den Videostream meiner Haustürkamera eingebunden. Die Kamera kann nur RTSP - weshalb ich nicht den Stream direkt von der Kamera nehmen sondern von meinem BlueIris Server.
      Eingebunden ist das Live-Bild per HTML Widget (Basic HTML) mit folgendem Inhalt:

      <img src="http://192.168.1.80:4481/mjpg/Cam215/video.mjpg" width="981" height="734">
      

      Das funktioniert super, das Bild ist sofort da, klappt auch auf dem Tablet mit dem Fully Kiosk Browser ...

      Nun ist mir aufgefallen warum: Sobald das Projekt (nicht die View) in VIS gestartet ist, wird das Bild gestreamt - egal ob die Seite mit dem View sichtbar ist oder nicht.

      Nun ja, mein BlueIris Server dümpelt mit all seinen Nebenaufgaben so bei 10% rum ... in dem Moment wo der Videostream abgerufen wird sind es 30 bis 40% mehr da BlueIris dann das Video passend kodiert und sendet.

      Wenn ich dann wie geplant meinen anderen 8 Kameras anbinde geht das ganze in die Knie.

      Ich hätte gerne das der Videostream erst startet wenn ich auch die Seite mit dem View aufrufe - und wenn ich die Seite wechsele soll der Stream bitte wieder enden.

      Ich meine das ich mal in einer Demo gesehen habe das es mit einem Dialog gelöst wurde - der nur das Vorschaubild zeigt und bei einem Klick das Live-Bild.

      Aber - ich habe auch hinbekommen das wenn es an der Haustür klingelt mein Tablet den Bildschirm anzeigt und auf die View wechselt und das Live-Bild zeigt. Das hätte ich gern weiter so, sprich mit "sichtbarwerden" des Views soll auch das Bild zu sehen sein. Ich fände es blöd wenn man dann erst noch klicken muss.

      Danke für jeden Tipp,
      Joe

      BananaJoeB Offline
      BananaJoeB Offline
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von BananaJoe
      #2

      Ich hab nun noch diverses ausprobiert - von ausblenden über andere Widgets - es ist immer das gleiche.
      Auch wenn das Video / der Stream nicht sichtbar ist läuft er schon im Hintergrund.

      Das ist nun auch doof weil dadurch natürlich auf meinem Tablet die ganze Zeit ein Datenstrom über WLAN läuft der völlig unnötig ist.

      Testweise habe ich auf die "Standbild was ich alle 3 Sekunden aktualisiere" Methode umgestellt. Die funktioniert wiederum mit BlueIris sofort - aber es "blinkt" dann immer da der Bereich mit dem Bild beim laden kurz den Hintergrund zeigt.
      Das Bild kann ich mir auch direkt von der Kamera holen - aber dann klappt das mit dem Aktualisieren nicht (warum auch immer).

      Ich müsste also VIS dazu bringen, das Widget erst zu starten wenn die View auch zu sehen ist - und zu beenden wenn der View wieder gewechselt wurde.

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      BananaJoeB 1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        Ich hab nun noch diverses ausprobiert - von ausblenden über andere Widgets - es ist immer das gleiche.
        Auch wenn das Video / der Stream nicht sichtbar ist läuft er schon im Hintergrund.

        Das ist nun auch doof weil dadurch natürlich auf meinem Tablet die ganze Zeit ein Datenstrom über WLAN läuft der völlig unnötig ist.

        Testweise habe ich auf die "Standbild was ich alle 3 Sekunden aktualisiere" Methode umgestellt. Die funktioniert wiederum mit BlueIris sofort - aber es "blinkt" dann immer da der Bereich mit dem Bild beim laden kurz den Hintergrund zeigt.
        Das Bild kann ich mir auch direkt von der Kamera holen - aber dann klappt das mit dem Aktualisieren nicht (warum auch immer).

        Ich müsste also VIS dazu bringen, das Widget erst zu starten wenn die View auch zu sehen ist - und zu beenden wenn der View wieder gewechselt wurde.

        BananaJoeB Offline
        BananaJoeB Offline
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von BananaJoe
        #3

        Ich habe es nun auf folgendem Weg selbst gelöst bekommen,
        hier meine Lösung als Proof-of-Concept:

        Teil 1: Datenpunkte

        Zunächst habe ich unter Objekte in der Admin-Oberfläche 3 Datenpunkte angelegt:
        2aca83c8-7ce0-449c-a0b6-30377e87b04f-image.png
        javascript.0.zTEST.Cam215-LiveView enthält als Text den Link zum Live-Video-Stream:

        http://192.168.1.80:4481/mjpg/Cam215/video.mjpg width="981" height="734"
        

        javascript.0.zTEST.Cam215-StaticPicture enthält als Text den Link zum Standbild:

        http://192.168.1.80:4481/image/Cam215?h=732&w=983
        

        javascript.0.zTEST.Cam215-Link4VIS hat als Startwert ebenfalls den vorherigen Link zum Standbild

        Teil 2: VIS Widget

        Ich habe eine View erstellt, diese heißt TEST_CameraV2 und gehört zum Projekt main.
        Im VIS-Editor habe ich auf meiner View ein basic - HTML Widget eingefügt. Unter Allgemein - HTML habe ich folgendes eingetragen:

        <img src="{javascript.0.zTEST.Cam215-Link4VIS}">
        

        Also auf den Wert des Datenpunktes verwiesen.
        Im VIS-Editor wird da erst einmal nichts angezeigt - wenn Ihr die View aber dann betrachtet wird das Bild eingefügt.

        Teil 3: Skript

        Nun kommt noch ein Blocky-Skript zum Einsatz:
        a9238fd8-72a8-4390-a06f-255ce56268bb-image.png

        on({id: "vis.0.control.data"/*Data for control vis*/, change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (value == 'main/TEST_CameraV2') {
            setState("javascript.0.zTEST.Cam215-Link4VIS"/*Cam215-Link4VIS*/, getState("javascript.0.zTEST.Cam215-LiveView").val, true);
          } else {
            setState("javascript.0.zTEST.Cam215-Link4VIS"/*Cam215-Link4VIS*/, getState("javascript.0.zTEST.Cam215-StaticPicture").val, true);
          }
        });
        

        Erklärung:

        In der View ist zunächst immer nur ein Standbild der Kamera.
        Und das Skript hängt am Datenpunkt

        vis.0.control.data
        

        und reagiert sobald dieser sich verändert. In diesem Datenpunkt steht nämlich immer die aktuell aktive View.
        Stellt das Skript nun fest das die aktive View main/TEST_CameraV2 ist so ändert es den Datenpunkt für das HTML-Widget und setzt dort die URL des Live-Video-Streams ein - worauf VIS auch sofort reagiert.
        Wird die Ansicht wieder verlassen ändert sich ja auch der Wert des aktiven Views - das Skript springt wieder an und setzt wieder den Wert des statischen Bildes ein.

        Das funktioniert bei mir - wenn ich die View anzeigen lassen so geht die CPU-Last auf meinem BlueIris-Server hoch, wenn ich die View wieder wechsle so dauert es etwa 10 Sekunden und die Last geht wieder runter. Ich nehme an der BlueIris-Webserver braucht einen Moment bis er merkt das keiner mehr zuhört.
        Aber damit kann ich gut leben.
        Zudem kann ich mir auf Basis dieser Lösung eine View mit allen IP-Kameras bauen.

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        1 Antwort Letzte Antwort
        3
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        555

        Online

        32.6k

        Benutzer

        82.2k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe