IPSCam

… da ist der IPSModuleManager nicht am aktuellsten Stand --> bring das Modul mal auf den neuesten Stand (bei Problemen, diesen Post beachten) …

Hallo Andreas,

mal wieder so einfach… danke es geht.

Jürgen

Hallo,

ich habe die von mir nicht benötigte IPSComponentCam_Vivotek.class.php mit passenden Werten für
eine Panasonic BL-C131 gefüllt. Die Aufrufe würden im Browser so funktionieren. Im IPS allerdings
bleiben die Bilder von der ersten Kamera stehen.

Muss ich evtl. noch weitere Einstellungen vor nehmen ?

Es fehlte lediglich ein / :frowning:

Ich würde dann gerne die Einstellungen für die Panasonic Kamera zur Verfügung stellen.

Wie kann/soll/muss ich das bewerkstelligen ?

GIT Account anlegen, Library forken, zusätzliche Component hinzufügen, commit und dann noch einen Pull Request erstellen.
… oder einfach hier posten :cool:

Dann nehm ich doch den einfachen Weg und Poste es hier :cool:

Die Links Aufrufe sind alle passend. Lediglich das Vivotek hab ich überall stehen gelassen, weil ich nicht wusste, ob
das irgendwo genutzt wird!

Modell bei mir war die Panasonic BL-C131

<?
/*
* This file is part of the IPSLibrary.
*
* The IPSLibrary is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The IPSLibrary is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
*/

 /**@addtogroup ipscomponent
 * @{
 *
 * @file          IPSComponentCam_Vivotek.class.php
 * @author        Andreas Brauneis
 *
 */

/**
* @class IPSComponentCam_Vivotek
*
* Definiert ein IPSComponentCam Object, das die Funktionen einer Cam Componente für eine 
* Vivotek Kamera implementiert
*
* @author Andreas Brauneis
* @version
*   Version 2.50.1, 26.08.2012&lt;br/&gt;
*/

IPSUtils_Include ('IPSComponentCam.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentCam');

class IPSComponentCam_Vivotek extends IPSComponentCam {

	private $ipAddress;
	private $username;
	private $password;

	/**
	 * @public
	 *
	 * Initialisierung eines IPSComponentCam_Vivotek Objektes
	 *
	 * @param string $ipAddress IP Adresse der Kamera
	 * @param string $username Username für Kamera Zugriff
	 * @param string $password Passwort für Kamera Zugriff
	 */
	public function __construct($ipAddress, $username, $password) {
		$this-&gt;ipAddress  = $ipAddress;
		$this-&gt;username   = $username;
		$this-&gt;password   = $password;
	}

		/**
	 * @public
	 *
	 * Funktion liefert String IPSComponent Constructor String.
	 * String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
	 * wieder neu zu erzeugen.
	 *
	 * @return string Parameter String des IPSComponent Object
	 */
	public function GetComponentParams() {
		return get_class($this).','.$this-&gt;instanceId;
	}
	
	/**
	 * @public
	 *
	 * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event 
	 * an das entsprechende Module zu leiten.
	 *
	 * @param integer $variable ID der auslösenden Variable
	 * @param string $value Wert der Variable
	 * @param IPSModuleCam $module Module Object an das das aufgetretene Event weitergeleitet werden soll
	 */
	public function HandleEvent($variable, $value, IPSModuleCam $module) {
		$name = IPS_GetName($variable);
		throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
	}

    /**
     * @public
     *
     * Liefert URL des Kamera Live Streams 
     *
     * @param integer $size Größe des Streams, mögliche Werte:
     *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE
     * @return string URL des Streams
     */
    public function Get_URLLiveStream($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
        $url = 'http://'.$this-&gt;username.':'.$this-&gt;password.'@'.$this-&gt;ipAddress.'/nphMotionJpeg?Resolution=';
        switch ($size)
        {
            case  IPSCOMPONENTCAM_SIZE_SMALL:
                $url .= '192x144&Quality=Clarity';
                break;
            case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                $url .= '320x240&Quality=Clarity';
                break;
            case  IPSCOMPONENTCAM_SIZE_LARGE:
                $url .= '640x480&Quality=Clarity';
                break;
            default:
                trigger_error('Unknown Size '.$size);
        }
        
        $url .= '.mjpg';
        
        return $url;
    }  

