IPSCam

Nachdem ich mit IPS erst am Anfang stehe, kannst Du mir Deine Scripts zur Verfügung stellen, denke meine sind noch sehr rudimentär und aufwendig in der Abarbeitung.

Hallo Spechtl,

hier das Script und ein Screenshot der manuell anzulegenden Variablen und des erforderlichen Ereignisses. Das Script habe ich mal quick & dirty zusammen geschraubt. Für meine Bedürfnisse ist es aber ausreichend. Im Array $pos bitte für die einzelnen Positionen die Steuercodes der Instar eingeben. Die beginnen bei 31 und gehen in Zweierschritten aufwärts, je nach Anzahl der gespeicherten Positionen. Im Beispielscript habe ich fünf Positionen, kann aber natürlich beliebig erweitert werden, die Reihenfolge ist auch wurscht.

Gruß
Kai.

<?

IPSUtils_Include ('IPSCam.inc.php', 'IPSLibrary::app::modules::IPSCam');

$camid  = 0; // ID der Cam
$pos    = array( 1=>31,2=>33,3=>35,4=>37,5=>39 ); // Weg
$curpos = GetValueInteger( 10800 /*[Scripte\Kamera\Garten\position]*/ ) + 1;

// Snapshot vor nächster Bewegung erstellen:
IPSCam_StorePicture( $camid );

// Am Ende des Weges wieder von vorn anfangen
if ( $curpos > count($pos) ) {
	 $curpos = 1;
}

// neue Position speichern
SetValueInteger( 10800 /*[Scripte\Kamera\Garten\position]*/, $curpos );

// Bewegung ausführen
$ch = curl_init('http://192.168.178.19/decoder_control.cgi?command='.$pos[$curpos].'&user=xxx&pwd=xxx');
curl_exec($ch);
curl_close($ch);

?>

2013-01-27_17h29_38.png

Hallo,
bei den ältern Abus-Cams sind die Pfade für die Bilder anders:

cgi-bin/viewer/video.jpg

Gruß
bastelfrosch

Vorab: IPSCam läuft bei mir prima mit einer Edimax-Kamera.

Habe beobachtet, dass es eine hohe Datenrate zwischen Cam-IP und Firefox/PC-IP gibt unabängig davon, ob man sich auf dem Webfront auf der Cam-Seite befindet und auch unabhängig davon ob dort der Live-Modus oder der Bild-Modus eingestellt ist. Im LAN ist das OK. Oft bin ich allerdings auch über VPN von aussen zugange und da ist dies sehr störend.

Ist das ein Feature - und bei allen so - oder eine Bug - nur bei mir?

Gruss, hcp

Eine hohe Datenrate sollte es nur geben, wenn der Live Mode einer Cam aktiviert ist. Ob das Tab dabei im WebFront gerade sichtbar ist, macht meines Wissens keinen Unterschied.

Eventuell hast Du ja eine sekündlichen Refresh im Bild Modus eingestellt oder einen Link auf die Live „Variable“ anderswo im WebFront…

Habe den Refresh im Bild Modus komplett abgestellt … und Links gibt es keine sonstwo ins Webfront. Nur eine Link in die „Mobile Section“ ist da … Die hohe Datenrate bleibt leider …:confused:

Stellt man im WebFront Configurator das CameraPanel (IPSCam) ab so geht die Datenrate sofort runter. Das zeigt mir, dass das Ganze von IPSCam kommt und nicht von einem anderen Thema …

Interessant ist auch, dass die Datenrate (knapp 3 Mbit/sec) nicht von der eingestellten Bildgröße anhängt …

Hallo,

bin sicher nicht der erste der danach fragt, (habe aber nichts gefunden) - daher doch die Frage(n):

Wie kann ich per Script die voreingestellten Postionen der Kamera anfahren?

( und … ggf. auch per script die Kamera bewegen…, liks ,recht, hoch …) (Edimax 7110)

„alles andere“ funktioniert hervorragend!!! (Dank und Lob!)

Hilfreiche Hinweise weden gern genommen :slight_smile:

VG
Andreas

Manuelle Ansteuerung kann man zB so machen:


    IPSUtils_Include ("IPSCam.inc.php", "IPSLibrary::app::modules::IPSCam");
    $camManager = new IPSCam_Manager();
    $camManager->Move(0, IPSCAM_URL_PREDEFPOS1);

