[Frage] VTO2000A an Loxone anbinden

Schon mal das hier angesehen?
 
Ja habe ich, leider stürzt das Script ab beim Klingeln.
 
Stürzt ab? Na dann zeig mal die Fehlermeldungen bzw. was da ausgespuckt wird.
 
Code:
XPS-15-7590:~/Documents/Dahua/php$ php -f DahuaEventHandler.php
<** Dahua VTO Eventempfaenger START **>
2020-11-10 18:12:19.000000: Start login
2020-11-10 18:12:19.000000: Login success
2020-11-10 18:12:19.000000: Started keepAlive thread
2020-11-10 18:12:19.000000: keepAlive back
2020-11-10 18:12:20.000000: Event Manager subscription reply
PHP Fatal error:  Cannot redeclare SaveSnapshot() (previously declared in /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php:371) in /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php on line 371

XPS-15-7590:~/Documents/Dahua/php$ php -f DahuaEventHandler.php
<** Dahua VTO Eventempfaenger START **>
2020-11-10 18:13:02.000000: Start login
2020-11-10 18:13:02.000000: Login success
2020-11-10 18:13:02.000000: Started keepAlive thread
2020-11-10 18:13:02.000000: keepAlive back
2020-11-10 18:13:03.000000: Event Manager subscription reply
2020-11-10 18:13:09.000000: Event VideoMotion
PHP Fatal error:  Uncaught Error: Call to undefined method Dahua_Functions::SaveSnapshot() in /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php:280
Stack trace:
#0 /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php(66): Dahua_Functions->EventHandler()
#1 /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php(259): Dahua_Functions->KeepAlive()
#2 /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php(5): Dahua_Functions->Main()
#3 {main}
  thrown in /home/XXXXXXXXX/Documents/Dahua/php/DahuaEventHandler.php on line 280
 
Kann mir hier jemand weiterhelfen?
 
Poste mal "uname -a" und "php -v" von deiner Maschine.
Das Script hast du eh nicht verändert (außer IP,user+pw)?

Die Fehlermeldungen deuten für mich übrigens auf einen Copy-Paste Fehler hin.
 
Ich hab das Script mit wget gezogen, daher kann kein Copy-Paste Fehler sein.
Am Ende habe ich noch eine Klammer hinzugefügt, da sonst das Script garnicht gelaufen ist.
Welche PHP Version wird denn unterstützt?

Ich hab die aktuelle Version noch mal geladen, jetzt kommt Syntax Error

PHP:
PHP Parse error:  syntax error, unexpected end of file in /home/XXX/Documents/Dahua/php/DahuaEventHandler.php on line 388

Bash:
uname -a
Linux XPS-15-7590 5.8.0-28-generic #30-Ubuntu SMP Thu Nov 5 13:24:33 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
php -v
PHP 7.4.9 (cli) (built: Oct 26 2020 15:17:14) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies

Edit: In der aktuelle Version musste ich zwei Klammern rein machen am ende :)

PHP:
    fclose($fp);
    copy($filename, $path."/Doorbell.jpg");
    }
}
}
?>

Die Fehlermeldung ist nach wie vor gleich:
Bash:
<** Dahua VTO Eventempfaenger START **>
2020-11-15 16:11:26.000000: Start login
2020-11-15 16:11:26.000000: Login success
2020-11-15 16:11:26.000000: Started keepAlive thread
2020-11-15 16:11:26.000000: keepAlive back
2020-11-15 16:11:26.000000: Event Manager subscription reply
2020-11-15 16:11:43.000000: Event Call from VTO
PHP Fatal error:  Cannot redeclare SaveSnapshot() (previously declared in /home/XXX/Documents/Dahua/php/DahuaEventHandler.php:371) in /home/XXX/Documents/Dahua/php/DahuaEventHandler.php on line 371
 
Zuletzt bearbeitet:
Kann nur irgendein Syntax (Klammer) Fehler sein, nix gravierendes. Auf meinem "alten" Debian 10 läufts witzigerweise so.... o_O
Gib mir bitte ein wenig Zeit, ich arbeite in einem Krankenhaus und da geht's aktuell ordentlich ab...
 
  • Like