    /**
     * @public
     *
     * Liefert URL des Kamera Bildes 
     *
     * @param integer $size Größe des Bildes, mögliche Werte:
     *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
     * @return string URL des Bildes
     */
    public function Get_URLPicture($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
        $url = 'http://'.$this-&gt;username.':'.$this-&gt;password.'@'.$this-&gt;ipAddress.'/SnapshotJPEG';

        switch ($size) {
            case  IPSCOMPONENTCAM_SIZE_SMALL:
                $url .= '?Resolution=192x144&Quality=Clarity&View=Normal&Count=-1609817911';
                break;
            case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                $url .= '?Resolution=320x240&Quality=Clarity&View=Normal&Count=-1609817911';
                break;
            case  IPSCOMPONENTCAM_SIZE_LARGE:
                $url .= '?Resolution=640x480&Quality=Clarity&View=Normal&Count=-1609817911';
                break;
            default:
                trigger_error('Unknown Size '.$size);
        }

        return $url;
    }
	
	/**
	 * @public
	 *
	 * Bewegen der Kamera
	 *
	 * @param integer $urlType Type der URL die geliefert werden soll.
	 *                         mögliche Werte: IPSCOMPONENTCAM_URL_MOVEHOME
	                                           IPSCOMPONENTCAM_URL_MOVELEFT
	                                           IPSCOMPONENTCAM_URL_MOVERIGHT
	                                           IPSCOMPONENTCAM_URL_MOVEUP
	                                           IPSCOMPONENTCAM_URL_MOVEDOWN
	                                           IPSCOMPONENTCAM_URL_PREDEFPOS1
	                                           IPSCOMPONENTCAM_URL_PREDEFPOS2
	                                           IPSCOMPONENTCAM_URL_PREDEFPOS3
	                                           IPSCOMPONENTCAM_URL_PREDEFPOS4
	                                           IPSCOMPONENTCAM_URL_PREDEFPOS5
	 */
	public function Get_URL($urlType) {
		trigger_error('Diese Funktion ist für eine Vivotek Kamera noch NICHT implementiert !!!');
	}

	/**
	 * @public
	 *
	 * Liefert Breite des Kamera Bildes 
	 *
	 * @param integer $size Größe des Bildes, mögliche Werte:
	 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
	 * @return integer Breite des Bildes in Pixel
	 */
	public function Get_Width($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
		switch ($size) {
			case  IPSCOMPONENTCAM_SIZE_SMALL:
				$return = 192;
				break;
			case  IPSCOMPONENTCAM_SIZE_MIDDLE:
				$return = 320;
				break;
			case  IPSCOMPONENTCAM_SIZE_LARGE:
				$return = 640;
				break;
			default:
				trigger_error('Unknown Size '.$size);
		}
		return $return;
	}

	/**
	 * @public
	 *
	 * Liefert Höhe des Kamera Bildes 
	 *
	 * @param integer $size Größe des Bildes, mögliche Werte:
	 *                      IPSCOMPONENTCAM_SIZE_SMALL, IPSCOMPONENTCAM_SIZE_MIDDLE oder IPSCOMPONENTCAM_SIZE_LARGE 
	 * @return integer Höhe des Bildes in Pixel
	 */
	public function Get_Height($size=IPSCOMPONENTCAM_SIZE_MIDDLE) {
		switch ($size) {
			case  IPSCOMPONENTCAM_SIZE_SMALL:
				$return = 192;
				break;
			case  IPSCOMPONENTCAM_SIZE_MIDDLE:
				$return = 240;
				break;
			case  IPSCOMPONENTCAM_SIZE_LARGE:
				$return = 480;
				break;
			default:
				trigger_error('Unknown Size '.$size);
		}
		return $return;
	}
}

/** @}*/

?>

