Dummer Client - cleverer Server
Wir haben uns für Variante 2 entschieden. Der Client sollte möglichst schlank bleiben, um die Benutzeroberfläche übersichtlich zu halten - so viele Bedienungselemente passen nicht auf das kleine Display des Raspberrys.
Nun gilt es, die Entscheidung zu treffen, wie der Server damit umgeht, wenn der Client zwar Kommandos sendet, aber diese wegen einer getrennten Bluetooth-Verbindung nicht weiterleiten kann. Sie können entweder verworfen oder gepuffert werden. Diese Entscheidung muss für jedes Nutzungsszenario individuell getroffen werden.
Wir haben uns für die Pufferung entschieden. Dafür haben wir einen Kommando-Buffer implementiert, der gefüllt wird, wenn die Übertragung fehlschlägt. Wird festgestellt, dass die Verbindung nicht mehr funktioniert, baut der Server sie neu auf.
War der Aufbau erfolgreich, wird der Kommando-Buffer abgearbeitet. Der Client bekommt davon nichts mit - zumindest theoretisch. Zur Erinnerung: Auf jedes Kommando erhält der Client zwei Benachrichtigungen vom Server per Websocket - einmal nach dem Verschicken des Befehls und dann die Antwort des Peripherals über die Lautstärke- und Track-Abonnements. Musste die BluetoothLE-Verbindung erst neu aufgebaut werden, dann ist die Zeitdifferenz zwischen beiden Benachrichtigungen deutlich größer als bei bestehender Verbindung.
Einfacher Einsatz - komplexe Szenarien
Websockets bereitzustellen und zu nutzen, erfordert keinen großen Aufwand, eine BluetoothLE-basierte Kommunikation aufzubauen, auch nicht. Aber wenn beide Dinge zusammenkommen, kann es kompliziert werden. Das gilt auch für andere Szenarien, bei denen verschiedene Kommunikations- und Steuerungstechniken zusammenkommen und idealerweise zusammen laufen sollen. Doch genau das wird eine der größten Herausforderungen des Internets der Dinge - mancher mag auch sagen: sein größtes Problem.
Doch wir wollten zeigen, dass mit ein wenig Code-Einsatz und einigen Überlegungen die Herausforderungen zu bewältigen sind. Wer schon einen eigenen Cloud- und E-Mail-Server sein Eigen nennt, kann demnächst auch seinen eigenen Heimautomatisierungsserver aufsetzen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Verbindungsprobleme |
Ich würde sagen hier könnte man eleganter und auch verhältnismäßig preiswert mit Zigbee...
perfekt! die Artikel sind echt zeitlos. ich werde noch ein paar Artikel nachholen.
Meine RasPis dienen einmal als AirPrint-Server für einen 15 Jahre alten Kyocera...
die guten alten Zeiten der c't, als es noch in fast jeder Ausgabe etwas zum selber...