Alarm deaktivieren und aktivieren

Moin zusammen,

ich bin hier neu und habe einige Fragen zur IN 9008 Full HD Kamera.

Ich habe im Moment noch 3 Foscam 9805W am laufen. Die will ich austauschen gegen die IN 9008 Full HD.

Die neuen Kameras habe ich eingerichtet und laufen perfekt. Aktuelle Firmware ist schon raufgespielt.

Zur Zeit nutze ich einen Rasperry wo die Alarmfilme der Foscams per FTP gespeichert werden.

Der wurde von einen Bekannten eingerichtet, weil ich von Linux Null Ahnung habe.

Jetzt habe ich einen Windows Rechner der 24/7 an ist. Da speichern die neuen IN 9008 Full HD per FTP die Alarmfilme. Daher kann der Raspberry auch weg.

Nun zu den Fragen:

Der bekannte hatte mit einen Button eingerichtet, das die Cams per Klick an und ausgeschaltet werden können. (Siehe Bilder), sofern man im Heimnetz , oder per VPN verbunden ist.

Die Cams wurden um 22 Uhr automatisch aktiviert, wenn man die vorher deaktiviert hatte.

Diese Funktionen würde ich auch gerne bei den neuen IN 9008 Full HD weiterhin haben.

Wie ist es möglich, diese Funktionen selbst herzustellen?

Ich bedanke mich schon mal für Eure vielen Antworten

Gruß Mattes


Hallo @Mattes ,


was versteckt sich denn hinter diesem Button? Vermutlich ist es nur ein CGI Befehl den man einfach austauschen könnte und schon läuft das ganze auch mit den 9008er Kameras.


Hallo, danke für die rasche Antwort.

Ich habe mal den Seitenquelltext kopiert.
Das sind böhmische Dörfer für mich…
Das sieht anders aus, wie Eure CGI Befehle.
Angeguckt habe ich die Befehle, aber da fehlt mit das nötige Wissen, es so zu programmieren.
Es ist so, das ich über einem Browser im Heimnetz auf die Seite gehe, die IP Adresse vom Raspberry, dann öffnet sich die Kamerasteuerung mit den Buttons.

Gar nicht so einfach :worried:

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width">
<script type="text/javascript" src="http://gc.kis.v2.scr.kaspersky-labs.com/FD126C42-EBFA-4E12-B309-BB3FDD723AC1/main.js?attr=-gDknOEyKW7JqSoEPhmwXP2zeK3qQXOccdxzlLcv6lteawsCbCiIYNArq5jEC-zqnYTSjMi9Q-SvN2Zgj4Ei9g" charset="UTF-8"></script><link rel="stylesheet" crossorigin="anonymous" href="http://gc.kis.v2.scr.kaspersky-labs.com/E3E8934C-235A-4B0E-825A-35A08381A191/abn/main.css?attr=aHR0cDovLzE5Mi4xNjguMTg5LjEwNC9pbmRleC5waHA"/></head>
<body>
<h1>Kamera-Bewegungsmeldung</h1>
<form action="/index.php" method="GET" name="setState">
<input type="hidden" name="isEnable"></input>
<input type="hidden" name="cam"></input>
<table>
<tr><td>Cam_Hinten</td><td style="width:100px;"><div class="onoffswitch">
<input type="checkbox" name="Cam_Hinten" class="onoffswitch-checkbox" id="Cam_Hinten" onchange="changeState(this);return false;">
    </input>
    <label class="onoffswitch-label" for="Cam_Hinten">
    <span class="onoffswitch-inner"></span>
    <span class="onoffswitch-switch"></span>
    </label>
    </div>
    </td></tr>
<tr><td>Cam_Vorne</td><td style="width:100px;"><div class="onoffswitch">
<input type="checkbox" name="Cam_Vorne" class="onoffswitch-checkbox" id="Cam_Vorne" onchange="changeState(this);return false;">
    </input>
    <label class="onoffswitch-label" for="Cam_Vorne">
    <span class="onoffswitch-inner"></span>
    <span class="onoffswitch-switch"></span>
    </label>
    </div>
    </td></tr>
<tr><td>Cam_Garten</td><td style="width:100px;"><div class="onoffswitch">
<input type="checkbox" name="Cam_Garten" class="onoffswitch-checkbox" id="Cam_Garten" onchange="changeState(this);return false;">
    </input>
    <label class="onoffswitch-label" for="Cam_Garten">
    <span class="onoffswitch-inner"></span>
    <span class="onoffswitch-switch"></span>
    </label>
    </div>
    </td></tr>
</table>
</form>
<script type="text/javascript">
<!--
function changeState(cb) {
        document.forms[0].isEnable.value = cb.checked;
        document.forms[0].cam.value = cb.name;
        document.setState.submit();
}
-->
</script>
</body></html>

Den Text hier zu kopieren klappt nicht, dann erscheint wieder die Kamerasteuerung… daher als Bild noch hinterher.

Was steht denn da in der index.php Datei drinnen?

Hallo,
jetzt kommen die Fachausdrücke… :grinning_face_with_smiling_eyes: Ich bin schon jetzt schon eine lange Zeit im Netz am lesen, was das php ist. Bis jetzt habe ich soviel davon verstanden, das man dort einige Befehle hinterlegen kann.
Das scheint wohl auch Ihre Vermutung zu sein.

Jetzt suche ich gerade eine Möglichkeit diese Datei auszulesen. Bin da aber noch nicht fündig geworden.
Ich habe mir mal den Atom Editor runtergeladen, nachdem ich gelesen habe, das sollte damit funktionieren.
Das Programm scheint aber was für Profis zu sein.
Leider fehlt mir für die ganzen Programmierungen das Wissen.

