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

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    147

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

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

Test Adapter onvif camera v1.x.x

Scheduled Pinned Locked Moved Tester
341 Posts 48 Posters 102.9k 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.
  • T tombox

    @marc_el_k
    auf true setzen aber im Prinzip geht beides.
    Der Datenpunkt ist nicht als stream geeignet sonder ab und zu als einzelbild
    Für ein stream den snapshot server nehmen oder rtsp2web

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

    @tombox genau da hänge ich. Den Server habe ich aktiviert, aber wie bekomme ich neue Bilder?

    T 1 Reply Last reply
    0
    • Marc_el_KM Marc_el_K

      @tombox genau da hänge ich. Den Server habe ich aktiviert, aber wie bekomme ich neue Bilder?

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

      @marc_el_k wie in Beitrag #1
      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

      Marc_el_KM 1 Reply Last reply
      0
      • T tombox

        @marc_el_k wie in Beitrag #1
        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

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

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

        http://iobrokerIp:8095/CAMERAIP_PORT

        Wenn ich diesen Link im Browser eingebe, um es zu testen, kommt "Seite funktioniert nicht"

        Der Haken bei "Server aktiviert" und bei FFMPEG ist jeweils gesetzt. DerPort auf 8095 eingestellt.

        T 1 Reply Last reply
        0
        • Marc_el_KM Marc_el_K

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

          http://iobrokerIp:8095/CAMERAIP_PORT

          Wenn ich diesen Link im Browser eingebe, um es zu testen, kommt "Seite funktioniert nicht"

          Der Haken bei "Server aktiviert" und bei FFMPEG ist jeweils gesetzt. DerPort auf 8095 eingestellt.

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

          @marc_el_k Dann sollte aber ein Fehler im log sein

          Marc_el_KM 1 Reply Last reply
          0
          • T tombox

            @marc_el_k Dann sollte aber ein Fehler im log sein

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

            @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 1 Reply Last reply
            0
            • 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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by 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 Reply Last reply
                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
                  wrote on last edited by
                  #117

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

                  1 Reply Last reply
                  0
                  • Marc_el_KM Offline
                    Marc_el_KM Offline
                    Marc_el_K
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      chrga
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #124

                                @chrga Sollte einfach über die App gehen

                                1 Reply Last reply
                                0
                                • KnallochseK Offline
                                  KnallochseK Offline
                                  Knallochse
                                  wrote on last edited by
                                  #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 Replies Last reply
                                  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
                                    wrote on last edited by
                                    #126

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

                                    1 Reply Last reply
                                    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
                                      wrote on last edited by 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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        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
                                          wrote on last edited by 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 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

                                          506

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          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