[Info] VTO Event Empfänger

Muss man um diesen Script verwenden zu können P2P aktiviert haben? Möchte eigentlich keine Standleitung nach China aufbauen.
 
nein
 
Bitte ersten Post dieses Threads lesen...
 
Bitte ersten Post dieses Threads lesen...

Habe beim Suchen nach eine besseren Lösung für den Empfang und die Bearbeitung von Events (Anläuten, FingerPrint, Türöffnen, etc.) meiner VTO2000A die Dahua-JSON-Debug-Console entdeckt.
Nach einigen Anpassungen des Entwicklers (Vielen Dank an bashis) funktioniert das Script auch an VTO's mit aktueller Firmware 4.3.
Auf Basis dessen startet ich meine Forschungen und konnte schnell einen Erfolg verbuchen. User philipp900 programmierte das Script dann in PHP nach und passte es unseren Wünschen an - Vielen Dank Philipp!
Ich habe noch einige kleine Erweiterungen vorgenommen, rausgekommen ist das hier: DahuaEventHandler.php

Jeder kann nun recht einfach Aktionen starten (z.b. Email schicken, Relais Schalten, etc.).
Eventuell stehe ich auf dem Schlauch, ich sehe aber in diesem Post keine Hinweise, warum php und nicht python verwendet wird.
 
Ich habe das Script nun seit einigen Tagen erfolgreich bei mir am Laufen. Ich habe einen Service dafür eingerichtet. Leider werden die Ausgaben nicht geloggt. Kann hier mal jemand drüberschauen und mir sagen was ich falsch mache oder wo ich die Ausgaben finde?

Code:
#! /bin/sh

### BEGIN INIT INFO
# Provides:          dahuaEventHandler
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: DahuaEventHandler
# Description:       DahuaEventHandler
#                    Installation:
#                    Copy this file to /etc/init.d/ (no file extension allowed)
#                    chmod +x this
#                    sudo update-rc.d <myservice> defaults 91 // because it must start after mysql
### END INIT INFO

NAME=dahuaEventHandler
DESC="DahuaEventHandler"

PIDFILE="/var/run/${NAME}.pid"
LOGFILE="/var/log/${NAME}.log"

DAEMON="/usr/bin/php"
DAEMON_OPTS="/home/pi/Documents/DahuaEventHandler.php"

RUN_AS=pi

START_OPTS="--start --background --chuid ${RUN_AS} --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ${DAEMON_OPTS}"
STOP_OPTS="--stop --pidfile ${PIDFILE}"

. /lib/lsb/init-functions
test -x $DAEMON || exit 0

set -e

do_start()
 
Ich habe mir im php-Script ein Log als *.txt definiert.
Code:
$handle = fopen ($store_s.$logname, "a+");
fwrite ($handle, $logdate." ".$text."\r\n");
.....
 
Hallo,
ich versuche den Script DahuaEventHandler mit php 8.0.17, leider ohne erfolg.

<** Dahua VTO Eventempfaenger START **>
2022-03-29 05:53:50.000000: Start login
PHP Warning: Undefined property: Dahua_Functions::$username in /temp/Dahua-master/DahuaEventHandler.php on line 171
PHP Fatal error: Uncaught TypeError: fwrite(): Argument #1 ($stream) must be of type resource, bool given in /temp/Dahua-master/DahuaEventHandler.php:100
Stack trace:
#0 /temp/Dahua-master/DahuaEventHandler.php(100): fwrite()
#1 /temp/Dahua-master/DahuaEventHandler.php(176): Dahua_Functions->Send()
#2 /temp/Dahua-master/DahuaEventHandler.php(231): Dahua_Functions->Login()
#3 /temp/Dahua-master/DahuaEventHandler.php(5): Dahua_Functions->Main()
#4 {main}
thrown in /temp/Dahua-master/DahuaEventHandler.php on line 100

Ich vermute, dass es mit version php zu tun hat.
Danke für tips.
 
Naja, kann sein.
Aber ich denke eher, es liegt an Zeile 4, wo ip, username + passwort von deiner VTO vergeben werden.
Poste mal deine Zeile 4 hier.
 
Ich habe mir auch gedacht, aber ich denke, dass ich die Zeile 4 richtig habe:

$Dahua = new Dahua_Functions("192.168.39.99", "admin", "tempPass21"); # VTO's IP and user/pwd

192.168.39.99 ist IP VTO
 
Moin,

ich hätte da noch einige "Unknown event received"
 