Reaktionen: kuzco-ip
Kein Stress :) Viel Erfolg
 
Auf meinem deb9 und 10 habe ich auch kein Problem.
 
Welche PHP Version hast du?

Auf Linux Mint 18 und PHP Version 7.0.33, selbe verhalten.
Bash:
php -f DahuaEventHandler.php
<** Dahua VTO Eventempfaenger START **>
2020-11-15 21:57:48.000000: Start login
2020-11-15 21:57:48.000000: Login success
2020-11-15 21:57:48.000000: Started keepAlive thread
2020-11-15 21:57:48.000000: keepAlive back
2020-11-15 21:57:48.000000: Event Manager subscription reply
2020-11-15 21:58:08.000000: Event VideoMotion
PHP Fatal error:  Uncaught Error: Call to undefined method Dahua_Functions::SaveSnapshot() in /home/XXX/DahuaEventHandler.php:280
Stack trace:
#0 /home/XXX/DahuaEventHandler.php(66): Dahua_Functions->EventHandler(Array)
#1 /home/XXX/DahuaEventHandler.php(259): Dahua_Functions->KeepAlive(60)
#2 /home/XXX/DahuaEventHandler.php(5): Dahua_Functions->Main()
#3 {main}
  thrown in /home/XXX/DahuaEventHandler.php on line 280
 
