Foscam 8904 Bewegungsmelder auslesen

Hier zusammen,
hier ein einfaches Script wie man den Bewegungsmelder der Foscam auslesen kann

<?
$User = "Username";
$Passwort = "Passwort";

$IPAdresse = "xxx.xxx.xxx.xxx";
$Port = "4711";

$Befehl = "http://".$IPAdresse.":".$Port."/get_status.cgi?"."user=".$User."&pwd=".$Passwort;
//echo $Befehl;

/******** Kamera Auslesen ************/
$handle = fopen($Befehl,"r"); // String öffnen
$Status = stream_get_contents($handle); // String einlesen
//echo $Status;
/******** String zerlegen ************/
//$Pos = strpos ($Status,"var alarm_status=",1);
//echo $Pos.chr(13);
//echo $Status[147];
if ($Status[147] == "1")
  {
  echo "Bewegung";

  }
  else
  {
  echo "keine Bewegung";
  }
//echo $Handle;

?>

ich frage momentan den Status im 10 Sekundentakt ab, So kann ich Bewegung in ein 10 Sekunden Raster drücken. Vielleicht hat ja noch jemand eine Idee wie bei Änderung vom CGI direkt ein entsprechendes Script auslösen könnte und dadurch nicht triggern müsste!

Viel Spaß beim Testen!

Hallo.
Danke für das Script.
Ich mußte nur die Postion der 0 bzw 1 an der Stelle

if ($Status[145] == "1")

ändern.
Werde das jetzt mal testen.
Das Script soll dann den Springbrunnen vorne am Haus steuern.
Aber erstmal loggen und gucken was bei raus kommt.
EDIT:
Mit Bild abspeichern:

if ($Status[145] == "1")
  {
  //echo "Bewegung";
SetValue(48254 /*[Außen\CAM\Bewegung]*/ , true);
IG_UpdateImage(40099 /*[Außen\CAM\Image Grabber]*/);
$zeit = date("-Ymd-His-");
copy("c:/IP-Symcon/cams/40099.jpg","c:/IP-Symcon/cams/Historie/Bewegung".$zeit."A.jpg");
  }

Und klappt bei dir?

Ich glaube die Erkennung der Cam die ich benutze ist generell nicht so gut. Ich kan leider keine Bereiche festlegen wo die Erkennung laufen soll. Das Script als solches funktioniert aber super.

Hi Kollege,

ja der Bewegungsmelder lässt echt zu wünsche übrig. Bei mir hat vor ner Woche eine Spinne, direkt vor der Linse das Hoflicht brav eingeschaltet, seitdem hab ich die Lösung wieder überdacht und doch wieder nur auf herkömmliche Bewegungsmelder geswitched :wink:

Es gibt ja noch Software wie BlueIris, da kannst Bereiche markieren und die Software kann bei Bewegungs dann eine Batchdatei aufrufen. Mir ist nur noch nicht klar wie die dann ein Skript in IPS anstoßen soll!

Gruß

Kai

P.S.: Bei Instar gibts die CGI’s, die laufen auch alle auf den Foscams. Man muss nur das baugleiche Modell suchen!

Die Batch kann eine Webseite starten, natürlich eine Seite von IPS…

Habe mir so etwas ähnliches auch schon überlegt…
Ich setze bei mir allerdings die Software WebcamXP ein, in der man recht schön Bereiche und Empfindlichkeit einstellen kann. Neben dem Aufzeichnen einer Filmsequenz kann man hier auch ein beliebiges Programm ausführen, also auch die IPSCommand.exe und mit der dann eine Variable im IPS setzen oder gleich ein Skript ausführen.

Gruß
Tobias

Hallo Leute,

vielen Dank für diesen „Denkansatz“…

Für die Instar 3010 habe ich jetzt so angepasst, da die erforderliche Information zwar vorhanden ist, aber an anderer Stelle steht:

<?
$User = "xxxx";
$Passwort = "xxxx";

$IP = "192.168.178.xxx";
$Port = "80";

$Befehl = "http://".$IP.":".$Port."/get_status.cgi?"."user=".$User."&pwd=".$Passwort;
/******** Kamera Auslesen ************/
$handle = fopen($Befehl,"r"); // String öffnen
$Status = "";
$Status = stream_get_contents($handle); // String einlesen
$Alarmstatus = array();
$Alarmstatus = explode(";",$Status);

/******** String zerlegen ************/
if (intval(substr($Alarmstatus[6], -1, 1)) == 1)
  {
  SetValueBoolean(15405  /*[Garage\IP-Cam Garage\IP Cam Garage Steuerung\IP-Cam Bewegungsmelder Auslösung]*/, true);
  }
  else
  {
  SetValueBoolean(15405  /*[Garage\IP-Cam Garage\IP Cam Garage Steuerung\IP-Cam Bewegungsmelder Auslösung]*/, false);
  }

?>

So ganz „schön“ ist es ja nicht, dass man die Information „pollen“ muss, aber einen anderen „verlässlichen“ Weg gibt es derzeit wohl nicht.
Ich habe diesbezüglich mal eine Anfrage an Instar gestellt, ob es nicht vielleicht ähnlich des Verhaltens einer Fritzbox bei Telefonaktivität auf dem Port 1012 möglich wäre. Das Ergebnis steht zwar abschließend noch aus, aber derzeit soll es wohl „so“ nicht möglich sein…

Joachim

du kannst auch einfach nen Funksender an den Alarm-Ausgang anschliessen…

Danke für das Script.

Als Denkanstoß:

Stellt die Alarmfunktion in der Cam ein und lasst euch eine Email schicken, diese Emails werden dann von IPS abgerufen und die könnt Ihr dann auswerten in IPS :slight_smile:

