Wie z.B. Scripte für eine VTO4202F-P (Dahua) verarbeiten

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

habe mir jetzt eine VTO4202F-P mit Zubehör ohne Monitor bestellt, da diese ja anscheinend auch ohne Monitor funktioniert. Ich habe jetzt auch mitbekommen, dass man meine Wünsche voraussichtlich auch mit einem Script erfüllen kann. Wenn ich das richtig verstanden habe muss dieses Script dann auf z.B. einer raspberry pi laufen. Ich denke ich bin nicht ganz unbegabt, aber damit habe ich noch nicht gearbeitet. Funktionieren solche Scripte evtl. auch auf einer Synology NAS mit DSM6? Wenn ja, kann mir da einer evtl. einen Anstoß geben, wie man da beginnt?

Danke

Dirk
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Installier dir mal PHP7.3 auf der Syno, passe das Script an deine Gegebenheiten (IP,...) an, kopiere es auf die NAS und starte es mit php scriptname.php auf der CLI (su).
Was passiert?
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

vielen Dank. Wenn meine Gerätschaften da sind werde ich es testen und dann auch berichten.

Dirk
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

kleiner Zwischenstand. Script wird beim Hochfahren der Synology NAS gestartet und die Ausgabe in einer LOG-Datei (eine pro Tag) gesichert. Ebenso habe ich dafür gesorgt, dass LOG-Dateien älter 31 Tage gelöscht werden. Da ich noch keine Hardware habe, steht hier natürlich nur "Socket open failed".
Zu dem Script (Script) habe ich jetzt noch drei Fragen:
1. Wenn ich das richtig verstehe, ist es erst einmal dazu da, Aktionen zu erfassen. Ist das richtig so?
2. Am Ende wird, wenn eine Bewegung erkannt wurde, ein Snapshot gesichert. Aber wohin?
3. Gibt es noch eine Erweiterung für dieses Script um einen Snapshot beim klingeln als Email zu versenden und auf meiner NAS zu sichern oder kann man das in der VTO einstellen?

MfG

Dirk
 
Zuletzt bearbeitet:

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
1.) Ja. Jegliches Event wird "erkannt" und man kann recht einfach eine Aktion dafür einbauen
2.) Kannst du anpassen:
Code:
 function SaveSnapshot($path="/tmp/")
3.) Das ist ein einfaches PHP Script. Wenn du emails willst, such dir die notwendige Funktion und bau sie in das Script ein.
 
  • Like
Reaktionen: DirkMa

kuzco-ip

Mitglied
Mitglied seit
4 Feb 2019
Beiträge
595
Punkte für Reaktionen
42
Punkte
28
zu 2. Also wenn ich mir immer bei "VideoMotion" einen Snapshot speichern und als email zusenden lassen würde, dann hätte ich viel zu lesen :).
Ich lasse mir lediglich beim Klingeln und bei Nutzung des Fingerprint einen Snapshot erstellen bzw. lass mir den als eMail senden. Für den eMail-Vesand nutze ich jedoch python - geht natürlich auch mit php, aber ich war zu faul, das zu "testen"
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

also auch ich möchte natürlich nur eine Email mit Snapshot beim Klingeln. Kenne mich mit python (Software und Hardware) allerdings gar nicht aus. Ich warte jetzt mal bis ich die Hardware habe und schaue mir mein log-File an. Anschließend versuche ich das php-Script anzupassen. Ich denke der eine oder andere hat das php-Script schon angepasst und kann mir dann helfen.

MfG

Dirk
 

kuzco-ip

Mitglied
Mitglied seit
4 Feb 2019
Beiträge
595
Punkte für Reaktionen
42
Punkte
28
Ich habe mir das mit python auch "zusammengesucht" - kann es selber auch nicht programmieren :)
Wenn ich mal Zeit und Musse habe, werde ich auch das php mal versuchen - kann ja nicht so schwer sein.