Zuletzt bearbeitet:
Ich nutze PHP 7.0.33-0+deb9u10 (cli) (built: Oct 6 2020 17:08:28) ( NTS .

Habe mal eben das php-Script mit dem was ich nutze verglichen. Ich habe natürlich ein paar Änderungen wegen des Event-Handlings durchgeführt, die sind aber nicht relevant. Es gibt jedoch einen neuen Eintrag "//Missing DoorCard event #2"
Code:
    //Missing DoorCard event #2
    elseif($eventCode == 'DoorCard'){
        if($eventList['Action'] == 'Pulse'){
        $cardno=($eventData['Number']);
        logging("DoorCard ".$cardno." was used at door");
    }
dort fehlt meines Erachtens am Ende die zweite Klammer. Also es müsste heissen:
Code:
    //Missing DoorCard event #2
    elseif($eventCode == 'DoorCard'){
        if($eventList['Action'] == 'Pulse'){
        $cardno=($eventData['Number']);
        logging("DoorCard ".$cardno." was used at door");
        }
    }
 
  • Like
Reaktionen: riogrande75
Ja, scheint so als ob sich da bei mir ein Fehler eingeschlichen hatte - ist nun gefixt.
Bitte um neuerlichen Download und Rückmeldung.
 
  • Like
Reaktionen: kuzco-ip
Script läuft schon mal ohne Modifikation, leider kommt der Fehler noch.
Bash:
<** Dahua VTO Eventempfaenger START **>
2020-11-16 19:17:20.000000: Start login
2020-11-16 19:17:20.000000: Login success
2020-11-16 19:17:20.000000: Started keepAlive thread
2020-11-16 19:17:20.000000: keepAlive back
2020-11-16 19:17:20.000000: Event Manager subscription reply
2020-11-16 19:17:54.000000: Event VideoMotion
PHP Fatal error:  Uncaught Error: Call to undefined function curl_init() in /home/XXX/Documents/Dahua/php/DahuaEventHandler.php:377
Stack trace:
#0 /home/XXX/Documents/Dahua/php/DahuaEventHandler.php(280): Dahua_Functions->SaveSnapshot()
#1 /home/XXX/Documents/Dahua/php/DahuaEventHandler.php(66): Dahua_Functions->EventHandler()
#2 /home/XXX/Documents/Dahua/php/DahuaEventHandler.php(259): Dahua_Functions->KeepAlive()
#3 /home/XXX/Documents/Dahua/php/DahuaEventHandler.php(5): Dahua_Functions->Main()
#4 {main}
  thrown in /home/XXX/Documents/Dahua/php/DahuaEventHandler.php on line 377
 
Da geht was bei deiner PHP Installation ab. Ich nehme an php-curl.
Post mal die Ausgabe von phpinfo:
Code:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>
 
Zuletzt bearbeitet:
Hast recht! an dem Modul habe ich auch nicht gedacht, jetzt funktioniert es :)
Vielleicht kannst du in dein Script ein Check einbauen
PHP:
echo "curl: ", extension_loaded('curl') ? 'OK' : 'php-curl installieren';

Was kann ich denn mit den Informationen jetzt anfangen ? Wie bekomme ich die api url ?
Bash:
<** Dahua VTO Eventempfaenger START **>
2020-11-17 10:29:16.000000: Start login
2020-11-17 10:29:17.000000: Login success
2020-11-17 10:29:17.000000: Started keepAlive thread
2020-11-17 10:29:17.000000: keepAlive back
2020-11-17 10:29:17.000000: Event Manager subscription reply
2020-11-17 10:29:40.000000: Unknown event received
array(4) {
  ["id"]=>
  int(2)
  ["method"]=>
  string(24) "client.notifyEventStream"
  ["params"]=>
  array(2) {
    ["SID"]=>
    int(513)
    ["eventList"]=>
    array(1) {
      [0]=>
      array(4) {
        ["Action"]=>
        string(5) "Start"
        ["Code"]=>
        string(10) "AlarmLocal"
        ["Data"]=>
        array(2) {
          ["LocaleTime"]=>
          string(19) "2020-11-17 10:26:49"
          ["UTC"]=>
          float(1605605209)
        }
        ["Index"]=>
        int(7)
      }
    }
  }
  ["session"]=>
  int(2147483406)
}
2020-11-17 10:29:41.000000: Event Call from VTO
2020-11-17 10:29:41.000000: Event: Invite,  Action Pulse, CallID 0 Lock Number 2
2020-11-17 10:29:41.000000: Event BackKeyLight with State 1
2020-11-17 10:29:41.000000: Event VideoMotion
2020-11-17 10:29:42.000000: Event BackKeyLight with State 2
2020-11-17 10:29:42.000000: Event Rtsp-Session from 10.10.10.41 connected
2020-11-17 10:29:44.000000: Event BackKeyLight with State 6
2020-11-17 10:29:45.000000: Event Rtsp-Session from 10.10.10.41 disconnected
2020-11-17 10:29:46.000000: Unknown event received
array(4) {
  ["id"]=>
  int(2)
  ["method"]=>
  string(24) "client.notifyEventStream"
  ["params"]=>
  array(2) {
    ["SID"]=>
    int(513)
    ["eventList"]=>
    array(1) {
      [0]=>
      array(4) {
        ["Action"]=>
        string(4) "Stop"
        ["Code"]=>
        string(10) "AlarmLocal"
        ["Data"]=>
        array(2) {
          ["LocaleTime"]=>
          string(19) "2020-11-17 10:26:55"
          ["UTC"]=>
          float(1605605215)
        }
        ["Index"]=>
        int(7)
      }
    }
  }
  ["session"]=>
  int(2147483406)
}
2020-11-17 10:29:48.000000: Event VideoMotion
2020-11-17 10:29:52.000000: Event BackKeyLight with State 0
 
Wie siehts denn aus?
 
Anscheinend hat es noch niemand geschafft die URL raus zu bekommen...
Werde mir was selber basteln müssen.
 
Keiner hier hat eine Ahnung, was du mit dieser ominösen API URL willst. Somit wird dir auch niemand helfen.

Wenn du die VTO an die Loxone anbinden willst, dann musst du schon mitteilen, WAS du GENAU willst.
Da gibts sehr viel Optionen.
"Spricht" denn Loxone SIP? Wenn nein, dann lässt sich zumindest der Video-Stream (rtsp...) und mit einigen kleinen Änderungen am Script wohl auch das Klingeln und Türöffnen implementieren.
Reicht dir das?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.