Mobotix T24 und T25 Gegensprechanlage PHP Modul

Hi Michael,

sorry für die sehr sehr späte Antwort!

Ich hoffe du konntest dein Problem unterdessen selbst lösen.
Falls nicht, sieht es mir schwer danach aus, dass du dich nicht korrekt an der Mobotix authentifiziert hast: „failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized“.

Wenn das funktioniert, sind vermutlich auch die anderen Fehler weg.

Grüße
Daniel

Hi Dansh,

ich habe nach längerer Zeit wieder mal versucht das Modul zu installieren.
Es funktioniert soweit alles (Events von Mobotix kommen, usw.)

Jedoch werden bei mir alle Standardvariablen (Beleuchtung, Kameratasten, Kameratemperatur, Signaleingang) alle 30 Sekunden angelegt. Ich habe somit jede Menge von den Variablen. Die KameraEvents werden bei mir nur einfach angelegt, also so wie es sein soll.

Im Log steht folgendes:
09.04.2020, 08:12:20 | PHP | Error: Warning: Ident muss für jede Ebene eindeutig sein
Error in Script C:\ProgramData\Symcon\modules\SymconT25\T25\module.php on Line 512
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
512 in modules\SymconT25\T25\module.php (call IPS_SetIdent)
150 in modules\SymconT25\T25\module.php (call LoadCameraInfo)
1231 in scripts__generated.inc.php (call UpdateData)
1 in C:\Windows\System32- (call T25_UpdateData)

und

09.04.2020, 08:12:22 | TimerPool | T24/T25 Sprechanlage (timer_updatedata): <br />
<b>Warning</b>: Ident muss für jede Ebene eindeutig sein in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>512</b><br />
<br />
<b>Warning</b>: Ident muss für jede Ebene eindeutig sein in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>512</b><br />
<br />
<b>Warning</b>: Ident muss für jede Ebene eindeutig sein in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>512</b><br />
<br />
<b>Warning</b>: Ident muss für jede Ebene eindeutig sein in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>512</b><br />
<br />
<b>Warning</b>: scandir(C:\ProgramData\Symcon\webfront\user 25_Bilder,C:\ProgramData\Symcon\webfront\user 25_Bilder): Das System kann die angegebene Datei nicht finden. (code: 2) in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>453</b><br />
<br />
<b>Warning</b>: scandir(C:\ProgramData\Symcon\webfront\user 25_Bilder): failed to open dir: No such file or directory in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>453</b><br />
<br />
<b>Warning</b>: scandir(): (errno 2): No such file or directory in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>453</b><br />
<br />
<b>Warning</b>: preg_grep() expects parameter 2 to be array, bool given in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>453</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>C:\ProgramData\Symcon\modules\SymconT25\T25\module.php</b> on line <b>456</b><br />

Ich muss dazu sagen, dass ich das Modul vorher bereits installiert hatte. Da es aber nie meine Events richtig erhalten hat, habe ich die Instanz (2 Instanzen, da 2 Kameras) gelöscht und für eine Kamera neu angelegt.

Wäre super von dir, wenn du mir da weiter helfen kannst.

Grüße
Michael

Hallo,

ich habe den Fehler gefunden. Anscheinend hat mir das Modul im Pfad „IP-Symcon“ bereits die Variablen angelegt (eventuell beim Löschen ???)
Dadurch hat er sie dann in der eigentlichen Instanz nicht gefunden und der Name war schon vergeben.

Nachdem ich diese Variablen gelöscht habe, funktionierte alles normal.

Trotzdem Danke

Grüße
Michael

Hallo,

ich habe mich nochmal mit dem Thema Eventbilder / Alarmbilder befasst, da ich die Bilder nicht immer irgendwo zwischenspeichern will.
Sie sind ja sowieso auf der Kamera vorhanden.

Mit folgendem Skript, kann man die letzten Eventbilder direkt von der Kamera auslesen:


<?php

$Anzahl = 10;    //Anzahl der angezeigten Eventbilder

$IP = "xxx.xxx.xxx.xxx";
$user = "xxxxxxxxx";
$pw = "xxxxxxxxxx";

$image = "http://".$user.":".$pw."@".$IP."/control/event.jpg?sequence=head&offset=";


$HTML = "";

    $i = 0;
    $z = 0;
    if ($Anzahl > 0)    {

        
        for ($i = 1; $i <= $Anzahl; $i++)
            {
            $HTML .= "<img style=\"width: 100%; height: auto;\" src=\"".$image.$z."?p=".time()."\">";   
            $HTML .= "<hr style=\"border-color: rgba(255,255,255,0.15); border-style: solid; border-width: 1px;\">";
            $z --;
        }
    }

#echo $HTML;

Setvalue (10177, $HTML);    //String Variable mit HTML Box Profil


@Dansh:
Würde es Sinn machen, das in dein Modul zu integrieren?
Am besten, als zusätzlichen Kamerabild Modus „Direkt von Kamera“

Grüße
Michael

Hallo Daniel,

auch sorry für die späte Antwort. Habe aber kurzzeitig die Lust verloren. Das Bild bekomme ich nicht angezeigt auch nicht in der Android App immer wieder die gleiche Fehlermeldung im LOG. Nur ohne Benutzer und Passwort sehe ich das Bild.

Gruß

Michael

erstmal wünsche ich ein frohes und gesundes neues Jahr!

Mir ist aufgefallen das ich minütlich Meldungen im Protokoll zum „Event PE“ bekomme, bislang hatte ich das nicht wirklich beachtet.

02.01.2021, 14:13:01 | T25 Sprechanlage | $_GET: Array
(
[event] => PE
)
02.01.2021, 14:10:02 | T25 Sprechanlage | Ereignis ausgelöst: PE am 02.01.2021 14:10:02

Verantwortlich sind wohl die beiden Abfragen von T25HookDebug und T25LogMode in Deinem „module.php“ die bei mir unbeeindruckt jeglicher Grundeinstellungen immer schön brav minütlich in’s Statusprotokoll schreiben.

Sitzt der Fehler vorm Bildschirm, oder im script?

Hi Michael,

prinzipiell eine gute Idee, welche ich auch mal in einer Test-Branch implementiert habe.

Allerdings klappt das leider Browserübergreifend nicht so einfach aufgrund von Cross Origin Beschränkungen im aktuellen Edge und Chrome. D.h. der Browser ruft die Bild-URL auf, dabei checkt der Browser im Hintergrund die Basis-URL (Symcon Webfront) und die Ziel-URL (Bild) gegen, und stellt fest das diese einen anderen Ursprung hat und lehnt die Verarbeitung ab, Stichwort: CORS.

CORS ist ein Sicherheitsfeature welches im Chrome und im neuen Edge (welcher ja auf dem Chrome basiert) sehr ristriktiv angewendet wird, im Firefox dagegen kann man soetwas aktuell noch machen. Die Frage ist, wielange noch ?

Die Idee kann man so leider nicht realisieren. Ich überlege aber aktuell ob ich das einfach über Imagegrabber löse, dann müsste das funktionieren.

Ich komme bei mir nur drei Events zurück mit den Bildern, gehen da bei dir mehr ? Also Index 0 bis -2, danach kommt ein Bild wo „No recordings“ abgebildet ist.

Ebenso!
Ich schaus mir mal an, ob da irgendwas nicht greift.

weiß jemand von euch die url für die Bilder die die Kamera bei Ereignissen macht, bzw welche das standart mäsig ist wenn man nicht s bis jetzt konfiguriert hat ?

Hallo,

unter Symcon 7.0 hat sich das Webfront/user Verzeichnis geändert.

21.11.2023, 10:53:50 | TimerPool | T24/T25 Sprechanlage (timer_updatedata):
Warning: scandir(/var/lib/symcon//webfront/user/t25): Failed to open directory: Datei oder Verzeichnis nicht gefunden in /var/lib/symcon/modules/SymconT25/T25/module.php on line 453

Warning: scandir(): (errno 2): Datei oder Verzeichnis nicht gefunden in /var/lib/symcon/modules/SymconT25/T25/module.php on line 453

Fatal error: Uncaught TypeError: preg_grep(): Argument #2 ($array) must be of type array, bool given in /var/lib/symcon/modules/SymconT25/T25/module.php:453
Stack trace:
#0 /var/lib/symcon/modules/SymconT25/T25/module.php(453): preg_grep(‚/^([^.])/‘, false)
#1 /var/lib/symcon/modules/SymconT25/T25/module.php(288): T25->GetCameraPictureList(‚/var/lib/symcon…‘, 5)
#2 /var/lib/symcon/modules/SymconT25/T25/module.php(151): T25->LoadCameraEventPictures()
#3 /var/lib/symcon/scripts/__generated.inc.php(4687): T25->UpdateData()
#4 /-(1): T25_UpdateData(23880)
#5 {main}
thrown in /var/lib/symcon/modules/SymconT25/T25/module.php on line 453

Damit wirft das Modul derzeit leider einen Fehler.
Es wäre super, wenn Du @dansch das Modul entsprechend anpassen könntest.

Vielen Dank und Gruß
Christian

Ja eine Anpassung vom Modul auf das aktuelle 7.0 Verzeichnis wäre super

zu welchem Verzeichnis hat es sich den gändert bzw der Pfad wäre jetzt wie.

Das Script der modul.php kann ich im Backup finden, ggf ändere ich es mal dann ab und spiele es mit einem neuen Backup ein.

Dazu bräuchte ich aber den genauen Pfad ?

Ich habe das bei mir manuell im Modul angepasst.
Ab Zeile 270:
alte Version:

public function LoadCameraEventPictures() {
        $amount = IPS_GetProperty($this->InstanceID, "T25CameraPictureAmount");
        
        if(IPS_GetProperty($this->InstanceID, "T25CameraPictureMode") == "symcon") {
            $path = IPS_GetKernelDir();
            if(PHP_OS == "WINNT") {
                $path .= "\\webfront\\user\\";
            }
            else {
                $path .= "/webfront/user/";
            }

Neue Version:

public function LoadCameraEventPictures() {
        $amount = IPS_GetProperty($this->InstanceID, "T25CameraPictureAmount");
        
        if(IPS_GetProperty($this->InstanceID, "T25CameraPictureMode") == "symcon") {
            $path = IPS_GetKernelDir();
            if(PHP_OS == "WINNT") {
                $path .= "\\user\\";
            }
            else {
                $path .= "/user/";
            }

Dann sind die Fehler bei mir weg.

Gruß
Christian

1 „Gefällt mir“

Kannst du mir sagen wie ich auf meiner symbox an das skript komme ?

Ich habe leider keine Symbox.
Ich vermute, du musst per ssh zugreifen, und dann mit einem Editor (z.B. Nano) das script anpassen.

Gruß
Christian

super danke hat geklapp

Hey Leute,

sorry es war lange ruhig hier - ich hatte viele andere Dinge um die Ohren.
Habe den Fix ins Repository übernommen, Danke @c.radi dafür!