Im Moment läuft mein Script immer noch auf einem TC mit debian - den möchte ich aber ablösen durch einen raspi oder ich lege es direkt auf mein Datenbgrab (Windows)
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Ich mache das so ähnlich wie @kuzco-ip : Bei Anläuten + FingerPrint wird ein Snapshot erstellt und mir dann als Push auf meine Signal-App gesandt - mit Info's wie Name und Finger der Person des Fingerprints.
Für die Signal Sache nehme ich AsamK/signal-cli
 
  • Like
Reaktionen: kuzco-ip

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

ich schau mir das ganze mal an. Grundsätzlich denke ich, dass ich meine gewünschten Funktionen schon irgendwie hinbekomme (Email mit Snapshot senden, Snapshot und Videosequenz auf NAS speichern) :).
@riogrande75: Siehst Du über diese App dann auch die Person (live-Bild) die klingelt und kannst mit dieser sprechen?

MfG

Dirk
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Natürlich nicht, dafür brauchst du die gDMSS App. Ich brauche das aber auch gar nicht. Info reicht mir.
 
  • Like
Reaktionen: kuzco-ip und DirkMa

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

da bin ich wieder. Hardware ist angekommen. Zwei Probleme habe ich:
1. In meiner LOG-Datei steht folgendes:
Code:
<** Dahua VTO Eventempfaenger START **>
2021-02-09 18:26:53.000000: Start login
2021-02-09 18:26:53.000000: Login success
2021-02-09 18:26:53.000000: Started keepAlive thread
2021-02-09 18:26:53.000000: keepAlive back
2021-02-09 18:26:54.000000: Event Manager subscription reply
2021-02-09 18:26:54.000000: Event VideoMotion
2021-02-09 18:27:03.000000: Event VideoMotion
2021-02-09 18:27:06.000000: Event SIPRegisterResult, Success
2021-02-09 18:27:07.000000: Event SIPRegisterResult, Success
2021-02-09 18:27:14.000000: Event: CallSnap, DeviceType  RemoteID , RemoteIP  CallStatus
2021-02-09 18:27:14.000000: Event Call from VTO
2021-02-09 18:27:14.000000: Event: Invite,  Action Pulse, CallID 4 Lock Number 2
2021-02-09 18:27:14.000000: Event BackKeyLight with State 1
2021-02-09 18:27:14.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) "Pulse"
        ["Code"]=>
        string(7) "NewFile"
        ["Data"]=>
        array(5) {
          ["File"]=>
          string(57) "/mnt/mtd/Snap/2021-02-09/17/27/14[1612891634][[email protected]][0].jpg"
          ["Filter"]=>
          string(14) "/mnt/mtd/Snap/"
          ["LocaleTime"]=>
          string(19) "2021-02-09 17:27:14"
          ["Size"]=>
          int(50525)
          ["UTC"]=>
          float(1612891634)
        }
        ["Index"]=>
        int(328)
      }
    }
  }
  ["session"]=>
  int(1850009435)
}
2021-02-09 18:27:14.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) "Pulse"
        ["Code"]=>
        string(10) "UpdateFile"
        ["Data"]=>
        array(2) {
          ["LocaleTime"]=>
          string(19) "2021-02-09 17:27:14"
          ["UTC"]=>
          float(1612891634)
        }
        ["Index"]=>
        int(0)
      }
    }
  }
  ["session"]=>
  int(1850009435)
}
2021-02-09 18:27:25.000000: Event VideoMotion
2021-02-09 18:27:28.000000: Event VideoMotion

2. Möchte die VTO an meine Fritz!Box anmelden, damit es beim klingeln an meinem Fritz!Fon schellt. Das funktioniert leider nicht. Ich werde das an einer anderen stelle noch näher erläutern, da anderes Thema

Wo liegt bei Punkt 1 das Problem? Ich habe mal, falls wichtig, meine zur Zeit verwendete Firmware mit angehangen.

1612891934928.png
[Edit Novize: Riesenbilder gemäß der Forumsregeln auf Vorschau verkleinert]