Hallo
Bei mir ist die instar 4010 hat sich verabschiedet. Kann mir jemand eine empfehlen, die stattdessen kaufen sollte. War mit der nicht so 100%ig zufrieden. Sollte natürlich perfekt zu IPSCam passen.
Voraussetzung, schwenken kippen, Nachtsicht, gute Qualität!
Danke schon mal!

Gesendet von meinem Nexus 5 mit Tapatalk

Kann mir mal einer einen anschubser geben wie ich das modul installiere? oO und wo die adresse mit dem source code ist
das blicke ich gerade leider nicht nicht ganz!
Vielen Lieben Dank

@cooljack: Lerne bitte die Suche zu verwenden und dieses tolle Ding mit Namen „Google“ :slight_smile:

http://www.ip-symcon.de/wiki/IPSLibrary_-_Installation_Schritt_für_Schritt

Grüße,
Chris

Hallo,

hat schon jemand ein ONVIF CAM Modul verfügbar?

Ich habe zwei Allnet 2296V2 im Einsatz. Leider wird das Kamerabild auf den verschiedensten Browsern nicht angezeigt. Auch in in IPS-CAM leider nicht, bzw. nur in Firefox unter Android. Alle anderen Browser zeigen kein Bild.

Das Bild wird mit http://user:Passwort@ip-der-cam:8008 abgerufen. Eine Anmeldung auf diesem Weg lassen die Browser heute eigentlich nicht mehr zu.
Ich habe es jetzt auch mit IPView versucht, habe da aber das gleiche Ergebnis.

Die Sicherheit der Cams kann ich leider nicht abstellen.

Oder hat noch jemand eine andere Idee?

Gruß
Christian

Ich ergänze hier noch mal eine Idee:

ich nutze ein Synology Disk Station, und dort die Surveillance Station zur Aufnahme meiner Kamerabilder.
Jetzt habe ich herausgefunden, dass es ein API gibt, um auf die Surveillancestation zu zugreifen.

Dort kann man sich mit einem Sessiontoken anmelden und dann einen Stream oder ein Bild bekommen.

Ich habe das jetzt mal mit einem Bild getestet:



