Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. IP Cam Snapshot als "Stream"

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    IP Cam Snapshot als "Stream"

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer @Glasfaser last edited by

      @Glasfaser wird etwas in den State image geschrieben?
      Gibt es eine Fehlermeldung im Log?

      Glasfaser 1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @Jey Cee last edited by Glasfaser

        @Jey-Cee sagte in IP Cam Snapshot als "Stream":

        @Glasfaser wird etwas in den State image geschrieben?

        Ja …wird geschrieben .

        1.JPG

        Gibt es eine Fehlermeldung im Log?

        Nein , keine Fehlermeldung .

        Ein Bilderlink funktioniert , nur der Link meiner Kameras nicht !?

        Der State wird auch Aktualisiert ( 5 Sekunden eingestellt ) :

        22.jpg

        Jey Cee 1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer @Glasfaser last edited by

          @Glasfaser nur nochmal zur Sicherheit es wird nichts geschrieben bei den cams?

          Dann geht das mit den Logindaten am Anfang der URL doch nicht. Muss anderst gelöst werden.

          Ich bau das morgen um und müsstest es für mich testen, hab keine Cam die so einen Link verwendet.

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @Jey Cee last edited by Glasfaser

            @Jey-Cee sagte in IP Cam Snapshot als "Stream":

            @Glasfaser nur nochmal zur Sicherheit es wird nichts geschrieben bei den cams?

            Doch siehe oben , ich habe extra den Sreenshot mit den Daten erstellt wo man den Base Code links erkennt der erstellt wird .

            @Jey-Cee sagte in IP Cam Snapshot als "Stream":

            Ich bau das morgen um und müsstest es für mich testen, hab keine Cam die so einen Link verwendet.

            Wäre sehr Nett ….👍

            Jey Cee 1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer @Glasfaser last edited by

              @Glasfaser dann verstehe ich das problem nicht. Wenn der Base64 geschrieben wird bekommt er daten von der cam.

              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @Jey Cee last edited by Glasfaser

                @Jey-Cee

                Ich habe vier Hikvison Cam´s und bei keiner kommt eine Bild , nur wenn ich ein Bilderlink einfüge im Script.

                Das ist schon richtig das er was erstellt , nur kann ich als Laie nicht erkennen ob es ein Bild ist oder eine erzeugte Fehlermeldung als Base64.

                Ist auch nicht so wichtig … das es bei mir nicht funktioniert !!!

                Jey Cee 1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer @Glasfaser last edited by

                  @Glasfaser naja ist es schon immerhin ist es möglich das andere genau das gleiche haben.

                  Kannst du im skript mal ein log für den body direkt nach request.get einbauen? Dann sehen wir was von der cam kommt.

                  Glasfaser 1 Reply Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @Jey Cee last edited by

                    @Jey-Cee

                    Können schon … kannst du mir bitte eine Vorlage dazu geben !?

                    2222.JPG

                    bahnuhr 1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active @Glasfaser last edited by

                      @Glasfaser sagte in IP Cam Snapshot als "Stream":

                      bitte eine Vorlage dazu geben !?

                      Zeile 40:
                      log (body);

                      Und das Ergebnis im log dann posten.

                      Glasfaser 1 Reply Last reply Reply Quote 1
                      • Glasfaser
                        Glasfaser @bahnuhr last edited by

                        @bahnuhr
                        Danke …

                        @Jey-Cee

                        Hier der Log ,

                        1.JPG

                        Log.txt
                        ………………………..

                        2.JPG

                        Hier der Inhalt vom Datenpunkt :

                        Datenpunkt.txt

                        Jey Cee 1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer @Glasfaser last edited by

                          @Glasfaser welches Datei Format hat das Bild wenn du es im Browser von der Kamera abrufst?
                          Im Zweifel Rechts Klick -> Bild Speichern

                          Glasfaser 1 Reply Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @Jey Cee last edited by

                            @Jey-Cee

                            Format : jpg

                            1.JPG

                            Jey Cee 1 Reply Last reply Reply Quote 0
                            • Jey Cee
                              Jey Cee Developer @Glasfaser last edited by

                              @Glasfaser ok jetzt hab ich zumindest eine Ahnung warum es nicht passt. Die info im Base64 sagt das es JPEG ist was auch stimmt, aber der MIME Type (ist im Base64 codiert) spricht von Binär Daten.
                              Ich nehme an das der Browser den Datenstrom in JPEG wandelt, das macht mein Script natürlich nicht. Mal sehen ob ich da eine Lösung finde.

                              Glasfaser 1 Reply Last reply Reply Quote 1
                              • Glasfaser
                                Glasfaser @Jey Cee last edited by

                                @Jey-Cee

                                Freut mich das ich dir helfen kann …...

                                1 Reply Last reply Reply Quote 0
                                • L
                                  lostall last edited by

                                  Hallo Zusammen,
                                  ich hätte ebenfalls ein Problem mit der HiKam Q8.
                                  Diese stellt normalerweise auch nur einen rtsp Stream bereit.

                                  Ich habe den ONVIF Adapter von @Jey-Cee installiert
                                  hier gefunden -->
                                  https://forum.iobroker.net/topic/26751/hikam-kameras-snapshot-erstellen-und-verschicken/3

                                  Mit dem Adapter wird auch der Link zum Kamerastream gefunden:
                                  2233d94a-5674-44f1-8b5c-15fe4d4675f2-image.png

                                  Danach habe ich das Skript von oben übernommen :

                                  /*Author: Jey Cee jey-cee@live.com; Version: 0.1.1; Datum: 04.10.2019*/
                                   
                                   
                                   
                                  let objPath = 'HiKamQ8Snaps'         //Der Pfad zu den Skript Objekten; Ergebnis: javascript.0.cam
                                   
                                  let urlCam1 = 'http://192.168.0.14:8090/onvif/snapshot';      //URL zum snapshot der IP Cam
                                   
                                  let intervall = 5;      //Zeit intervall für die Abfrage; 0 = Dynamisch, 1-x = Zeit in Sekunden;
                                   
                                   
                                   
                                  //Ab hier keine Änderungen mehr
                                   
                                  createState(objPath + '.image', '', false, {type: 'string'});
                                   
                                  createState(objPath + '.start', false, false, {type: 'boolean', role: 'switch'});
                                   
                                   
                                   
                                  const request = require('request').defaults({ encoding: null });
                                   
                                   
                                   
                                  on({id: 'javascript.0.' + objPath + '.start', val: true},
                                   
                                      function(){
                                   
                                          getSnap();
                                   
                                      }) 
                                   
                                   
                                   
                                   
                                   
                                  function getSnap(){
                                   
                                      request.get(urlCam1, function (error, response, body) {
                                   
                                      if(error){
                                   
                                          log(error);
                                   
                                      }
                                   
                                      if (!error && response.statusCode == 200) {
                                   
                                          data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');
                                   
                                          setState('javascript.0.' + objPath + '.image', data);
                                   
                                      }
                                   
                                      if(intervall === 0 && getState('javascript.0.' + objPath + '.start').val === true){
                                   
                                          getSnap();
                                   
                                      }else if(intervall !== 0 && getState('javascript.0.' + objPath + '.start').val === true){
                                   
                                          setTimeout(function(){
                                   
                                                  getSnap();
                                   
                                          }, intervall * 1000);
                                   
                                      }
                                   
                                      
                                   
                                  });
                                   
                                  }
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                  
                                  

                                  und und das Verzeichnis und den Streaminglink angepasst.

                                  Leider füllt sich der State in den Objekten gar nicht.
                                  Habe ich den status hier richtig auf "true" gesetzt?
                                  ef7c6fda-c0d6-4f4d-a168-dd8ceb4a80b6-image.png

                                  5ffa9e89-daea-4e66-a6a4-a25048c0d8e9-image.png
                                  Hat jemand eine Idee woran das liegt?
                                  Oder ist die Hikam völligst inkompatibel

                                  Zudem bin ich mir bei den Logindaten relativ unsicher was den Benutzernamen angeht.
                                  Auf die Konfigurationsseite der Hikam komme ich mit dem Benutzer "admin"
                                  Auf allen anderen Seiten benötige ich die Kamera ID (A086***) die hinten auf der Cam steht.
                                  Das Passwort wurde von mir angelegt und funktioniert in Kombination mit beiden "Benutzernamen"

                                  Der Logfile zeigt gar keine Einträge zum ausgeführten Skript. Das ist auch seltsam.
                                  Anbei noch einmal der Log vom Stopp- und danach vom Startvorgang des Skriptes:

                                  javascript.0	2019-12-06 14:45:14.054	info	script.js.common.Hikam_Q8_Snap.HikamQ8: registered 1 subscription and 0 schedules
                                  javascript.0	2019-12-06 14:45:14.051	info	Start javascript script.js.common.Hikam_Q8_Snap.HikamQ8
                                  javascript.0	2019-12-06 14:45:10.517	info	Stop script script.js.common.Hikam_Q8_Snap.HikamQ8
                                  
                                  Jey Cee 1 Reply Last reply Reply Quote 0
                                  • Jey Cee
                                    Jey Cee Developer @lostall last edited by

                                    @lostall Hab mich gerade nochmal durch gelesen, das problem bei den HiKams ist die Codierung. Hab dafür keine Lösung gefunden.

                                    Versuch mal in Zeile 21 bei encoding null durch 'base64' zu ersetzen. Könnte sein das die Kamera die Bilder schon in base64 codiert.

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      lostall last edited by

                                      Hallo,
                                      ich kam leider erst jetzt dazu dies zu probieren. Hat leider nicht geklappt.
                                      Ich erhalte jetzt folgende Fehlermeldung:

                                      javascript.0	2019-12-08 13:52:55.736	error	at ContextifyScript.Script.runInContext (vm.js:59:29)
                                      javascript.0	2019-12-08 13:52:55.736	error	at script.js.common.Hikam_Q8_Snap.HikamQ8:21:57
                                      javascript.0	2019-12-08 13:52:55.736	error	ReferenceError: base64 is not defined
                                      javascript.0	2019-12-08 13:52:55.736	error	^
                                      javascript.0	2019-12-08 13:52:55.736	error	const request = require('request').defaults({ encoding: base64 });
                                      javascript.0	2019-12-08 13:52:55.736	error	script.js.common.Hikam_Q8_Snap.HikamQ8: script.js.common.Hikam_Q8_Snap.HikamQ8:21
                                      
                                      Jey Cee 1 Reply Last reply Reply Quote 0
                                      • Jey Cee
                                        Jey Cee Developer @lostall last edited by

                                        @lostall da fehlen die ' ' bei base64, das muss so ausshen => 'base64'

                                        K L 2 Replies Last reply Reply Quote 0
                                        • K
                                          Kippe @Jey Cee last edited by

                                          @Jey-Cee
                                          Hallo
                                          Ich möchte auch meine Kamera über ioBroker anzeigen lassen, und habe mal einige Fragen dazu.
                                          Ich habe ein Kamera der Marke Jovision und möchte die gerne anzeigen lassen sowie eine Kamera der Marke iegeek 1080p.
                                          Ich habe jetzt das Skrypt von Oben in meinem Java Adapter geladen und ist auch Grün1
                                          Dann habe ich das Widget von Oben in meine View geladen!
                                          In den Objekten vom ioBroker hat sich der Ordner cam mit 2 Unterordner Image und start gebildet.
                                          Wie und was muss ich jetzt eintragen , um ein Bild von der Kamera zu bekommen.
                                          Bei der Jovision Kamera ist der Snapshot http://ip adresse/cgi-bin/getsnapshot.cgi?368x208
                                          iigeek 1080p ??????????????????????????????? noch nicht gefunden

                                          Wer könnte mir da mal helfen ?

                                          Screenshot (203).png Screenshot (204).png Screenshot (205).png

                                          L Jey Cee 2 Replies Last reply Reply Quote 0
                                          • L
                                            lostall @Kippe last edited by

                                            @Kippe du musst auf jeden Fall im Skript oben in Zeile 4 die URL der Kamera eingeben. Da steht noch der Platzhalter von Jey-Cee.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            496
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            camera how-to vis
                                            12
                                            98
                                            9634
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo