Die Fernkonfigurations-API (Application Programming Interface) http://192.168.102.2/admin/remoteconfig
ermöglicht die Fernkonfiguration der Kamera, indem bestimmte Parameter der Konfigurationsdatei direkt auf der Kamera manipuliert
werden.
Die HTTP-Schnittstelle der Kamera erwartet Befehle und Konfigurationsparameter in einem HTTP-POST-Request wie in diesem Beispiel:
POST /admin/remoteconfig HTTP/1.0 Content-type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46bWVpbnNt Content-length: 87 helo view section audio write params audio/MICRO=1 view section audio update store quit
Bestandteil |
Beschreibung |
---|---|
POST /admin/remoteconfig HTTP/1.0 Content-type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46bWVpbnNt Content-length: 87 |
Header (Kopf) des HTTP-POST-Requests. |
|
Leerzeile, trennt den Header vom Inhalt des Requests. |
helo
|
Beginn der Befehlssequenz. |
view section audio write params audio/MICRO=1 view section audio update store |
Befehlssequenz mit verschiedenen Befehlen, wie im Abschnitt Befehle der Fernkonfigurations-API erläutert. |
quit
|
Ende der Befehlssequenz. |
Die Befehlssequenz muss mit einem Leerzeichen und einem Zeilenumbruch am Ende abgeschlossen werden.
Der Inhaltstyp (Content-type: application/x-www-form-urlencoded
) muss nicht angegeben werden, wird aber vom Webserver der Kamera erwartet.
Die Autorisierung erfolgt durch den Webserver der Kamera, hier über die Variante Basic
. Dabei werden Benutzername und Passwort durch einen Doppelpunkt (":") getrennt zusammengesetzt und dann Base64-kodiert. Für
"admin:meinsm
" ergibt sich die oben angegebene Zeile.
Die Länge des Inhalts (Content-length
) wird über alle Daten nach der Header-Leerzeile berechnet.
Der Inhalt des Requests wird zeilenweise ausgewertet.
Sonderzeichen in Parametern müssen URL-kodiert werden, wie im Abschnitt Schreibweise für Befehlsaufrufe der Hilfeseite Die HTTP-API gezeigt.
Im Abschnitt Ausgaben der Fernkonfigurations-API wird dieses Beispiel genau erläutert und mithilfe von cURL
durchgeführt.
Die Befehle können mit den folgenden Syntaxformen verwendet werden:
Einfacher Befehl:
<Befehl>
Befehl mit Schlüsselwort, durch Leerzeichen getrennt:
<Befehl> <Schlüsselwort>
Befehl mit Parametern, durch Leerzeichen getrennt:
<Befehl> <Parameter1> <Parameter2>
Befehl mit Schlüsselwort und einem oder mehreren Parametern, durch Leerzeichen getrennt:
<Befehl> <Schlüsselwort> <Parameter1> <Parameter2>
Befehl |
Beschreibung |
||||||||
---|---|---|---|---|---|---|---|---|---|
|
Setzt die komplette Kamerakonfiguration oder einzelne Abschnitte darin auf Werkseinstellungen zurück.
|
||||||||
|
Stellt die im Flash gespeicherte Konfiguration wieder her.
|
||||||||
|
Löscht die komplette Konfiguration, einzelne Abschnitte oder einzelne Parameter.
|
||||||||
|
Schreibt ganze Abschnitte oder - mit vorangestelltem Schlüsselwort
|
||||||||
|
Hängt Daten an Konfigurationsabschnitte an. Die anzuhängenden Parameter für einen Abschnitt werden zeilenweise zwischen SECTION <Abschnittname> Parameter=<Wert> Parameter=<Wert> ENDSECTION <Abschnittname> |
||||||||
|
Gibt die komplette Konfiguration oder ausgewählte Abschnitte aus.
|
||||||||
|
Sichert die Konfiguration der Kamera permanent (im Flash-Speicher). |
||||||||
|
Löst einen Neustart der Kamera aus. |
||||||||
|
Aktiviert die an der Konfiguration vorgenommenen Änderungen, soweit dies ohne Neustart möglich ist.
|
||||||||
|
Gibt eine Zeile mit dem Namen des gerade aktiven Konfigurationsprofils aus. Die Zeile ist leer, wenn kein Profil aktiv ist. |
||||||||
|
Aktiviert das als Parameter angegebene Konfigurationsprofil: activate_profile <Profilname> |
||||||||
|
Listet die Konfigurationssektionen auf, die verändert wurden und einen Neustart zur Aktivierung der Änderungen benötigen. Die Zeile ist leer, wenn keine Änderung einen Neustart erfordert. HinweisNach Änderungen an der gesamten Konfiguration (mit |
||||||||
|
Identische Bedeutung. Beide Befehle schließen den vorangehenden Befehl ab und beenden den API-Aufruf. In einer Befehlssequenz kann immer nur einer dieser beiden Befehle verwendet werden. |
||||||||
|
Gibt eine Liste der verfügbaren Befehle zurück (siehe Abrufen der implementierten Befehle mit dem Befehl |
Die Ergebnisse bestehen aus den Daten, die der jeweilige Befehl zurückgibt.
Informative Ausgaben beginnen mit "#
" und geben Auskunft über den Verlauf der Befehlsverarbeitung.
Fehlermeldungen beginnen mit "ERROR:
", gefolgt von einer Beschreibung des aufgetretenen Fehlers.
Befehle ohne Ergebnisdaten (reset
, store
etc.) haben keine Ausgabe.
Sofern keine Fehler aufgetreten sind, bestätigt die Kamera vor dem Schließen mit der Ausgabe "OK
".
Dieses Beispiel zeigt, wie das Mikrofon der Kamera mit einem HTTP-Request aktiviert werden kann. Zum Testen kann das Befehlszeilenwerkzeug
cURL
(http://curl.haxx.se/download.html) verwendet werden, das für Windows erhältlich ist und unter Mac OS X und Linux bereits installiert ist.
Vorteil von cURL
ist, dass die Befehle schnell getestet werden können, da diese Anwendung die Kommunikation mit der Kamera übernimmt. So sendet
cURL
automatisch den richtigen Header und berechnet die Länge der eingegebenen Befehlssequenz.
Befehle |
Beschreibung |
---|---|
helo view section audio write params audio/MICRO=1 view section audio update store quit |
# Beginn der Befehlssequenz. # Abschnitt |
Öffnen Sie eine Eingabeaufforderung (Windows) bzw. ein Terminal (Mac OS X, Linux).
Geben Sie folgende Befehlszeile ein, wobei Sie <Benutzername>
, <Passwort>
und <IP-Adresse>
durch die tatsächliche Daten für Ihre Kamera ersetzen:
curl -q -v -u "<Benutzername>:<Passwort>" --data-binary @- "http://<IP-Adresse>/admin/remoteconfig"
Drücken Sie die [Eingabetaste]; cURL
wartet jetzt auf Befehle.
Kopieren Sie den Textblock in der linken Spalte der obigen Tabelle von helo
bis quit
.
Fügen Sie den Inhalt der Zwischenablage in der Eingabeaufforderung/im Terminal ein.
Drücken Sie zwei Mal hintereinander die Tastenkombination [Strg+D] (Windows, Linux) bzw. einmal [Ctrl+D] (Mac OS X), um die Befehlssequenz an die Kamera zu senden.
<Benutzername>: admin
<Passwort>: meinsm
<IP-Adresse>: 10.8.0.118
* About to connect() to 10.8.0.118 port 80 (#0) * Trying 10.8.0.118... connected * Connected to 10.8.0.118 port 80 (#0) * Server auth using Basic with user 'admin' > POST /admin/remoteconfig HTTP/1.1 > Authorization: Basic YWRtaW46bWVpbnNt > User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 > Host: 10.8.0.118 > Accept: */* > Content-Length: 87 > Content-Type: application/x-www-form-urlencoded > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Content-Type: text/plain; charset=utf-8 < Cache-Control: no-cache < #read:helo: #read:view section audio: #exec cmd=view section audio SECTION audio SPEAKER=1 MICRO=0 PREAMPLIFIER=2 SPEAKERLEVEL=0 ENDSECTION audio #read:write params: #exec cmd=write params #read:view section audio: #exec cmd=view section audio SECTION audio SPEAKER=1 MICRO=1 PREAMPLIFIER=2 SPEAKERLEVEL=0 ENDSECTION audio #read:update: #exec cmd=update #updating daemons! #read:store: #exec cmd=store #Storing to flash... #read:quit: OK #bye * Closing connection #0
Die Ausgaben, die mit "*
", "<
" und ">
" beginnen, werden von cURL
ausgegeben. Hierbei kennzeichnet ">
" Befehle, die zur Kamera gesendet werden und "<
" Meldungen, die vom Webserver der Kamera zurückgegeben werden. Die restlichen Zeilen werden von der Fernkonfigurations-API
zurückgegeben, wie unter Ausgaben der Fernkonfigurations-API beschrieben.
help
Befehle |
Beschreibung |
---|---|
helo help quit |
# Beginn der Befehlssequenz. # Hilfe der Fernkonfigurations-API aufrufen. # Ende der Befehlssequenz. |
Öffnen Sie eine Eingabeaufforderung (Windows) bzw. ein Terminal (Mac OS X, Linux).
Geben Sie folgende Befehlszeile ein, wobei Sie <Benutzername>
, <Passwort>
und <IP-Adresse>
durch die tatsächliche Daten für Ihre Kamera ersetzen:
curl -q -v -u "<Benutzername>:<Passwort>" --data-binary @- "http://<IP-Adresse>/admin/remoteconfig"
Drücken Sie die [Eingabetaste]; cURL
wartet jetzt auf Befehle.
Kopieren Sie den Textblock in der linken Spalte der obigen Tabelle von helo
bis quit
.
Fügen Sie den Inhalt der Zwischenablage in der Eingabeaufforderung/im Terminal ein.
Drücken Sie zwei Mal hintereinander die Tastenkombination [Strg+D] (Windows, Linux) bzw. [Ctrl+D] (Mac OS X), um die Befehlssequenz an die Kamera zu senden.
<Benutzername>: admin
<Passwort>: meinsm
<IP-Adresse>: 10.8.0.118
* About to connect() to 10.8.0.118 port 80 (#0) * Trying 10.8.0.118... connected * Connected to 10.8.0.118 port 80 (#0) * Server auth using Basic with user 'admin' > POST /admin/remoteconfig HTTP/1.1 > Authorization: Basic YWRtaW46bWVpbnNt > User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 > Host: 10.8.0.118 > Accept: */* > Content-Length: 87 > Content-Type: application/x-www-form-urlencoded > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Content-Type: text/plain; charset=utf-8 < Cache-Control: no-cache < #read:helo: #read:help: The following commands are currently implemented: append reboot_needed view reboot write profile restore activate_profile reset update delete store exit quit help #read:quit: OK #bye * Closing connection #0
Die Ausgaben, die mit "*
", "<
" und ">
" beginnen, werden von cURL
ausgegeben. Hierbei kennzeichnet ">
" Befehle, die zur Kamera gesendet werden und "<
" Meldungen, die vom Webserver der Kamera zurückgegeben werden. Die restlichen Zeilen werden von der Fernkonfigurations-API
zurückgegeben, wie unter Ausgaben der Fernkonfigurations-API beschrieben.
write
Die Zieladresse ipnotifyaddress
des Netzwerknachrichten-Profils ip0
im Konfigurationsabschnitt ipnotify
soll von 10.0.0.42:8000
auf 10.11.12.13:6750
umgestellt werden.
Sie müssen immer die komplette Profilzeile schreiben. Einzelne Werte innerhalb eines Profils können nicht separat geändert werden.
Befehle |
Beschreibung |
---|---|
helo view section ipnotify write params ipnotify/ip0/profile=ip0:_profilename=MxCC-Alarm :preset=mxpeg_alarm:ackn_time=60 :ipnotifyaddress=10.11.12.13%3A6750 :send=on_error:protocol=raw :boundary=--next-image--:httppath=:httpauth= :data=msg:ipnotifymessage=Hello World! :filetype=mxg:rate100=100:antetime=1 :posttime=1:systime=1440:ipnotifyport=0 view section ipnotify update store quit |
# Beginn der Befehlssequenz. # Abschnitt |
Öffnen Sie eine Eingabeaufforderung (Windows) bzw. ein Terminal (Mac OS X, Linux).
Geben Sie folgende Befehlszeile ein, wobei Sie <Benutzername>
, <Passwort>
und <IP-Adresse>
durch die tatsächliche Daten für Ihre Kamera ersetzen:
curl -q -v -u "<Benutzername>:<Passwort>" --data-binary @- "http://<IP-Adresse>/admin/remoteconfig"
Drücken Sie die [Eingabetaste]; cURL
wartet jetzt auf Befehle.
Kopieren Sie den Textblock in der linken Spalte der obigen Tabelle von helo
bis quit
.
Fügen Sie den Inhalt der Zwischenablage in der Eingabeaufforderung/im Terminal ein.
Drücken Sie zwei Mal hintereinander die Tastenkombination [Strg+D] (Windows, Linux) bzw. [Ctrl+D] (Mac OS X), um die Befehlssequenz an die Kamera zu senden.
<Benutzername>: admin
<Passwort>: meinsm
<IP-Adresse>: 10.8.0.118
* About to connect() to 10.8.0.118 port 80 (#0) * Trying 10.8.0.118... connected * Connected to 10.8.0.118 port 80 (#0) * Server auth using Basic with user 'admin' > POST /admin/remoteconfig HTTP/1.1 > Authorization: Basic YWRtaW46bWVpbnNt > User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 > Host: 10.8.0.118 > Accept: */* > Content-Length: 87 > Content-Type: application/x-www-form-urlencoded > * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Content-Type: text/plain; charset=utf-8 < Cache-Control: no-cache < #read:helo: #read:view section ipnotify: #exec cmd=view section ipnotify SECTION ipnotify ipnotify/ip0/profile=ip0:_profilename=MxCC-Alarm :preset=mxpeg_alarm:ackn_time=60 :ipnotifyaddress=10.0.0.42%3A8000 :send=on_error:protocol=raw :boundary=--next-image--:httppath=:httpauth= :data=msg:ipnotifymessage=Hello World! :filetype=mxg:rate100=100:antetime=1 :posttime=1:systime=1440:ipnotifyport=0 ... ENDSECTION ipnotify #read:write params: #exec cmd=write params #read:view section ipnotify: #exec cmd=view section ipnotify SECTION ipnotify ipnotify/ip0/profile=ip0:_profilename=MxCC-Alarm :preset=mxpeg_alarm:ackn_time=60 :ipnotifyaddress= 10.11.12.13%3A6750 :send=on_error:protocol=raw :boundary=--next-image--:httppath=:httpauth= :data=msg:ipnotifymessage=Hello World! :filetype=mxg:rate100=100:antetime=1 :posttime=1:systime=1440:ipnotifyport=0 ... ENDSECTION ipnotify #read:update: #exec cmd=update #updating daemons! #read:store: #exec cmd=store #Storing to flash... #read:quit: OK #bye * Closing connection 0
Die Ausgaben, die mit "*
", "<
" und ">
" beginnen, werden von cURL
ausgegeben. Hierbei kennzeichnet ">
" Befehle, die zur Kamera gesendet werden und "<
" Meldungen, die vom Webserver der Kamera zurückgegeben werden. Die restlichen Zeilen werden von der Fernkonfigurations-API
zurückgegeben, wie unter Ausgaben der Fernkonfigurations-API beschrieben.
de, en |