Test: Foscam C1 Lite IP Kamera

C1 Lite

Auspacken

Als erstes fällt bei der Kamera die Verpackung auf. Sie erinnert von der Größe und der Aufmachung her eher an ein Smartphone als an eine IP-Kamera und wirkt hochwertig.

In dem Karton enthalten sind neben der Kamera selbst ein USB Netzteil und USB Kabel zur Stromversorgung sowie Schrauben und Dübel zur Wandmontage. Das Kabel ist sehr lang was bei mir sehr positiv angekommen ist.
An Papier ist eine deutsche und eine englische Schnellanleitung, ein Aufkleber der auf die potentielle Videoüberwachung hinweist, Sicherheitsbestimmungen und eine Garantiekarte enthalten.

Technisches

Die C1 Lite gehört zu den Einsteigermodellen von Foscam. Sie hat eine Auflösung von 1280×720 (720p). In der Kamera ist  ein Mikrofon und ein Lautsprecher verbaut, der die 2-Wege Kommunikation ermöglicht. Ein MicroSD Kartenslot ermöglicht das Aufzeichnen und direkte Abspeichern von Videos auf der Kamera. In das Netzwerk eingebunden wird sie per WLAN.

In Betrieb nehmen

Um die Kamera in das WLAN einzubinden kommt das WPS Verfahren zum Einsatz. Dieses hat bei einer getesteten Fritz!Box 7490 und einem OpenWRT Router jeweils problemlos funktioniert. Über den Lautsprecher der Kamera werden Anweisungen und Statusinformationen dazu ausgegeben.

Die C1 Lite selbst unterstützt ebenfalls die Einrichtung per App. Das habe ich nicht getestet, da dafür ein Account bei Foscam angelegt werden muss. Prinzipiell scannt man aber einfach den QR-Code auf der Rückseite der Kamera. Man wird dann aufgefordert eine App zu installieren die einen dann anschließend durch alle weitere Schritte leitet.

Das Webinterface der Kamera ist über die vergebene IP und dann Port 88 zu erreichen. Dieses empfinde ich als eine schöne Sicherheitseinstellung von Werksseite aus. Daneben lauscht sie per HTTPS auf Port 443.
Für das Webinterface selbst benötigt man ein Browserplugin. Zu dessen Installation wird man bei dem ersten Aufruf der Seite aufgefordert. Es steht für alle gängigen Browser exklusiv Chrome ein Plugin bereit. Bei den Betriebssystemen wird Windows und Mac OS unterstützt. Linux Anwender können das Webinterface nicht nutzen. Diese Einschränkung ist keine von der Kamera selbst, sondern von der Firmware. Ich habe dieses bei meiner FI9831P ebenfalls.

Die Firmware ist die gleiche wie bei anderen HD Modellen von Foscam auch. Dadurch stehen viele Funktionen wie zum Beispiel Bewegungserkennung, Emailbenachrichtigung, FTP-Server für aufgezeichnete Videos und so weiter zur Verfügung.

Da ich für beide Kinder im Haushalt bereits Babycams habe (beide von Foscam), liegt das Einsatzszenario für die C1 in dem Ausleuchten des Kinderzimmers. Dafür ist das Modell super. Nachtausleuchtung wird in dem Fall nicht benötigt und der Betrachtungswinkel ist Spitze. Hier macht es sich bemerkbar, dass anscheinend ein Weitwinkel-Objektiv verbaut ist und ein Bild in 16:9 liefert. Die anderen beiden Kameras haben beide 4:3. Entsprechend wird auch kein Motor zur Steuerung der Kamera selbst benötigt. Das ganze Zimmer ist gut zu sehen:

screen

Die Kamera integriert sich nahtlos in das bei uns im Haus bereits verfügbare System mit den Babycams. Wir nutzen dafür die App tinyCam Monitor. Die C1 Lite wird davon problemlos erkannt und unterstützt.

Fazit

Die Kamera C1 Lite von Foscam ist ein vom Preis her günstiges Einsteigermodell. Die Bildqualität ist sehr gut. Die Firmware bietet viele Funktionen die auch von den teureren Kameras bekannt sind. Abstriche müssen Linux-Nutzer machen, die das Webinterface nicht nutzen können. Dieses Mako trifft aber auf alle aktuellen HD-Kameras von Foscam zu. Alles in allem eine gute Kamera für einen günstigen Preis und für Einsteiger definitiv zu Empfehlen.

 

Die C1 Lite wurde mir im Rahmen eines #product-experience# Programms von Foscam zur Verfügung gestellt.

Verbindung zu SMTP Server ohne telnet oder nc testen

Um die Verbindung zu einem SMTP Server zu testen um zum Beispiel einen Fehler durch eine Firewall auszuschließen nutze ich normalerweise telnet:

user@host ~ $ telnet mail.example.net 25
Trying 1.2.3.4...
Connected to mail.example.net.
Escape character is '^]'.
220 mail.example.net ESMTP Postfix

Wenn telnet nicht installiert ist geht das auch noch mit netcat:

user@host ~ $ nc mail.example.net 25
220 mail.example.net ESMTP Postfix

Heute hatte ich ein System auf dem beides nicht existierte. Da habe ich eine Methode mit python gefunden die sehr gut funktioniert hat:

user@host ~ $ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> conn=socket.create_connection(('mail.example.net',25))
>>> input=conn.makefile()
>>> print input.readline()
220 mail.example.net ESMTP Postfix

>>> conn.sendall('QUIT')
>>> conn.close()
>>> 

Validatoren für Sysadmins

Ich spiele keine klassischen Computerspiele, aber ich spiele zum Beispiel bei verschiedensten Validatoren möglichst hohe Punkte zu erreichen. Hier mal eine unsortierte Liste:

Nutzt Ihr noch weitere?

Update: 2015-08-05:

Update: 2015-08-22:

Update: 2015-08-28:

Update: 2015-08-30:

Update: 2015-08-14:

Puppet: Testen in einer Testumgebung – Hallo Vagrant

Wenn ich mit Puppet arbeite passiert dieses leider viel zu häufig direkt auf dem Livesystem. Das ist natürlich Mist und darf so nicht sein. Eine Lösung ist Vagrant. Damit können sehr einfach „Wegwerf-VMs“ erzeugt werden um die Puppetkonfiguration zu testen. Wie das geht möchte ich in diesem Blogeintrag kurz festhalten.

Als Vorbereitung ist auf meinem PC das Paket virtualbox aus den Standardrepositories und Vagrant von deren Webseite installiert.

Um nun eine VirtualBox mit Ubuntu 12.04 LTS 64bit über Vagrant zu starten sind nur wenige Schritte notwendig:

mkdir ~/vagrant
cd ~/vagrant
touch HELLO_I_WAS_HERE
vagrant init puppetlabs/debian-7.4-64-puppet
vagrant up

Die Ausgabe sollte ungefähr so aussehen:

user@host:~/vagrant$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/precise64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/precise64'
    default: URL: https://vagrantcloud.com/hashicorp/precise64
==> default: Adding box 'hashicorp/precise64' (v1.1.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/hashicorp/precise64/version/2/provider/virtualbox.box
==> default: Successfully added box 'hashicorp/precise64' (v1.1.0) for 'virtualbox'!
==> default: Importing base box 'hashicorp/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise64' is up to date...
==> default: Setting the name of the VM: vagrant_default_1408706120277_30417
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 4.2.0
    default: VirtualBox Version: 4.1
==> default: Mounting shared folders...
    default: /vagrant => /home/user/vagrant
user@host:~/vagrant$

Mit dem Befehl vagrant ssh kann nun eine SSH-Verbindung zu der VM hergestellt werden. Der Ordner ~/vagrant in dem wir uns befinden ist in der VM unter /vagrant/ verfügbar:

user@host:~/vagrant$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
 
 * Documentation:  https://help.ubuntu.com/
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
 
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2
vagrant@precise64:~$ ls -l /vagrant
total 20
-rw-r--r-- 1 vagrant vagrant    0 Aug 22 11:30 HELLO_I_WAS_HERE
-rw-r--r-- 1 vagrant vagrant 4826 Aug 22 11:11 Vagrantfile
vagrant@precise64:~$

Die VM kann mit vagrant destroy wieder gelöscht werden.

In der Datei Vagrantfile wird die VM konfiguriert. Das praktische ist, dass dort Puppet eingebunden werden kann, so dass beim Hochfahren der VM dieses gleich ausgeführt wird. Um nun meine Konfiguration zu testen kopiere ich das puppet Verzeichnis in den Ordner vagrant. Kopieren ist wichtig, ich habe zuerst einen symbolischen Link erzeugt, aber die VM kann dem ja nicht folgen 8-)

scp -r puppetmaster:/etc/puppet ~/vagrant/

Anschließend sind in der Vagrantfile zwei Optionen zu konfigurieren. Erstens den Hostnamen der VM, damit wenn Puppet ausgeführt wird dieser korrekt ist und die richtigen Einstellungen übernommen werden. Zweitens den Pfad zu dem von puppet benötigten Manifest und den Modulen:

  config.vm.hostname = "mynode.example.org"
 
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.manifest_file  = "site.pp"
    puppet.module_path = "puppet/modules"
    #puppet.options = "--verbose --debug"
  end

Beim Starten der VM wird Puppet dann automatisch ausgeführt. Läuft die VM bereits kann das mit dem Befehl vagrant provision erneut angestoßen werden.

Auf diese Art- und Weise kann die Puppetkonfiguration in einer VM getestet werden bis alles so ist wie ich es haben möchte.

Zum Schluss:

  • Die Virtualbox wird standardmäßig im headless Mode gestartet. Wer über die Applikation eine GUI möchte muss dafür den folgenden Codeschnippsel in seine Vagrantfile hinzufügen:

      config.vm.provider "virtualbox" do |v|
             v.gui = true
      end
  • Damit beim ersten hochfahren der VM als erstes die Paketquellen aktualisiert werden die Datei bootstrap.sh mit dem folgenden Inhalt in dem Verzeichnis ~/vagrant/ ablegen:

    #!/bin/bash
    apt-get update

    und danach in der Vagrantfile VOR den puppet Block die folgende Zeile einfügen:

      config.vm.provision :shell, path: "bootstrap.sh"
  • Webseite des Projektes: www.vagrantup.com
  • Viele fertige Vagrant Boxes gibt es in der Vagrant Cloud: vagrantcloud.com
  • Für die vielen Einstellmöglichkeiten in der Vagrantfile gibt es eine Dokumentation unter: docs.vagrantup.com