Jetzt wird es doch mal Zeit, mein Videotelefon-Projekt euch in ganzer Pracht zu zeigen.
Das ist übrigens mein erstes umgesetztes Raspi Projekt...
Der Plan war, eine hausinterne 24/7 Videotelefon-Standleitung zu haben, die nicht ins WWW muss, Bandbreiten schonend, „idiotensicher“ zu bedienen (d.h. keinerlei Eingaben benötigt) und seniorengerecht ist.
Die Motivation dahinter ist hier erklärt, ebenso die ersten „Gehversuche“:
Videotelefon
Bin neu hier und wollte gleich mal um Kommentare für meine 3. RPI Idee bitten.
Es geht mir erst mal darum, ob der Ansatz mit Raspberry überhaupt zielführend ist oder es geeignetere Lösungen gibt.
Zu meinem Problem:
Meine Mutter wird mit 90 Jahren allmählich dement und benötigt deshalb immer jemanden, der bei ihr ist. Dank Corona-Home-Office kann ich mich da mit meiner Schwester abwechseln (das erste wirklich gute an dem Mist...) – wir haben uns dafür ein Arbeitszimmer im…
Und fast ein Jahr später läuft das ganze Teil endlich einigermaßen stabil!!!
Vielen Dank an all die guten Geister hier im Forum, die mir immer wieder aus den Sackgassen geholfen haben!
Besonders möchte ich hyle danke, ohne dich hätte ich bei den Audioproblemen kapituliert.
Als Hardware kommt zum Einsatz
2x Raspi 3B+ mit org. Netzteil
2x RaspiCam V2
2x 7‘ Touchdisplay (https://www.waveshare.com/product/displa…-hdmi-lcd-h.htm ), per HDMI angeschlossen
2x USB Lader für Versorgung Monitor
2x Arcade Taster
2x Pimoroni Blinkt! Modul (https://www.berrybase.de/raspberry-pi/r…-r-raspberry-pi)
2x Minitaster (Reset-Knopf)
2x Jabra USB-Headset
Kabel, Stecker, Schrumpfschlauch, ...
Diverse Schräubchen und Muttern
Einiges an Filament
Viel Nerven, endlos Zeit, Geduld und Ausdauer
Zunächst ging es an die CAD (FreeCAD), um für alles ein „schickes“ Gehäuse (Retrocharme... ) zu kreieren, fürs Erdgeschoss als Wandgerät mit einem geschlachteten Headset (Bügel abgesägt) in einem gedruckten Fake-Hörer (die Idee war, dass das nah genug am alten Telefon ist, um akzeptiert zu werden... hat fast geklappt), das zweite Gerät als Standgerät mit normalem Headset. An beiden ist keine Tastatur, nur am zweiten ist nun eine Maus, da Doppelklicken per Touch eine Krankheit ist.
Der Druck war auch mühsam: das Haupteil des Gehäuses hat je ca 22 h gebraucht, und nach 12-16h ist immer ein Layerversatz aufgetreten. Gelöst wurde das erst durch einen Lüfter am Einsy Board des Prusa Druckers, scheinbar wurde es dem nach 12h Dauerdruck immer zu warm, so dass er ein paar Befehle für die Steppermotoren verschluckt hat. So waren dann immer gleich ein paar 100g Filament für die Tonne...
Die Kamera (zwischen rotem Taster und rotem LED Fenster) ist übrigens drehbar gelagert, man sie ca. +- 30 ° rauf/runter schwenken.
Eigentlich sollte ja wirklich gar nichts bedient werden müssen, was aber leider nicht ganz klappt, da sich gelegentlich doch mal was aufhängt (und sei es nur, weil der drecks Kabelrouter manchmal zickt...). Dann ist ein Neustart einiger Prozesse notwendig, im schlimmsten Fall ein Reboot der beiden Raspis. Deshalb gibts jetzt zwei Icons am Deskotp: „Reboot_alle“ und „Starte AV_alle“. Die Befehle gehen direkt bzw. per ssh an den anderen Raspi, so dass man von einer Seite aus beide Geräte neu hochfahren kann. Dafür auch die Maus...
Da es mir so vorkommt, dass die Wahrscheinlichkeit für Verbindungsabbrüche mit der Laufzeit steigt, lasse ich nun wieder um 6:00 alles rebooten und neustarten - dann muss man nur noch sehr selten manuell eingreifen.
Sollte ich irgendwann mal wieder Zeit und Lust für das Projekt haben, würde da noch ein Automatismus auf der Wunschliste stehen, der erkennt, was gerade verloren gegangen ist (Audio, Video, welche Richtung) und dann spezifisch nachlädt.
Zum prinzipiellen Aufbau:
Beide Raspi haben feste IPs bekommen und streamen das Kamerabild an den jeweils anderen Raspi: senden per raspivid, empfangen per omxplayer.
Das brauch rel. wenig Bandbreite, hat sehr wenig Delay (<<1s), muss aber leider relativ synchron auf beiden Raspis gestartet werden (was für einen Raspi-Newbi wie mich anfangs etwas gedauert hat).
Das große Bild ist jeweils der Stream vom anderen Raspi, das kleine die eigene Vorschau (eher zum verifizieren gedacht, ob man wirklich sendet, was aber nicht zu Ende gedacht ist und nicht immer ein Indiz für eine stabile Gegenrichtung ist...)
Die Tonübertragung war ein Alptraum:
Zunächst hatten Ansätze entweder ums verre... nicht funktioniert (z.B. WebRTC), oder hatten ein Delay zwischen 2 und 10 sec (aplay, Icecast) - was sich als absolut untauglich für eine Kommunikation mit einem dementen Menschen erwiesen hat...
Am Ende bin ich bei Mumble gelandet, da ist das Delay bei einigen 100ms, das geht voll in Ordnung. Auf einem Raspi läuft also der Mumble Server, beide Raspi melden sich dort als Teilnehmer an und schon klappt der Ton (ok, mit einigen Kämpfen dahin, aber schließlich hats geklappt...)
Leider nimmt meine Mutter den Hörer doch nicht her - kann aber zum Glück noch so gut hören, dass wenn man ins Headset brüllt sie einen gut versteht, wenn sie direkt vor der Kiste steht. Ich hatte auch mal mit kleinen Speakern experimentiert - dann geht aber das Gezeter los, dass Mic über USB kommt (Headset), Speaker aber am HDMI Display hängen. Kurzum: ich hab es verworfen, Lebenszeit war mir wichtiger!
Außerdem gibt es noch ein kleines Python script, das auf den großen roten Taster am anderen Gerät lauscht und dann die LEDs des Blinkt! für 10s blinken lässt. Das war als „hallo, ich will mit dir reden“ gedacht, wird aber leider gar nicht angenommen.
Schließlich gibts noch einen kleinen Minitaster auf der Seite, um den Raspi sauber runter fahren zu können. Das würde zwar theoretisch auch über das Touch gehen, ist aber doch sehr fummelig...
Die beiden Raspi haben übrigens kleine Kühlkörper verpasst bekommen, mit freier Konvektion ist alles im grünen Bereich 50...55°C bei jeweils ca. 8...14% Last.
Auch wenn es sicher noch Verbesserungspotenzial gibt - und sich bei meinen crontab-Lösungen einigen hier vermutlich die Nackenhaare aufstellen - ich bin erst mal zufrieden wie es läuft, nach einem Jahr gibts endlich mal wieder einen freien Tag am Wochenende...