[[!img BdzMCUkIIAA_te2.jpg- align="right" size="" alt=""]] ##Zusammenfassung Wir experimentieren gerade im Rahmen eines Kunstprojektes mit Überwachungskameras herum. Das Ziel ist ein Interface für 8 Überwachungskameras zu schreiben, welches die Bilder aller Kameras anzeigt, und mit dem man die Kameras steuern kann. Da es sich dabei um undokumentierte Hardware handelt, haben wir die Befehle, die die Kamera per Webinterface entgegennimmt mitgelesen. ## DHCP-Server installieren, z.B. udhcpd Zunächst startet installiert man sich einen DHCP-Server, z.B. udhcpd Das Standard-Config-File ist eigentlich ok. So in etwa sollte es aussehen: [[!format c """ server 192.168.0.1 start 192.168.0.100 end 192.168.0.254 interface enp0s25 option subnet 255.255.255.0 option router 192.168.0.1 option dns 192.168.0.1 option lease 259200 """]] ## Wireshark starten Nachdem der DHCP-Server läuft und die Kamera Strom hat, und mit dem Rechner verbunden worden ist, startet man wireshark und lauscht auf dem Interface. Damit man nicht den ganzen Traffic durchwühlen muss, empfiehlt es sich als Filter *http.request.method* zu nehmen. Dann sieht man alle Requests, die in Richtung Kamera vom Webinterface aus gehen. Anschliessend steuert man die IP der Kamera im Browser an (bei mir 192.168.0.117). Als Login funktioniert hoffentlich die Werkseinstellung (admin/123456). Nun kann man im Webinterface rumklicken, und sieht in wireshark alle Requests. ## Die Kamera Es handelt sich bei den benutzten Kameras um die *Conceptronic Wireless Pan & Tilt Network Camera*. Diese gibt es unter vielen anderen Bezeichnungen für wenig Geld im Elektronikladen des Vertrauens. ## Steuerbefehle One Direction: [[!format c """ http://192.168.0.117/decoder_control.cgi?onestep=1&command=X X = 0 --> down X = 2 --> up X = 4 --> clockwise X = 6 --> counter-clockwise """]] Two Directions: [[!format c """ http://192.168.0.117/decoder_control.cgi?command=X X = 93 --> up AND counter-clockwise X = 92 --> up AND clockwise X = 91 --> down AND counter-clockwise X = 90 --> down AND clockwise """]] after the two directions commands is sent, a second request is sent 500ms later: [[!format c """ http://192.168.0.117/decoder_control.cgi?command=1 """]] Streife: [[!format c """ Horizontal: http://192.168.0.117/decoder_control.cgi?command=28 Stop: http://192.168.0.117/decoder_control.cgi?command=29 Vertikal: http://192.168.0.117/decoder_control.cgi?command=26 Stop: http://192.168.0.117/decoder_control.cgi?command=27 """]] Bildeinstellungen: [[!format c """ Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=1 Non-Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=2 Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=3 Non-Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=0 """]] Snapshot: [[!format c """ http://192.168.0.117/snapshot.cgi """]] Refresh-Button: [[!format c """ http://192.168.0.117/live.htm http://192.168.0.117/videostream.cgi?rate=0 """]] Mode: [[!format c """ 50Hz: http://192.168.0.117/camera_control.cgi?param=3&value=0 60Hz: http://192.168.0.117/camera_control.cgi?param=3&value=1 outdoor: http://192.168.0.117/camera_control.cgi?param=3&value=2 """]] Size: [[!format c """ 160x120: http://192.168.0.117/camera_control.cgi?param=0&value=2 320x240: http://192.168.0.117/camera_control.cgi?param=0&value=8 640x480: http://192.168.0.117/camera_control.cgi?param=0&value=32 """]] Rate: [[!format c """ Full Speed: http://192.168.0.117/videostream.cgi?rate=0 20 fps: http://192.168.0.117/videostream.cgi?rate=1 15 fps: http://192.168.0.117/videostream.cgi?rate=3 10 fps: http://192.168.0.117/videostream.cgi?rate=6 5 fps: http://192.168.0.117/videostream.cgi?rate=11 4 fps: http://192.168.0.117/videostream.cgi?rate=12 3 fps: http://192.168.0.117/videostream.cgi?rate=13 2 fps: http://192.168.0.117/videostream.cgi?rate=14 1 fps: http://192.168.0.117/videostream.cgi?rate=15 .5 fps: http://192.168.0.117/videostream.cgi?rate=17 .33 fps: http://192.168.0.117/videostream.cgi?rate=19 .25 fps: http://192.168.0.117/videostream.cgi?rate=21 .2 fps: http://192.168.0.117/videostream.cgi?rate=23 """]] Brightness: [[!format c """ http://192.168.0.117/camera_control.cgi?param=1&value=X X = 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240 """]] Contrast: [[!format c """ http://192.168.0.117/camera_control.cgi?param=2&value=X X = 0, 1, 2, 3, 4, 5, 6 """]]