Anhänge

  • Unknown event received.zip
    6.6 KB · Aufrufe: 17
Hallo zusammen,
ich betreibe ein VTO2202F mit der Firmwareversion 4.511.

Wenn ich den DahuaEventHandler.php ausführe erhalt ich den Error: "Socket open failed".
IP und Passwort ist richtig gesetzt.

Könnte es sein, dass diese Firmware die Verbindung nicht mehr zulässt?
Hat sich eventuell der Port geändert?

Ich habe den Script in der Windows Eingabeaufforderung und PowerShell getestet.
Lohnt es sich das ganze vom Raspy aus zu versuchen?
 
Zuletzt bearbeitet:
Ist es möglich die Lautstärke der VTH über das Script zu verändern? Ich würde das gern in mein Smarthome einbinden. Wenn Rolladen-Kinderzimmer geschlossen -> Klingel lautlos. Das würde mir eine Menge Stress ersparen :p
 
In der http_api Beschreibung habe ich nichts gefunden, das evtl. passen würde.
Aber mit der DahuaConsole habe ich folgendes gefunden:
1670650861357.png
Denke mit einem geeigneten Script kannst du diese Werte leicht ändern.
Mein DahuaChangeRingtime.php währe wohl als Basis gut zu gebrauchen.
 
Die Werte lassen sich setzen, allerdings muss ich die Lautstärke in der Kategorie "VTO-Klingeln" und nicht in der Kategorie "VTH-Klingeln" ändern. Zumindest hat letzteres keinen Einfluss auf die Lautstärke wenn ich von der VTO den Anruf starte(normales Klingeln)

PS: ES reicht das das Flag SilenceEnable zu setzen!
 
Zuletzt bearbeitet:
Ich würde gerne den Druck auf eine Klingeltaste abgreifen, der allerdings stattfindet, solange schon ein Anrufversuch über eine andere Klingeltaste läuft.
Das scheint nicht zu gehen. Wenn ich auf eine Klingeltaste drücke, löst diese den Anruf zum entsprechenden VTH aus. Während dieser Zeit wird das Drücken auf andere Tasten im Eventhandler überhaupt nicht registriert/angezeigt.
Übersehe ich etwas? Gibt es für die Anforderung andere Möglichkeiten?
 
@tobity Welchen SIP server verwendest du?
Kannst du mal einen pcap Trace der gesamten Situation anfertigen und posten? Würde mich interessieren, ob sich das evtl. auf SIP Ebene lösen lässt.
 
  • Like
Reaktionen: tobity
@riogrande75 Danke für die interessante Idee! Sobald ein Rufaufbau am Laufen war wurde aber beim Druck der zweiten Klingeltaste nichts mehr übertragen. Oder zumindest nichts woraus man regelmäßig einen Rückschluss auf den zweiten Tastendruck erkennen könnte. Zumindest soweit ich es beurteilen kann...

1688668141035.png

Eine Idee, die mir auch schon durch den Kopf gegeistert ist: Ob man das aus dem seriellen Traffic zwischen der VTO und dem Tastenmodul auslesen könnte.
Ich weiß aber, dass du dich auch schon mit dem entsprechenden Protokoll beschäftigt - es aber nicht weiterverfolgt hast, da das was da abgeht wohl keinem gängigen Standard entspricht...

Bild(er) als Vorschaubild(er) (siehe https://www.ip-phone-forum.de/threads/ip-phone-forum-regeln.297224/ ) eingebunden by stoney
 
Zuletzt bearbeitet von einem Moderator:
Ok, auf SIP Ebene hast du dann wohl keine Chance.
Ich denke, dass du mit dem Eventhandler noch weiterexperimentieren solltest. Du musst dich nur für die richtigen Events "subscriben", dann könnte da schon etwas passendes kommen.

Das serielle Protokoll ist glaube ich Mifare oder eine Abwandlung davon. War mir dann aber deutlich zu aufwendig da weiterzuforschen.
 
Oh, ok, ich glaube zwar, dass ich alle Threads zum Eventhandler gelesen habe (vor allem die, an denen du beteiligt warst/bist - das ist definitiv eine gewisse Qualitätsgarantie ;)) - aber dann habe ich es anscheinend doch nicht ganz verstanden. Bisher habe ich den Eventhandler gestartet und geschaut was er ausspuckt. Wo kann ich da noch was extra "subscriben"? Kannst du mir da auf die Sprünge helfen? Danke!
 
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.