Hallo zusammen,
ich plane aktuell mein KNX-basiertes Smart-Home-System im Neubau und werde sicherlich noch viele Fragen haben 😊
Derzeit beschäftigt mich aus meiner Sicht das wohl komplexeste Thema: Audio-Steuerung und Multiroom-Audio.
Was ich damit meine bzw. erreichen möchte:
1. Keine Cloud-Anbindung oder andere Formen der Obsoleszenz
Ich komme aus der Softwareentwicklung (Garbage-Collector-basierte Sprachen) und habe auch Erfahrung im Umgang mit Hardware (z.B. Flashen). Deshalb darf es gerne eine Bastellösung sein - das würde ich sogar bevorzugen, weil ich dann weiß, wie alles funktioniert und im Zweifel Komponenten austauschen kann, unabhängig davon, ob es die Hersteller überhaupt noch gibt.
2. Sprachsteuerung und Sprachausgabe
Ich möchte jeden Raum mit einem Mikrofon und musiktauglichen Lautsprechern ausstatten. Für die Sprachsteuerung brauche ich nichts "Smartes" a lá Alexa - feste Phrasen reichen völlig aus.
3. Konferenz "mitnehmen"
Ich möchte mein Laptop (oder auch Smartphone) z.B. im Büro über den Mikrofon-/Kopfhörer-Kombiport oder über Bluetooth anschließen und so das im Raum installierte Mikrofon und die Lautsprecher nutzen. Während einer Teams-Konferenz möchte ich dann z.B. ins Wohnzimmer wechseln und die Übertragung per Sprachbefehl dorthin umschalten. Ich sollte weiterhin Sprachbefehle abgeben können (perfekt wäre es, wenn diese nur von mir über das lokale Mikrofon erkannt werden und nicht etwa von Teams-Teilnehmern 😄). Auch Echo/Rückkopplungen sollen es nicht geben.
Bei Bluetooth-Verbindung würde ich gern auch den Mediaplayer steuern ("Nächstes Lied", Lautstärke etc., z.B. über AVRCP).
4. Multiroom
Analog zu Punkt 3 möchte ich Musik in mehreren Räumen gleichzeitig abspielen oder "mitnehmen" können. Synchronisierung wäre ideal, aber nicht zwingend erforderlich.
5. Kontext
Das System soll "wissen", wer und wo gerade mit ihm kommuniziert. Da jeder von uns unterschiedliche Vorlieben hat, wären kürzere Phrasen sinnvoll. Beispielsweise hätte jeder ein eigenes Aktivierungswort, und je nachdem, über welches Mikrofon der Befehl kommt, würden unterschiedliche Routinen ausgeführt.
Wenn ich im Badezimmer "Licht an" sage, soll es z.B. nur auf 30% eingeschaltet werden, während meine Kleine eher 80% bräuchte. Da ohnehin Präsenzmelder geplant sind, wäre auch eine automatische "Verfolgung" von Licht, Musik usw. interessant, jedoch nicht notwendig.
6. Stromsparsamkeit
Optional, aber sehr wünschenswert wäre ein möglichst geringer Stromverbrauch im Leerlauf.
Das ist erstmal meine Wunschliste und mir ist bewusst, dass das technisch anspruchsvoll ist. Ich gehe davon aus, dass es eine fertige Lösung dafür derzeit nicht gibt, zumindest habe ich bisher nichts Vergleichbares gefunden.
Was ich bisher überlege:
1. In jedem Raum einen Raspberry Pi installieren
Dazu jeweils 2x Audio-Eingang (Mikrofon + Laptop), 1x DAC für den Laptop sowie eine Endstufe für die Lautsprecher (60 W sollten m.M.n. reichen). Alternativ 2x DAC und ein separater Verstärker.
Konkrete Modelle habe ich noch nicht ausgesucht, am ehesten passt aktuell das HiFiBerry DAC8x mit ADC8x-Addon und einem Verstärker. Je 8 Kanäle sind eigentlich überdimensioniert, aber eine sinnvollere Kombination habe ich noch nicht gefunden. Den DAC könnte man evtl. auch für 5.1 statt 2.0 nutzen.
2. bluez/ALSA/PipeWire konfigurieren
Soweit ich gelesen habe, sollte es grundsätzlich funktionieren, sowohl das Audio des Mikrofons bzw. des Laptops abzugreifen als auch auszugeben, und auch Media-Befehle per Bluetooth an das Laptop zu senden.
Eine weitere Idee wäre, die USB-Schnittstelle zu nutzen und den Raspberry Pi als Soundkarte und Tastatur (Mediensteuerung) auszugeben. Vielleicht sogar als Kamera und Monitor, um in Zukunft auch Videoübertragung zu ermöglichen. Allerdings weiß ich nicht, wie kompatibel das mit Smartphones wäre, insbesondere wenn der USB-Anschluss bei Smartphones zukünftig wegfallen sollte.
3. Weiterleitung der Streams über WebRTC
Ich habe eine gewisse Erfahrung mit Mediasoup SFU und könnte es nutzen, um Audio in alle benötigten Richtungen zu verteilen. Eine echte Multiroom-Synchronisierung funktioniert damit zwar nicht, aber für meine Zwecke sollte es reichen. Fraglich ist natürlich, ob die Qualität durch mehrfache Umkodierung für Sprache und Musik ausreicht.
4. Smarte Funktionen
Für Aktivierungswörter, Spracherkennung und Sprachausgabe gibt es viele Open-Source-Bibliotheken. Welche davon schnell und gut genug sind, kann ich noch nicht beurteilen. In dem beschriebenen Setup könnte ich jedoch alle Daten an einen zentralen Server weiterleiten, der leistungsfähiger ist als ein Raspberry. Dort könnte dann auch die Anbindung an KNX/HomeAssistant erfolgen.
Wenn man bedenkt, dass ich 7 bis 10 solcher Einheiten bräuchte, sind Preis und Stromverbrauch (10-15W im Leerlauf?) nicht unerheblich. Gerade letzteres stört mich: 7/10 * 10/15W * 24h * 365d / 1000 * 0,3€ = 184€ bis 394€ pro Jahr. Man könnte überlegen, manche Geräte über Präsenzmelder abzuschalten, aber sie müssten dann schnell genug wieder einsatzbereit sein. Oder man verzichtet auf den 3,5-mm-Klinkenanschluss und spart sich die vielen DACs/ADCs - das wäre aber schade, weil ich den Anschluss extrem praktisch finde und oft nutze.
Grundsätzlich wäre auch denkbar, die Satelliten auf Basis von ESP32 o.ä. aufzubauen, die nur die (drahtlose) Übertragung an den zentralen Server übernehmen, während die Audioverarbeitung dort stattfindet. Beispiele gibt es viele, aber bis ich das verstanden und implementiert habe, vergehen vermutlich Jahre 🙀
Was ich sehr ungern machen würde, ist 2-4 mm²-Leitungen quer durchs Haus zu ziehen. Koaxiales S/PDIF wäre akzeptabel, aber damit kenne ich mich zu wenig aus - und es muss ja auch an irgendwas angeschlossen werden.
Was denkt ihr darüber? Gibt es Alternativen? Geht es einfacher? Gibt es vielleicht andere Foren, in denen ich nachfragen sollte? Ich bin für alles offen.
Viele Grüße und vielen Dank!
Anton
ich plane aktuell mein KNX-basiertes Smart-Home-System im Neubau und werde sicherlich noch viele Fragen haben 😊
Derzeit beschäftigt mich aus meiner Sicht das wohl komplexeste Thema: Audio-Steuerung und Multiroom-Audio.
Was ich damit meine bzw. erreichen möchte:
1. Keine Cloud-Anbindung oder andere Formen der Obsoleszenz
Ich komme aus der Softwareentwicklung (Garbage-Collector-basierte Sprachen) und habe auch Erfahrung im Umgang mit Hardware (z.B. Flashen). Deshalb darf es gerne eine Bastellösung sein - das würde ich sogar bevorzugen, weil ich dann weiß, wie alles funktioniert und im Zweifel Komponenten austauschen kann, unabhängig davon, ob es die Hersteller überhaupt noch gibt.
2. Sprachsteuerung und Sprachausgabe
Ich möchte jeden Raum mit einem Mikrofon und musiktauglichen Lautsprechern ausstatten. Für die Sprachsteuerung brauche ich nichts "Smartes" a lá Alexa - feste Phrasen reichen völlig aus.
3. Konferenz "mitnehmen"
Ich möchte mein Laptop (oder auch Smartphone) z.B. im Büro über den Mikrofon-/Kopfhörer-Kombiport oder über Bluetooth anschließen und so das im Raum installierte Mikrofon und die Lautsprecher nutzen. Während einer Teams-Konferenz möchte ich dann z.B. ins Wohnzimmer wechseln und die Übertragung per Sprachbefehl dorthin umschalten. Ich sollte weiterhin Sprachbefehle abgeben können (perfekt wäre es, wenn diese nur von mir über das lokale Mikrofon erkannt werden und nicht etwa von Teams-Teilnehmern 😄). Auch Echo/Rückkopplungen sollen es nicht geben.
Bei Bluetooth-Verbindung würde ich gern auch den Mediaplayer steuern ("Nächstes Lied", Lautstärke etc., z.B. über AVRCP).
4. Multiroom
Analog zu Punkt 3 möchte ich Musik in mehreren Räumen gleichzeitig abspielen oder "mitnehmen" können. Synchronisierung wäre ideal, aber nicht zwingend erforderlich.
5. Kontext
Das System soll "wissen", wer und wo gerade mit ihm kommuniziert. Da jeder von uns unterschiedliche Vorlieben hat, wären kürzere Phrasen sinnvoll. Beispielsweise hätte jeder ein eigenes Aktivierungswort, und je nachdem, über welches Mikrofon der Befehl kommt, würden unterschiedliche Routinen ausgeführt.
Wenn ich im Badezimmer "Licht an" sage, soll es z.B. nur auf 30% eingeschaltet werden, während meine Kleine eher 80% bräuchte. Da ohnehin Präsenzmelder geplant sind, wäre auch eine automatische "Verfolgung" von Licht, Musik usw. interessant, jedoch nicht notwendig.
6. Stromsparsamkeit
Optional, aber sehr wünschenswert wäre ein möglichst geringer Stromverbrauch im Leerlauf.
Das ist erstmal meine Wunschliste und mir ist bewusst, dass das technisch anspruchsvoll ist. Ich gehe davon aus, dass es eine fertige Lösung dafür derzeit nicht gibt, zumindest habe ich bisher nichts Vergleichbares gefunden.
Was ich bisher überlege:
1. In jedem Raum einen Raspberry Pi installieren
Dazu jeweils 2x Audio-Eingang (Mikrofon + Laptop), 1x DAC für den Laptop sowie eine Endstufe für die Lautsprecher (60 W sollten m.M.n. reichen). Alternativ 2x DAC und ein separater Verstärker.
Konkrete Modelle habe ich noch nicht ausgesucht, am ehesten passt aktuell das HiFiBerry DAC8x mit ADC8x-Addon und einem Verstärker. Je 8 Kanäle sind eigentlich überdimensioniert, aber eine sinnvollere Kombination habe ich noch nicht gefunden. Den DAC könnte man evtl. auch für 5.1 statt 2.0 nutzen.
2. bluez/ALSA/PipeWire konfigurieren
Soweit ich gelesen habe, sollte es grundsätzlich funktionieren, sowohl das Audio des Mikrofons bzw. des Laptops abzugreifen als auch auszugeben, und auch Media-Befehle per Bluetooth an das Laptop zu senden.
Eine weitere Idee wäre, die USB-Schnittstelle zu nutzen und den Raspberry Pi als Soundkarte und Tastatur (Mediensteuerung) auszugeben. Vielleicht sogar als Kamera und Monitor, um in Zukunft auch Videoübertragung zu ermöglichen. Allerdings weiß ich nicht, wie kompatibel das mit Smartphones wäre, insbesondere wenn der USB-Anschluss bei Smartphones zukünftig wegfallen sollte.
3. Weiterleitung der Streams über WebRTC
Ich habe eine gewisse Erfahrung mit Mediasoup SFU und könnte es nutzen, um Audio in alle benötigten Richtungen zu verteilen. Eine echte Multiroom-Synchronisierung funktioniert damit zwar nicht, aber für meine Zwecke sollte es reichen. Fraglich ist natürlich, ob die Qualität durch mehrfache Umkodierung für Sprache und Musik ausreicht.
4. Smarte Funktionen
Für Aktivierungswörter, Spracherkennung und Sprachausgabe gibt es viele Open-Source-Bibliotheken. Welche davon schnell und gut genug sind, kann ich noch nicht beurteilen. In dem beschriebenen Setup könnte ich jedoch alle Daten an einen zentralen Server weiterleiten, der leistungsfähiger ist als ein Raspberry. Dort könnte dann auch die Anbindung an KNX/HomeAssistant erfolgen.
Wenn man bedenkt, dass ich 7 bis 10 solcher Einheiten bräuchte, sind Preis und Stromverbrauch (10-15W im Leerlauf?) nicht unerheblich. Gerade letzteres stört mich: 7/10 * 10/15W * 24h * 365d / 1000 * 0,3€ = 184€ bis 394€ pro Jahr. Man könnte überlegen, manche Geräte über Präsenzmelder abzuschalten, aber sie müssten dann schnell genug wieder einsatzbereit sein. Oder man verzichtet auf den 3,5-mm-Klinkenanschluss und spart sich die vielen DACs/ADCs - das wäre aber schade, weil ich den Anschluss extrem praktisch finde und oft nutze.
Grundsätzlich wäre auch denkbar, die Satelliten auf Basis von ESP32 o.ä. aufzubauen, die nur die (drahtlose) Übertragung an den zentralen Server übernehmen, während die Audioverarbeitung dort stattfindet. Beispiele gibt es viele, aber bis ich das verstanden und implementiert habe, vergehen vermutlich Jahre 🙀
Was ich sehr ungern machen würde, ist 2-4 mm²-Leitungen quer durchs Haus zu ziehen. Koaxiales S/PDIF wäre akzeptabel, aber damit kenne ich mich zu wenig aus - und es muss ja auch an irgendwas angeschlossen werden.
Was denkt ihr darüber? Gibt es Alternativen? Geht es einfacher? Gibt es vielleicht andere Foren, in denen ich nachfragen sollte? Ich bin für alles offen.
Viele Grüße und vielen Dank!
Anton


Kommentar