IPSCam

Guten Abend zusammen!

Ich habe mir vor kurzem IPSCam installiert und, meiner Meinung nach, richtig konfiguriert, allerdings speichert er nur sporadisch die Bilder ab.

IPS-Version: IP-Symcon 4.00, 22.06.2016, d447ff68e126b46ad4196d7ece6772f85ce0ff11
auf einem WHS 2011

angebunden ist eine Mobotix T25 über dLAN.

Livebildansicht ist immer möglich

Bild von den Einstellungen im Webfront häng ich an:

hier, die Konfiguration in der IPSCam_Configuration


function IPSCam_GetConfiguration() {
        return array(
            0    => array(IPSCAM_PROPERTY_NAME        => 'Haustuer',
                          IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_FIXEDCAM,
                          IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Mobotix,192.168.0.XXX,username,password',
                          ),
        );
    }

Meldung im Log lautet immer Semaphore IPSCam_0 for ScriptID 28142 was not released
Hängende Scripte in der PHP-Information-Ansicht treten zu keiner Zeit auf!

Die Meldung tritt jede Halbe Stunde bis Stunde immer wieder auf. auch wenn ich manuell auf „Speichern“ klicke.

Script 28142 ist folgendes: IPSCam_ActionScript

habe ich doch etwas falsches Eingestellt, wo könnte ich denn noch suchen?
Vielleicht hat jemand einen Tipp für mich

LG,
Christian

scheint wohl keiner eine Idee zu haben?

Semaphore IPSCam_0 for ScriptID 28142 was not released

das sehe ich mir bei nächster Gelegenheit mal an, gehe aber mal davon aus, dass das nur ein „Schönheitsfehler“ ist und auf die Funktionalität keine Auswirkung hat!

Kommt auch bei anderen „Gelegenheiten“
Semaphore IPSModuleManagerGUI for ScriptID 0 was not released

Guten morgen,

naja, durch diesen „Schönheitsfehler“ werden halt keine Bilder gespeichert

Gesendet von meinem JY-S3 mit Tapatalk

Problem mit dem Semaphore ist auch hier jetzt korrigiert.

Hallo,

ich habe ein Problem, in einem eigenen Script das Speichern von Bildern auszulösen.
Ich verwende zum Test folgendes Script:


IPSUtils_Include ('IPSCam.inc.php', 'IPSLibrary::app::modules::IPSCam');
$name = "Klingel";

$cameraId = IPSCam_IPSCam_GetCamIdxByName($name);

echo $cameraId;

$path = IPSCam_StorePicture($cameraId);
echo $path;

Es wird kein Bild im Ordner IPSymcon/cams/2/Picture angelegt. auch erhalte ich keine Rückmeldung aus der Funktion IPSCam_StorePicture.

Kann mir da jemand auf die Sprünge helfen?

Gruß
Christian

Sieht prinzipiell in Ordnung aus .
Hat CameraIdx einen gültigen Wert?
Funktionierts über die GUI?
Fehlermeldung?

Hallo Andreas,

CameraIdx hat den Wert „2“, das kann ich mit dem Echo vorher sehen.
Fehlermeldung kommt keine, die Funktion liefert aber auch nichts zurück.

Gruß
Christian

Hallo zusammen,

das kein Bild abgespeichert wird und auch keine Fehlermeldung kam hatte ich auch.

hab in der IPSCam_Manager bei der Funktion DownloadImageFromCam die Timeout-Werte von curl hochgeschraubt.
Seit dem werden die Bilder immer gespeichert.

lg,
Christian.

Abend!

Ab und zu habe ich es auch, dass keine Bilder gespeichert werden. Hatte da auch schon mal ein wenig rumprobiert, es dann aber nicht weiter verfolgt, weil es nur selten passiert.

Wo genau hast du da was angepasst bzgl. cURL-Timeout?

Meinst du im Skript „IPSCam_Manager“ die Funktion „private function StorePicture“ die Zeile 576 „curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);“ und Zeile 577 „curl_setopt($curl_handle, CURLOPT_TIMEOUT, 10);“?

Danke und Grüße,
Chris

Hallo,

ich hab in der Datei IPSLibrary/app/modules/IPSCam/IPSCam_Manager.class.php bei der Funktion DownloadImageFromCam
folgende Zeilen angepasst:

curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 30);

bei mir Zeile 610 und 611
Orginal war 2 und 3 drin.

lg,
Christian.

Hallo Christian,

vielen Dank, das ändern der Timeout Werte hat bei mir zum Erfolg geführt. Das hätte ich nie gefunden.