Ich werde mal im Netz weitersuchen um diese Datei auszulesen. Ich melde mich dann wieder.

Gruß
Mattes

Wo liegen denn die Dateien? Wenn man auf dem Server nach einer index.php Datei sucht, sollte man die schnell finden können.

Atom ist schon mal eine gute Wahl, wenn man sich ein paar PHP Kenntnisse erarbeiten möchte. Zum lesen von PHP Dateien reicht aber auch schon das Windows Notepad :grinning:

Hallo,
hier ist die index.php.
Die ist auf dem Raspberry gewesen.

Da steht wieder vieles was ich nicht entziffern kann.
Aber zumindest deute ich es, das dort die CGI Befehle für die Foscams sind…

<?php
$cams = file("cams.conf");
$myself = $_SERVER['PHP_SELF'];
//echo $_GET['cam'].":".$_GET['isEnable'];
if (isset($_GET['cam']) && isset($_GET['isEnable']) ) {
	foreach ($cams as $cam) {
		list($name,$host,$user,$pass) = explode(";",$cam);
		if ($name == $_GET['cam']) {
			$res = file_get_contents("http://$host/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=$user&pwd=".trim($pass));
			$res=preg_replace("/<[\/]{0,1}CGI_Result>\n/","",$res);
			preg_match('#<isEnable>(.+)</isEnable>#',$res,$r);
			$camsets[$name]["isEnable"] = $r[1];
			preg_match('#<result>(.+)</result>#',$res,$r);
			$camsets[$name]["result"] = $r[1];
			$camsets[$name]["host"] = $host;
			$camsets[$name]["user"] = $user;
			$camsets[$name]["pass"] = $pass;
			preg_match_all('#<(.+)>(.*)</\1>#isU',$res,$sets,PREG_SET_ORDER);
			$camsets[$name]["settings"] = $sets;
			$req = "http://$host/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&usr=$user&pwd=".trim($pass)."&triggerInterval=55&isEnable=".($_GET['isEnable'] == "true" ? 1 : 0);
			if (count($camsets[$name]["settings"])==23) {
				foreach ($camsets[$name]["settings"] as $camset) {
					if ($camset[1] != "result" && $camset[1] != "isEnable" && $camset[1] != "triggerInterval") $req .= "&".$camset[1]."=".$camset[2];
				}
				if (($_GET["isEnable"] == "true" ? 1 : 0) != $camsets[$name]["isEnable"] ) {
					$res = file_get_contents($req);
					preg_match('#<result>(.+)</result>#',$res,$r);
					if ($r[1] !=0) {
						echo <<<END
<html><head>
</head>
<body>
<script type="text/javascript">
<!--
window.onload = function() {
alert("Bei Aktivieren/Deaktivieren der Bewegungsmeldung der Kamera $name ist ein Fehler aufgetreten.");
window.location.href="$myself";};
-->
</script>
</body>
</html>

END;
					} else {
						header("Location: $myself");
					}
				}
			} else {
				echo <<<END
<html><head>
</head>
<body>
<script type="text/javascript">
<!--
window.onload = function() {
alert("Bei Aktivieren/Deaktivieren der Bewegungsmeldung der Kamera $name ist ein Fehler aufgetreten.");
window.location.href="$myself";};
-->
</script>
</body>
</html>

END;
			}
		}
	}
} else {
echo <<<END
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width">
</head>
<body>
<h1>Kamera-Bewegungsmeldung</h1>
<form action="$myself" method="GET" name="setState">
<input type="hidden" name="isEnable"></input>
<input type="hidden" name="cam"></input>
<table>

END;
	foreach ($cams as $cam) {
		list($name,$host,$user,$pass) = explode(";",$cam);
		$res = file_get_contents("http://$host/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=$user&pwd=".trim($pass));
		$res=preg_replace("/<[\/]{0,1}CGI_Result>\n/","",$res);
		if (preg_match('#<isEnable>(.+)</isEnable>#',$res,$r)) $camsets[$name]["isEnable"] = $r[1];
		if (preg_match('#<result>(.+)</result>#',$res,$r)) $camsets[$name]["result"] = $r[1];
		$camsets[$name]["host"] = $host;
		$camsets[$name]["user"] = $user;
		$camsets[$name]["pass"] = $pass;
		if (isset($camsets[$name]["result"]) && $camsets[$name]["result"]==0) {
			echo "<tr><td>$name</td><td style=\"width:100px;\"><div class=\"onoffswitch\">\n";
			echo "<input type=\"checkbox\" name=\"$name\" class=\"onoffswitch-checkbox\" id=\"$name\" onchange=\"changeState(this);return false;\"";
			if ($camsets[$name]["isEnable"]) echo 'checked="checked"';
			echo <<<END
>
    </input>
    <label class="onoffswitch-label" for="$name">
    <span class="onoffswitch-inner"></span>
    <span class="onoffswitch-switch"></span>
    </label>
    </div>
    </td></tr>

END;
		} else {
			echo "<tr><td>$name</td><td style=\"width:100px;\">Fehler</td></tr>";
		}
	}
	echo <<<END
</table>
</form>
<script type="text/javascript">
<!--
function changeState(cb) {
        document.forms[0].isEnable.value = cb.checked;
        document.forms[0].cam.value = cb.name;
        document.setState.submit();
}
-->
</script>
</body></html>
END;
}
?>

Gruß Mattes