MfG

Dirk
 
Zuletzt bearbeitet von einem Moderator:

kuzco-ip

Mitglied
Mitglied seit
4 Feb 2019
Beiträge
595
Punkte für Reaktionen
42
Punkte
28
Zu 1.: Es kann halt vorkommen, dass noch nicht alle Events im Script abgefangen werden. @riogrande75 wird den sicherlich bei Gelegenheit einpflegen.
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Hab die beiden Events auf die Schnelle mal eingebaut ins Script - bitte testen.
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

habe ich gerade getestet. Es taucht kein Fehler mehr auf. Allerdings habe ich das Gefühl es liegt eher daran, dass ich ein Update gefahren habe.
Es taucht im LOG weder "newfile" noch "updatefile" auf.

Danke für die schnelle Hilfe.

MfG

Dirk
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Soweit ich das verstehe, sollten die Events / Meldungen genau dann kommen, wenn ein Snapshot gemacht wurde.
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

das war auch so. Da ich aber im Moment noch das Problem habe, dass ich die VTO nicht an meine Fritz!box so angebunden bekomme, dass die Telefone klingeln versuche ich einiges. Deshalb kann es sein, das diese Meldungen mit meiner jetzigen Konfiguration nicht kommen. Jetzt kommt zur Zeit z.B. das
2021-02-10 17:07:21.000000: Event SIPRegisterResult, Failed)
2021-02-10 17:07:26.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(6) "Reboot"
["Data"]=>
array(2) {
["LocaleTime"]=>
string(19) "2021-02-10 16:07:26"
["UTC"]=>
float(1612973246)
}
["Index"]=>
int(0)
}
}
}
["session"]=>
int(962636433)
}
2021-02-10 17:08:52.000000: keepAlive failed
2021-02-10 17:08:52.000000: Failure no keep alive received
2021-02-10 17:09:52.000000: Start login

MfG

Dirk
 

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Tja, da scheinst du einen Reboot ausgelöst zu haben. Werde ich auch noch ins Script einbauen.
Mit jeder neuen FW Version kommen da offenbar neue Events dazu...
 

DirkMa

Neuer User
Mitglied seit
4 Apr 2016
Beiträge
63
Punkte für Reaktionen
8
Punkte
8
Hi,

das kann sein :) . Dachte ich mir fast. Da ich ja immer noch mit meiner Fritz!box dran bin, muss öfter ein Reboot her.
Noch ein Event:
2021-02-10 21:06:53.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) "Pulse"
["Code"]=>
string(16) "SecurityImExport"
["Data"]=>
array(3) {
["LocaleTime"]=>
string(19) "2021-02-10 20:06:53"
["Status"]=>
string(20) "PrepareExportSuccess"
["UTC"]=>
float(1612987613)
}
["Index"]=>
int(-1)
}
}
}
["session"]=>
int(1570008076)
}

Ohne Gewähr in Zeile 375 in Script einfügen:
elseif($eventCode == 'Reboot'){
logging("Event: Reboot, Action ".$eventList['Action'].", LocaleTime ".$eventData['LocaleTime']);
}
elseif($eventCode == 'SecurityImExport'){
logging("Event: SecurityImExport, Action ".$eventList['Action'].", LocaleTime ".$eventData['LocaleTime'].", Status ".$eventData['Status']);
}
Ich hoffe, es ist ok. Wenn nicht bitte Bescheid geben, dann lösche ich den Code wieder.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: riogrande75

riogrande75

Aktives Mitglied
Mitglied seit
30 Okt 2017
Beiträge
1,095
Punkte für Reaktionen
191
Punkte
63
Hab auch diese beiden Events noch ins Script eingebaut.
 
  • Like
Reaktionen: DirkMa

Zurzeit aktive Besucher

3CX

Statistik des Forums

Themen
237,475
Beiträge
2,094,422
Mitglieder
359,712
Neuestes Mitglied
funnyistfunny