Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19000092 Hikvision Alerts Bewegungserkennung für Hikvision Kameras

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    LBS19000092 Hikvision Alerts Bewegungserkennung für Hikvision Kameras

    Hallo,

    ich möchte einen neuen Baustein ankündigen, den LBS19000092.

    Leider lässt sich die Hilfe nicht ohne Fehlermeldung im Baustein speichern. Ich weiss den Grund nicht und habe auch wenig Lust mich mit der Ursache zu beschäftigen.
    Deshalb kopiere ich die Hilfe hierher:

    Der Hikvision Alerts LBS soll in der ersten Version, mittels Post Http, Events von der Kamera empfangen.
    Die Kamera sendet automatisch bei einem Event einen (Pseudo-)XML-String, der vom LBS ausgewertet wird.
    Um die Kamera einzustellen, sind folgende Hilfsmittel notwendig:
    - HIKVISION ISAPI_2.0-IPMD Service
    - HIKCGI Event Function
    - Test Tool for Integrators
    http://www.hikvisioneurope.com/porta...20Test%20Tool/

    Ferner ist ein Thread bei IP-Symcon interessant. Dieser ist teils fehlerhaft, aber als Anfang ganz gut. Der letzte Post ist wichtig, um zu verstehen wie dieser
    LBS funktioniert. Mit dem Toll geht es auch, muss kein curl sein.
    https://www.symcon.de/forum/threads/...a-DS-2CD2032-I

    Im Tool ist folgendes zu erledigen:
    - oben seine IP mit Anmeldedaten eingeben.
    - Parameter and Commands auf ISAPI schalten. Box ankreuzen.
    - nächste Box ISAPI/Event/normal
    - nächste Box ISAPI/Event/notification/httpHosts
    - PUT dann Taste >> damit links ein Parameterfenster aufgeht.

    - Dann Folgendes reinkopieren: bei mir
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <HttpHostNotificationList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
    <HttpHostNotification version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
    <id>1</id>
    <url>/</url>
    <protocolType>HTTP</protocolType>
    <parameterFormatType>XML</parameterFormatType>
    <addressingFormatType>ipaddress</addressingFormatType>
    <ipAddress>192.168.2.XXX</ipAddress>             //IP Adresse ist die IP von Edomi
    <portNo>8000</portNo>                            //Port frei wählbar
    <userName></userName>
    <httpAuthenticationMethod>none</httpAuthenticationMethod>
    </HttpHostNotification>
    </HttpHostNotificationList>
    -Taste "Send" drücken.

    -mit GET und "Send" testen ob es geklappt hat, das sieht so aus:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <HttpHostNotificationList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
    <HttpHostNotification version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
    <id>1</id>
    <url>/</url>
    <protocolType>HTTP</protocolType>
    <parameterFormatType>XML</parameterFormatType>
    <addressingFormatType>ipaddress</addressingFormatType>
    <ipAddress>192.168.2.XXX</ipAddress>
    <portNo>8000</portNo>
    <userName></userName>
    <httpAuthenticationMethod>none</httpAuthenticationMethod>
    </HttpHostNotification>
    </HttpHostNotificationList>
    -eigentlich müsste dann der LBS gehen. Bei mir tat er es nicht, sondern erst nach
    - Protocol HIK_CGI
    - siehe HIKCGI Pdf Punkt 3.2
    - auf Event -> Event/notification und POST umschalten, dann oben URL /EventAlarm und "Send" drücken.
    - Viel Glück ! Leider ist es mit ein paar Klicks nicht erledigt, man sollte sich die Zeit nehmen sich ein wenig
    einzuarbeiten. Die Kamera hat sehr viele Möglichkeiten, aber wenig Linie in der Dokumentation der API.


    Diese Version empfängt, zumindest bei meiner Kamera, im Moment nur VMD=Motion detect.
    Line- und Fielddetection ist nur mit Polling des Alertsstreams möglich (Mein Wissensstand).
    Bei entsprechender Resonanz kann ich eine LBS-Pollvariante nachreichen.

    Viel Erfolg !
    >>Smelly One<<
    >> BURLI <<
    Grüße Armin

    #2
    Vielleicht könnte mir jemand helfen, den Datastring statt mit preg_match mit XML Funktionen zu durchsuchen. Leider hat es immer wieder Fehlermeldungen gegeben, da vermutlich der String nicht 100% konform ist. Es funktioniert mit preg_match, aber schöner wäre es halt....
    Der String, der ankommt sieht so aus:
    Code:
    POST / HTTP/1.1[CR][LF]Content-Type: application/xml; charset="UTF-8" [CR][LF]Content-Length:804 [CR][LF][CR][LF]<?xml version="1.0" encoding="UTF-8"?>[CR][LF]<EventNotificationAlert version="1.0" xmlns="urn:psialliance-org">[CR][LF]<ipAddress>192.168.2.64</ipAddress>[CR][LF]<protocolType>HTTP</protocolType>[CR][LF]<macAddress>28:57:be:26:e6:25</macAddress>[CR][LF]<channelID>1</channelID>[CR][LF]<dateTime>2016-11-20T16:25:41+01:00</dateTime>[CR][LF]<activePostCount>1258</activePostCount>[CR][LF]<eventType>VMD</eventType>[CR][LF]<eventState>active</eventState>[CR][LF]<eventDescription>Motion alarm</eventDescription>[CR][LF]<Extensions version="1.0" xmlns="urn:psialliance-org">[CR][LF]<serialNumber xmlns="urn:selfextension:psiaext-ver10-xsd">DS-2CD2742FWD-IS2015XXXX</serialNumber>[CR][LF]<eventPush xmlns="urn:selfextension:psiaext-ver10-xsd">VMD&&DS-2CD2742FWD-IS2015XXXX,2016-11-20T16:25:41+01:00,1,1.0</eventPush>[CR][LF]</Extensions>[CR][LF]</EventNotificationAlert>[CR][LF]
    >>Smelly One<<
    >> BURLI <<
    Grüße Armin

    Kommentar


      #3
      Hiho,

      ich hatte das schonmal irgendwo gepostet, am besten von XML zu json zu Array konvertieren, das geht dann so ($x ist dein XML, $a ist das Resultat):
      PHP-Code:
      $x=simplexml_load_string($s);
      $j=json_encode($x);
      $a=json_decode($j,TRUE);
      print_r($a); 
      Ich hab dein XML nicht probiert, aber da ist nen HTTP-Header vor sowie cr/lf Kodierungen drin. Also anfangen hiermit
      Code:
      <?xml version="1.0" encoding="UTF-8"?>
      und die ganze [CR] und [LF] rauswerfen.

      Wie auch immer Du an diesen String kommst

      hth :: Michael

      Kommentar


        #4
        Hi Michael,
        danke, aber ich dachte eher an sowas wie $XML=XMLConvert($data)

        Allein schon die zahllosen [CR][LF] bei jedem Durchgang rauszuwerfen, würde schon die komplette Haussteuerung ausbremsen.

        Schau mal was ein XML Formatter sagt:

        Screenshot - 20_11.png

        Wie kann man nur aus einem "root" sowas machen
        Code:
        <EventNotificationAlert version="1.0" xmlns="urn:psialliance-org">[CR][LF]
        Ich glaube es gibt interessantere Herausforderungen, als sich hier einen abzubrechen.
        >>Smelly One<<
        >> BURLI <<
        Grüße Armin

        Kommentar


          #5
          Moin moin!
          der Link in Post 1 von WagoKlemme zum Hikvision Testtool for Integrators ist leider tot und ich finde das Tool auch nicht wirklichbei Hikvision.
          Hat das zufällig noch einer von euch auf der Felstplatte rumliegen? Das wäre ganz großartig

          Gruß Christian

          Kommentar


            #6
            Hallo Christian,

            stimmt, ich habe das Tool nun in den LBS integriert. Lade einfach den LBS nochmal runter.
            >>Smelly One<<
            >> BURLI <<
            Grüße Armin

            Kommentar


              #7
              Danke!
              Gruß Christian

              Kommentar

              Lädt...
              X