Inhaltsverzeichnis
Grannophone
Namensherkunft:
„Granny“ als Begriff für Senioren, Klang von „Grannophone“ ähnlich „Grammophon“, einem auch schon etwas älteren technischen Gerät.
Grundidee:
- Videotelefonie auf Basis
- freier Software → zukunftssicher, nicht an einen Anbieter gebunden
- offener Standards → Kann später auch mit anderen Endgeräten (Smartphone-App, PC) genutzt werden
- kostengünstiger, verfügbarer Hardware → deswegen Raspberry Pi
- ein für Senioren einfach zu bedienendes Endgerät:
- gar kein oder nur ein Bedienknopf,
- Telefonhörer als vertrautes Bedienkonzept → selbst mit beginnender Demenz noch bedienbar
- ein technisch versiertes Familienmitglied betreut die Zentrale/Vermittlung für die ganze Verwandtschaft
- jeweils ein Familienmitglied/eine Familie ist Kontaktperson für einen Senior/eine Seniorin
- im Ergebnis hoffentlich ein System, mit dem auch zu Pandemiezeiten Kontakt mit der älteren Generation gehalten werden kann
Konzept/Ausbaustufen:
Anrufe sind in der ersten Ausbaustufe immer nur zwischen einem der Grannophone und der Zentrale/Vermittlung (oder einem festgelegten anderen Grannophone als „designated Contact“) möglich. Die Zentrale/Vermittlung nutzt ein herkömmliches „Softphone“ mit Videosupport, oder ein „aufgebohrtes“ Grannophone.
In einer zweiten Ausbaustufe kann überlegt werden, ein Grannophone mit einem anderen, vielleicht auch „offeneren“ (mehr Zielwahltasten) videofähigen Endgerät zu verbinden, die beide an der Zentrale/Vermittlung eingebucht sind. Damit kann eine Familien-Endstelle mehrere Omas/Opas „bespaßen“, ohne dass sie zwei separate Grannophone braucht. Das wäre z.B. dann interessant, wenn Oma und Opa in unterschiedlichen Heimen untergebracht sind, oder Oma noch eine Schwester hat, die ebenfalls bespasst werden soll/muss, oder so. Und genauso, wenn Oma/Opa noch geistig fit genug ist, das Konzept von Zielwahltasten zu begreifen (kann man ja mit entsprechend großen Schaltern und Fotos versehen) - dann kann Oma auch ihre Schwester damit anrufen und nicht nur die Kinder/Enkel.
Konferenztelefonate aufbauen sollte dagegen nur von der Zentrale/Vermittlung oder von der Familien-Endstelle funktionieren, wenn überhaupt technisch möglich → Ausbaustufe drei. Vielleicht noch nicht für Ostern 2021, aber für Weihnachten 2021 dann, wenn da immer noch Pandemie ist?
Fancy und daher auch frühestens für Ausbaustufe drei: Sprachwahl im Stil von Alexa, Siri und Co (vielleicht auch Freisprechen, wenn man das Echo/den Hall in den Griff bekommt) - aber ohne Cloudanbindung. Wird aber nur für die ganz arg fitten Senioren taugen. Oder eben für die Familien-Endstelle.
Weitere optionale Ausbaustufe: Abgesetzter zweiter Raspi (3,3B+,4 oder Zero W), mit Kamera und HDMI, damit Grannophone und TV keine Kabelverbindung brauchen (Kopplung per WLAN oder BT) Dazu könnte https://github.com/showmewebcam/showmewebcam geeignet sein
Videovortrag:
Auf der Pi and More 12 1/4 hat Stefan Baur einen Vortrag zum aktuellen Entwicklungsstand des Grannophones gehalten. Das Video findet man vorerst hier (an der Verbesserung der Tonqualität wird noch gearbeitet): https://youtu.be/XFxt89oy5Tc?t=15975
Weitere Anmeldungen:
Maker Faire Hannover Digital 18. Juni 2021, 11 - 16 Uhr
Clientseite:
Problem: Hardwareauswahl, Raspi 3B, 3B+, oder 4B? Wenn 4B, wie viel RAM? Lösung: Performancetests machen. 3B und 4B mit 8GB RAM sind vorhanden. 3B+ und 4B mit weniger RAM fehlen noch in der Sammlung. Was Webcam und Jitsi angeht, kommt ein 3B arg ins Schwitzen und stottern, aber vielleicht ist das ja mit einer einzelnen SIP-Verbindung statt Browser mit Jitsi nicht so CPU-intensiv? 4B mit 8GB sollte problemlos gehen. Falls nicht: Irgendwas in Richtung APU2, nur mit HDMI-Out Onboard. Braucht dann Raspi Zero mit Cam oder klassiche USB-WebCam. NVIDIA Jetson Nano 2GB DevKit wäre auch eine Option - oder ein "UP" - die packen Intel-Hardware auf Raspi-Platinenformat. https://up-board.org/up/specifications/
Problem: Webcams sind derzeit so gut wie ausverkauft. Lösung: Das trifft offenbar nur auf klassische USB-Webcams zu. Die Raspi-Cams mit dem Folienkabel-Anschluss sind verfügbar. Die Clients müssen also mit Raspi-Cams funktionieren.
Problem: Raspi hat kein eingebautes Mikrofon/keinen Mikrofoneingang. USB-Webcam hat zwar meist Mikro, Raspi-Cam aber nicht. Lösung1: USB-Soundkarten-Adapter und Mikro dort anschliessen. - Problem: Echo zwischen TV-Lautsprecher und Mikro - Lösung: Kopfhörer einstecken, Soundkarte und Pi haben Port - Problem: Buchse kann verwechselt werden, wenn versehentlich ausgesteckt - Lösung: Nur umständlich möglich (verstopfen, verkleben, verdecken), Problem besteht weiter für versehentliches Vertauschen von Mikro und Kopfhörer, wenn beide gleichzeitig ausgesteckt wurden Lösung2: Es gibt USB-"Telefonhörer" für Skype-Telefonie. Sind aktuell auch kurzfristig lieferbar. Diese wären auf ihre Linux- tauglichkeit zu testen - vermutlich sind sie nur USB- Soundkarten mit fest angeschweißtem Kabel für den Hörer, was gut wäre. Vorteile der Lösung: - für ältere Leute vertrautes Userinterface - Mit etwas Hardwarebastelei ließe sich eine Gabel für den Hörer basteln, Hörer aus Gabel nehmen -> Automatische Anwahl (außer es war ein eingehender Anruf, dann Rufannahme). -> So ein Hörer sollte zeitnah auf Tauglichkeit getestet werden. Außerdem ist zu testen, ob ein Hall-Sensor die Anwesenheit des Hörer-Lautsprechers erkennen kann -> Dann keine bewegliche Gabel und kein Schalter nötig - Erster Hörer erfolgreich getestet (das Digitus- Billigmodell); Sprachqualität in beide Richtungen gut, funktioniert auf Anhieb, Hörkapsel-Magnet bringt Handykompass zum Ausschlagen, Hall-Sensor sollte also ebenfalls auslösen. -> Tut er aber nicht. :( 2 Hall-Sensor-Module mit A/D-Wandler getestet, offenbar nicht empfindlich genug. Einzelne Sensoren oder 3-Achsen-Kompass-Sensor verwenden? Hörergabel per "großem" Mikroschalter (250V/16A-Spec) abtasten geht nicht, zu schwergängig, zumindest ohne Hebel -> Kleinere Ausführung verwenden? -> mechanische Befestigung für den Hörer "in Ruhe": Mittels Gummimuffe aus dem Sanitärfachhandel, analog dem "Datenklo" des CCC aus den 80er Jahren
Problem: Wie den Fernseher passend einschalten und auf HDMI-Quelle umstellen (und danach wieder zurück)? Lösung: Raspi beherrscht HDMI-CEC über sein HDMI-Out, geht also. Alternativ nicht Fernseher, sondern das 7-Zoll-Display verwenden, das es für Raspis zu kaufen gibt. Nachtrag: Klappt leider nur eingeschränkt. Manche TVs sprechen kein HDMI-CEC, manche schalten nicht zurück auf das TV-Programm. Evtl. Infrarot-Steuerung notwendig. Fokus erst mal auf dediziertes Display (7 Zoll oder alter TFT) Grundsätzlich: TVID=$(echo 'scan' | \ cec-client -s -d 1 | \ grep "^device #.* TV$" | \ sed -e 's/^.*#\([0-9]*\):.*$/\1/') echo "on $TVID" | \ cec-client -s -d 1; while ! (echo "pow $TVID" | \ cec-client -s -d 1 | \ grep -v "transition" | \ grep "on$" ); do sleep 0.5; done; echo "as" | \ cec-client -s -d 1
Problem: Anrufsignalisierung (eingehender Anruf am Grannophone) Lösung: TV/Display aktiviert sich, zeigt "EINGEHENDER ANRUF" in großen Buchstaben, dazu akustische Signalisierung Gegebenenfalls zusätzlich einen Summer/eine Klingel über GPIO? Vor allem bei Displays ohne Lautsprecher notwendig. Wenn sich Audio-Out on-the-fly zwischen Klinke und HDMI umschalten lässt, könnte man das Klingeln evtl. auch über die Klinke ausgeben (wie laut ist ein Lautsprecher ohne Verstärker?) -> aplay -L | grep '^hw' wirft die Devices aus z.B. hw:CARD=b1,DEV=0 #(HDMI) hw:CARD=Headphones,DEV=0 #(Analog) hw:CARD=U0x4b40x306,DEV=0 #(USB-Hörer) -> aplay -D hw:CARD=Headphones,DEV=0 ringbell.wav #spielt auf Analog ab -> Optische Signalisierung auf Display z.B. mit Python/Tkinter (s.u.)
Problem: Auf dem Raspi muss ein SIP-Client laufen, der Videocalls unterstützt und der sich von der Kommandozeile aus steuern lässt. Denn das Userinterface ist entweder der Hardware- Hörer, der abgehoben/aufgelegt ist, oder ein einzelner prellfreier Taster an einem GPIO. Zifferntasten scheiden aus, eine GUI scheidet aus, alles zu kompliziert für die Zielgruppe. In Ausbaustufe 2 wären vielleicht mehrere Zielwahltasten denkbar. Lösung: Noch offen. Know-How fehlt. Interessante Kandidaten: - Baresip https://github.com/baresip/baresip https://old.reddit.com/r/VOIP/comments/cafkab/baresip_configuration_help/ -> Angetestet, macht guten Eindruck, lässt sich steuern, braucht nicht zwingend Server, sondern kann P2P, Videokomponente aber noch frickelig https://github.com/baresip/baresip/issues/965 -> Selbes Problem hier - pjsip mit pjsua (kann pjsua videocalls steuern?) https://trac.pjsip.org/repos/wiki/Video_Users_Guide - Jami (hat eine API, sieht aber ziemlich bloated aus) https://jami.net/ - SIPSimpleClient (ist ein SDK, keine fertige App) https://sipsimpleclient.org/
Problem: Fehlerdiagnose/-behebung im Störungsfall Lösung: Sofern noch IP-Connect besteht und nur kein Call aufgebaut werden kann, wäre SSH-Zugriff sinnvoll. Deswegen entweder VPN oder Tor, laufenden SSH-Server auf dem Pi und 2-Faktor- Authentisierung verwenden. Private Key/Secret liegt bei dem, der die Zentrale/Vermittlung betreibt.
Problem: Stromausfall muss "überlebt" werden Lösung: Aktuelles Raspberry Pi OS bringt Unterstützung für Overlay File System -> Medium bleibt readonly, Changes landen nur in Ramdisk -> Kein Checkdisk nach Stromausfall notwendig
Problem: Wenn Overlay File System in Nutzung ist, sind Systemupdates nicht persistent. Lösung: Noch offen. Wir brauchen irgendeinen Mechanismus, der zwischen zwei wechselseitig upgedateten Bootumgebungen umschalten kann. Es wird dann immer die aktuell nicht gebootete (und daher nicht vom Overlay genutzte) Partition upgedatet, eine Prüfsumme verglichen und nur bei OK umgebootet. Es wäre zu testen, ob man zwei oder gar drei Partitionen im Wechsel als /boot mounten kann, indem man die **Nummer** der Partition in der Partitionstabelle umschiebt. Die Root-Partitionen müssen dann alle als Extended Partitions angelegt werden (oder evtl. auch LVM2 - macht das Resizen auf unterschiedlich großen Medien einfacher)
Problem: Einspielen der Updates muss kontrolliert werden. Lösung: Noch offen. Irgendein Monitoring- und Deploymenttool wird benötigt. Irgendjemand hier, der "Ansible!", "Puppet!", "Chef!" oder so rufen will?
Problem: WLAN-Konfiguration Lösung: Neuestes Raspberry Pi OS erlaubt WLAN-Konfiguration auch an der Kommandozeile mittels raspi-config, braucht also kein Configfilegefrickel. Außerdem sollte aus Gründen der Betriebssicherheit sowieso ein Ethernet-Kabel verwendet werden.
Problem: Gehäusewahl Lösung: Noch offen, es wären verschiedene Gehäusetypen auf Tauglichkeit zu evaluieren, gegebenenfalls muss per CAD ein Custom-Gehäuse erstellt und auf einem 3D-Drucker gedruckt werden. Dieses könnte als Basis dienen: https://www.thingiverse.com/thing:1503651 Dazu muss dann ein "Telefonhörerhalter" her (links/rechts andockbar) sowie eine Sicherungsklammer für den USB-Hörer- Stecker. Kommt in ihm kein TFT zum Einsatz, wird eine Plastikscheibe an seiner Stelle eingesetzt, dahinter kann man dann eine Blink-LED für Anrufe anbringen. Achtung: Gehäuse muss über der Pi-Platine Platz für mindestens 1 Modul (HAT/Shim) bieten, falls LTE darüber statt über USB realisiert wird
Problem: Irgendeine GUI brauchen wir, sie muss halt seniorentauglich sein Lösung: Anleihen bei TYOS nehmen - da hat jemand ein angepasstes Raspbian für ein Pi-basiertes Mobiltelefon gebaut. https://www.instructables.com/Build-Your-Own-Smartphone/ Doorpi könnte auch einen Blick wert sein: https://github.com/motom001/DoorPi Ebenso interessant: - https://kivy.org/ - https://github.com/alandmoore/KiLauncher - https://github.com/splitbrain/pimenu
Serverseite:
- Ausreichend Bandbreite (vielleicht nicht daheim, sondern Rootserver?)
- Feste IP/DNS oder DynDNS
- Offener Port mit Portforwarding auf Firewall/NAT-Router
- VPN mit OpenVPN oder Wireguard
Problem: Wireguard-Know-How fehlt. Wireguard außerdem nur in Testing. OpenVPN mit IPv6-Only (2.5) ist auch nur in Testing. https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos hat aber ein Stable-Repo für Debian 10 - vielleicht auch für Raspbian tauglich? Lösung: Noch offen.
- Monitoring-/Deploymenttool, um Software- und eventuell auch Konfigurationsupdates auf die Grannophone zu pushen. Genaues Tool noch offen.
Problem: Tool und Tool-Know-How fehlt. Lösung: Noch offen.
- Eine Asterisk-Installation, die für Videocalls konfiguriert ist.
Problem: Asterisk-Know-How fehlt. Lösung: Noch offen. RasPBX/FreePBX evaluieren? http://www.raspberry-asterisk.org/ https://magpi.raspberrypi.org/articles/build-your-own-telephone-exchange-with-raspberry-pi http://das-asterisk-buch.de/1.6/hello-world-im-cli.html http://das-asterisk-buch.de/1.6/apfelmus-exten-var.html http://das-asterisk-buch.de/1.6/apfelmus-grundkonfiguration.html
Workarounds, auf die man eventuell zurückgreifen muss:
- Falls man doch nicht ohne Lüfter auskommt, findet sich hier eine Anleitung, wie er sich bei Bedarf schalten lässt.
- Falls VPN nicht geht, kein Portforwarding geht, etc. kann man sich mit Tor behelfen versuchen - wobei da die Frage ist, ob die Latenz nicht zu hoch ist. Allerdings könnte die Server-Seite im Non-Anonymous Mode laufen, das nimmt 2 Hops aus der Kette raus.
- Plasterouter haben eventuell UPnP offen, dafür gibt es Tools, um geskriptet Ports freizuschalten, das ließe sich zu unserem Vorteil nutzen.
- Falls kein Festnetz-Internet via DSL oder Kabel zur Verfügung steht, kann auf einen LTE-Stick zurückgegriffen werden. Dabei ist zu beachten:
- Unbedingt Postpaid, sonst hat Ömchen irgendwann keine Verbindung mehr, und nach Murphy im unpassendsten Moment (Röchelruf)
- Unbedingt ein Stick, der einen kleinen NAT-Router onboard hat, und USB-Ethernet-Dongle spielt, statt Modem zu spielen → erheblich leichter zu konfigurieren, erheblich stabiler im Betrieb (bei ppp dauert die Anwahl manchmal viel zu lange; die Router-Sticks sind dagegen quasi daueronline - und das will man ja, damit das Gerät auch für eingehende Rufe auf Empfang ist). Achtung: Unbedingt LTE, denn UMTS wird bei sämtlichen deutschen Providern im Laufe des Jahres 2021 abgeschaltet, und EDGE/GSM übertragen mit zu wenig Bandbreite. Beim Test am Installationsort unbedingt sicherstellen, dass kein Fallback in UMTS erfolgt - sonst wählt man sich evtl. über UMTS ein, ohne es zu merken, und hat dann 2021 spontan kein Netz mehr (weil der Standort keinen ausreichenden LTE-Empfang hat, aber gutes UMTS hatte).
- Alternativ zu einem Stick kann vielleicht auch etwas wie das Adafruit-FONA-Modul (https://learn.adafruit.com/adafruit-fona-mini-gsm-gprs-cellular-phone-module) genutzt werden.
- Lötfreier Anschluss eines Lautsprechers z.B. mittels „GOOBAY 76745“ von Reichelt o.ä.
- Jumper-Kabel (Female-Female und Male-Female) ersparen evtl. auch die eine oder andere Lötarbeit.
- Für Hörgeräteträger mit modernen Geräten (Bluetooth) kann eine Kopplung überlegt werden. Leider sind die im Raspi eingebauten Bluetooth-Komponenten meist zickig. Es empfiehlt sich daher, einen USB-Hub im Grannophone zu verbauen und dort ein USB-BT-Dongle einzustecken, möglichst nah an der Vorderseite. Andere Option: Die (z.T. deutlich teureren) USB-Hörer von Plathosys unterstützen den HAC-Standard. Für ältere Geräte kann alternativ ein Adapter Klinke→Induktionsschleife in Frage kommen, dann aber ggf. über USB-Soundkarte, da sonst das Klingelsignal nicht ausgegeben werden kann (wir haben nur eine Buchse). Andererseits ist eine „Lautsprecher-Klingel“ für Hörgeschädigte vielleicht eh nicht laut genug → Buzzer per GPIO schalten?
- https://euroelectronics.eu/de/products/kompakt-mini-stereo-lautsprecher-pc-computer-laptop-usb-paar-boxen-schwarz-rot ist ein Lautsprecherset, was per USB mit Strom versorgt wird. Könnte man für Klingeln und Lauthören nutzen versuchen. Macht halt einen Port dicht.
- Wenn USB-Soundkarte zum Einsatz kommt: Ausgänge umdrehen! Raspi-Ausgang für Hörer, Soundkartenausgang für Klingellautsprecher!
- Klingelton abspielen geht z.B. mit „AUDIODEV=hw:<device> sox -v 27.0 ringbell.wav -t alsa“ (27 ist die Verstärkung)
- Alternative: Fürs Telefonieren braucht man keinen Stereoton. Ein Kanal treibt den Hörer, der andere den Klingellautsprecher. Aufspalten in zwei Pseudo-Devices könnte so gehen wie hier beschrieben: https://wiki.archlinux.org/index.php/PulseAudio/Examples#Remap_left_or_right_to_mono
- Lötfreier Hörer: Mikrofon und Lautsprecher mit freien Kabelenden; Schraubstecker TRRS, Adapterkabel TRRS auf 2 x TRS oder USB-Soundkarte mit TRRS-Eingang; Hörerkabel kann dann USB-Kabel werden, Karte kommt in den Hörer. Nachteil bei TRRS-Karte/Hörereinbau: Klingelton muss der Raspi abspielen.
- Lötfreie Verbindungen, egal ob gecrimpt oder gesteckt, immer mit Heisskleber fixieren, geht sonst schief! Und keinesfalls vor dem Crimpen verdrillen!
- Display rotieren:
- xrandr -o [0|1|2|3] schaltet Orientierungen durch - wichtig für Hochkantdisplays
- 0 ist Querformat, Folienkabel unten
- 1 ist Hochformat, Folienkabel Blickrichtung aufs Display links
- 2 ist Querformat, Folienkabel oben
- 3 ist Hochformat, Folienkabel Blickrichtung aufs Display rechts
- gesamtes Display um 180° rotieren: lcd_rotate=2 in /boot/config.txt (geht nicht für 90/270)
- Mit Framebuffer gesamtes Display um 270° rotieren: display_lcd_rotate=3 in /boot/config.txt
- Mit (Fake)KMS - erkennt man an dtoverlay=vc4-fkms-v3d in /boot/config.txt - gesamtes Display um 90° (Achtung: Drehrichtung umgekehrt zu Framebuffer) rotieren: video=DSI-1:800×480@60,rotate=90 in /boot/cmdline.txt
- /usr/share/dispsetup.sh prüfen - wird beim Start von X aufgerufen und enthält einen rotate-Befehl, der ggf. angepasst werden muss (an 2 Stellen), und zwar „right“ für Hochformat, „normal“ für Querformat
- Touchscreen an 90°/270°-Rotation anpassen
- /etc/X11/xorg.conf.d/99-calibration.conf mit folgendem Inhalt anlegen:
- Section „InputClass“
- Identifier „calibration“
- MatchProduct „raspberrypi-ts“
- Option „SwapAxes“ „1“
- Option „InvertX“ „1“
- EndSection
- sudo service lightdm restart
- Angeblich auch per dtoverlay=rpi-ft5406,touchscreen-swapped-x-y=1,touchscreen-inverted-x=1 in /boot/config.txt möglich
- Bei Performance-Problemen des Pis schauen, ob /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor den richtigen Wert enthält
- hier ist noch ein Hinweis, warum ein Pi vielleicht schon bei 60 Grad langsam heruntertaktet, und wie man das umgehen kann
- https://www.raspberrypi.org/forums/viewtopic.php?t=224896 erklärt die Ausgabe von vcgencmd get_throttled
- Das Paket „unclutter“ versteckt den Mauszeiger auf den Videodisplays (falls er stört), lässt aber Touch aktiv.
- Mauszeigeranzeige komplett deaktivieren (Touch aber weiterhin möglich): „xserver-command=X -nocursor“ in /etc/lightdm/lightdm.conf ergänzen
- Touch deaktivieren: disable_touchscreen=1 in /boot/config.txt
- „motion“ startet nicht automatisch, weil Permissions auf /var/log/motion falsch. Fix: sudo chown -R motion: /var/log/motion
- zu Fernwartungszwecken sollte auch immer ein Wifi nutzbar sein. Entweder eigener Hotspot/AP oder ein voreingestelltes verschlüsseltes Wifi. Dann kann man notfalls mit der Pringles-Cantenna vorm Pflegeheim stehen, wenn man nicht rein darf.
- zufälligen IPv6-Netzwerkbereich generieren:
echo "$(echo "fd$(uuid | tr -d '-' | cut -c 1-27)" | \ sed 's/.\{4\}/&:/g')$(printf '%x\n' $((4*(RANDOM%4))))00/118"
Erklärung: fd00: bis fdff: als Präfix (privater IPv6-Range) wir stellen daher fd voran uuid spuckt ausreichend lange Hexadezimalzahl aus Bindestriche entfernen Zeichenkettenlänge (inkl. "fd") auf 27 reduzieren Alle 4 Zeichen einen Doppelpunkt setzen Eine Zufallszahl [0-3] generieren, mal 4 nehmen und zu hex wandeln, da wir bei der geplanten Netzmaske nur 0,4,8 und c "brauchen" können 00 als Suffix /118 als Netzmaske (1024 IPs pro Range) Optional kann noch "uuid -v 4" verwendet werden statt "uuid" - sonst bleiben ein paar Stellen immer (oder zumindest längere Zeit) gleich
Cave: RFC4193 sagt, dass man einen anderen Mechanismus für random ranges verwenden soll.
Linkliste
Hier sammeln wir nützliche Links.
- Wählscheibenlook
- vielleicht ein paar Inspirationen zum Gehäusedesign
- Hall-Sensor-Ansteuerung (Hörererkennung)
Platinen mit Hall-Sensor und Poti zur Justierung findet man mit Suchbegriff KY-024 en masse - sind eigentlich für Arduino, laufen aber auch mit den 3,3V des Pis (Prüfen: Was muss vorgeschaltet werden, um den Pi nicht zu grillen, wenn man sie mit 5V betreibt?)Ohne Tricksereien nicht empfindlich genug.Einzelne Sensoren, die auch direkt am Pi funktionieren sollten, finden sich über „49E“ - z.B. https://www.kollino.de/shop/hall-effekt-sensor-49e-analog/- vermutlich auch nicht empfindlich genug. Statt dessen 3-Achsen-Kompass-Sensor verwenden oder tricksen- Trick: Neodym-Magnet in Hörer kleben
- GPIO-Ansteuerung:
- https://blog.gc2.at/post/gpio-tasten/ GPIO als Tastaturersatz
- Optische Rufsignalisierung:
- Für Signalisierung via Display: https://www.reddit.com/r/learnpython/comments/5gbzmo/full_screen_clock_tkinter_example/
- Lötfreie Taster: https://howchoo.com/shop/product/prebuilt-raspberry-pi-power-button
- Displays:
- Gleichzeitige Ansteuerung von DSI und HDMI: https://www.raspberrypi.org/forums/viewtopic.php?t=246384
- Link zum 7-Zoll-Originaldisplay der Raspberry Pi Foundation: https://www.raspberrypi.org/products/raspberry-pi-touch-display/
- Achtung: Prüfen, ob dieses Display am DSI oder am DPI angeschlossen wird; am DPI wird es sehr wahrscheinlich alle GPIO-Ports belegen; evtl. sind bei 6 Bit Farbtiefe GPIOs 22-27 zugänglich.
- Bei https://www.adafruit.com/product/2453 sind sie definitiv zugänglich
- etwas günstigere Version ohne Touch: https://www.adafruit.com/product/2454
- Alternatives Display, als am Pi funktionierend bekannt, braucht aber separate 12V-Stromversorgung: https://www.sunfounder.com/7inch-capacitive-touchscreen.html
- 10-Zoll-Display, was mit 5V betrieben werden kann: https://www.reichelt.de/raspberry-pi-display-lcd-10-1-hdmi-ips-rpi-lcd-10-1-ips-p289954.html
- Auch 10 Zoll (235mm H × 143mm V × 5,2mm D), evtl. noch günstiger, da ohne Touch, aber Stromzufuhr unklar (reicht GPIO vom Pi?) https://www.reichelt.de/raspberry-pi-display-lcd-10-1-hdmi-lp101wh1-rpi-lcd-10-1hdmi-p191307.html
- Noch größeres Display, leider teuer da Touch: https://www.welectron.com/Waveshare-16645-156inch-HDMI-LCD-H-with-case-for-EU
- Hier benutzt schon jemand die PiCam als WebCam: https://piandmore.de/de/conference/pam12-25/schedule/event/11749
- Hardwarebeschleunigte Videos auf dem Pi:
- H264 sollte laut dieser Seite als einziger Codec auf Pi3B/3B+ und Pi4 in Hardware verfügbar sein: https://www.raspberrypi.org/forums/viewtopic.php?t=268356
- Falls es via SIP-Client nicht klappt, kann man seinen eigenen Livestream parallel laufen lassen, siehe hier: https://www.raspberrypi.org/forums/viewtopic.php?t=256572#p1564813
- geht am besten mit „motion“ - https://raspberrypi.stackexchange.com/a/74565 → „using motion“
- https://www.raspberry-pi-geek.de/ausgaben/rpg/2018/02/audio-video-wechselsprechanlage-mit-raspi-3-und-pi-zero/ könnte ebenfalls als Inspiration dienen
- per netstat sollte sich erkennen lassen, wann eine Telefonie-Verbindung besteht, und somit, wann versucht werden sollte, eine Videoverbindung per Motion parallelzuschalten (bzw. wann sie wieder terminiert werden sollte)
- UV4L scheint closed-source zu sein, aber hat auch interessante Features: https://www.linux-projects.org/
- MJPEG-Player in JavaScript: https://gist.github.com/codebrainz/eeeeead894e8bdff059b
- Vielleicht auch hier noch Tipps: https://trac.ffmpeg.org/wiki/StreamingGuide
- Bessere Ausleuchtung für Kamera mit LED-Ringen (brauchen leider 12V):
- Conrad hat auch 5V-Modelle: https://www.conrad.de/de/search.html?searchType=REGULAR&search=led%20ringe&tfo_ATT_NUM_SOURCE_VOLTAGE=5%20V
- Abgesetzte PiCam mit PiZero: https://www.raspberrypi.org/forums/viewtopic.php?t=230819
- Signalübertragung nicht über Wifi oder USB, sondern über HDMI, mit Capture-Karte am CSI des „großen“ Pi? https://www.aliexpress.com/item/4000102166176.html
- Dazu evtl. ebenfalls nützlich: https://github.com/pikvm/ustreamer
- Raspberry Pi als IR-Sender: https://indibit.de/raspberry-pi-mit-lirc-infrarot-befehle-senden-irsend/
- Linphone als Alternative zu baresip: https://wiki.linphone.org/xwiki/wiki/public/view/Linphone/Linphone%20and%20Raspberry%20Pi/
- Linphone bietet auch einen freien, gehosteten SIP-Service an, der für Videocalls freigegeben ist: https://www.linphone.org/freesip/home
- Hardware-Watchdog aktivieren: https://www.gieseke-buch.de/raspberrypi/eingebauten-hardware-watchdog-zur-ueberwachung-nutzen
- „Nothörer“
- Hörkapsel:
-
- → (müssen alle getestet werden)
- Sprechkapsel:
- Als separates Mikrofon kann https://learn.adafruit.com/adafruit-i2s-mems-microphone-breakout/raspberry-pi-wiring-test dienen
- Wahrscheinlich aber eher analog hier https://telefonmanufaktur.de/73-hoer-und-sprechkapsel oder
- hier Elektret-Mikrofon https://www.reichelt.de/elektret-kondensator-mikrofonkapsel-mce-100-p11357.html - Durchmesser und Höhe siehe Link (müssen alle getestet werden)
- Elektret-Mikrofone mit Strippe:
- Elektret-Mikrofon an (USB-)Soundkarte anschließen: https://www.hobby-hour.com/electronics/computer_microphone.php
- Dazu 2 Stereo-Klinkenstecker und ein 3D-gedrucktes Hörergehäuse und etwas Stereolitze (geschirmt)
- Hörermodelle:
- Opis-Tech stellt Hörer mit Klinkenstecker (Handyschaltung, also 4 Kontakte; aber Adapter dabei) - auch mit Hörgerätesupport - und GSM-Wählscheibentelefone her https://opis-tech.com/ (Obacht: Zufällige Namensgleichheit oder wirklich der Geschäftsführer? https://twitter.com/aron_zeh/status/727144273976676352)
- Diese USB-Soundkarte hat Unterstützung für 4-Kontakt-Stecker, aber Achtung, ist USB-C-Gerät, braucht also Adapter auf USB-A: https://www.conrad.de/de/p/vivanco-usb-3-2-gen-1-usb-3-0-adapter-1x-usb-c-stecker-1x-klinkenbuchse-3-5-mm-cc-uc-a-1-2137943.html
- Alternative dieser Adapter und normale USB-Soundkarte https://www.reichelt.de/de/de/headset-adapter-3-5-mm-4-pin-klinkenbuchse-2x-3-pin-klinkenste-delock-65967-p248530.html
- Suchbegriff „USB TRRS“ (Tip-Ring-Ring-Sleeve) wirft diverse USB2/USB3-Soundkarten aus, z.B. von LogiLink oder UGREEN
- Plathosys: (beide mit Unterstützung für Hörgeräte)
- Herstellerlink: https://www.horst-platz.de/plathosys/
- Digitus (Achtung: Hat teilweise schlechte Kritiken; sei nach 6 Monaten defekt) https://www.digitus.info/de/produkte/video-und-audio/audio-konverter-und-zubehoer/da-70772/
- Lautsprecher im Hörer ist bei voller Lautstärke laut genug, um auch das Klingeln zu signalisieren. Dann muss aber sichergestellt werden, dass das nicht weiterklingelt, wenn der Hörer am Ohr ist → Gehörschaden droht
BestPlug: https://www.ebay.de/itm/Telefonhoerer-mit-USB-Anschluss-fuer-PC-Notebook-VoIP-Telefonie-ueber-z-B-Skype-/123849431575ist offenbar nur ein umgelabelter Digitus DA-70772 und damit für die gebotene Qualität zu teuer
- Holzgehäuse-Materiallinks:
- Ideen für Gewichte:
- Verbundpflaster (halber Knochenstein reicht vom Gewicht): https://www.hornbach.de/shop/Doppel-T-Verbundpflaster-Halbstein-grau-10x16-5x8cm/6381912/artikel.html
- Ziegel
- Poroton https://www.bauhaus.info/poroton/porotonstein-nf/p/13898886 (dann könnte man mit 3D-gedruckten Zapfen oder Schrauben arbeiten, die sich in die Löcher einklinken)
- Kühler-Bauteillinks:
- Platten schneiden/biegen wie hier? https://www.conrad.de/de/p/fischer-elektronik-fk-234-sa-l2-kuehlkoerper-16-k-w-l-x-b-x-h-25-x-18-x-15-mm-sot-32-to-220-188115.html
- Kühler-Bearbeitung:
- Hier noch Infos zum Pi-Kühler: https://www.raspberrypi.org/documentation/hardware/raspberrypi/frequency-management.md
- USB-Winkeladapter (können je nach Einbaulage notwendig werden)
- VPN-Techniken:
- Wireguard:
- Wireguard-Testing-Install-Howto: https://www.sigmdel.ca/michel/ha/wireguard/wireguard_02_en.html
- IPv6 mit Wireguard: https://meet-unix.org/2019-03-21-wireguard-vpn-server.html
- Ein schickes Installationsskript: https://golb.hplar.ch/2020/02/wireguard.html
- Noch eine Doku dazu https://sigmdel.ca/michel/ha/wireguard/wireguard_02_en.html
- Wireguard geht nicht über Tor, da kein UDP über Tor geht
- OpenVPN:
- IPv6 mit OpenVPN: https://community.openvpn.net/openvpn/wiki/IPv6
- IPv6-only funktioniert mit OpenVPN in Raspberry Pi OS 10 noch nicht
- sshuttle und autossh in Kombination?
- Backports von Debian statt Selbstbau oder Testing: http://marksrpicluster.blogspot.com/2019/12/add-buster-backports-to-raspberry-pi.html
- PIVPN könnte einen Blick wert sein https://www.pivpn.io/
- Auch SSF https://securesocketfunneling.github.io/ssf sollte man sich anschauen
- Fertiggehäuse mit eingebauter Kamerahalterung: https://shop.heise.de/komplettset-smartipi-touch-2-gehause
DualBoot
Prinzipiell kann man den Raspi dualbooten.
Dafür gibt es mehrere Methoden. Schwierigkeit bei uns ist, dass man geskriptet statt interaktiv umschalten können muss.
Die „HardCore“-Methode verwendet zwei USB-Medien und entfernt start*.elf aus dem /boot, welches nicht verwendet werden soll.
Mit der „BruteForce“-Methode hat man nur genau 2 Umgebungen, weil man 4 primäre Partitionen braucht. Umschalten zwischen den beiden Umgebungen geht dann, indem man die Partitionstabellen neu schreibt:
/dev/sda1 532480 1056767 524288 256M c W95 FAT32 (LBA) #boot2 /dev/sda2 8192 532479 524288 256M c W95 FAT32 (LBA) #boot1 /dev/sda3 1056768 15544319 14487552 6.9G 83 Linux #rootfs1 /dev/sda4 15544320 30031871 14487552 6.9G 83 Linux #rootfs2 vs: /dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA) #boot1 /dev/sda2 532480 1056767 524288 256M c W95 FAT32 (LBA) #boot2 /dev/sda3 1056768 15544319 14487552 6.9G 83 Linux #rootfs1 /dev/sda4 15544320 30031871 14487552 6.9G 83 Linux #rootfs2 # Dabei muss man aufpassen, dass in [rootfs2] die /boot-Partition # als PARTUUID=xxxxxxxx-01 eingetragen wird, denn wenn rootfs2 # gebootet wird, hält sich /boot natürlich aufgrund der fstab für # -01, obwohl es strenggenommen -02 wäre. # In [boot2] muss dagegen unbedingt in der cmdline.txt die PARTUUID # für / auf -04 gesetzt werden (und in [boot1] auf -03).
Mit -05, -06, etc. darf rootfs auch auf logischer Partition liegen! 3 primäre /boot, 1 extended, 3 logische / (und ggf. noch separate Datenpartition) sind also möglich!
Um außer PARTUUID auch LABEL etc. verwenden zu können, braucht man eine initrd. Die wird automatisch erstellt, wenn man das Overlay File System benutzt; manuell geht es so wie hier beschrieben. Damit sollte auch LVM unterstützt werden, was die Sache noch bequemer machen würde.
Laut diesem Text sei es möglich, in der config.txt einen Parameter os_prefix zu setzen, der ein Unterverzeichnis in /boot/ darstellen kann. Dann werden cmdline.txt, kernel, overlays etc. aus diesem Unterverzeichnis gezogen. Das wäre eine sehr schicke Methode. Man braucht nur genug Platz in der 1. Partition für mehrere Umgebungen. Dieses Script geht so ähnlich vor, movet aber jedes Mal die Inhalte hin und her, statt die config.txt zu ändern. Mit bindmounts sollten sich die Unterverzeichnisse auf /boot „hochmappen“ lassen, falls das notwendig ist, um Updates zu fahren. Aber vielleicht ist der Updater ja auch schlau genug, ein Prefix zu beachten?
Nota bene: Laut diesem Text kann man die config.txt-Optionen davon abhängig machen, welcher GPIO in welchem Zustand ist. Das würde einen Hardware-Taster für einen Recovery-Mode erlauben.
Pi-Boot-Switch ist einen Blick wert.
Raspi-Konfiguration
- Neueste Firmware muss geflasht werden (per SD)
- Anleitung von hier befolgen, um BOOT_ORDER=0xf41 zu setzen
- FAT-Partitons-Label setzen mit sudo fatlabel /dev/sdxy NEUES_LABEL
- EXT-Partitons-Label setzen mit sudo tune2fs -L NEUES_LABEL /dev/sdxy
- Falls SPI-Display verwendet wird:
- fbcon=map:1 in der cmdline.txt ausprobieren - ist je nach Szenario erforderlich oder nicht
- con2fbmap kann hier noch nachträglich im laufenden System Dinge bewirken
- dtoverlay=piscreen,speed=16000000,rotate=270 oder auch mit 32000000, wenn es keine Störungen verursacht, in der config.txt setzen
- Bei der X-Konfiguration scheint es je nach Modell zu schwanken, welches fb-Device und welche Achsen-Inversion man braucht
- sudo fbi -noverbose -T 1 -a -d /dev/fb_ image-test.[gif|png] kann genutzt werden, um von der Kommandozeile aus das richtige fbdev zu ermitteln
- wichtig ist das Paket xserver-xorg-input-evdev, sonst haut das mit Kalibrierung und Achsen nicht hin
Endgeräte-Kennungen
Hier sammeln wir Ideen, welche einheitlichen Kennungen die Endgeräte verwenden sollen.
- Grannophones:
- Grannophone1 - GrannophoneN für die einzelnen Grannophones
- Oder einfach nur G1-GN?
- Kritischer ist der Name der Gegenstelle. Sollte irgendwas internationales sein.
- Einfach nur ein „F“ für „Familie“, „family“, „famille“?
- Bei Zentralbetrieb gibt es mehrere Familien-Gegenstellen, also F1-FN?
- Nummernschema nicht 1-N sondern 100-NNN? Oder 1000-NNNN? Damit man bei Zuwachs auch „dazwischen“ einsortieren kann?
- Eine Zentrale, wenn vorhanden, braucht auch noch einen international verständlichen Namen/ein solches Kürzel. Für den VPN-Server auf jeden Fall. → Irgendwas mit Clan?
Bestellzettel
Was als nächstes bestellt werden sollte
- Bauhaus:
1 x https://www.bauhaus.info/lochsaegen/craftomat-lochsaegen-set/p/23006227oder auch nicht - wird ohne „Pimpen“ wohl nicht präzise genug für unser Vorhaben sein.
- Conrad:
- 1 x https://www.conrad.de/de/p/kemo-m031n-mono-verstaerker-baustein-5-v-dc-6-v-dc-9-v-dc-12-v-dc-3-5-w-130056.html (Klingellautsprecher-Verstärker)
- 1 x https://www.conrad.de/de/p/visaton-k-50-fl-2-zoll-5-cm-breitband-lautsprecher-chassis-1-w-16-305278.html ? Anm.: Wir sollten eigentlich 69 Ohm nicht unterschreiten.
- 2 x https://www.conrad.de/de/p/visaton-k-50-2-zoll-5-cm-miniaturlautsprecher-2-w-50-1173561.html (alternativ 2 x Visaton K50 FL 50 Ohm, bei Conrad aber nur für Firmenkunden)
- kleine Mikroschalter mit Hebel/Rolle und Anschluss für Flachsteckhülsen
- 1 x https://www.conrad.de/de/p/manhattan-usb-2-0-verlaengerungskabel-1x-usb-2-0-stecker-a-1x-usb-2-0-buchse-a-1-00-m-schwarz-folienschirm-ul-zertif-1592188.html (Hörerkabel für Selbstbau-USB-Hörer)
- Knickschutztüllen gibt es bei Conrad auch, hilft aber für USB-Selbstbau-Hörer nicht, da müssen wir was improvisieren.
- Reichelt:
- 1 x Neodym-Magnet https://www.reichelt.de/magnet-4mm-staerke-2mm-magnet-4-2-p151644.html - passt unter den Moosgummi des Digitus-Hörers
- 1 x Neodym-Magnet https://www.reichelt.de/magnet-3-0mm-laenge-12mm-magnet-3-0-p27683.html - für den Selbstbau-Hörer
- Euroelectronics:
- My-PBS-Shop:
- Kollino:
- Makershop:
- Nur falls Conrad-Verstärker nicht verfügbar / als Alternative dazu https://www.makershop.de/module/audio/tda2030a/ (Alternativ evtl. https://eckstein-shop.de/PAM8403-Volume-Adjustment-2-Kanal-Digital-Amplifier-Module-Audioverstaerker - sieht aber so aus, als liefern die nur an Firmenkunden?)
- dm:
- 1 x https://www.dm.de/balea-vaseline-p4058172491320.html (als billiger WLP-Ersatz)
Was schon bestellt, aber noch nicht geliefert ist
-Aktuell nichts-
Was schon alles da ist
- Arlt
- Netzteil für Raspberry Pi 4B
- Raspberry Pi 4B 2GB
- Speicherstick USB3 32GB SanDisk Ultra Luxe
- Speicherstick USB3 128GB SanDisk Extreme Pro!
- Speicherstick USB 3.1 16gb SanDisk Ultra Fit
- Bauhaus:
- Bessey Druckguss-Schraubzwinge LM 30/8
- Cartrend Flachsteckhülsen
- Cartrend Kabel-Quetschverbinder
- Sperrholzplatten DIN A5
- Kantoflex Glattblech Kupfer
- Quadratleisten in 10×10, 20×20, 30×30
- Laubsägeblatt-Set (Holz und Metall)
- Heißklebepistole
- Heissklebepatronen
- Spaxschrauben verschiedener Länge
- Tesa Moll E-Profil- und Premiumdichtungen als Durchführungs-/Kantenschutz und Rutschstopp
- Conrad:
- 1 x MH HI-SPEED USB 3D SOUND ADAPTER (USB-Soundkarte)
- KY-024 Hall-Sensor-Module
- Kabeltülle als Durchführungs-/Kantenschutz
- je 1 Packung Jumperkabel M/F und F/F
- Klinkenstecker TRRS mit Schraubanschluss
- Klinkenstecker TRS mit Schraubanschluss
- Kabel mit TRS-Klinkenstecker
- Miniatur-Lautsprecher K50 FL 16 Ohm
- Miniatur-Lautsprecher K16 50 Ohm
- eBay:
- Digitus USB-Telefonhörer
- Eigener Bestand
- Elektret-Mikro mit 3,5mm-Stereoklinkenstecker
- Kupfer-Doppelader
- Lötkolben/Lötzinn
- Quetschverbinder-Crimp- und Abisolierzange
- Schraubenzieherset
- Schraubzwinge
- Raspi4B-Gehäuse mit 3.5-Zoll-SPI-Touchscreen
- Elektromax24:
- 2 x Siedle Ersatzlautsprecher fuer BTLE050-04 und TLE061-01
- 1 x Siedle CTB 711-…/SET 711-… Elektret-Kondensator-Mikrofonkapsel (Kabelvariante)
- Reichelt:
- 2 x Dünnschichtwiderstand, axial, 0,6 W, 10 kOhm, 1%
- 1 x Drucktaster 0,1A-24VAC 1x (Ein) Ø11/9,1mm rot - getestet, nicht lötfrei verwendbar, dafür sehr leichtgängig und klein
- 1 x Drucktaster 0,7A-250VAC 1x (Ein) Ø19/15,2mm schwarz - getestet, lötfrei verwendbar mit kleinen oder grossen Kabelschuhen, dafür nicht so leichtgängig und grosser Durchmesser → sollte auch in anderer Farbe gekauft werden, Schwarz zu unauffällig
- 1 x Raspberry Pi Shield - Display LCD-Touch, 7 Zoll, 800×480 Pixel - getestet, funktioniert; für Rotation muss man kalibrieren
- 1 x Elektret-Kondensator-Mikrofonkapsel (Lötvariante)
- 2 x Montageclip für 10 mm LEDs
- 2 x Dünnschichtwiderstand, axial, 0,6 W, 150 Ohm, 1%
- 2 x LED, 10 mm, bedrahtet, rot, 100 mcd, 60°
- 1 x dynamische Hörkapsel, Lötanschluss - getestet, Lötfahnen sind auch für Kabelschuhe geeignet → Lötfrei verwendbar, Lautstärke für Hörer ausreichend
- 1 x Headset Adapter 3,5 mm 4 Pin Klinkenbuchse > 2x 3 Pin Klinkenstecker - getestet, Länge ausreichend für Split Mic → USB-Sound-In/Spk → PiAudio (USB-Sound-Out → Klingel)
Kontakt
Du möchtest mit der LUGUlm Kontakt aufnehmen, z.B. weil Du hier im Wiki etwas ergänzen möchtest, aber keinen Account hast? Dann melde Dich bei uns unter tux@lugulm.de