WebCams und Überwachungskameras im WebFront

Also dass mit den Verkehrskameras würde mich auch interessieren.
Ich hab versucht die Kameras einzubinden, aber da ist irgend etwas hinterlegt, dass di Bilder immer befreit und das komplette Webfront verschwinden lässt.
Gibt’s da ne Lösung für?

Hallo,
was mache ich denn nun schon wieder falsch?
Im Webfront erhalte ich keine Bilder. Wenn ich die URL im Browser eingebe klappt es ohne Probleme.

In deinem Script, in Zeile 4 fehlt ein Semikolon. :D:confused:

Kopier dir das Script noch mal Neu. Ich hab das mit dem jpg angepasst.

welche Kamera ??
verwendete Url ???

Danke RWN!

Manchmal kann es so einfach sein!

Gruß Tim

@Horst

Tolles Skript - funktioniert tadellos!!

Wollte nochmal das Thema „Passwortschutz“ aufgreifen.

EDIT:

Paresey hat mir folgenden Tipp gegeben:

http://www.ip-symcon.de/service/dokumentation/modulreferenz/system-informationen/sys-geturlcontentex/

Damit funktioniert es :slight_smile:

Wie lässt sich dieses Image-Grabber Modul mit deinem Skript kombinieren?

Vielen Dank für das klasse Script! Hat super funktioniert.

Habs für mich einwenig abgeändert:

<?php
// Vorlage:
// https://www.symcon.de/forum/threads/7705-WebCams-und-%C3%9Cberwachungskameras-im-WebFront?highlight=CamSelection

$value = 0;
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
$camID = IPS_GetMediaIDByName("Bild", $parentID);
$selectionID = IPS_GetVariableIDByName("Auswahl", $parentID);
$selectionVar = IPS_GetVariable($selectionID);

if ($IPS_SENDER == "WebFront"){
    $value = $IPS_VALUE;
    SetValueInteger($selectionID, $IPS_VALUE);
} else {
    $value = GetValue($selectionID);
}

if ($value == 0){ // ...
   $CamIP ="192.168.1.10";
}
if ($value == 1){ // ...
   $CamIP ="192.168.1.11";
}
if ($value == 2){ // ...
   $CamIP ="192.168.1.12";
}

$fileUri = "http://".$CamIP."/videostream.cgi";
IPS_SetMediaFile($camID, $fileUri, false);

?>

Frage Nr. 1 ist:
Welchen Hintergrund hat diese Anweisung?

if ($IPS_SENDER == "WebFront"){

Und Frage Nr 2:

Kann ich irgenwie (z.B. anhand der IP) herausfinden ob der Zugriff auf die Seite/Kameras von intern oder extern erfolgt?

Bei internem Zugriff aus dem lokalem Netzwerk will ich gern weiterhin über die lokale IP (192.168.x.x) auf die Kameras zugreifen. Bei externen Zugriffen (also aus dem Internet) möchte bzw. muss ich sogar über meine DNS Adresse auf die Kamers zugreifen. Hat jemand da eine Idee wie ich das realisieren kann?

Keiner eine Idee? :confused:

Zu Frage Nr1 > ich könnte ja jetzt sagen - steht in der Doku…aber man soll den Leuten ja helfen…

Hier der 3. Punkt $_IPS[‚SENDER‘] >> Systemvariablen — IP-Symcon :: Automatisierungssoftware

WebFront < Auslöser vom Skript = WebFront = Skriptausführung durch Bedienung über das WebFront

Weitere Auslöser Möglichkeiten stehen hier in der Tabelle:
Systemvariablen — IP-Symcon :: Automatisierungssoftware

Zu Frage Nr2 > nimm die DynDns-Adresse für intern und extern

Außerdem verwendest du die alte Schreibweise der Systemvariablen, dazu solltest du dir mal diesenPost anschauen, das Skript verwenden und die Variablen entsprechend z.B. von $IPS_SENDER in $_IPS[‚SENDER‘], $IPS_SELF in $_IPS[‚SELF‘], usw… ändern.

-Chris-

Hallo Chris, erstmal Danke für die Info.

Was der Befehl $_IPS[‚SENDER‘] genau macht ist mir schon klar:o. Meine Frage ist aber, warum hier diese Abfrage überhaupt benötigt wird. Warum das WebFront als „Sender“ der Scriptausführung hier kontrolliert wird?
Kann es hier in dem Beispiel einen anderen „Sender“ geben, der ansonsten zur Problemen führt?
Das Script ist doch in diesem Beispiel fest an ein DummyModul gekoppelt und kann doch nur von da aus ausgeführt werden. Oder übersehe ich da was?

Hab diese Abfrage schön öfters auch in anderen Scripten gesehn und daher für mich eine allgemeine Frage.

Gruß

Die „anderen Sender“ sind doch im else-Zweig berücksichtigt, oder verstehe ich das falsch

if ($IPS_SENDER == "WebFront"){
    $value = $IPS_VALUE;
    SetValueInteger($selectionID, $IPS_VALUE);
} else {
    $value = GetValue($selectionID);
}

Gruß
Bruno

:rolleyes:

In diesem Fall hat die Abfrage vom IPS SENDER den Hintergrund, dass wenn man im WebFront z.B. auf die 3 drückt, dann wird über diese IF der Wert 3 in die Variable geschrieben, weil er in IPS VALUE steht.

if ($IPS_SENDER == "WebFront"){
    $value = $IPS_VALUE;
    SetValueInteger($selectionID, $IPS_VALUE);
}

Würde man das Skript von Hand ausführen, ohne dieses IF mit IPS SENDER, dann würde es einen Fehler produzieren, weil IPS VALUE dann nicht gefüllt wäre. Probier es doch einfach aus… Man kann Skripte kopieren/sichern, dann damit rumspielen, Befehle löschen und verändern und dann sieht man was passiert… :wink:

Für andere Fälle kann man so unterscheiden, ob ein Skript per Timer aufgerufen wurde und nur dann bestimmte Befehle ausführen. Oder auch prüfen, ob ein bestimmtes Event das Skript ausgeführt hat und nur dann dies und das machen…usw…

-Chris-

@Bruno: Noch ein Beitrag und du hast die 4000 :slight_smile: Also bitte da was besonderes schreiben, z.B. im rauchender Frosch Thread :smiley:

Alles klar. Habs kapiert. Danke!

Hey Leute,

gibt es eine Möglichkeit den Stream einer Webcam nicht in dem jeweiligen webfront Browser zu laden, sondern zentral über den IPS Server? Anschließend diesen dann den Browsern zur Verfügung zustellen? Hintergrund dieser Frage ist, dass ich verschiedene Geräte nutze und bei manchen der Stream erst nach 3 maligem refresh angezeigt werden. Wenn ich es aber direkt über den Browser des Servers bzw aller Apple Geräte mache so sind die Streams sofort verfügbar.

Gruß Bernd