Der erste Parameter im Move Befehl spezifiert die Nummer der Kamera im Config File (in diesem Fall die Kamera mit Index 0).
Alternativ kann man den Idx auch über den Namen ermitteln


    $cameraIdx  = IPSCam_IPSCam_GetCamIdxByName('KameraName'); // Verwendeter Name in der Config

Weitere mögliche Befehle sind:


    $camManager->ProcessCommand($cameraIdx, IPSCAM_PROPERTY_ACTION1);
    $camManager->ProcessCommand($cameraIdx, IPSCAM_PROPERTY_ACTION2);
    $camManager->ProcessCommand($cameraIdx, IPSCAM_PROPERTY_ACTION3);
    $camManager->ProcessCommand($cameraIdx, IPSCAM_PROPERTY_ACTION4);

    $camManager->Move($cameraIdx, IPSCAM_URL_MOVELEFT);
    $camManager->Move($cameraIdx, IPSCAM_URL_MOVERIGHT);
    $camManager->Move($cameraIdx, IPSCAM_URL_MOVEUP);
    $camManager->Move($cameraIdx, IPSCAM_URL_MOVEDOWN);

    $camManager->Move($cameraIdx, IPSCAM_URL_PREDEFPOS1);
    $camManager->Move($cameraIdx, IPSCAM_URL_PREDEFPOS2);
    $camManager->Move($cameraIdx, IPSCAM_URL_PREDEFPOS3);
    $camManager->Move($cameraIdx, IPSCAM_URL_PREDEFPOS4);

Hallo,
Hab mir heute eine Foscam bestellt, die ich eigentlich mit deinem Modul verwenden wollte.
Jetzt hab ich aber gesehen das sie garnicht unterstützt wird.
Oder gibt es da was?

Zur Zeit wird diese Kamera noch nicht unterstützt, im WIKI findest Du die Infos welche URLs benötigt werden, um eine Ansteuerung zu implementieren.
Diese URLs müsstest Du selber suchen, bei der Implementierung kann ich Dir dann helfen …

Im Prinzip geht die Ansteuerung der Foscam mit der Einstellung für Instar Cams.

Hi ! Vielen Dank für das geniale Script / Modul ! Erste Sahne
Ich habe da aber noch eine Frage: (Ich habe eine schwenkbare IPCam baugleich mit Instar 30xx)

Wenn ich die Bildgröße von M auf S stelle kann ich das nicht mehr rückgängig machen.
Das Bild bleibt immer klein. Komme nicht mehr aufs große Bild „M“ zurück, egal was ich mache.

Jemand ne Idee ?

Hallo Andreas,

mit „IPSCam_StorePicture“ klappt das manuelle Abspeichern eines Bildes einwandfrei. Besteht aber irgendwie eine Möglichkeit beim manuellen Speichern auch den Pfad und den Bildnamen anzugeben, so das dieses Bild nicht im normalen Ordner landet?

Gruß
Jens

Habe IPScam installiert
Das Video funktionier auf PC und auf IPad (MobileApp) aber nicht auf Android Tablet (MobileApp)
Ist da noch irgendwas zum einstellen :confused:
Bilder werden angezeigt
Die Kamera ist eine Foscam

Danke
Bruno

Hallo zusammen,
ich habe dank dieses genialen Scripts/Moduls eine PT-Kamera wunderbar im IPS eingebunden. Nun mein Problem, wie füge ich eine weitere Kamera hinzu? Da ich IPS Neuling bin, bitte ich um eine „Schritt für Schritt - Anleitung“ :wink:

Vielen Dank
Heuser

Das Script IPSCam_Configuration öffnen

',

Dann bei diesem Eintrage im Skript IPSCam_Configuration

 
function IPSCam_GetConfiguration() {
		return array(
			0    => array(IPSCAM_PROPERTY_NAME        => 'Massage',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Foscam,10.0.xxx.xxx,',
			              ),

		);
	}

  

denn nächsten array eintrag für die zweite kamera eintagen


function IPSCam_GetConfiguration() {
		return array(
			0    => array(IPSCAM_PROPERTY_NAME        => 'Massage',
			              IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Foscam,10.0.xxx.xxx,',
			              ),
			1    => array(IPSCAM_PROPERTY_NAME        => 'Haustüre',
					        IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
			              IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Foscam,10.0.xxx.xxx',
			              ),

		);
	}


