Alle "billigen" Videoserver (Preisbereich 149 bis 160 Euro), die ich bisher getestet habe, hatten das Problem, daß sie sehr instabil laufen, was sich darin äußert, daß sie von Zeit zu Zeit einfach "stehenbleiben" und dann nichts mehr machen, also weder Bilder per FTP hochladen noch über seine lokale IP-Adresse ansprechbar sind. Dies trifft auch auf den von mir zur Zeit verwendeten VIVOTEK VS3100P zu. Vor allem seit Aktivierung der Bewegungserkennung hatte sich das Problem noch einmal deutlich verschärft - alle paar Stunden hängt sich das Ding seitdem weg. Eine kurze Unterbrechung der Stromzufuhr erweckt das Gerät zwar jedesmal wieder zum Leben, aber eigentlich sollten doch gerade Videoserver, die der Produktbeschreibung nach Fernüberwachungszwecken dienen sollen, stabil und zuverlässig laufen. Aber anscheinend hat keiner der Entwickler das Produkt auch nur ansatzweise einem Praxistest unterzogen. Wahrscheinlich sollte es - unfertig wie es war - möglichst schnell auf den Markt geworfen werden, um Geld damit zu machen. Das wäre ja an sich nicht so schlimm, wenn es wenigstens im Nachhinein noch Firmware-Updates geben würde, die die gravierendsten Probleme beheben, aber laut Hersteller wird der VIVOTEK VS3100P nicht mehr supportet. Das Produkt hatte also noch nicht einmal Zeit, wenigstens beim Kunden zu reifen... Was also tun?
Die Brachialmethode, das Netzteil des Videoserver einfach hinter eine Zeitschaltuhr zu hängen, die den Server prophylaktisch alle zwei Stunden für jeweils eine Minute aus- und anschließend wieder einschaltet, funktionierte zwar als Sofortmaßnahme erst mal ganz gut, hatte aber den Nachteil, daß der Server auch dann neu gestartet wurde, wenn er gerade nicht hing. Andererseits kann es – wenn er dann tatsächlich mal hängt – bis zu 2 Stunden dauern, bis er neu gestartet wird.
Besser wäre eine "intelligente" Automatik, die den Server nur dann neu startet, wenn er auch wirklich hängt. Das Problem hierbei ist, einen Stillstand des Videoservers zuverlässig zu erkennen. Beim VIVOTEK VS3100P könnte hierfür die grüne "Heartbeat-LED" als Indikator herangezogen werden. Diese blinkt im Normalbetrieb mit 1 Hz vor sich hin; wenn der Server hängt, ist sie nach meinen bisherigen Beobachtungen entweder dauerhaft an oder dauerhaft aus. Man müßte also irgendwie das Blinken auswerten und - wenn es ausbleibt - ein Relais ansteuern, das die Stromversorgung des Servers kurz unterbricht:
Impulsdiagramm
Das Funktionsprinzip: Ein flankengesteuertes, nachtriggerbares Monoflop mit einer Einschaltzeit von 3 Sekunden wird regelmäßig von der "Heartbeat-LED" (nach-)getriggert. Der Ausgang des Monoflops steuert einen Transistor an, dessen Collector-Emitter-Strecke parallel zum zeitbestimmenden Kondensator (100µF-Elko) eines Flipflops liegt. Während eines H-Pegels am Ausgang des Monoflops ist der Transistor durchgeschaltet und entlädt dadurch den Elko des Flipflops. Solange die "Heartbeat-LED" blinkt, hat der Elko also nie die Chance, sich aufzuladen, um den Ausgang des Flipflops von H auf L zu schalten. Erst wenn der "Heartbeat" länger als 3 Sekunden ausbleibt, sperrt der Transistor, und der Elko wird allmählich aufgeladen. Erreicht die Ladespannung des Elkos nach ca. 19 weiteren Sekunden 2/3 der Betriebsspannung, schaltet der Ausgang des Flipflops für 1 Sekunde auf L. Dadurch wird ein Relais geschaltet, dessen Öffner die Stromversorgung des Videoservers für ebenfalls 1 Sekunde unterbricht. Danach geht die LED des Videoservers zuerst aus (falls sie nicht eh schon aus ist), beginnt dann zu flackern und schließlich wieder regelmäßig zu blinken. Die Zeit bis zum erneuten Blinken der "Heartbeat-LED" darf allerdings die Einschaltzeit des Flipflops von 11 Sekunden nicht überschreiten, da andernfalls das Flipflop erneut kippt und der Server erneut neu gestartet wird. Normalerweise reicht diese Zeit jedoch mehr als aus.
Im folgenden Schaltungsentwurf wird der CMOS-Baustein 4528 als Monoflop und der Timer-Baustein 555 in der stromsparenden CMOS-Version als rücksetzbares Flipflop verwendet:
Schaltung
Ursprünglich wollte ich auch das Monoflop mit einem 555 realisieren - dann hätte ich einen Doppel-Timer 556 verwenden können und wäre mit nur einem IC ausgekommen. Leider ist aber (wie ich erst beim Testaufbau der Schaltung festgestellt habe) der 555 nicht flankengesteuert und somit unbrauchbar, da eine dauerhaft leuchtende "Heartbeat-LED" den Ausgang des Monoflops dauerhaft auf H-Pegel gehalten hätte, wodurch das Flipflop nie angesprochen hätte.
Nachdem ein zweitägiger Probebetrieb eines provisorischen Testaufbaus der Schaltung auf Steckplatine erfolgreich verlief – d.h. "Hänger" des Videoservers wurden erkannt und dieser kurz darauf neu gestartet –, erfolgte der endgültige Aufbau der Schaltung wie üblich auf Lochrasterplatte:
Platinenentwurf
Der 150k-Widerstand wurde gesockelt, um ihn im Bedarfsfall leicht austauschen zu können, falls sich die Zeitspanne von 22 Sekunden zwischen Ausbleiben des Heartbeats und Unterbrechen der Stromversorgung als ungünstig erweisen sollte. Mit 470 kΩ erreicht man z.B. eine Wartezeit von ca. 1 Minute. (Man hätte auch ein Trimmpoti verwenden können, aber ich hatte gerade kein passendes da...)
Bestückungsseite der Platine
Lötseite der Platine
An der linken Seite des Gehäuses befindet sich eine Netzteil-Buchse und eine Gummidurchführung für die beiden zum Videoserver führenden Leitungen (Stromversorgung und "Heartbeat-LED"-Signal):
Einbau in das Gehäuse
Um das Signal der "Heartbeat-LED" abgreifen zu können, war eine kleine Modifikation am Videoserver erforderlich. An den LED-Stecker wurde ein zusätzliches Kabel (hier blau/weiß) angelötet und über eine zusätzlich angebrachte Klinkenbuchse (3,5 mm stereo) nach außen geführt:
Modifikation am Videoserver: LED-Anschlüsse über Buchse nach außen geführt
Der "Videoserver-Lifeguard" angeschlossen an den Videoserver
Seit der "Videoserver-Lifeguard" die Lebensfunktionen des Videoservers überwacht, mußte dieser kein einziges Mal manuell neu gestartet werden - die Schaltung funktioniert also wie vorgesehen.
Nach jedem Booten lädt der Videoserver eine Logdatei auf den konfigurierten FTP-Server hoch; mit Hilfe eines Scripts auf dem Webserver protokolliere ich die Bootzeitpunkte in einer Datei - hierbei konnte ich feststellen, daß der Videoserver im Laufe eines Tages einige zig Male (30- bis 70-mal) bootet - das Vivotek-Teil ist demnach noch instabiler, als ich dachte! Diese Ausfallzeiten sind allerdings normalerweise mit 10-15 Sekunden so kurz, daß der "Videoserver-Lifeguard" nicht eingreifen muß. Nur relativ selten hängt sich der Server so auf, daß er "nachhelfen" muß. Damit er dies nicht unnötigerweise tut, habe ich die Wartezeit bis zum Strom-Reset durch Vergrößern des Ladewiderstandes am Flipflop - wie oben beschrieben - auf ca. 1 Minute erhöht. Zu allem Überfluß scheint es nämlich so zu sein, daß der Videoserver ab und zu seine sämtlichen Einstellungen verliert, wenn er in einem "ungünstigen Moment" einen Stromreset bekommt. Vielleicht ist dies aber auch einfach nur eine Frage der Wahrscheinlichkeit - daher sollten die Strom-Resets wohl besser so selten wie möglich erfolgen.
Die Methode der Erkennung des Hängenbleibens anhand des Blinkens der grünen LED scheint übrigens nicht bei allen Videoservern desselben Herstellers zu funktionieren. Beim VIVOTEK VS7100 z.B. nicht, wie mir ein Besitzer dieses neueren, doppelt so teuren Gerätes mitgeteilt hat, das sich ebenfalls regelmäßig aufhängt. :-/
Homepage > Nistkasten-Kamera > Technik > Webcam > Videoserver-Lifeguard