@Andreas:
Wäre es möglich die höheren Timeouts im SourceCode zu ändern. Dann muss man das nicht bei jedem Backup neu eintragen.

Gruß
Christian

@Brownson: In der IPSCam_Manager Datei ist noch ein kleiner Fehler drin. Die Zeile 686 muss wie folgt aussehen, ansonsten gibt es unter Linux eine Fehlermeldung (wegen „case sensitive“ von Linux), wenn man die History im IPS-WebFront verwenden möchte:

$userFileName      = IPS_GetKernelDir().'webfront/user/IPSCam/ImageHistory.jpg';

Grüße,
Chris

@Bayaro

Besten Dank, ist korrigiert

@Christian

Timeouts hab ich auch erhöht …

Hallo Andreas,

super, vielen Dank.

Gruß
Christian

Hi,

hat dies schon jemand getan - und vor allem, kann mir jemand somit eine Kamera empfehlen.

Wie immer KostNix, mind. HD und am besten IR-LEDs :wink:

herbertf

Hi Brownson,

ich habe jetzt eine zweite Kamera.

Momentan helfe ich mir mit überschreiben Deiner Dateien unter

IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentCam

wie z.B.

IPSComponentCam_YCam.class

Wie kann ich denn eine neue Datei (Kameratyp) hinzufügen? Eine neue unter obigen Pfad einzufügen und in der

IPSCam_Configuration

einzutragen funkt schlicht nicht. Da kommt immer der Fehler:

Class 'IPSComponentCam_NEUERNAME' not found
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponent.class.php on Line 68

Meine „umbenannte“

IPSComponentCam_YCam.class

sieht schlicht so aus:

<?
    /*
     * 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_YCam.class.php
     * @author        Andreas Brauneis
     *
     */

    /**
    * @class IPSComponentCam_YCam
    *
    * Definiert ein IPSComponentCam Object, das die Funktionen einer Cam Componente für eine 
    * YCam Kamera implementiert
    *
    * @author Andreas Brauneis
    * @version
    *   Version 2.50.1, 01.06.2013<br/>
    */

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

    class IPSComponentCam_YCam extends IPSComponentCam {

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

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

            /**
         * @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->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->username.':'.$this->password.'@'.$this->ipAddress.':'.$this->port.'/stream.jpg';
            switch ($size) {
                case  IPSCOMPONENTCAM_SIZE_SMALL:
                    $url .= '1';
                    break;
                case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                    $url .= '';
                    break;
                case  IPSCOMPONENTCAM_SIZE_LARGE:
                    $url .= '';
                    break;
                default:
                    trigger_error('Unknown Size '.$size);
            }
            $url .= '.jpg';
            
            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->username.':'.$this->password.'@'.$this->ipAddress.':'.$this->port.'/snapshot.jpg';
            switch ($size) {
                case  IPSCOMPONENTCAM_SIZE_SMALL:
                    $url .= '';
                    break;
                case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                    $url .= '';
                    break;
                case  IPSCOMPONENTCAM_SIZE_LARGE:
                    $url .= '';
                    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 YCam 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 = 320;
                    break;
                case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                    $return = 640;
                    break;
                case  IPSCOMPONENTCAM_SIZE_LARGE:
                    $return = 1024;
                    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 = 240;
                    break;
                case  IPSCOMPONENTCAM_SIZE_MIDDLE:
                    $return = 480;
                    break;
                case  IPSCOMPONENTCAM_SIZE_LARGE:
                    $return = 768;
                    break;
                default:
                    trigger_error('Unknown Size '.$size);
            }
            return $return;
        }
    }

    /** @}*/
?>

Ciao
herbertf

Hat sich erledigt - hatte ein Brett vorm Kopf und muss natürlich noch den Namen der Klasse ändern - dann geht dies auch

:banghead:

Hallo,
hat jemand die DCS 4602EV im EInsatz?

Bekomme still JPG zum laufen mit der config der 2310. Allerding der Stream ist ein wenig anders.

Diese URL funzt im Browser und als media stream direkt in IPS
http://admin:admin@192.168.178.xx:xxxx/video2.mjpg

Nur in IPScam nicht, denke das hängt mit grössenangeaben zusammen!?

Der stream 2 ist an der Kamera folgendermassen konfiguriert

mode: JPEG
frame size: 640x360
view window area: 640x360
max frame rate: 25

wo in der Config können die Grössen miteinander kollidieren?

prinzipiell lässt sich die 4602EV ansprechen wie hier dokumentiert
https://www.ispyconnect.com/man.aspx?n=D-Link
einfach nach 4602 suchen (taucht an 2 stellen auf)

/Torsten