Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter onvif camera v1.x.x

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Test Adapter onvif camera v1.x.x

Scheduled Pinned Locked Moved Tester
341 Posts 48 Posters 101.3k Views 49 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Marc_el_KM Offline
    Marc_el_KM Offline
    Marc_el_K
    wrote on last edited by
    #130

    Hallo zusammen,

    ich habe den Fehler gefunden und bitte um Unterstützung:

    In der Kamera steht
    onvif.0.IP_PORT.infos.streamUris.Profile2.snapshotUrl.uri: http://IP:80/api/v1/snap.cgi?chn=0

    Sobald ich Port 80 mit dem hinterlegten Port ändere funktioniert der Link bei mir und ich kann über den Browser Screenshots abfragen.

    Den Pfad im DAtenpunkt zu überschreiben ist sicher keine gute Idee. Wie ist es denn behebar?

    R 1 Reply Last reply
    0
    • Marc_el_KM Marc_el_K

      Hallo zusammen,

      ich habe den Fehler gefunden und bitte um Unterstützung:

      In der Kamera steht
      onvif.0.IP_PORT.infos.streamUris.Profile2.snapshotUrl.uri: http://IP:80/api/v1/snap.cgi?chn=0

      Sobald ich Port 80 mit dem hinterlegten Port ändere funktioniert der Link bei mir und ich kann über den Browser Screenshots abfragen.

      Den Pfad im DAtenpunkt zu überschreiben ist sicher keine gute Idee. Wie ist es denn behebar?

      R Offline
      R Offline
      Rookie50
      wrote on last edited by
      #131

      @marc_el_k in was änderst du :80? Der Datenpunkt wird von der Onvif Discovery zurück gemeldet. Es wird nicht bringen es dort händisch zu ändern...
      Schick doch mal die URL mit der Du Snapshots im Browser anzeigen lassen kannst.

      Marc_el_KM 1 Reply Last reply
      0
      • R Rookie50

        @marc_el_k in was änderst du :80? Der Datenpunkt wird von der Onvif Discovery zurück gemeldet. Es wird nicht bringen es dort händisch zu ändern...
        Schick doch mal die URL mit der Du Snapshots im Browser anzeigen lassen kannst.

        Marc_el_KM Offline
        Marc_el_KM Offline
        Marc_el_K
        wrote on last edited by
        #132

        @rookie50 mit genau dieser Adresse, jedoch nicht mit der 80 sondern meinem hinterlegten Port, den ich in den Kameraeinstellungen hinterlegt habe.

        http://IP:MeinPort/api/v1/snap.cgi?chn=0

        R 1 Reply Last reply
        0
        • Marc_el_KM Marc_el_K

          @rookie50 mit genau dieser Adresse, jedoch nicht mit der 80 sondern meinem hinterlegten Port, den ich in den Kameraeinstellungen hinterlegt habe.

          http://IP:MeinPort/api/v1/snap.cgi?chn=0

          R Offline
          R Offline
          Rookie50
          wrote on last edited by
          #133

          @marc_el_k hast Du ein Problem mit Port 80? Oder warum hast Du dort einen anderen? Stell doch in der Kamera den Port wieder auf 80 und teste es.

          Marc_el_KM 1 Reply Last reply
          0
          • R Rookie50

            @marc_el_k hast Du ein Problem mit Port 80? Oder warum hast Du dort einen anderen? Stell doch in der Kamera den Port wieder auf 80 und teste es.

            Marc_el_KM Offline
            Marc_el_KM Offline
            Marc_el_K
            wrote on last edited by Marc_el_K
            #134

            @rookie50 in den Einstellungen der Kamera kann ich von 8000-9000 einen Port vergeben. Also probiere ich es Mal mit 8000

            Edit: Nein geht nicht. Im Datenpunkt steht wieder "80". Im Browser kein Bild. Ändere ich es ab auf 8000 geht es sofort

            R T 2 Replies Last reply
            0
            • Marc_el_KM Marc_el_K

              @rookie50 in den Einstellungen der Kamera kann ich von 8000-9000 einen Port vergeben. Also probiere ich es Mal mit 8000

              Edit: Nein geht nicht. Im Datenpunkt steht wieder "80". Im Browser kein Bild. Ändere ich es ab auf 8000 geht es sofort

              R Offline
              R Offline
              Rookie50
              wrote on last edited by
              #135

              @marc_el_k ein Screenshot von den Porteinstellungen wäre hilfreich. Die Kameras haben meistens mehrere Ports für unterschiedliche Dienste

              1 Reply Last reply
              0
              • wendy2702W wendy2702

                @tombox sagte in Test Adapter onvif camera v1.0.0:

                Rtsp2Web Docker

                Hi,

                ich versuch das gerade umzusetzen. Habe aber das Problem das sobald ich ein zweites Widget für eine weitere Kamera einfüge beide kein Bild mehr anzeigen.

                Lösche ich das zweite Widget wieder funktioniert das andere wieder.

                Erstes Widget sieht so aus:

                49befe52-9543-44fc-9d3a-9c5de93cd61c-grafik.png

                Zweites dann so mit anderer Channel ID:
                46e7cdfb-1dd5-43fb-9236-24e6398b1ed7-grafik.png

                Script ist hinterlegt:

                34006b2d-776a-4003-9cc6-f67807d2c184-grafik.png

                Was mache ich denn falsch ?

                EDIT: Gibt es im Browser Beschränkungen was die Anzahl der Streams betrifft oder so?

                In Chrome sieht es so aus: der funktionierende ist der zuerst eingefügte Stream
                855fb27f-6f1c-4a3f-9208-c465e8e6e8dd-grafik.png

                In FF kommt das:
                8ecb6a6a-c7b5-44a7-bc18-fc0d8ae493e9-grafik.png

                Wenn ich den zweiten Stream auf einen anderen View mache funktioniert er:
                50d0780b-ca9f-4e7f-ba07-c2d40933b146-grafik.png

                Jemand eine Idee dazu ?

                KnallochseK Do not disturb
                KnallochseK Do not disturb
                Knallochse
                wrote on last edited by
                #136

                @wendy2702 Bei mir auch so. Ab 2. Kamera geht die Anzeige nicht mehr

                HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                wendy2702W 1 Reply Last reply
                0
                • KnallochseK Knallochse

                  @wendy2702 Bei mir auch so. Ab 2. Kamera geht die Anzeige nicht mehr

                  wendy2702W Offline
                  wendy2702W Offline
                  wendy2702
                  wrote on last edited by wendy2702
                  #137

                  @knallochse Danke für die Info.

                  Vielleicht hat ja noch wer eine Lösung dazu oder sind wir die einzigen die mehr als eine Kamera in VIS haben ?

                  Bitte keine Fragen per PN, die gehören ins Forum!

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  T 1 Reply Last reply
                  0
                  • wendy2702W wendy2702

                    @knallochse Danke für die Info.

                    Vielleicht hat ja noch wer eine Lösung dazu oder sind wir die einzigen die mehr als eine Kamera in VIS haben ?

                    T Offline
                    T Offline
                    tombox
                    wrote on last edited by
                    #138

                    @wendy2702 bitte für die zweite Kamera folgendes verwenden

                    <input
                      type="hidden"
                      name="webrtc2-url"
                      id="webrtc2-url"
                      value="http://192.168.0.2:8083/stream/ddbdb583-9f80-4b61-bafa-613aa7a5daa5/channel/0/webrtc"
                    />
                     
                    <video id="webrtc2-video" autoplay muted playsinline controls style="max-width: 100%; max-height: 100%;"></video>
                    
                    setTimeout(function () {
                      function startPlay(videoEl, url) {
                        const webrtc = new RTCPeerConnection({
                          iceServers: [
                            {
                              urls: ["stun:stun.l.google.com:19302"],
                            },
                          ],
                          sdpSemantics: "unified-plan",
                        });
                        webrtc.ontrack = function (event) {
                          console.log(event.streams.length + " track is delivered");
                          videoEl.srcObject = event.streams[0];
                          videoEl.play();
                        };
                        webrtc.addTransceiver("video", { direction: "sendrecv" });
                        webrtc.onnegotiationneeded = async function handleNegotiationNeeded() {
                          const offer = await webrtc.createOffer();
                     
                          await webrtc.setLocalDescription(offer);
                     
                          fetch(url, {
                            method: "POST",
                            body: new URLSearchParams({ data: btoa(webrtc.localDescription.sdp) }),
                          })
                            .then((response) => response.text())
                            .then((data) => {
                              try {
                                webrtc.setRemoteDescription(new RTCSessionDescription({ type: "answer", sdp: atob(data) }));
                              } catch (e) {
                                console.warn(e);
                              }
                            });
                        };
                     
                        const webrtcSendChannel = webrtc.createDataChannel("rtsptowebSendChannel");
                        webrtcSendChannel.onopen = (event) => {
                          console.log(`${webrtcSendChannel.label} has opened`);
                          webrtcSendChannel.send("ping");
                        };
                        webrtcSendChannel.onclose = (_event) => {
                          console.log(`${webrtcSendChannel.label} has closed`);
                          startPlay(videoEl, url);
                        };
                        webrtcSendChannel.onmessage = (event) => console.log(event.data);
                      }
                     
                      const videoEl = document.querySelector("#webrtc2-video");
                      const webrtcUrl = document.querySelector("#webrtc2-url").value;
                     
                      startPlay(videoEl, webrtcUrl);
                    }, 1000);
                    
                    wendy2702W 1 Reply Last reply
                    1
                    • T tombox

                      @wendy2702 bitte für die zweite Kamera folgendes verwenden

                      <input
                        type="hidden"
                        name="webrtc2-url"
                        id="webrtc2-url"
                        value="http://192.168.0.2:8083/stream/ddbdb583-9f80-4b61-bafa-613aa7a5daa5/channel/0/webrtc"
                      />
                       
                      <video id="webrtc2-video" autoplay muted playsinline controls style="max-width: 100%; max-height: 100%;"></video>
                      
                      setTimeout(function () {
                        function startPlay(videoEl, url) {
                          const webrtc = new RTCPeerConnection({
                            iceServers: [
                              {
                                urls: ["stun:stun.l.google.com:19302"],
                              },
                            ],
                            sdpSemantics: "unified-plan",
                          });
                          webrtc.ontrack = function (event) {
                            console.log(event.streams.length + " track is delivered");
                            videoEl.srcObject = event.streams[0];
                            videoEl.play();
                          };
                          webrtc.addTransceiver("video", { direction: "sendrecv" });
                          webrtc.onnegotiationneeded = async function handleNegotiationNeeded() {
                            const offer = await webrtc.createOffer();
                       
                            await webrtc.setLocalDescription(offer);
                       
                            fetch(url, {
                              method: "POST",
                              body: new URLSearchParams({ data: btoa(webrtc.localDescription.sdp) }),
                            })
                              .then((response) => response.text())
                              .then((data) => {
                                try {
                                  webrtc.setRemoteDescription(new RTCSessionDescription({ type: "answer", sdp: atob(data) }));
                                } catch (e) {
                                  console.warn(e);
                                }
                              });
                          };
                       
                          const webrtcSendChannel = webrtc.createDataChannel("rtsptowebSendChannel");
                          webrtcSendChannel.onopen = (event) => {
                            console.log(`${webrtcSendChannel.label} has opened`);
                            webrtcSendChannel.send("ping");
                          };
                          webrtcSendChannel.onclose = (_event) => {
                            console.log(`${webrtcSendChannel.label} has closed`);
                            startPlay(videoEl, url);
                          };
                          webrtcSendChannel.onmessage = (event) => console.log(event.data);
                        }
                       
                        const videoEl = document.querySelector("#webrtc2-video");
                        const webrtcUrl = document.querySelector("#webrtc2-url").value;
                       
                        startPlay(videoEl, webrtcUrl);
                      }, 1000);
                      
                      wendy2702W Offline
                      wendy2702W Offline
                      wendy2702
                      wrote on last edited by
                      #139

                      @tombox So ähnlich habe ich das auch gerade hinbekommen.

                      Jetzt bisschen Off Topic aber kann man eigentlich jedem Widget einzeln unterschiedliche Skripte anhängen?

                      Ich habe das ja gerade für das erste Widget eingefügt und es ist dann ja auch direkt bei allen anderen sichtbar.

                      Bitte keine Fragen per PN, die gehören ins Forum!

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      T 1 Reply Last reply
                      0
                      • wendy2702W wendy2702

                        @tombox So ähnlich habe ich das auch gerade hinbekommen.

                        Jetzt bisschen Off Topic aber kann man eigentlich jedem Widget einzeln unterschiedliche Skripte anhängen?

                        Ich habe das ja gerade für das erste Widget eingefügt und es ist dann ja auch direkt bei allen anderen sichtbar.

                        T Offline
                        T Offline
                        tombox
                        wrote on last edited by
                        #140

                        @wendy2702 Kenne mich da auch nicht so aus aber anscheinend.
                        Kannst du was zu der performance von rtsp2web sagen?

                        wendy2702W 1 Reply Last reply
                        0
                        • T tombox

                          @wendy2702 Kenne mich da auch nicht so aus aber anscheinend.
                          Kannst du was zu der performance von rtsp2web sagen?

                          wendy2702W Offline
                          wendy2702W Offline
                          wendy2702
                          wrote on last edited by
                          #141

                          @tombox Bin gerade dabei VIS von Motioneye auf RTSP2WEB zu stellen. Dann mal auf Bewegung warten oder morgen selber generieren.

                          Fakt ist das die Prozessor Last im Vergleich zu Motioneye nichts ist.

                          Bitte keine Fragen per PN, die gehören ins Forum!

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          R 1 Reply Last reply
                          0
                          • Marc_el_KM Marc_el_K

                            @rookie50 in den Einstellungen der Kamera kann ich von 8000-9000 einen Port vergeben. Also probiere ich es Mal mit 8000

                            Edit: Nein geht nicht. Im Datenpunkt steht wieder "80". Im Browser kein Bild. Ändere ich es ab auf 8000 geht es sofort

                            T Offline
                            T Offline
                            tombox
                            wrote on last edited by
                            #142

                            @marc_el_k Anscheinend ist da was falsch in der Kamera umgesetzt. Du hast den default port von 80 auf was anderes geändert und das wird in der snapshot url korrekt angezeigt.

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              meerkat
                              wrote on last edited by
                              #143

                              Moin.
                              Wozu benötige ich das Script aus dem ersten Post?
                              Dachte es würde reichen das über die url http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc einzubinden.
                              Gruß

                              wendy2702W 1 Reply Last reply
                              0
                              • M meerkat

                                Moin.
                                Wozu benötige ich das Script aus dem ersten Post?
                                Dachte es würde reichen das über die url http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc einzubinden.
                                Gruß

                                wendy2702W Offline
                                wendy2702W Offline
                                wendy2702
                                wrote on last edited by
                                #144

                                @meerkat Damit der Stream auch gestartet wird.

                                Bitte keine Fragen per PN, die gehören ins Forum!

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                M 1 Reply Last reply
                                0
                                • wendy2702W wendy2702

                                  @meerkat Damit der Stream auch gestartet wird.

                                  M Offline
                                  M Offline
                                  meerkat
                                  wrote on last edited by
                                  #145

                                  @wendy2702 ok, danke

                                  1 Reply Last reply
                                  0
                                  • wendy2702W wendy2702

                                    @tombox Bin gerade dabei VIS von Motioneye auf RTSP2WEB zu stellen. Dann mal auf Bewegung warten oder morgen selber generieren.

                                    Fakt ist das die Prozessor Last im Vergleich zu Motioneye nichts ist.

                                    R Offline
                                    R Offline
                                    Rookie50
                                    wrote on last edited by Rookie50
                                    #146

                                    @wendy2702 Ich habe eine kurze Frage zum Player. Ich würde den gerne auf mehreren Views benutzen. Aber dazu muss der Player oder der Stream neu geladen werden. Wenn ich den View wechsel sieht es so aus:
                                    3258ce68-5113-4d47-88b9-e1f860066e5a-grafik.png
                                    Gibt es dazu eine Möglichkeit? Oder muss ich für jeden View ein seperates Widget und Script erstellen?

                                    T wendy2702W 2 Replies Last reply
                                    0
                                    • R Rookie50

                                      @wendy2702 Ich habe eine kurze Frage zum Player. Ich würde den gerne auf mehreren Views benutzen. Aber dazu muss der Player oder der Stream neu geladen werden. Wenn ich den View wechsel sieht es so aus:
                                      3258ce68-5113-4d47-88b9-e1f860066e5a-grafik.png
                                      Gibt es dazu eine Möglichkeit? Oder muss ich für jeden View ein seperates Widget und Script erstellen?

                                      T Offline
                                      T Offline
                                      tombox
                                      wrote on last edited by
                                      #147

                                      @rookie50 Muss man nicht für jeden view immer neue widgets anlegen. Ich denke das jeder view ein eignes widgets mit eignen Ids braucht

                                      R 1 Reply Last reply
                                      0
                                      • T tombox

                                        @rookie50 Muss man nicht für jeden view immer neue widgets anlegen. Ich denke das jeder view ein eignes widgets mit eignen Ids braucht

                                        R Offline
                                        R Offline
                                        Rookie50
                                        wrote on last edited by Rookie50
                                        #148

                                        @tombox said in Test Adapter onvif camera v1.0.0:

                                        jeden view immer neue widgets anlegen.

                                        Nein, man kann ein Widget auf mehreren Views nutzen. Ich benutzte diese Funktion für ein paar Stati, die ich in mehreren View sehen möchte. Die bekommen dann in den verschiedenen Views einen Namen mit angehangenem "_<VIEWNAME>"
                                        Ok, genau betrachtet sind das dann eigene Widgets ;-)
                                        Aber, dass Script funktioniert bei mir im VIS nur auf dem View, den ich beim ersten Start lade. In anderen Views, auch wenn es das einzige Widget im Projekt ist, wo die Kamera zu sehen sein soll, startet der Player das Video nicht.
                                        Das verhält sich ähnlich wie das OpenStreetMap Widget.

                                        EDIT: Nachdem ich nun nochmal nach OpenStreetMap geschaut habe und "Immer rendern" ausgeschaltet habe, muss ich nicht immer erst den View mit den Karten laden. Schon mal wieder ein Fortschritt ;-) .
                                        Und nun habe ich (eher per Zufall) herausgefunden, dass man ein Dialog Widget auch in anderen Views aufrufen kann. Somit funktioniert auch nun die Darstellung der Kamera im HTML Dialog bei PIR Bewegungserkennung.

                                        Danke übriges für den Tip mit rtsp2web, endlich ein Kamerastream im VIS ohne viel CPU Leistung. Bei der Synology 220+ ca. 4 % pro Kamera. Motioneye hat deutlich mehr benötigt. Und zudem auch kaum noch Latenz (ca. 0,5 -1 sek.). :+1: :+1:

                                        T 1 Reply Last reply
                                        0
                                        • R Rookie50

                                          @tombox said in Test Adapter onvif camera v1.0.0:

                                          jeden view immer neue widgets anlegen.

                                          Nein, man kann ein Widget auf mehreren Views nutzen. Ich benutzte diese Funktion für ein paar Stati, die ich in mehreren View sehen möchte. Die bekommen dann in den verschiedenen Views einen Namen mit angehangenem "_<VIEWNAME>"
                                          Ok, genau betrachtet sind das dann eigene Widgets ;-)
                                          Aber, dass Script funktioniert bei mir im VIS nur auf dem View, den ich beim ersten Start lade. In anderen Views, auch wenn es das einzige Widget im Projekt ist, wo die Kamera zu sehen sein soll, startet der Player das Video nicht.
                                          Das verhält sich ähnlich wie das OpenStreetMap Widget.

                                          EDIT: Nachdem ich nun nochmal nach OpenStreetMap geschaut habe und "Immer rendern" ausgeschaltet habe, muss ich nicht immer erst den View mit den Karten laden. Schon mal wieder ein Fortschritt ;-) .
                                          Und nun habe ich (eher per Zufall) herausgefunden, dass man ein Dialog Widget auch in anderen Views aufrufen kann. Somit funktioniert auch nun die Darstellung der Kamera im HTML Dialog bei PIR Bewegungserkennung.

                                          Danke übriges für den Tip mit rtsp2web, endlich ein Kamerastream im VIS ohne viel CPU Leistung. Bei der Synology 220+ ca. 4 % pro Kamera. Motioneye hat deutlich mehr benötigt. Und zudem auch kaum noch Latenz (ca. 0,5 -1 sek.). :+1: :+1:

                                          T Offline
                                          T Offline
                                          tombox
                                          wrote on last edited by
                                          #149

                                          @rookie50 Vielleicht kannst du ein paar screenshots posten wie du renderst oder den dialog öffnest

                                          R 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          466

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe