Empfehlung PTZ-Kamera

Habe mir die Folgende Kamera gekauft: Reolink RLC-423

mfg: Swen

Acer90
Habe mir die Folgende Kamera gekauft,
Reolink RLC-423: 4MP PTZ IP Security Camera – Reolink Store

Amazone link:
Reolink RLC423 4MP HD 4X Optical Zoom PTZ PoE Security: Amazon.de: Elektronik

mfg: Swen

hast du sie nativ (also mit mjpeg) ins IPS eingebunden ?

Also bei mir läuft halt alles über blueiris.

Hab grade geschaut, hat leider kein MJPEG stream.

Sweb

Also bei mir läuft halt alles über blueiris

solltest du ein Auge auf die Prozessorlast haben

Habe ich kein Problem mit, ist nur eine frage der einstellung.

Moin Moin,

lässt du auch bestimmte Positionen anfahren ? Ich habe auch die Reolink 423 und auch Blue Iris , jetzt würde ich gerne wenn es klingelt auch zur Postion Klingel fahren .

Hat damit jemand Erfahrung ?

Hallo,

ich interessiere mich auch für die Steuerung einer Reolink PTZ via IPS. Kann mir da jemand weiterhelfen?
Screenshots bekomme ich mittels Image grapper hin. Ich möchte aber noch gerne per Befehl aus ips heraus die Position verfahren.
Ich freue mich auf eure Unterstützung.

Ich nutze Blueiris schon seit Beginn einfach per MQTT.

PTZ sieht zb. so aus:

ActionScript:

<?php

//Documentation: https://www.symcon.de/en/service/documentation/concepts/scripts/action-scripts/
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

$MQTT = 57455;

switch ($_IPS['VALUE']) {
  case 0; //Neutral
    RequestAction($MQTT, "camera=cam1&preset=5&ptz=34");
    break;
  case 1; //Zentrum
    RequestAction($MQTT, "camera=cam1&preset=1&ptz=36");
    break;
  case 2; //Küche
    RequestAction($MQTT, "camera=cam1&preset=2&ptz=36");
    break;
  case 3; //Terrasse
    RequestAction($MQTT, "camera=cam1&preset=3&ptz=36");
    break;
  case 4; //Couch
    RequestAction($MQTT, "camera=cam1&preset=4&ptz=36");
    break;            
  IPS_LogMessage($_IPS['SELF'], "Scriptname: " . IPS_GetName($_IPS['SELF']));
}

Ausserdem schalte ich per Anwesenheitserkennung die Blueiris Profile passend um (Scharfschaltung usw…)

MQTT sieht so aus:

ActionScript:

<?php
//BlueIris Status übermitteln
if ( preg_match("/profile/",$_IPS['VALUE']) ) {
    $Profile = substr($_IPS['VALUE'], -1); 
    SetValue(13676, intval($Profile));
}

Vielen Dank für die ausführliche Antwort. Ich lese mich mal ein in blueiris.

Hallo zusammen,

leider bin ich noch nicht viel weiter gekommen. Ich habe aber bei iobroker etwas gefunden.
Dort wurde folgender code geschrieben:

curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":""}}},{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ToPos","speed":32,"id":1}}]' 192.168.0.21/api.cgi?cmd=Login&cmd=PtzCtrl&token=1640dd95bcac9f2

Meine Frage ist nun, wie bekomme ich das in IPS umgesetzt und was ist mit dem token am Ende gemeint bzw. wie generiere ich diesen? (bitte für nicht IT-Experten erklären :wink: )

vielen dank schon mal.

$ch = curl_init();
$intCamPos = $_IPS["VALUE"];

        // set url
curl_setopt($ch, CURLOPT_URL, "http://10.0.1.152/cgi-bin/api.cgi?cmd=PtzCtrl&token=5c2c7f3229ecf87&user=user&password=pass");
curl_setopt($ch, CURLOPT_POSTFIELDS,     '[{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ToPos","speed":32,"id":' . $intCamPos . '}}]' ); 
        //return the transfer as a string

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        // $output contains the output string
$output = curl_exec($ch); 

Ein Script anlegen und denn oberen Code einfügen
dann eine Integer Variable anlegen und ein neues Profil (1-xxx) anlegen
dann ein Ereignis bei Variablenänderung auf das script

Die Positionen musst du in der APP vorher abgespeicher haben der Name ist egal

Mit dem Code kannst du denn Token auslesen steht unter „name“

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://10.0.1.152/cgi-bin/api.cgi?cmd=Login&token=null");
curl_setopt($ch, CURLOPT_POSTFIELDS,     '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"yourpass"}}}]' ); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch); 

$myJSON = json_encode($output);
echo $myJSON;

Ich habe letze Woche eine zweite Kamera bei mir angelegt nach 1 Jahr mit dem gleichen Token anscheinend ist der egal es muss nur ein Token vorhanden sein

so habe ich das bei mir
Gruß
Bruno

Bruno VIELEN DANK!!!

es funktioniert! Musste nur noch den Port hinter die IP setzen (bei mir :800)

DANKE!!!

Hallo schmiddi,

vielen Dank, das klappt super.

Abend!

Könnte mann eventuell auch Zoomen via IPS?

lg

Sorry war etwas im Stress

Anbei für Zoom

<?

$ch = curl_init();
$Action = $_IPS["VALUE"];
// Token + Login
curl_setopt($ch, CURLOPT_URL, "http://10.0.1.157/cgi-bin/api.cgi?cmd=PtzCtrl&token=4c2c7f3229ecf87&user=xxxx&password=xxxx");
//Payload
switch ($Action) {
    case 1:
 //Zoom Stop
        curl_setopt($ch, CURLOPT_POSTFIELDS,     '[{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"Stop"}}]' ); 
        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      
        break;
    case 2:
 //Zoom Plus
        curl_setopt($ch, CURLOPT_POSTFIELDS,     '[{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ZoomInc","speed":32}}]' ); 
        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        break;
    case 3:
  //Zoom Minus
        curl_setopt($ch, CURLOPT_POSTFIELDS,     '[{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ZoomDec","speed":32}}]' ); 
        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        break;
}
//Senden
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
$output = curl_exec($ch); 
//[{cmd: "PtzCtrl", action: 0, param: {channel: 0, op: "Stop"}}]
//[{cmd: "PtzCtrl", action: 0, param: {channel: 0, op: "ZoomDec", speed: 32}}]
//[{cmd: "PtzCtrl", action: 0, param: {channel: 0, op: "ZoomInc", speed: 32}}]
?>

Hier noch der Payload für Steuerung ohne Position
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „Right“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „Left“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „Up“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „Down“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „RightUp“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „RightDown“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „LeftUp“, speed: 32}}]
//[{cmd: „PtzCtrl“, action: 0, param: {channel: 0, op: „LeftDown“, speed: 32}}]
noch nicht Getestet !!! :smiley:
Gruß Bruno

Funktioniert wieder einwandfrei Bruno!
Nochmals Danke!!!

Wo hast du den Payload her?

lg

Funktioniert auch! lg

ps: den Stop Button, die fehlenden Anführungszeichen, Leerzeichen weglassen und die Speed beachten!!!
Ansonsten wiedermal TopTop. Danke

Über den Browser in die Kamera einloggen
Dann über F12 DevTools aufrufen

Gruß Bruno

Hi!

habe das Script von Bruno noch um

// Update Symcon Variable
SetValueInteger(30805,$intCamPos);

ergänzt. Dann wird in Symcon die aktuelle Position angezeigt.

Hallo Zusammen,
ich habe das Problem, das dieses Skript bei 3 Reolink Kameras funktioniert und bei einer nicht!?

Bei der E1 Pro nicht, bei C1 Pro und RLC-410 und RLC-423 gehts…

Hat da Jemand eine Idee?