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

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Test Adapter onvif camera v1.x.x

Geplant Angeheftet Gesperrt Verschoben Tester
341 Beiträge 48 Kommentatoren 94.6k Aufrufe 49 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.
  • Marc_el_KM Marc_el_K

    @tombox das Log gibt folgenden Fehler aus

    Error getting snapshot basic: {"data":{"type":"Buffer","data":[60,72,84,77,76,62,60,72,69,65,68,62,60,84,73,84,76,69,62,53,48,50,32,66,97,100,32,71,97,116,101,119,97,121,60,47,84,73,84,76,69,62,60,47,72,69,65,68,62,10,60,66,79,68,89,62,60,72,49,62,53,48,50,32,66,97,100,32,71,97,116,101,119,97,121,60,47,72,49,62,10,84,104,101,32,67,71,73,32,119,97,115,32,110,111,116,32,67,71,73,47,49,46,49,32,99,111,109,112,108,105,97,110,116,46,10,60,47,66,79,68,89,62,60,47,72,84,77,76,62,10]},"status":502,"headers":{"date":"Mon, 13 Mar 2023 20:09:37 GMT","server":"Boa/0.94.13","connection":"close","content-type":"text/html; charset=ISO-8859-1"},"res":{"status":502,"statusCode":502,"statusMessage":"Bad Gateway","headers":{"date":"Mon, 13 Mar 2023 20:09:37 GMT","server":"Boa/0.94.13","connection":"close","content-type":"text/html; charset=ISO-8859-1"},"size":131,"aborted":false,"rt":85,"keepAliveSocket":false,"data":{"type":"Buffer","data":[60,72,84,77,76,62,60,72,69,65,68,62,60,84,73,84,76,69,62,53,48,50,32,66,97,100,32,71,97,116,101,119,97,121,60,47,84,73,84,76,69,62,60,47,72,69,65,68,62,10,60,66,79,68,89,62,60,72,49,62,53,48,50,32,66,97,100,32,71,97,116,101,119,97,121,60,47,72,49,62,10,84,104,101,32,67,71,73,32,119,97,115,32,110,111,116,32,67,71,73,47,49,46,49,32,99,111,109,112,108,105,97,110,116,46,10,60,47,66,79,68,89,62,60,47,72,84,77,76,62,10]},"requestUrls":["http://192.168.178.55/api/v1/snap.cgi?chn=0"],"timing":null,"remoteAddress":"192.168.178.55","remotePort":80,"socketHandledRequests":1,"socketHandledResponses":1}}
    
    T Offline
    T Offline
    tombox
    schrieb am zuletzt editiert von
    #115

    @marc_el_k http://username:password@192.168.178.55/api/v1/snap.cgi?chn=0 siehst du da ein bild

    Marc_el_KM 1 Antwort Letzte Antwort
    0
    • T tombox

      @marc_el_k http://username:password@192.168.178.55/api/v1/snap.cgi?chn=0 siehst du da ein bild

      Marc_el_KM Offline
      Marc_el_KM Offline
      Marc_el_K
      schrieb am zuletzt editiert von Marc_el_K
      #116

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

      http://username:password@192.168.178.55/api/v1/snap.cgi?chn=0

      Dabei erscheint im Browser Bad Gateway
      Bei meinen Kameras steht für den RTSP Link folgender Aufbau:
      rtsp://username:password@IP:Port/live/ch0

      hilft das?

      Edit: Im Debug Modus taucht alle paar Sekunden folgender Eintrag auf

      	Raw request: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>XXXXXXXXXXXXXXXXXXX</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">XXXXXXXXXXXXXXXXXXXX</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">UKJn3NR2/nRsTVwdPMxfdA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2023-03-13T20:31:49.177Z</Created></UsernameToken></Security><a:To>http://192.168.178.55:8999/onvif/pullpointsubcribe</a:To></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><PullMessages xmlns="http://www.onvif.org/ver10/events/wsdl"><Timeout>PT5S</Timeout><MessageLimit>10</MessageLimit></PullMessages></s:Body></s:Envelope>
      
      T 1 Antwort Letzte Antwort
      0
      • Marc_el_KM Marc_el_K

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

        http://username:password@192.168.178.55/api/v1/snap.cgi?chn=0

        Dabei erscheint im Browser Bad Gateway
        Bei meinen Kameras steht für den RTSP Link folgender Aufbau:
        rtsp://username:password@IP:Port/live/ch0

        hilft das?

        Edit: Im Debug Modus taucht alle paar Sekunden folgender Eintrag auf

        	Raw request: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>XXXXXXXXXXXXXXXXXXX</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">XXXXXXXXXXXXXXXXXXXX</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">UKJn3NR2/nRsTVwdPMxfdA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2023-03-13T20:31:49.177Z</Created></UsernameToken></Security><a:To>http://192.168.178.55:8999/onvif/pullpointsubcribe</a:To></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><PullMessages xmlns="http://www.onvif.org/ver10/events/wsdl"><Timeout>PT5S</Timeout><MessageLimit>10</MessageLimit></PullMessages></s:Body></s:Envelope>
        
        T Offline
        T Offline
        tombox
        schrieb am zuletzt editiert von
        #117

        @marc_el_k dann müsstest du mal selber googeln warum deine Kamera 502 anzeigt an dem snapshot Endpunkt

        1 Antwort Letzte Antwort
        0
        • Marc_el_KM Offline
          Marc_el_KM Offline
          Marc_el_K
          schrieb am zuletzt editiert von
          #118

          Die Anleitung in Beitrag 1 zur Installation von Rtsp2Web Docker, hat dies jemand getestet? Ich möchte mir nicht meine Installation von iobroker auf dem RPi4 zerschiessen.

          1 Antwort Letzte Antwort
          0
          • C Offline
            C Offline
            chrga
            schrieb am zuletzt editiert von
            #119

            @tombox
            mit der 1.0.3 vom Github bekomme ich jetzt einen Snapshot mit eeiner Tapo C200 nach etwa 2 Sekunden. Gleiches über die URL:
            http://192.168.42.250:8095/192_168_42_22_2020

            Frage:
            was bedeutet:
            Verwendung von Quelle mit hoher Auflösung für ffmpeg Umwandlung.
            Nimmt er da einfach den Stream mit höherer Auflösung für den Snapshot, sehe ich das richtig? Dauert glaube ich einen Moment länger.

            Hardware ist ein i5 mit VM auf Proxmox, nur wegen der Performance.

            T 1 Antwort Letzte Antwort
            0
            • C chrga

              @tombox
              mit der 1.0.3 vom Github bekomme ich jetzt einen Snapshot mit eeiner Tapo C200 nach etwa 2 Sekunden. Gleiches über die URL:
              http://192.168.42.250:8095/192_168_42_22_2020

              Frage:
              was bedeutet:
              Verwendung von Quelle mit hoher Auflösung für ffmpeg Umwandlung.
              Nimmt er da einfach den Stream mit höherer Auflösung für den Snapshot, sehe ich das richtig? Dauert glaube ich einen Moment länger.

              Hardware ist ein i5 mit VM auf Proxmox, nur wegen der Performance.

              T Offline
              T Offline
              tombox
              schrieb am zuletzt editiert von
              #120

              @chrga
              Ja genau dauert ca 2sek
              Genau es wird der hoch auflösende stream verwendet
              Wäre interessant wenn du mal den rtsp2web docker installierst wie da die performance ist

              C 1 Antwort Letzte Antwort
              0
              • T tombox

                @chrga
                Ja genau dauert ca 2sek
                Genau es wird der hoch auflösende stream verwendet
                Wäre interessant wenn du mal den rtsp2web docker installierst wie da die performance ist

                C Offline
                C Offline
                chrga
                schrieb am zuletzt editiert von
                #121

                @tombox
                alles klar, schaue ich mir mal an und gebe Feedback.

                Was anderes: Wie sieht es mit der Steuerung der Kamera aus? Ich sehe da die Option für die Presets, aber kein up/down/left/right. Für meine Tapo sehe ich auch koordinaten X/Y, aber die sind read-only. Kann ich die Kamera bewegen, also ist das der Plan?

                Melde mich, sobal ich weiteres Feedback habe.
                Insgeamt läuft es aber recht sauber! Hab es vor allem in Telegram integriert, und sowohl das Bild senden, als auch dei Bewegungsmeldung laufen sehr sauber und zuverlässig. Übrigends dann auch noch, wenn man dem Tapo das Internet abdreht.

                T 1 Antwort Letzte Antwort
                0
                • C chrga

                  @tombox
                  alles klar, schaue ich mir mal an und gebe Feedback.

                  Was anderes: Wie sieht es mit der Steuerung der Kamera aus? Ich sehe da die Option für die Presets, aber kein up/down/left/right. Für meine Tapo sehe ich auch koordinaten X/Y, aber die sind read-only. Kann ich die Kamera bewegen, also ist das der Plan?

                  Melde mich, sobal ich weiteres Feedback habe.
                  Insgeamt läuft es aber recht sauber! Hab es vor allem in Telegram integriert, und sowohl das Bild senden, als auch dei Bewegungsmeldung laufen sehr sauber und zuverlässig. Übrigends dann auch noch, wenn man dem Tapo das Internet abdreht.

                  T Offline
                  T Offline
                  tombox
                  schrieb am zuletzt editiert von
                  #122

                  @chrga exakt move geht nicht aber du kannst abgespeichert presets aufrufen. müsste ich mal schauen ob Bewegung geht und ob das so relevant ist

                  C 1 Antwort Letzte Antwort
                  0
                  • T tombox

                    @chrga exakt move geht nicht aber du kannst abgespeichert presets aufrufen. müsste ich mal schauen ob Bewegung geht und ob das so relevant ist

                    C Offline
                    C Offline
                    chrga
                    schrieb am zuletzt editiert von
                    #123

                    @tombox ok, danke. und die presets speichere ich dann über ein externes tool auf der Kamera ab, das geht dann nicht über den Adapter!?

                    T 1 Antwort Letzte Antwort
                    0
                    • C chrga

                      @tombox ok, danke. und die presets speichere ich dann über ein externes tool auf der Kamera ab, das geht dann nicht über den Adapter!?

                      T Offline
                      T Offline
                      tombox
                      schrieb am zuletzt editiert von
                      #124

                      @chrga Sollte einfach über die App gehen

                      1 Antwort Letzte Antwort
                      0
                      • KnallochseK Nicht stören
                        KnallochseK Nicht stören
                        Knallochse
                        schrieb am zuletzt editiert von
                        #125

                        Ich habe auf meiner Synology DS918+ den Docker RTSPtoWeb eingerichtet. Kamera einrichten hat funktioniert. Ich kann auf dem Webinterface auch den Stream der Kamera sehen.

                        Leider kommt bei Eingabe der URL im Browser

                        http://192.168.178.86:8083/stream/27aec28e-6181-4753-9acd-0456a75f0289/channel/0
                        

                        immer

                        404 page not found
                        

                        sollte mit der URL nicht der Stream angezeigt werden?

                        Könnte mir jemand mal bitte einen Einblick in seine config.json von RTSPtoWeb gewähren?

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

                        T R 2 Antworten Letzte Antwort
                        0
                        • KnallochseK Knallochse

                          Ich habe auf meiner Synology DS918+ den Docker RTSPtoWeb eingerichtet. Kamera einrichten hat funktioniert. Ich kann auf dem Webinterface auch den Stream der Kamera sehen.

                          Leider kommt bei Eingabe der URL im Browser

                          http://192.168.178.86:8083/stream/27aec28e-6181-4753-9acd-0456a75f0289/channel/0
                          

                          immer

                          404 page not found
                          

                          sollte mit der URL nicht der Stream angezeigt werden?

                          Könnte mir jemand mal bitte einen Einblick in seine config.json von RTSPtoWeb gewähren?

                          T Offline
                          T Offline
                          tombox
                          schrieb am zuletzt editiert von
                          #126

                          @knallochse Der stream ist direkt nicht Sichtbar sondern muss mit einem Skript wie in der Anleitung eingebunden werden

                          1 Antwort Letzte Antwort
                          1
                          • R RandyAndy

                            @tombox
                            ok, das war mir gar nicht bewußt, das jedes Objekt einen Zeitstempel hat.
                            Das sehe ich mir im Detail an.
                            Danke

                            R Offline
                            R Offline
                            RandyAndy
                            schrieb am zuletzt editiert von RandyAndy
                            #127

                            @tombox

                            also erst einmal vielen Dank für Deinen Adpater. Funktioniert richtig super.
                            Noch eine Information von meiner Seite. Ich verwende inzwischen von MaterialDesign das Widget Html Card. Das hat ein Feld Objekt-ID zum Aktualisieren. Das ist ideal um Events abzufangen, da spart man sich die Skripts.

                            1 Antwort Letzte Antwort
                            0
                            • KnallochseK Knallochse

                              Ich habe auf meiner Synology DS918+ den Docker RTSPtoWeb eingerichtet. Kamera einrichten hat funktioniert. Ich kann auf dem Webinterface auch den Stream der Kamera sehen.

                              Leider kommt bei Eingabe der URL im Browser

                              http://192.168.178.86:8083/stream/27aec28e-6181-4753-9acd-0456a75f0289/channel/0
                              

                              immer

                              404 page not found
                              

                              sollte mit der URL nicht der Stream angezeigt werden?

                              Könnte mir jemand mal bitte einen Einblick in seine config.json von RTSPtoWeb gewähren?

                              R Offline
                              R Offline
                              Rookie50
                              schrieb am zuletzt editiert von
                              #128

                              @knallochse hier ist meine config.json:

                              {
                                "channel_defaults": {},
                                "server": {
                                  "debug": true,
                                  "http_debug": false,
                                  "http_demo": true,
                                  "http_dir": "web",
                                  "http_login": "demo",
                                  "http_password": "demo",
                                  "http_port": ":8083",
                                  "https": false,
                                  "https_auto_tls": false,
                                  "https_auto_tls_name": "",
                                  "https_cert": "server.crt",
                                  "https_key": "server.key",
                                  "https_port": ":443",
                                  "ice_credential": "",
                                  "ice_servers": [],
                                  "ice_username": "",
                                  "log_level": "debug",
                                  "rtsp_port": ":5541",
                                  "token": {
                                    "backend": "",
                                    "enable": false
                                  },
                                  "webrtc_port_max": 0,
                                  "webrtc_port_min": 0
                                },
                                "streams": {
                                  "a649b2ed-a7ab-4e24-bb47-52ad03fae00d": {
                                    "channels": {
                                      "0": {
                                        "url": "rtsp://192.168.102.20:554/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif"
                                      }
                                    },
                                    "name": "Eingang"
                                  }
                                }
                              }
                              
                              1 Antwort Letzte Antwort
                              1
                              • T tombox

                                Hi ich habe ein neuen Adapter für ONVIF Kameras geschrieben, da die bisherigen Adapter nicht mehr gewartet werden und ich kein snapshot bei meiner Kamera erhalten habe.

                                Zum Installieren:
                                https://github.com/iobroker-community-adapters/ioBroker.onvif

                                Für die aktuelle Version bitte das latest Repo auswählen:

                                2d049982-5353-4202-a33f-996f344bd4ae-image.png

                                Kameras hinzufügen

                                Discovery:

                                Bei jedem Adapterstart wird mit dem in der Einstellungen eingetragen Benutzername und Passwort eine Discovery durchgeführt und versuch sich in die Kamera einzuloggen. Falls die Kamera noch nicht unter Objekte hinzugefügt wurde.

                                In den Einstellungen kann man die Discovery manuell ausführen. Falls die Kameras unterschiedliche Zugangsdaten haben müssen die jeweils eingegeben werden und eine discovery durchgeführt werden. Im Log sieht man Details zu dem Prozess.

                                Damit eine Kamera neu erkannt wird muss sie einfach unter Objekte gelöscht werden.

                                Manuelle Suche

                                Es können Kameras manuell gesucht werden, falls Discovery nicht funktioniert. Dazu muss eine IP Range und Ports eingegeben und manuell ausgeführt werden. Im Log sieht man Details zu dem Prozess.

                                Datenpunkte

                                onvif.0.IP_PORT.events Events der Kamera wie z.b. Bewegungserkennung

                                onvif.0.IP_PORT.general Generelle Information über die Kameras

                                onvif.0.IP_PORT.infos Informationen über die Kamera werden nur bei Adapterstart aktualisiert oder bei remote.refresh

                                Video und Snapshot URL:
                                onvif.0.IP_PORT.infos.streamUris.MediaProfile_Channel1_MainStream.snapshotUrl.uri

                                onvif.0.IP_PORT.remote Steuerung der Kamera

                                onvif.0.IP_PORT.remote.refresh Aktualisierung der Infodaten

                                onvif.0.IP_PORT.remote.gotoHomePosition PTZ Kamera in die HomePosition setzen

                                onvif.0.IP_PORT.remote.gotoPreset PTZ Kamera Preset Nummer auswählen

                                onvif.0.IP_PORT.remote.snapshot Speichert ein snapshot unter onvif.0.IP_PORT.snapshot

                                Message

                                Adapter nimmt Message "snapshot" entgegen und gibt ein Bild zurück

                                sendTo("onvif.0", "snapshot", "192_168_178_100_80", (result) => {
                                  if (result) {
                                    sendTo("telegram.0", {
                                      text: result,
                                      type: "photo",
                                      caption: "Kamera 2",
                                    });
                                  }
                                });
                                

                                Bewegungsmeldung zu Telegram

                                on("onvif.0.192_168_178_100_80.events.RuleEngine/CellMotionDetector/Motion", (obj) => {
                                  if (obj.state.val === true) {
                                    sendTo("onvif.0", "snapshot", "192_168_178_100_80", (result) => {
                                      if (result) {
                                        sendTo("telegram.0", {
                                          text: result,
                                          type: "photo",
                                          caption: "Camera 2",
                                        });
                                      }
                                    });
                                  }
                                });
                                

                                Snapshot Server in vis einbinden

                                Der Adapter bietet ein Snapshot Server ohne Passwort an. Dazu Server aktivieren in den Instanzeinstellungen und dann kann der aktuelle Snapshot http://iobrokerIp:8095/CAMERAIP_PORT z.B. http://192.168.0.1:8095/192_168_0_1_80 abgerufen werden.

                                In der Vis ein Image Widget einfügen und die Url als Quelle angeben und eine Updatezeit auswählen

                                c59c6c74-01c1-4472-84c9-cc477d49a75c-image.png

                                Stream in vis einbinden

                                go2rtsp Docker

                                Ein Stream wird normalerweise via rtsp stream bereitgestellt. Eine Umwandlung via motion eye ist sehr resourcen aufwändig und hat ein Verzögerng. Ein Umwandlung in webrtc ist schneller und resourcenschonender. Meine Empfehlung ist ein go2rtsp. Dazu muss ein Docker von alexxit/go2rtc erstellt werden.
                                https://hub.docker.com/r/alexxit/go2rtc

                                Oder go2rtc lokal zu installieren:
                                https://www.youtube.com/watch?v=4VEEpRYerZg
                                https://forum.iobroker.net/post/1031526

                                 image: alexxit/go2rtc
                                    network_mode: host       # important for WebRTC, HomeKit, UDP cameras
                                    privileged: true         # only for FFmpeg hardware transcoding
                                    restart: unless-stopped  # autorestart on fail or config change from WebUI
                                    environment:
                                      - TZ=Europe/Berlin  # timezone in logs
                                    volumes:
                                      - "~/go2rtc:/config"   # folder for go2rtc.yaml file (edit from WebUI)
                                

                                Es muss ein Volume für den Pfad /config und das network als host eingestellt werden.

                                Dann ist go2rtsp erreichbar über

                                http://IP:1984
                                

                                Dann kann man ein Stream hinzufügen. Die Stream url findet man z.B. unter
                                onvif.0.IP_PORT.infos.streamUris.ProfileName.live_stream_tcp.uri

                                6c837e18-5f5d-4b92-94df-b752208f139b-image.png

                                Stream als iFrame einfügen

                                Das Widget iFrame in der Vis hinzufügen und als Quelle den stream link von go2rtsp verwenden

                                http://192.168.178.1:1984/stream.html?src=camera&mode=webrtc

                                Unter links kann noch die Art des Players ausgewählt werden (Mikrofon)

                                Rtsp2Web Docker

                                Eine Alternative ist ein RTSPtoWeb Docker. Dies ist aber von der Einrichtun komplizierter.
                                Dazu muss ein Docker von ghcr.io/deepch/rtsptoweb:latest erstellt werden.

                                docker run --name rtsp-to-web -v /YOURPATHFORCONFIG:/config --network host ghcr.io/deepch/rtsptoweb:latest
                                

                                Es muss ein Volume für den Pfad /config und das network als host eingestellt werden.

                                Dann ist rtsptoweb erreichbar über

                                http://IP:8083
                                

                                Dann kann man ein Stream hinzufügen. Die Stream url findet man z.B. unter
                                onvif.0.IP_PORT.infos.streamUris.ProfileName.live_stream_tcp.uri

                                <img src="addstream.png" height="600">

                                Danach benötigen wir die Stream Id. Dafür Stream Edit und in der URL die Id rauskopieren

                                http://192.168.178.2:8083/pages/stream/edit/ddbdb583-9f80-4b61-bafa-613aa7a5daa5

                                Einzelnen Stream in der Vis einfügen

                                Dann in der vis ein HTML Objekt auswählen. Dann im Widget unter HTML den rtsp2web server mit stream id eintragen:

                                <img src="html.png" height="150">

                                Wenn mehrere Stream hinzugefügt werden soll muss webrtc-url und webrtc-video in html und skript mit einer neuen id ersetzt werden z.B. webrtc-url2 und webrtc-video2

                                <input
                                  type="hidden"
                                  name="webrtc-url"
                                  id="webrtc-url"
                                  value="http://192.168.0.2:8083/stream/ddbdb583-9f80-4b61-bafa-613aa7a5daa5/channel/0/webrtc"
                                />
                                
                                <video id="webrtc-video" autoplay muted playsinline controls style="max-width: 100%; max-height: 100%;"></video>
                                

                                In dem Widget unter Skripte dieses Skript hinzufügen:

                                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("#webrtc-video");
                                  const webrtcUrl = document.querySelector("#webrtc-url").value;
                                
                                  startPlay(videoEl, webrtcUrl);
                                }, 1000);
                                

                                <img src="widgetskript.png" height="200">

                                Alle Streams als iFrame

                                Alternativ könnte man auch den Kamera Overview als Iframe einfügen:
                                Das Widget iFrame hinzufügen und als Quelle den rtsp2web Server eintragen:

                                http://192.168.0.2:8083/pages/multiview/full?controls

                                FFMpeg Unterstützung

                                Wenn die Kamera keine Snapshot Unterstützng hat wird mit ffmpeg ein snapshot aus dem rtsp stream erzeugt.

                                Snapshot Server in vis einbinden

                                Der Adapter bietet ein Snapshot Server ohne Passwort an. Dazu Server aktivieren in den Instanzeinstellungen und dann kann der aktuelle Snapshot http://iobrokerIp:8095/CAMERAIP_PORT z.B. http://192.168.0.1:8095/192_168_0_1_80 abgerufen werden.

                                In der Vis ein Image Widget einfügen und die Url als Quelle angeben und eine Updatezeit auswählen

                                Snapshot in vis einbinden

                                Wenn möglich die snapshotUri verwenden z.B.
                                onvif.0.IP_PORT.infos.streamUris.MediaProfile_Channel1_MainStream.snapshotUrl.uri

                                Den Datenpunkt nicht als Stream verwenden, da sonst die Festplatte zu hohe Last hat.

                                Den Datenpunkt aktualisieren via t onvif.0.IP_PORT.remote.snapshot

                                Den Datenpunkt onvif.0.IP_PORT.snapshot ein String img src element zuordnen
                                8c6904b2-e6b0-4489-bf83-0aef733cd86a-image.png

                                Oder als Alternative falls String img src nicht funktioniert
                                Den Datenpunkt onvif.0.IP_PORT.snapshot als HTML element in die vis einfügen mit folgendem Inhalt

                                <img src="{onvif.0.IP_PORT.snapshot}" width="500px" />
                                

                                e09e2094-73ce-40c4-b966-6be58108c6f3-image.pnghttps://forum.iobroker.net/assets/uploads/files/1679400558520-37e68385-d60b-495f-b443-09fe53242663-grafik.png

                                wendy2702W Offline
                                wendy2702W Offline
                                wendy2702
                                schrieb am zuletzt editiert von wendy2702
                                #129

                                @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 ?

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

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

                                KnallochseK 1 Antwort Letzte Antwort
                                0
                                • Marc_el_KM Offline
                                  Marc_el_KM Offline
                                  Marc_el_K
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          225

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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