Hallo drapple,

vielen Dank für den Hinweis.

Ich befürchte aber so richtig weiter bringt einen dieser Vorschlag nicht, bei der oben geposteten Version pollt man den Alarmzustand direkt in der Kamera, bei Deiner Version pollt man den E-Mail Eingang. Ich vermute mal, dass die erste Version dann doch noch die bessere Alternative ist.
Instar hat sich bezüglich des Vorschlags bei Alarm - ähnlich wie die FritzBox bei Anruf - etwas über das Netzwerk zu versenden nicht mehr geäußert…

Joachim

Hi ja habs ausprobiert ist viel zu langsam bis die Email ankommt ist die Bewegung weg :frowning:

Ich habe seit kurzem auch eine „Instar 4011“ in meinem Garten hängen doch bei der einbindung in IPS tuh ich mich leider noch sehr schwer. Bei mir funktioniert die bewegungserkennung einfach nicht - folgendes habe ich gemacht:

  1. das Script (ID49285) erstellt (siehe „script:“) und meine Daten angepasst.
  2. eine „Boolean Variable“ mit dem Profil „Alert“ angelegt (ID23444)
  3. in der Variable unter Eigene Aktion das Script ausgewählt:

„script:“

<?
$User = "xxxxxxx";
$Passwort = "xxxxxxx";

$IP = "00.00.00.00";
$Port = "00";

$Befehl = "http://".$IP.":".$Port."/get_status.cgi?"."user=".$User."&pwd=".$Passwort;
          

/******** Kamera Auslesen ************/
$handle = fopen($Befehl,"r"); // String öffnen
$Status = "";
$Status = stream_get_contents($handle); // String einlesen
$Alarmstatus = array();
$Alarmstatus = explode(";",$Status);

/******** String zerlegen ************/
if
 (intval(substr($Alarmstatus[6], -1, 1)) == 1)
  {
   SetValueBoolean(23444 /*[Security\Kameraüberwachung\Bewegungsmelder]*/ , true);
  }
  else
  {
  SetValueBoolean(23444 /*[Security\Kameraüberwachung\Bewegungsmelder]*/ , false);
  }

?>

Wen ich jetzt über den IE auf die Kamera schaue und dort eine Bewegung habe, sollte ja eigendlich auch eine Bewegung bei IPS sein, dem ist aber nicht so…, wo habe ich den da noch ein fehler?

Hallo Kalikola,

hast Du einen Trigger auf das Skript gelegt? (Bei mir wird es alle 5 Sekunden ausgeführt)
Ansonsten: Schau Dir mal das Array $Alarmstatus an, möglicherweise liegt diese Information bei dieser Kamera an einer anderen Stelle…

Joachim

Also nachdem ich dann Heute mal die Sicherung raus nehmen musste um einen neuen Actor einzubauen, läuft es…- mit anderen Worten „ein Neustart des Servers“ hat wunder bewirkt.

Aber es läuft viel zu gut:

Jetzt bekomme ich ständig Bewegungsmeldung auf mein Handy und Draußen geht ständig das Licht an und aus, kann ich da irgendwo eine Feinabstimmung für die Bewegungsempfindlichkeit einstellen?

Schaltest Du über die Bewegungserkennung der Kamera das Licht?
Das könnte zu komischen Ergebnissen führen: Trotz angeblicher Optimierung im aktuellen Firmware-Update reagiert die Bewegungserkennung der Kamera immer noch sehr stark auf Lichtveränderungen…

Joachim

Ja ich schalte das Licht aber nur Testweise im Haus, das kann die Kamera nicht sehen da diese draußen im Garten hängt.

…aber oben hast Du doch geschrieben, das „draußen immer das Licht an und aus geht“…:confused:

Welches Licht meinst Du denn? Denn wenn „draußen immer das Licht an und aus geht“ und die Kamera dort hängt, dann wird das doch der Auslöser sein…

Zumindest in der Weboberfläche der Kamera selbst kannst Du doch die Empfindlichkeit einstellen. (Ich habe auch dafür ein Skript, bin aber derzeit nicht zu Hause…).

Erkläre doch bitte nochmals Deine Problem.

Joachim

:slight_smile: Mit Draußen meinte ich „Draußen im Wintergarten“ da hat die Kamera aber kein einblick, Sorry - mein fehler! Die aussage war verwirrend.

Vergessen wir mal das Licht:
ich habe jetzt mal ein bißchen herrum Experimentiert und dabei ist mir aufgefallen das die Bewegungsüberwachung jedesmal los geht wen die Kamera die Position ändert (bei mir alle 2min.), das ist aber mal ganz Doof! Jetzt habe ich die Kamera mal an einer Position gestopt, dann wird auch nur bei bewegung Alarm ausgelösst.

Dabei ist mir aber aufgefallen das der Alarm sehr lange ansteht und ich dadurch knapp 10 Pushnachrichten bekomme, auch Doof.

Hmmnnn…, zu den zwei Punkten vieleicht jemand nen Rat?

Zum ersten: Da die Bewegungserkennung nach meinem Kenntnisstand über die Änderung im Bild ausgelöst wird (also berechnet wird), wirst Du es (ohne Firmware-Änderung) wohl nur hinbekommen, wenn Du vor dem Bewegungsbefehl die Bewegungserkennung ausschaltest (und danach gleich wieder einschaltest) - was besseres fällt mir derzeit auch nicht ein…

Zum zweiten:Wie hast Du denn Deinen „Auslöser“ konfiguriert? Hast Du vielleicht die Option „Nachfolgende Ereignisse ausführen“ aktiviert?

Joachim