//Authentication
$json = file_get_contents('http://ip des syno:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=NAME&passwd=PASSWORT!&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
$sid = $obj["data"]["sid"];

//GetList
$json = file_get_contents('http://1ip der syno:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=6&_sid='.$sid);
$obj = json_decode($json, true);
$cam_activated = $obj["data"]["cameras"][0]["enabled"];

//print_r($obj);

if($cam_activated == true){
	//Get jpg
	$json = file_get_contents('http://ip der syno:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=GetSnapshot&version=1&cameraId=1&_sid='.$sid);
	echo "Ausgabe Bild:";
	$datei = fopen("tmp.jpg", "w");
	fwrite ($datei, $json);
	fclose($datei);
	//$stream = file_get_contents('http://ip der syno:5000/webapi/SurveillanceStation/streaming.cgi?api=SYNO.SurveillanceStation.Streaming&method=LiveStream&version=1&cameraId=1&_sid='.$sid);

}


?>

<header('Content-type: image/jpg')>
<p><img src="tmp.jpg" alt="Grafik wurde nicht gefunden"></p>

Ich bekomme dann ein Bild auf der Webseite dargestellt.
Was ich jedoch nicht hinbekommen, liegt aber eher an meinen nicht vorhandenen php und html Kenntnissen, ist die Darstellung des Streams.
Mit dem auszementierten Befehl würde es gehen, aber wie kann man die Ausgabe dann bewerkstelligen?

Vielleicht kann hier jemand helfen, dann könnte man es so als Modul für IPS Component umsetzen und es würde mit so einem PHP File auch in IPSView gehen.

ich füge hier mal den Link zur Doku der API ein: http://ukdl.synology.com/download/Document/DeveloperGuide/Surveillance_Station_Web_API.pdf

Gruß
Christian

Hallo,

hat schon jemand einen Mehrkanal - axis - Videoencoder in IPSCam eingebunden?

Habe einen 4 Kanal Videoencoder von axis ( P7214 ). Die 4 Videostreams habe ich bereits in IPS eingebunden :
http://xxx.xxx.xxx.xxx/axis-cgi/jpg/image.cgi?camera=1 bzw 2…3…4 , die Auflösung ist hierbei D1 720x576 .

Wenn ich für die für die 4 Fixkameras die vorhandene IPSComponentCam_AxisM7001 anlege bekomme ich das Bild der Kamera 1 und bei jeder Bedienung der Funktionen eine Meldung Fehler ohne Detailangabe.

Kann mir jemand sagen wie ich die Class verändere bzw wo die Kameraauswahl stattfindet ?

Danke

Moin ipsnewbie :slight_smile:

Ich glaube du suchst diesen Pfad im Windows Explorer >> …\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentCam

…oder diesen Pfad in der IPS-Console >> Program\IPSLibrary\config\modules\IPSCam\IPSCam_Configuration.inc.php (damit Änderungen greifen muss über die IPSLibrary das Modul neu drüber installiert werden)

Grüße,
Chris

Ok,das schau ich mir mal an.
Danke Dir Chris

Auch von mir erst mal ein riesen Dank für das tolle Modul :slight_smile:

Funktioniert auch einwandfrei mit meinen M12 Mobotix Cams… Über das Webfront kann ich problemlos auf die Kamera zugreifen und habe auch LIve-Bilder sowie normale aktuelle Standbilder.

Nuin aber zu meinem Problemchen: Bei iFront kann ich leider „Bild aktualisieren“ nicht erfolgreich ausführen. Kein aktuelles Bild. Im Logfile selbst konnte ich nichts finden. Ich konnte zumindest schon mal feststellen, dass iFront dieses Script durchläuft: IPSCam_RefreshPicture

Ich sehe lediglich ein altes Bild …

Habt ihr eine Idee?

Hallo Brownson,

ich habe Probleme mit dem Timeout.
Wenn ich in der Datei IPSCam_Manager.class.php Zeile 576 die Optionen:

curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); // von 2 auf 12
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 3); // von 3 auf 14

setze funktioniert wieder alles.
Könntest du das beim nächsten Update berücksichtigen?

Vielen Dank

Gerd

@Gerd

fast 30 Sekunden Timeout ist schon etwas heftig. eventuell mach ich mal einen Konfigurationsparamter daraus

@FRAD

Beim Mobile Interface muss man zuerst die entsprechende Kamera aktivieren, erst dann wird das Bild refreshed.
Werde das vermutlich in der nächsten Zeit mal etwas verbessern…

Hi im iFront habe ich die Kamera ausgewählt und einem Refresh gemacht - jedoch ohne Erfolg. Diesen Weg meintest du doch oder?

Guten Morgen Andreas,

das Panasonic Script passte leider nicht. :frowning:

Error: Error: Uncaught exception ‚Exception‘ with message ‚script C:\IP-Symcon\scripts/IPSLibrary/app/core/IPSComponent/IPSComponent Cam/IPSComponentCam.class.php could NOT be found!‘ in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php:38
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentCam\IPSComponentCam_Panasonic.class.php(38): IPSUtils_Include(‚IPSComponentCam…‘, ‚IPSLibrary::app…‘)
#1 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php(41): include_once(‚C:\IP-Symcon\sc…‘)
#2 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponent.class.php(42): IPSUtils_Include(‚IPSComponentCam…‘, ‚IPSLibrary::app…‘)
#3 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponent.class.php(55): IPSComponent::IncludeClassByName(‚IPSComponentCam…‘)
#4 C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponent.class.php(91): IPSComponent::CreateObjectByArray(Array)
#5 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSCam\IPSCam_Manager.cl
Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php on Line 38
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
33 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
in IPSLogger_PhpFatalErrorHandler

Wenn ich bei der Fehlerbeseitigung etwas helfen kann, melde dich.

Neue Version ist online.

Durch das Copy&Paste im Fourm wurden einige Leerzeichen eingefügt, falls es noch immer nicht funktioniert, dann schick mir das original File nochmals per Mail.