Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Neuer Adapter] Reolink Kamera

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Neuer Adapter] Reolink Kamera

    This topic has been deleted. Only users with topic management privileges can see it.
    • oelison
      oelison @Matzebhv last edited by

      @matzebhv Bitte mal den Adapter in Debug umstellen. Es wäre mal interessant wie weit er kommt, befor er die Exeption schmeißt.

      1 Reply Last reply Reply Quote 0
      • oelison
        oelison @Matzebhv last edited by

        @matzebhv Und das passwort neu setzen!

        Matzebhv 1 Reply Last reply Reply Quote 0
        • A
          ArnoD @oelison last edited by

          @oelison

          In meinem Script mache ich das über

          [{"cmd":"PtzCtrl","param":{"channel":KameraKanal,"id":ID,"op":Richtung,"speed":Speed}}];
          

          op: ist dabei die Richtung, also "Left" ,"Right", "Stop", "Up", "Down" , "LeftDown" .. usw.
          Dafür habe ich eine eigene Objekt-ID angelegt und solange z.B. "Left" true ist, wird die Kamera nach links verfahren und bei false sende ich dann "Stop" sodass ich in Vis das über eine Tastenfunktion steuern kann.

          Habe ich das im Adapter übersehen?

          oelison 1 Reply Last reply Reply Quote 0
          • oelison
            oelison @ArnoD last edited by

            @arnod Das ist tatsächlich nicht drin. Nur die festen positionen. Das mit links, rechts, usw. kann ich bestimmt einbauen.

            A 1 Reply Last reply Reply Quote 1
            • A
              ArnoD @oelison last edited by

              @oelison
              Das wäre super, 🙂 Danke schon mal für deine Arbeit.
              Wenn es dir hilft, hier mein Script wie ich es umgesetzt habe:

              'use strict';
              //------------------------------------------------------------------------------------------------------
              //++++++++++++++++++++++++++++++++++++++++++  USER ANPASSUNGEN +++++++++++++++++++++++++++++++++++++++++
              const instanz = '0_userdata.0';                                 // Instanz Script Charge-Control
              let PfadEbene1 = 'Reolink';                                     // Pfad innerhalb der Instanz
              let PfadEbene2 = ['UserDaten','PTZ','Settings'];                           // Pfad innerhalb PfadEbene1
              const KameraKanal = 0;
              //++++++++++++++++++++++++++++++++++++++++ ENDE USER ANPASSUNGEN +++++++++++++++++++++++++++++++++++++++
              //------------------------------------------------------------------------------------------------------
              
              //******************************************************************************************************
              //**************************************** Deklaration Variablen ***************************************
              //******************************************************************************************************
              
              // @ts-ignore
              const axios = require("axios").default;
              // @ts-ignore
              const https = require("https");
              let KameraIP,User,Passwort,reolinkBaseURL,ptzDescription;
              
              
              ScriptStart()
              
              // Alle nötigen Objekt ID's anlegen 
              async function CreateState(){
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.IP_Adresse`, {'def':'192.168.xxx.xxx', 'name':'Ip Adresse der Kamera' , 'type':'string', 'role':'value', 'desc':'IP Adresse Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.User`, {'def':'admin', 'name':'User Name' , 'type':'string', 'role':'value', 'desc':'User Name'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.Passwort`, {'def':'admin', 'name':'Passwort' , 'type':'string', 'role':'value', 'desc':'Passwort'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Stop`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Left`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Right`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Up`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Down`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.LeftUp`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.LeftDown`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.RightUp`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.RightDown`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ZoomDec`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ZoomInc`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Auto`, {'def':false, 'name':'Wenn = true wird Automatisch geschwenkt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.StartPatrol`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.StopPatrol`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ToPos`, {'def':false, 'name':'Wir solange = true ausgeführt' , 'type':'boolean', 'role':'State', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Patrol_ID`, {'def':0, 'name':'Positions ID' , 'type':'number', 'role':'value', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Speed`, {'def':0, 'name':'Geschwindigkeit von 0-64' , 'type':'number', 'role':'value', 'desc':'PTZ Steuerung Reolink'});
                  createStateAsync(`${instanz}.${PfadEbene1}.${PfadEbene2[2]}.SwitchLed`, {'def':false, 'name':'LED Ein/Aus-schalten' , 'type':'boolean', 'role':'State', 'desc':'LED Ein/Aus-schalten'});
              
              }
              
              const sID_IP_Adresse =`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.IP_Adresse`;
              const sID_User =`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.User`;
              const sID_Passwort =`${instanz}.${PfadEbene1}.${PfadEbene2[0]}.Passwort`;
              const sID_Stopp =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Stop`;
              const sID_Links =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Left`;
              const sID_Rechts =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Right`;
              const sID_Rauf =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Up`;
              const sID_Runter =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Down`;
              const sID_Links_Runter =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.LeftDown`;
              const sID_Links_Rauf =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.LeftUp`;
              const sID_Rechts_Runter =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.RightDown`;
              const sID_Rechts_Rauf =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.RightUp`;
              const sID_Zoom_in =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ZoomDec`;
              const sID_Zoom_out =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ZoomInc`;
              const sID_Auto =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Auto`;
              const sID_StartPatrol =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.StartPatrol`;
              const sID_StoppPatrol =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.StopPatrol`;
              const sID_ToPos =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.ToPos`;
              const sID_Patrol_ID =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Patrol_ID`;
              const sID_Speed =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.Speed`;
              const sID_SwitchLed =`${instanz}.${PfadEbene1}.${PfadEbene2[2]}.SwitchLed`;
              
              const arrayID_Parameter1 = [sID_Stopp,sID_Links,sID_Rechts,sID_Rauf,sID_Runter,sID_Links_Runter,sID_Links_Rauf,sID_Rechts_Runter,sID_Rechts_Rauf,sID_Zoom_in,sID_Zoom_out]
              
              
              
              async function ScriptStart(){
                  await CreateState();
                  log(`-==== alle Objekt ID\'s angelegt ====- `);
                  KameraIP = (await getStateAsync(sID_IP_Adresse)).val;
                  User = (await getStateAsync(sID_User)).val;
                  Passwort = (await getStateAsync(sID_Passwort)).val;
                  reolinkBaseURL = axios.create({baseURL: `https://${KameraIP}`,timeout: 5000,responseType: "json",responseEncoding: "binary",httpsAgent: new https.Agent({rejectUnauthorized: false,})});
                  
              }
              
              async function postReolink(cmdObject) {
              	try	{
              		const antwort = await reolinkBaseURL.post(`/api.cgi?user=${User}&password=${Passwort}`, cmdObject);
                      //log(JSON.stringify(antwort.data));
                  } catch(error) {
              		log(`Fehler = ${error}`,`warn`);
              	}
              }
              
              
              // Triggern wenn sich an Einstellung PTZ was ändert
              on({id: arrayID_Parameter1, change: "ne"}, async function (obj) {
                  if(obj.state.val){
                      let ID = (await getStateAsync(sID_Patrol_ID)).val;
                      let Speed = (await getStateAsync(sID_Speed)).val;
                      let Richtung = obj.id.split('.')[4]
                      ptzDescription = [{"cmd":"PtzCtrl","param":{"channel":KameraKanal,"id":ID,"op":Richtung,"speed":Speed}}];
                      postReolink(ptzDescription);
                  }else{
                      ptzDescription = [{"cmd":"PtzCtrl","param":{"channel":KameraKanal,"op":'Stop'}}];
                      postReolink(ptzDescription);
                  }
                 
              });
              
              1 Reply Last reply Reply Quote 0
              • A
                ArnoD @dadsche last edited by

                @dadsche

                Bei meiner Kamera habe ich festgestellt, dass man das Licht nur ein/ausschalten kann, wenn man als admin angemeldet ist.
                Ansonsten ist deine Annahme richtig, dass nur "switchLed" auf "true" gesetzt werden muss.

                D 1 Reply Last reply Reply Quote 0
                • D
                  dadsche @ArnoD last edited by

                  @arnod Vielen Dank für den Hinweis! Jetzt funktioniert es.

                  1 Reply Last reply Reply Quote 0
                  • M
                    michihorn last edited by michihorn

                    Hallo habe gerade die neue 1.0.2 vom Git installiert.
                    bekomme folgende Fehlermeldung:

                    
                    reolink.1
                    2023-12-28 11:27:22.782	info	terminating
                    
                    reolink.1
                    2023-12-28 11:27:33.136	info	starting. Version 1.0.2 (non-npm: aendue/ioBroker.reolink#d2e00f9aa8a64b4eff6048c1e47dbb07490e7a5a) in /opt/iobroker/node_modules/iobroker.reolink, node: v18.19.0, js-controller: 5.0.17
                    
                    reolink.1
                    2023-12-28 11:27:33.186	info	Reolink adapter has started
                    
                    reolink.1
                    2023-12-28 11:27:33.192	info	Current IP: 192.168.188.74
                    
                    reolink.1
                    2023-12-28 11:27:36.735	error	TypeError: Cannot read properties of undefined (reading 'DevInfo'): undefined
                    

                    Passwort wurde neu gesetzt, jedoch ohne Erfolg.

                    EDIT: Jetzt läufts, keine Ahnung was los war

                    Gruß
                    Michael

                    1 Reply Last reply Reply Quote 1
                    • Matzebhv
                      Matzebhv @oelison last edited by

                      @oelison Hmm, update nochmal gemacht, Kennwort gesetzt, jetzt geht es. Das mit dem Kennwort hatte ich allerdings beim letzten mal auch schon probiert, das hatte ja jemand hier schon mal geschrieben.
                      Aber egal, das Ergebnis zählt, Adapter läuft.

                      Gruß
                      Matze

                      1 Reply Last reply Reply Quote 1
                      • D
                        dan11hh last edited by

                        Ich steh irgendwie auf dem Schlauch.
                        Ich habe meine Reolink Kameras bisher über meine Synology Diskstation eingebunden. Nun sind es inzwischen ein paar mehr geworden und ich möchte diesen Umweg aus verschiedenen Gründen (u.a. Lizenzgebühren) nicht mehr gehen. Wie binde ich die Kameras über den Adapter in Lovelace ein. Dazu habe ich leider nichts gefunden. Steuern ist mir nicht wichtig. Nur Anzeige. Danke Euch!

                        D 1 Reply Last reply Reply Quote 0
                        • M
                          michihorn last edited by

                          Hallo
                          ich habe eine E1 Outdoor, die Installation ist gelaufen PTZ geht, aber bei der Erkennung von Fahrzeugen oder Personen sehe ich in den Objekten keine Reaktion. Ich habe die entsprechenden DP's in einem Script eingebunden, selbst bei kurzfristiger Statusänderung müsste diese in meiner VIS gesichtet werden. Anbei das entsprechende Script.

                          const id_detekt = "0_userdata.0.Events.Detekt"
                          const id_mensch = "reolink.0.sensor.people.state"
                          const id_car = "reolink.0.sensor.vehicle.state"
                          
                          setState(id_detekt, 0)
                          const auslöser = [id_mensch, id_car];
                          on({ id: auslöser, change: 'ne', val: true }, function (dp) {
                              log("Auslöser Ankunft: " + dp.common.name)
                              var name = dp.name;
                              log(dp.name)
                          
                              switch (name) {
                                  case 'Mensch':
                                      setState(id_detekt, 1)
                                      break;
                                  case 'Auto':
                                      setState(id_detekt, 2)
                                      break;
                              }
                          });
                          

                          Muß ich evtl. noch irgendwas in der Reolink App berücksichtigen?
                          Michael

                          1 Reply Last reply Reply Quote 0
                          • T
                            Tobi68 last edited by

                            Hallo,
                            Ich mache mir etwas Gedanken über POE und die Netzwerk Ausrüstung..
                            Betreibt hier jemand ne Reo NVR?
                            Kommen die API Funktionen bei NVR Einsatz genau so im Adapter an wie ohne NVR?
                            Habe mitbekommen das bei NVR Einsatz einige Funktionen in der App nich vorhanden sind, die sonst also direkt im Netzwerk eingebunden, in der App verfügbar sind.

                            Gruß

                            1 Reply Last reply Reply Quote 0
                            • D
                              dan11hh @dan11hh last edited by

                              @dan11hh sagte in [Neuer Adapter] Reolink Kamera:

                              Ich steh irgendwie auf dem Schlauch.
                              Ich habe meine Reolink Kameras bisher über meine Synology Diskstation eingebunden. Nun sind es inzwischen ein paar mehr geworden und ich möchte diesen Umweg aus verschiedenen Gründen (u.a. Lizenzgebühren) nicht mehr gehen. Wie binde ich die Kameras über den Adapter in Lovelace ein. Dazu habe ich leider nichts gefunden. Steuern ist mir nicht wichtig. Nur Anzeige. Danke Euch!

                              Niemand?

                              T David G. 2 Replies Last reply Reply Quote 0
                              • T
                                Tobi68 @dan11hh last edited by

                                @dan11hh

                                Ich kenn Lovelance jetzt leider nicht.,
                                Das Problem mit der Syno kenne ich.

                                Ich habe den Rtsp stream in der Vis eingebunden, kann die PTZ punkte der RLC 823 über ein Widget in der Vis anfahren.

                                Wird bei Lovelance wohl ähnlich gehen..

                                Gruss
                                Thomas

                                David G. 1 Reply Last reply Reply Quote 0
                                • David G.
                                  David G. @Tobi68 last edited by David G.

                                  @tobi68

                                  Ich habe mit einen DP mit der snapshot URL angelegt. Diesen über die Settings des DPs in Lovelace als Kamera definiert.

                                  Gibt nur leider keinen flüssigen stream. Aktualisiert glaube alle 10 Sek.

                                  1 Reply Last reply Reply Quote 0
                                  • Longbow
                                    Longbow last edited by

                                    Hey,

                                    ich habe mir zum Test meine Reolink E1 Qutdoor Pro geholt
                                    Habe die Cam in Betrieb, aber bekommen immer die Fehlermeldung in iobroker.

                                    Error: connect EHOSTUNREACH 192.168.178.170:80: EHOSTUNREACH

                                    Was kann ich machen oder mache ich was falsch, die Daten sind eingeben,

                                    Wie seit ihr zufrieden mit der Reolink habe gerade Foscam in Gebrauch, nachdem Eufy keinen vernünftigen Adapter hat,

                                    David G. 1 Reply Last reply Reply Quote 0
                                    • David G.
                                      David G. @Longbow last edited by David G.

                                      @longbow

                                      Kann es sein, dass du die ports noch freigeben musst? In den aktuellen Firmwareversionen ist bei Auslieferung alles geschlossen.

                                      https://support.reolink.com/hc/en-us/articles/900004435763-How-to-Set-up-Reolink-Ports-Settings-via-Reolink-Client-New-Client-/

                                      Geht nur über den PC, nicht übers Smartphone.

                                      Wüsste das anfangs nicht. War verzweifelt als ich die Cam in AgwntDVR einrichten wollte.

                                      Longbow 1 Reply Last reply Reply Quote 1
                                      • Longbow
                                        Longbow @David G. last edited by

                                        @david-g Danke, nur habe ich MAC... die App dort geht nicht so prima

                                        David G. 1 Reply Last reply Reply Quote 0
                                        • David G.
                                          David G. @Longbow last edited by

                                          @longbow

                                          Keine Ahnung. Nutze keinen.
                                          Scheint aber wie ich recherchiert habe, der einzige weg zu sein.

                                          Nicht übers Smartphone und nicht über den Browser.

                                          Longbow 1 Reply Last reply Reply Quote 0
                                          • Longbow
                                            Longbow @David G. last edited by Longbow

                                            @david-g Danke, hab über den App Store gesucht, aber über die Homepage habe ich die gleich gefunden...

                                            Jetzt alles aktiviert und jetzt kommt das

                                            error TypeError: Cannot read properties of undefined (reading 'DevInfo'): undefined#

                                            Geht jetz, der Adapter ist grün... jetzt muss ich nur die Cam in in VIS einbinden

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            888
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            kamera neuer adapter reolink testen
                                            151
                                            1001
                                            262659
                                            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