NEWS
[GELÖST] HikVision CAM per Script Anweisung steuern (REQUEST)
-
Hallo,
ich möchte gerne bei meiner HikVision Kamera die Motion Detection abstellen wenn ich z Hause bin.In der HikVision HIKVISION ISAPI_2.6-IPMD Service.pdf kann man die unterschiedlichen Befehle nachlesen.
Für die Aktivierung oder Deaktivierung kannman per Get und Put die Anweisung schicken.
Mit dem Programm Postman funktioniert das einwandfrei.
So kann man perGET http://IPADRESSE/ISAPI/System/Video/inputs/channels/1/motionDetection
den Status abfragen und bekommt:
<?xml version="1.0" encoding="UTF-8"?>
<MotionDetection version="2.0" xmlns="http://www.std-cgi.com/ver20/XMLSchema">
<enabled>true</enabled>
<enableHighlight>true</enableHighlight>
<samplingInterval>2</samplingInterval>
<startTriggerTime>500</startTriggerTime>
<endTriggerTime>500</endTriggerTime>
<regionType>grid</regionType>
<Grid>
<rowGranularity>18</rowGranularity>
<columnGranularity>22</columnGranularity>
</Grid>
<MotionDetectionLayout version="2.0" xmlns="http://www.std-cgi.com/ver20/XMLSchema">
<sensitivityLevel>20</sensitivityLevel>
<layout>
<gridMap>000000000000000000000000000000000000000200000000000000000000000040000000008000000000000000000000003000000000</gridMap>
</layout>
</MotionDetectionLayout>
<enableWithMoving>true</enableWithMoving>
</MotionDetection>Den Fett markierten Bereich kann man auf False umschreiben und per PUT wieder über Postman zurückschicken. Und Motion Detection ist wieder deaktiviert.
Das funktioniert soweit einwandfrei.Nur wie kann ich dies per IOBrocker lösen?
Hat jemand eine Idee?
LG
Timme -
Hallo,
ich habe gelesen, dass evt. über eine CURL, die Anweisung zur CAM geschickt werden kann.Somit müßte ich in IO Brocker zwei XML Dateien ablegen.
Z.B. Motion_An.xml und Motion_Aus.xml
In beiden Datein ist dann der gesamte XML Block von oben enthalten mit dem jeweiligen Zeilenunterschied
<enabled>true</enabled> oder <enabled>false</enabled>Diese Anweisung dann per Java oder Blockly zu CAM schicken.
Ich bin im IO Brocker noch ein Anfänger und wüste nicht wie ich es realisieren könnte.Könnte mir jemand hier helfen?
Danke
Gruß -
Problem gelöst!
Wie im obigen Fred geschrieben funktioniert es mit dem Programm Postman
Hier kann man per GET und PUT die Anweisung direkt verschicken.Nach vielem, lesen habe ich herausgefunden, dass man die PUT Anweisung für JAVA in ein Request umwandeln muß.
Jettzt kommt wieder das Program Postman zum Einsatz. Diese Programm kann die XML in ein Request übersetzten.
Das obige XML File sieht dann in JavaScript wie folgt aus:
var request = require("request");
var options = { method: 'PUT',
url: 'http://admin:DPASSWORD@IPADRESSE/ISAPI/System/Video/inputs/channels/1/motionDetection',
headers:
{ 'cache-control': 'no-cache',
Connection: 'keep-alive',
'content-length': '877',
'accept-encoding': 'gzip, deflate',
Host: 'IPADRESSE',
'Postman-Token': 'IrgendeinTokenvonPostman',
'Cache-Control': 'no-cache',
Accept: '/',
'User-Agent': 'PostmanRuntime/7.13.0',
Authorization: 'Basic irgend ne nummer von Postman',
'Content-Type': 'application/json' },
body: '<?xml version="1.0" encoding="UTF-8"?>\n<MotionDetection version="2.0" xmlns="http://www.std-cgi.com/ver20/XMLSchema">\n <enabled>true</enabled>\n <enableHighlight>true</enableHighlight>\n <samplingInterval>2</samplingInterval>\n <startTriggerTime>500</startTriggerTime>\n <endTriggerTime>500</endTriggerTime>\n <regionType>grid</regionType>\n <Grid>\n <rowGranularity>18</rowGranularity>\n <columnGranularity>22</columnGranularity>\n </Grid>\n <MotionDetectionLayout version="2.0" xmlns="http://www.std-cgi.com/ver20/XMLSchema">\n <sensitivityLevel>20</sensitivityLevel>\n <layout>\n <gridMap>000000000000000000000000000000000000000200000400000000000000000040000000008000000000000000000000003000000000</gridMap>\n </layout>\n </MotionDetectionLayout>\n <enableWithMoving>false</enableWithMoving>\n</MotionDetection>\n' };request(options, function (error, response, body) {
if (error) throw new Error(error);console.log(body);
});]Das Script kann man sicherlich noch einkürzen - funktioniert auf jedenfall im IO-Broker.
Also für alle diejenigen, die eine HIKVision Kamera im Einsatz haben und igrendweche Einstellungen per Skript machen möchten, können dies mit diesen recht einfach Weg machen.
Falls detailierte Beschreibung gewünscht einfach mal melden.
Gruß
Timme -
Hi,
hab hier einen Beitrag zu Kamera gefunden.
Was müsste man anpassen um das zum Laufen zu bekommen?
Oder muss man noch was installieren?
Hab nur mal IP Adresse und Kennwort angepasst, funktioniert aber leider nicht.
Wäre super wenn das funktionieren würde.
VG -
@eifeladmin
Was hast du im Log stehen , ein Error / Warning !?Hast Du im Adapter Javascript" request " aktiviert !?
Welche Hikvison Cam hast du .
-
Eine Warnung / Error bekomme ich keine.
Request hab ich im Adapter aktiviert.
Ich hab eine DS-2CD3132F-IWS, den befehlt hab ich mal im Browser eingegeben und auch eine Rückmeldung erhalten.
Kann ich das Ergebnis im Webinterface sehen? Müsste dann der Haken raus rein bei Bewegungserkennung? -
@eifeladmin
Hast Du auch darauf geachtet bzw. dieses geändert.Zitat :
Mit dem Programm Postman funktioniert das einwandfrei. Host: 'IPADRESSE', Postman-Token': 'IrgendeinTokenvonPostman', Authorization: 'Basic irgend ne nummer von Postman',
-
@Glasfaser
Das war ja meine Frage ob ich dort noch was anpassen muss.
Wo bekomm ich den das Token und die Nummer her?
Hab damit leider noch nie gearbeitet. -
Grüsse,
ich versuche grad in Postman die xml Datei, welche man durch Aufruf der Url
IPAdresse/ISAPI/System/Video/inputs/channels/1/motionDetection
erhält, in einen Request umzuwandeln. Mit welcher Funktion in Postman gelingt das ??? Code snippet > NodeJS Request ???
Das Thema ist zwar schon alt, aber vielleicht antwortet doch noch jemand.
Danke !
-
Ich antworte mir selbst, denn selbst gelöst ! Inhalt im xml Format kommt in den Body !