Archiv für den Monat Dezember 2009

FTP Upload Automatisierung für die Axis 214

Donnerstag, 10. Dezember 2009

Die meisten Axis Webkameras lassen sich komfortabel per Script steuern und automatisieren.

Folgende Schritte sind zu machen:

  1. FTP Server per Webinterface aktivieren
  2. Telnet aktivieren
    • Die Datei /etc/inittab per FTP oder Axis Webinterface (System Options –> Advanced –> Scripting) öffnen
    • Bei der Zeile #telnetd:3:respawn:/bin/telnetd die # entfernen
    • Datei speichern
    • Kamera neu starten
  3. Nun kann man komfortabel per Telnet oder FTP Dateien editieren und Scripte starten.

Die user.task.list im /etc/ Verzeichnis dient dabei als Scheduler, welcher die selbst geschriebenen Scripts startet.
Beispiel: [08:00-08:01] once immune % /etc/ptz_ftp;
Diese Zeile startet einen Task welcher von 8:00 bis 8:01 läuft und das Script /etc/ptz_ftp startet.
once läßt das Script nur einmal starten
immune läßt das Script zu Ende laufen ohne es zu unterbrechen, auch wenn es mehr als eine Minute dauert

Damit die Änderungen an der user.task.list übernommen werden, muss der Scheduler neu gestartet werden. Die geschieht mit dem Befehl: killall -USR1 utask

Detaillierte Beschreibung über all dies gibt es auch von Axis unter: Axis Scripting Guide

Hatte bei mir 2 Probleme, welche ziemlich viel Zeit in Anspruch genommen haben:

  1. Verwendet man das Programm shttpclient zum speichern des aktuellen Bildes, so hat das bei mir nur funktioniert, sobald ich das “Enable anonymous viewer login” in der Benutzersteuerung aktiviert habe.
    Beispiel: shttpclient -u root -w $rpass -o /tmp/snap.jpg “http://$camip/axis-cgi/jpg/image.cgi?camera=1&resolution=$imagesize”
  2. Hab ein Script aus dem Internet verwendet und angepasst. Das Script hatte folgenden Header:
    # Project:
    # Camera(s): Axis 232D/213 (dev)
    # Script: Automation of PTZ/FTP across several events
    # Author: Axis Communications AB/InCam

    # Owner modifications at owner’s risk

    Komischerweise lief das Script wenn ich es per Telnet gestartet habe, fehlerfrei durch. Jedoch lieft es überhaupt nicht, wenn es über die user.task.list gestartet wurde.
    Sobald ich die Zeilen oben entfernt habe, lief es auch von der user.task.list ohne Probleme.