Danach ein script anlegen und diesen code ausfüren


<?
IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");

$Modul = 'IPSCam';
//$Pfad = 'https://raw.github.com/MCS-51/IPSLibrary/Development/'; // Module von MCS-51
$Pfad = 'https://raw.github.com/brownson/IPSLibrary/Development/'; // Module von Brownson
//$Pfad = 'https://raw.github.com/1007/IPSLibrary/Development/'; // Module von 1007

//Load    ($Modul,$Pfad);         // Laden des Moduls
//Install    ($Modul,$Pfad);         // Installieren des Moduls
Update    ($Modul,$Pfad);         // Updaten des Moduls



// ########### AB HIER NICHTS MEHR ÄNDERN! ##############
function Load($Modul, $Quelle) {
    $moduleManager = new IPSModuleManager($Modul,$Quelle);
    $moduleManager->LoadModule();
}


function Install($Modul, $Quelle) {
    $moduleManager = new IPSModuleManager($Modul,$Quelle);
    $moduleManager->InstallModule();
}


function Update($Modul, $Quelle) {
    $moduleManager = new IPSModuleManager($Modul,$Quelle);
    $moduleManager->UpdateModule();
}
?>

Hallo Schmiddi,
ertmal 1000 Dank !!!
Ich habe mich genau an deine Anleitung gehalten, mit Ausnahme der Änderung im Script IPSCam_Custom. Das Array liegt bei mir im Script IPSCam_Configuration.
Leider wurde die neue Kamera nicht angelegt. Der Button MyCam unter „Auswahl“ im WebFrontend zeigt mir auch keine andere Cam an.
Was ist falsch?

Grüße
Heuser

Du musst eine Installation statt dem Update machen


 <?
IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");

$Modul = 'IPSCam';
$Pfad = 'https://raw.github.com/brownson/IPSLibrary/Development/'; // Module von Brownson

Install    ($Modul,$Pfad);         // Installieren des Moduls

function Install($Modul, $Quelle) {
    $moduleManager = new IPSModuleManager($Modul,$Quelle);
    $moduleManager->InstallModule();
}
?> 

oder einfach in der IPSModuleManagerGUI das Module IPSCam auswählen und den Button Installation clicken …

Hat geklappt !
Vielen Dank !!!

Hat niemand eine Idee

Ich habe jetzt mal den Kamera string im Android Standard Browser getestet dort läuft er

In WebFront im Android Chrome Browser gehts

In WebFront im Android Standard Browser leider nicht :frowning:

In der Android MobileApp leider nicht auch nicht :frowning:

Danke Bruno

@Tetrapack

Ein Bild auf ein separates Verzeichnis kopieren ist derzeit mit IPSCam nicht möglich, kannst es aber mit folgender Funktion machen:


		IPSUtils_Include ('IPSCam.inc.php', 'IPSLibrary::app::modules::IPSCam');

		CopyPicture(1, 'C:\\_temp', 'Test');

		function CopyPicture($cameraIdx, $directory, $fileName, $size=IPSCAM_SIZE_MIDDLE) {
			$config          = IPSCam_GetConfiguration();
			$componentParams = $config[$cameraIdx][IPSCAM_PROPERTY_COMPONENT];
			$component       = IPSComponent::CreateObjectByParams($componentParams);
			$urlPicture      = $component->Get_URLPicture($size);
			if ($fileName == null) {
				trigger_error('No Filename specified');
			}
			if ($directory == null) {
				trigger_error('No Directory specified');
			}
			$localFile        = $directory.'\\'.$fileName.'.jpg';
			IPSLogger_Trc(__file__, "Copy $urlPicture --> $localFile");

			$curl_handle=curl_init();
			curl_setopt($curl_handle, CURLOPT_URL, $urlPicture);
			curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
			curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,true);
			curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($curl_handle, CURLOPT_FAILONERROR, true);
			$fileContent = curl_exec($curl_handle);
			if ($fileContent===false) {
				IPSLogger_Dbg (__file__, 'File '.$urlPicture.' could NOT be found on the Server !!!');
				return;
			}
			curl_close($curl_handle);

			$result = file_put_contents($localFile, $fileContent);
			if ($result===false) {
				trigger_error('Error writing File Content to '.$localFile);
			}
		}