Die Fernkonfigurations-API (Application Programming Interface) http://10.0.0.222/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
store
update
quit
Bestandteil | Beschreibung |
---|---|
POST /admin/remoteconfig HTTP/1.0 |
Header (Kopf) des HTTP-POST-Requests. |
Leerzeile, trennt den Header vom Inhalt des Requests. | |
helo |
Beginn der Befehlssequenz. |
view section audio
|
Befehlssequenz mit verschiedenen Befehlen, wie im Abschnitt Befehle der Fernkonfigurations-API erläutert. |
quit |
Ende der Befehlssequenz. |
Anmerkungen:
Content-type: application/x-www-form-urlencoded
) muss nicht angegeben werden, wird aber vom Webserver der Kamera erwartet.Basic
. Dabei werden Benutzername und Kennwort durch einen Doppelpunkt (":") getrennt zusammengesetzt und dann Base64-kodiert. Für "admin:meinsm
" ergibt sich die oben angegebene Zeile.Content-length
) wird über alle Daten nach der Header-Leerzeile berechnet.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:
<Befehl>
<Befehl> <Schlüsselwort>
.<Befehl> <Parameter1> <Parameter2>
.<Befehl> <Schlüsselwort> <Parameter1> <Parameter2>
.Die Fernkonfigurations-API stellt folgende Befehle zur Verfügung:
Befehl | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
reset |
Setzt die komplette Kamerakonfiguration oder einzelne Abschnitte darin auf Werkseinstellungen zurück.
|
||||||||
restore |
Stellt die im Flash gespeicherte Konfiguration wieder her.
|
||||||||
delete |
Löscht die komplette Konfiguration, einzelne Abschnitte oder einzelne Parameter.
|
||||||||
write |
Schreibt ganze Abschnitte oder - mit vorangestelltem Schlüsselwort params - einzelne Parameter der Konfiguration.
|
||||||||
append |
Hängt Daten an Konfigurationsabschnitte an. Die anzuhängenden Parameter für einen Abschnitt werden zeilenweise zwischen SECTION und ENDSECTION angegeben:
SECTION <Abschnittsname> |
||||||||
view |
Gibt die komplette Konfiguration oder ausgewählte Abschnitte aus.
|
||||||||
store |
Sichert die Konfiguration im Flash-Speicher der Kamera. | ||||||||
reboot |
Löst einen Neustart der Kamera aus. | ||||||||
update |
Aktiviert die an der Konfiguration vorgenommenen Änderungen, soweit dies ohne Neustart möglich ist.
|
||||||||
profile |
Gibt eine Zeile mit dem Namen des gerade aktiven Konfigurationsprofils aus. Die Zeile ist leer, wenn kein Profil aktiv ist. | ||||||||
activate_profile |
Aktiviert das als Parameter angegebene Konfigurationsprofil:
activate_profile <Profilname> |
||||||||
reboot_needed |
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.
|
||||||||
exit |
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. | ||||||||
help |
Gibt eine Liste der verfügbaren Befehle zurück (siehe Abrufen der implementierten Befehle mit dem Befehl help ). |
Die Ausgabe der API erfolgt zeilenweise:
#
" und geben Auskunft über den Verlauf der Befehlsverarbeitung.ERROR:
", gefolgt von einer Beschreibung des aufgetretenen Fehlers.reset
, store
etc.) haben keine 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.
Zu sendende Anfrage:
Befehle | Beschreibung |
helo |
# Beginn der Befehlssequenz. |
Schrittweise Anleitung:
<Benutzername>
, <Kennwort>
und <IP-Adresse>
durch die tatsächliche Daten für Ihre Kamera ersetzen:
curl -q -v -u "<Benutzername>:<Kennwort>" --data-binary @- "http://<IP-Adresse>/admin/remoteconfig"
cURL
wartet jetzt auf Befehle.helo
bis quit
.Ausgabe der obigen Befehlssequenz mit folgenden Daten:
* 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=ISO-8859-1
< 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:store:
#exec cmd=store
#Storing to flash...
#read:update:
#exec cmd=update
#updating daemons!
#read:quit:
OK
#bye
* Closing connection #0
Hinweis: | 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
Zu sendende Anfrage:
Befehle | Beschreibung |
helo |
# Beginn der Befehlssequenz. |
Schrittweise Anleitung:
<Benutzername>
, <Kennwort>
und <IP-Adresse>
durch die tatsächliche Daten für Ihre Kamera ersetzen:
curl -q -v -u "<Benutzername>:<Kennwort>" --data-binary @- "http://<IP-Adresse>/admin/remoteconfig"
cURL
wartet jetzt auf Befehle.helo
bis quit
.Ausgabe der obigen Befehlssequenz mit folgenden Daten:
* 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=ISO-8859-1
< 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
Hinweis: | 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 |