Smarthome

Zuerst dachte ich "was für ein Quatsch, was macht es schon für einen Unterschied wie ich mein Licht an oder aus schalte?". Ganz im Gegenteil, erst das Handy suchen damit ich das Licht einschalten kann?

Die meisten System die sich als "Smart Home" verkaufen machen nichts Besonderes. Es wird oft nur der Lichtschalter in eine App verlegt - was eigentlich eine ziemlich dumme Idee ist, denn so muss ich mein Telefon suchen, entsperren, die App starten, warten bis sie sich aktualisiert hat, den Button für das gewünschte Licht suchen und dann, endlich, habe ich Licht. Die Hardware-Alternative: klick, Licht ist an.
Klar, theoretisch könnte ich das Licht von der Couch aus steuern, aber da habe ich selten mein Telefon dabei und muss sowieso aufstehen.

Eines Tages im Herbst aber kaufte ich eine farbige LED von Ikea und fand es sehr angenehm abends eine warme Beleuchtung zu haben. Im Lauf der Zeit kamen neue Birnen und Sensoren hinzu und inzwischen habe ich ein recht umfangreiches Sortiment an Geräten die mit den verschiedensten Methoden angebunden sind.

 

Jenseits von Hue und Tradfri

Jenseits von Hue und Tradfri

Die zentrale Steuerung der Geräte von Ikea und Philips erfordert einen "Hub" oder "Bridge" der zwischen der jeweiligen App, (W)LAN und den Geräten vermittelt. Leider ist bisher kein einheitlicher Standard verfügbar so dass ich derzeit mehrere dieser Geräte am Laufen habe. "Matter" ist zwar langsam am Kommen, aber wird es funktionieren oder nur ein neuer Standard der die anderen nicht ersetzen kann?

Eine weitere Sache die mich stört ist dass ich die Schalter vieler Hersteller nicht direkt abfragen kann. Besonders störend ist das bei den Szenen-Tasten von Ikea. Diese können nur eine einzige Szene anwählen, nicht einmal wieder abschalten können sie diese. Könnte ich diese Taste in Home Assistant abfragen wäre es möglich eine Vielzahl von Funktionen damit zu steuern.

Also habe ich mich schlau gemacht wie man denn die Geräte besser ansprechen kann.

dresden elektronik ConBee II

Angefangen hat es mit einigen Lampen und Sensoren die über Lidl vertrieben wurden. Die Lampen konnte ich zwar bei Hue anmelden (und selbst das nur mit einer fremden App namens "Hue Essentials"), die Sensoren aber wurden nicht oder nicht zuverlässig gefunden.

Abhilfe sollte ein USB-Stick namens "ConBee II" schaffen der eine direkte Verbindung zu allen (?) Zigbee-Geräten zulassen sollte. Außerdem könnte man mit diesem auch die einzelnen Tasten der verschiedenen Fernbedienungen abfragen.

Leider muss auch für diesen Stick eine neue Oberfläche installiert werden. Das ging zwar dank virtueller Maschinen ohne Probleme, aber es ist dann halt die dritte oder vierte Oberfläche die man bedienen muss. Erst nach der Einrichtung dort kann HomeAssistant die Geräte finden.

Tatsächlich erkannte das System einige der Geräte die ich bisher nicht verwenden konnte, aber gerade die Sensoren von Lidl erschienen auch hier nicht. Und alle Geräte die über diesen Stick angebunden sind lassen sich nicht mehr über die jeweilige App des Herstellers steuern.

Zwar hatte ich etwas mehr Möglichkeiten, aber diese erschienen mir als nicht wichtig genug. Der Aufwand alle Lampen und Schalter in Home Assistant neu einzurichten war mir zu hoch, und zumindest Hue Essentials bietet einige Funktionen für die die Lampen via Hue Bridge angesteuert werden müssen.

Ein neues Problem ergab sich als ich Home Assistant auf ein NAS umzog. Wurde dieses neu gestartet konnte es sein dass der Stick nicht mehr der korrekten VM zugeordnet war und Home Assistant keine Informationen mehr bekam. 

Home Assistant Sky Connect

Von den Machern von Home Assistant gibt es seit kurzem einen USB-Stick namens Sky Connect der die gleichen Funktionen wie der ConBee II erfüllen soll. Ich glaubte zwar nicht dass er diesen Job besser macht als der ConBee, aber ich dachte mir dass ich mit diesem Kauf zumindest die Entwicklung von Home Assistant unterstützen kann.

Tatsächlich war der Stick einfacher zu verwenden als der ConBee II - einfach dadurch dass er schon in die Oberfläche von HA integriert ist. 

Das Erkennen war auch hier leider eher Glückssache, aber es wurden mehr Geräte und Schalter erkannt als Hue oder ConBee gefunden hatten. Es wurden aber nicht alle erkannt, wobei auch Geräte des gleichen Typs mal gefunden und mal nicht erkannt wurden.

Aber auch hier werden nur Geräte erkannt die noch nicht mit einer der bestehenden Bridges gekoppelt sind. Ich müsste also auch hier alle Geräte entkoppeln und am Sky Connect neu anmelden und dann in Home Assistant neu einrichten. Bevor ich das mache prüfe ich erst noch wie sich der Stick über längere Zeit hinweg verhält.

Was tun mit den Lichtschaltern?

So, die Birnen sind gegen smarte Lampen ausgetauscht und eingerichtet. Jetzt bleibt nur die Frage

Was tun mit den alten Lichtschaltern?

Internet-Wecker mit Raspberry Pi

Ich möchte meinen Radiowecker und den eigentlichen Wecker durch ein smartes System ersetzen. Leider habe ich bisher nichts Kaufbares gefunden was meine Anforderungen erfüllt. 

Also selber bauen?

[Nachtrag: inzwischen habe ich eine andere Lösung im Einsatz, diesen Artikel lasse ich für alle da die einen Raspberry einsetzen wollen]

Internet-Wecker mit Raspberry Pi

Eigentlich wache ich morgens immer schnell auf, aber einfach nur einen piependen Wecker hinzustellen ist mir zu nervig. Also habe ich vor langer Zeit einen Radiowecker so eingestellt dass er ein paar Minuten bevor ich aufstehen muss beginnt leise Musik zu spielen. Dann, kurz vor dem Zeitpunkt das Bett zu verlassen schaltet Home Assistant das Licht an und wenig später klingelt der Wecker. Diese beiden brauche ich zur Sicherheit, denn der Radiowecker hat ein Problem dass er sich hin und wieder zwar einschaltet, aber dann keinen Ton ausgibt. So habe ich einmal recht lange verschlafen und dann doch noch den besagten Wecker besorgt.

Leider bedeuten diese drei Geräte dass ich, wann immer ich einmal nicht dem regulären Plan folge, allen drei Geräten sagen muss "bitte morgen nicht wecken". Beim Radiowecker muss ich sogar vor jedem Wochenende das Wecken abschalten da er keine Funktion dafür hat. Außerdem beginnt er langsam den Geist aufzugeben und, je nach Tag, Wetter und Ausrichtung der Antenne ist der Empfang extrem schlecht, bis hin zum weißren Rauschen. Also hätte ich gerne ein Internetradio oder etwas mit DAB - wobei ich bei letzterem schlechte Erfahrungen (d.h. in der Wohnung gar kein Empfang) gemacht hatte - aber das ist schon Jahre her.

Der örtliche Elektromarkt bietet zwar diverse Internetradios an, aber keines davon bietet die Möglichkeit zwei Weckzeiten vorzugeben - das hätte ich aber gerne damit ich das Wochenende separat einstellen kann. Ein einfaches Radio wie dieses kann das zwar, aber normalerweise ist der Ton ziemlich mies und damit habe ich immer noch das Problem dass ich Urlaube und Feiertage extra einstellen muss. Ein paar Geräte wie dieses habe ich gefunden, aber diese sind mir dann doch etwas zu teuer. Vielversprechend ist etwas wie dieses Gerät, aber auch hier bleibt das Problem mit dem Urlaub - und ich sehe nicht ob ich zwei Weckzeiten erfassen kann. Und die Bewertungen sind nicht so überragend. Dieses hier gefällt mir von den Funktionen, die Optik find ich aber miserabel.

Also etwas Eigenes bauen?

 


Logitech Media Server

Eine mögliche Lösung war der Logitech Media Server den ich installiert habe. Das System ist zwar veraltet, kann aber vieles was ich gerne möchte - sogar mehrere (beliebig viele!) Weckzeiten sind möglich. Allerdings finde ich nichts wie ich die Weckfunktion dann einfach abschalten kann.

Was mich bisher gestört hat sist dass die Ausgabegeräte "headless" konzipiert sind, das bedeutet sie laufen ohne Bildschirm. Das bedeutet dass ich zum Radio einschalten das Handy benutzen müsste - und das ist doof. Die Variante mit einem Touchscreen über "piCore Player" gibt es zwar auch, aber dieser schaltet sich nachts nicht richtig aus was mich sehr beim Einschlafen gestört hat. Außerdem belegt der Bildschirm die GPIOs so dass ich kein HiFiDAC-Modul einsetzen kann.

Dennoch habe ich das System mal wieder reaktiviert und zum Testen eine Instanz in der Küche aufgebaut. Tatsächlich spielt brav jeden Morgen das Radio. Leider ist aber die einzige Möglichkeit der Bedienung eine Webseite aufzurufen. Ich hätte aber gerne die Möglichkeit über Tasten die Wiedergabe ein- und auszuschalten, und vielleicht auch noch die Lautstärke zu kontrollieren.

Der nächste Schritt wäre dann die Oberfläche. Prinzipiell wäre es ganz einfach: es gibt ein Modul "JiveLite" das die Darstellung auf einem Touchscreen ermöglicht. Leider funktionierte die Lösung die ich 2019 ausprobiert hatte nicht mehr - vermutlich hatte ich einen anderen Touchscreen oder Raspberry verwendet. Vielleicht hatten sich aber auch Teile des Programms aktualisiert - wer weiß.

Also stieg ich gleich auf den Pi in der Version 3 um, denn für diesen hatte ich einen 5"-Touchscreen. Leider lief JiveLite nicht - es gab immer die Fehlermeldung "unknown command: ts_setup" oder so ähnlich. 


Waveshare 5" Touchscreen einrichten


SSH in den piCore-Player


mount /mnt/mmcblk0p1
cd /mnt/mmcblk0p1
vi config.txt


Vor dem Ende diesen Block einfügen (die letzte Zeile muss EINE Zeile sein!):
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0 hdmi_drive=1 dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900


Mit <ESC>, :wq! speichern und VI verlassen


Änderungen sichern:


sudo filetool.sh -b


Auf der piCore-Seite den Autostart von JiveLite abschalten


Neu starten


SSH in den piCore-Player, dort diesen Code als eine Zeile eingeben und den Schirm kalibrieren:


sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_calibrate


Wenn gewünscht testen mit:


 sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_test


oder


sudo SDL_VIDEODRIVER=fbcon SDL_FBDEV=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 SDL_MOUSEDRV=TSLIB /opt/jivelite/bin/jivelite

Nachdem ich allerdings die aktuellste Version des piCore-Players eingespielt hatte funktionierte es besser.

Es gibt unter "Einstellungen" die Möglichkeit die Uhranzeige und das Abschalten des Bildschirms zu steuern, wie dies am besten zu verwenden ist überlege ich. Einerseits wäre eine Anzeige der Uhrzeit interessant, andererseits möchte ich nicht dass nachts der Bildschirm an ist. Vielleicht kann ich irgendwo einstellen dass der Bildschirm aktiv bleibt, aber die Hintergrundbeleuchtung ausschaltet.

Das Hauptproblem ist aber dass der Touchscreen immer wieder die Kalibrierung vergisst. Das scheint daran zu liegen dass eine Variable gesetzt werden muss die auf die Datei mit den Daten zeigt. Das hier (in /mnt/mmcblk0p2/tce/jivelite.sh) soll helfen, aber wird dann auch beim Start diese Datei ausgeführt?

#!/bin/sh
# Datei: /mnt/mmcblk0p2/tce/jivelite.sh
# angepasst von https://www.thefanclub.co.za/how-to/how-setup-picoreplayer-jivelite-use-waveshare-55-amoled-touchscreen

 

# Disable mouse pointer
export JIVE_NOCURSOR=1
# Set touch calibration file
export TSLIB_CALIBFILE=/usr/local/etc/pointercal
# Jivelite interface framerate
#export JIVE_FRAMERATE=22
# Set 32bit color
#/usr/sbin/fbset -depth 32

 

# Set Touch input device
export TSLIB_TSDEVICE=/dev/input/event0 # This might be event1 in some cases
export SDL_MOUSEDRV=TSLIB

 

# Define custom JogglerSkin/Grid Skin size
# The default 1920x1080 skin is too small - scale to 853x480. This could be any
#export JL_SCREEN_WIDTH=800
#export JL_SCREEN_HEIGHT=480

 

# Set custom screen resolution
#/usr/sbin/fbset -xres 800 -yres 480

 

# Run Jivelite
while true; do
  /opt/jivelite/bin/jivelite &
  sleep 3
done

 

Steuerung des piCorePlayers via SSH

 

Eine Alternative wäre es den pCP über Kommandos zu steuern. Wenn man sich via SSH auf das System schaltet  (Benutzer tc, Passwort piCore) kann man mit dem Befehl "pcp" das Verhalten steuern. Zur Verfügung stehen diese Möglichkeiten:

 

=========================================================================================
Basic piCorePlayer CLI
-----------------------------------------------------------------------------------------
Squeezelite/LMS
---------------
- pcp play : play current track in playlist
- pcp stop : stop current track
- pcp pause : pause current track
- pcp up : volume up
- pcp down : volume down
- pcp next : next track
- pcp prev : previous track
- pcp rand : generate random track playlist
- pcp power [on|off] : software power on or off
- pcp volume [0-100] : set volume between 0 to 100
- pcp rescan : look for new and changed media files in connected LMS library
- pcp wipecache : clear connected LMS library and rescan
- pcp mode : display Squeezelite\'s current mode
-----------------------------------------------------------------------------------------
piCore
------
- pcp bu : (b)ack(u)p
- pcp sd : (s)hut(d)own
- pcp bs : (b)ackup then (s)hutdown
- pcp rb : (r)e(b)oot
- pcp br : (b)ackup then (r)eboot
-----------------------------------------------------------------------------------------
piCorePlayer
------------
- pcp d0 : debug off
- pcp d1 : debug on
-----------------------------------------------------------------------------------------

Jetzt fehlt nur noch die Möglichkeit diese Befehle über GPIOs auszulösen.

 


Volumio

 

Eine moderne Alternative zum LogiTech Medienserver ist das Programm "Volumio". Es ist allerdings nicht für die Nutzung eines zentralen Servers ausgelegt, sondern erwartet die Medien primär lokal. Natürlich können die Daten aber auch von einem Netzlaufwerk bezogen werden. 

 

 

5" Touchscreen, Waveshare-kompatibel

Ich habe einen Pi3 mit einem via HDMI angesteuerten Touchscreen. Dieser Touchscreen funktionierte beinahe automatisch - ich musste nur das entsprechende Plugin installieren.  

Allerdings war nach einiger Zeit nicht mehr alles verfügbar. Ich bin nicht ganz sicher ob das daran lag dass der Pi etwas zu heiß war. 

3.5" Touchscreen

Einen älteren Pi - V1 oder V2 - habe ich mit einem 3.5"-Tocuhscreen ausgestattet. Bei diesem dauerte das Aktivieren von Volumio schon eine kleine Ewigkeit, aber Radiostreams spielt er ordentlich ab.

Den Touchscreen einzurichten ist etwas komplizierter. Ich habe eine Anleitung gefunden:

Quelle: https://community.volumio.org/t/volumio-with-3-5-tft-touch-screen-gpio-rpi-3b/11265

 

Aber diese passt nicht mehr 100% zu den heruntergeladenen Dateien. Bisher musste ich die grün markierten Zeilen anpassen:

 

Installiere "Touch" Plugin

 

git clone https://github.com/goodtft/LCD-show
cd LCD-show/
sudo mkdir /etc/X11/xorg.conf.d
cd usr/
sudo cp tft35a-overlay.dtb /boot/overlays
sudo cp tft35a-overlay.dtb /boot/overlays/tft35.dtbo
sudo cp -rf 99-calibration.conf-35-0 /etc/X11/xorg.conf.d/99-calibration.conf

Hier testen welche Datei korrekt ist! Die 0°-Version ist für mein Layout genau verkehrt herum. Da man aber im Volumio-Plugin auch eine Drehung veranlassen kann ist das evtl. egal.


sudo mkdir -p /usr/share/X11/xorg.conf.d/
sudo cp -rf ./99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

...(weitere Befehle einfügen)...

Was hier passiert ist dass auf dem RasPi X11 sowie ein Browser gestartet wird der die Volumio-Seite anzeigt. Ich bin nicht sicher ob das auf dem altem. langsamen Pi nicht zu viel wird.

Ein Problem ist jedenfalls dass Volumio deutlich langsamer startet als der Browser so dass eine Weile eine Fehlerseite ansteht.

Weiterhin funktionierte die Touchfunktion erst einmal nicht. 

Alles in allem ist der alte RasPi aber wirklich extrem langsam, ich glaube nicht dass ich ihn so einsetzen werde.

 

 


 

Heise Wecker

https://www.pimusicbox.com/

https://www.waveshare.com/wiki/5inch_HDMI_LCD

Logitech Media Server und Clients installieren

Logitech Medien Server als Musikzentrale

Installation des Servers und der Clients, Bewertung der verschiedenen Clients.

Server-Programm

Der Server wurde von einer durch Logitech aufgekauften Firma unter dem Namen "SqueezeBox" entwickelt und die Entwicklung 2012 eingestellt. Der Quellcode wurde dankenswerterweise freigegeben so dass er für jedermann verfügbar ist.

Max2PlayWer sich den Aufwand nicht antun möchte alles selbst einzurichten kann mal auf der Seite von max2play vorbeischauen. Diese bieten die gleiche Lösung an, aber mit eigenen Komponenten aufgewertet. Nachteil: die kostenlose Nutzung ist etwas eingeschränkt und man muss eine Jahresgebühr für den "Premium-Service" bezahlen.

Und als Schwabe geht das ja gar nicht, darum habe ich mich selbst schlau gemacht. Aber im Ernst, es sind nur zehn Euro im Jahr, das ist nun wirklich nicht die Welt. Mich stört aber daran dass ich mich damit an diesen Anbieter kette und, sollte dieser aus irgendwelchen Gründen aufhören, die Preise erhöhen oder in Europa keine Dienste mehr anbieten habe ich ein Problem. Darum schaue ich lieber selbst was ich tun kann.

Außerdem hat mich die Preispolitik für die Hardware abgeschreckt. Ein Pi mit Audiokarte kostet dort mal kurz das Doppelte wie im freien Markt.

Installation

Als Server habe ich den Pi auserkoren auf dem auch meine Medien liegen damit die Daten nicht mehrfach über das Netz laufen müssen. Da die externe Platte per USB angeschlossen ist kann es sein dass es bei vielen gleichzeitigen Zugriffen Performanceprobleme gibt (der USB des Pi ist nicht gerade schnell und der Netzwerkverkehr teilt sich die Bandbreite mit dem USB), aber das warte ich erst einmal ab.

Auszuführen war:

Den Pi sicherheitshalber aktualisieren:

sudo apt-get update && sudo apt-get dist-upgrade

Dann ein paar Libraries installieren die der LMS benötigt:

sudo apt-get install -y libsox-fmt-all libflac-dev libfaad2 libmad0

Auf einem neu installierten Raspbian ohne die Standard-Applikationen fehlten noch ein paar andere Pakete, diese mit 

sudo apt-get install -y perl-openssl-abi-1.1 libnet-ssleay-perl libio-socket-ssl-perl

installieren.

Die Server-Software von Logitech herunterladen

wget -O logitechmediaserver_all.deb $(wget -q -O - "http://www.mysqueezebox.com/update/?version=7.9.2&revision=1&geturl=1&os=deb")

Und die Installation ausführen:

sudo dpkg -i logitechmediaserver_all.deb

Danach lief der Server auf Port 9000. Er fand die Musik nicht selbstständig, aber nachdem ich ihm gezeigt habe wo ich sie abgelegt hatte funktionierte es.


Troubleshooting


Nach einer Neuinstallation hatte ich das Problem dass der Server eben NICHT auf Port 9000 zu erreichen war. Ein


ps -Al


zeigte dass der Prozess läuft, aber


sudo lsof -i -P -n


ergab dass der Port nicht belegt war. Ich bin im Moment noch auf der Suche warum das nicht klappt.


Leider sind alle Guides und Hilfen schon sehr alt - ein Nachteil daran ein solch altes Produkt zu verwenden.


Mehr dazu am Schluss.

 

Die Bedienmöglichkeiten gefallen mir schon recht gut, ich kann alle angemeldeten Player steuern und auch synchronisieren. Dann spielen beide Player die gleichen Stücke auch wenn man einen wechselt. Eine Zeitlang schien es auch so als ob die Lautstärken abgeglichen werden, aber diese kann man individuell regeln.

Leider ist zwischen Playern verschiedener Typen zumindest bei Wiedergabe von Radiostreams ein Versatz zu hören. Nicht viel, aber genau so viel dass es in einem Raum stört. Auf verschiedene Zimmer verteilt geht es hoffentlich besser. Ich bin nicht sicher ob der Versatz an der Übertragungsform liegt oder am Gerät selbst - das eine war mein PC am LAN-Kabel, das andere der Zero via WLAN.

Die Bedienung des Servers ist etwas unschön da alles immer dynamisch aufgebaut wird. Das kann manchmal lästig werden. Wechsele ich zum Beispiel aus einem Album wieder in die Liste der Künstler weiß der Server nicht mehr wo ich war und baut die Seite komplett neu auf. Das bedeutet dass ich ziemlich viel scrollen muss.

Alles ist auch etwas langsam und träge - vielleicht wäre es sinnvoll das Ganze auf einem PC laufen zu lassen. Es ist meines Wissens ein PHP- oder Python-Projekt.

 

Clients

PC via Kommandozeile und per SqueezePlayer

Der erste Client den ich installierte war SqueezeLite für den PC. Das ist ein Kommandozeilenprogramm ohne jegliche Oberfläche, die gesamte Bedienung muss vom Server oder einem anderen Client aus erfolgen. Das funktioniert aber überraschend gut, ist aber auf Dauer natürlich recht unhandlich.

Besser ist das Programm "SqueezePlayer" das eine übersichtliche Oberfläche bietet und auch die Steuerung anderer Clients zuläßt. Allerdings scheint es speziell für ein winziges Display entwickelt worden zu sein, es läßt sich nämlich nicht vergrößern. Die Bedienung ist auch etwas unfreundlich, aber ich hoffe daran gewöhne ich mich noch.

Angeblich soll es auch gehen dass etablierte Abspielprogramme (entweder direkt oder per Plugin) auf den LMS zugreifen und von diesem Musik erhalten können. Das wäre eine interessante Alternative zu diesem Programm.

Kosten: 0€ da ich schon einen Pi sowie den PC am Laufen habe. Ein Pi 3 B+ kostet im Moment 35€, dazu benötigt man noch ein Netzteil für ca. 5€.

 

 



 

Raspberry Pi Zero via HDMI

Der Pi Zero ist klein und handlich und würde in das Gehäuse eines Lautsprechers passen. Leider hat er keinen Audio-Ausgang, so dass ich ein HDMI-auf-VGA-Kabel anschloß das einen 3.5mm-Klinkenausgang hat. Daran einen passiven Lautsprecher anzuschließen war nicht so toll - man hörte auch in der höchsten Einstellung nur ganz leise etwas von der Musik. Mit einer aktiven Box geht es dann.

Die Installation war einfach, ich habe lediglich mit Etcher ein aktuelles Raspbian auf eine Karte gespielt und dann Squeezelite zum Testen installiert. Darum läuft auf dem Zero im Moment ein komplettes Linux auf dem ich manuell die Linux-Variante von "SqueezeLite" aufrufe. Mittelfristig möchte ich hier vielleicht eines der 3.5"-Displays einsetzen.

Hier die Anleitung nach der ich vorgegangen bin:

http://www.gerrelt.nl/RaspberryPi/wordpress/tutorial-installing-squeezelite-player-on-raspbian/

Kosten: etwa 25€, 20€ für den Pi Zero und 6€ für den HDMI-Adapter mit Klinkenausgang. 5€ für ein Netzteil wenn noch nicht vorhanden.

 


 

Alter Raspberry Pi (Model 1?)

Als nächstes überlegte ich meinen allerersten Raspberry als Abspielgerät zu verwenden. Er ist so alt dass ich nicht einmal mehr weiß welches Modell er ist, ein 1.2?

Dieser wird inzwischen von allen Anwendungen als "zu langsam" abgelehnt, nicht mal die Verwendung als einfacher  "intelligenter Spiegel" funktioniert mehr.

Mini Touchscreen Spielt

Aber einfach einen Audiostream weiter zu reichen würde er ja wohl schaffen, oder?

Leider kam ein aktuelles Raspbian auf dem alten Pi gar nicht erst zum Laufen, es kam nicht einmal bis zum Startdialog.

Daraufhin habe ich ein minimales Linux namens "piCorePlayer" heruntergeladen und installiert. Damit startet der Pi und zeigt die Weboberfläche des Players an. Er taucht auch im Medienserver auf und läßt sich wunderbar steuern. Nach einigen Suchen im Internet war es mir sogar möglich einen der 3.5"-Touchscreens als Display zu nutzen. Details dazu weiter unten.

Damit ist dieser alte Pi noch ehrenvoll beschäftigt.

Als Ausgabe dient die Klinkenbuchse des Pi an die ich ein paar via USB versorgte Brüllwürfel von ebay angeschlossen habe. Der Sound ist nicht grandios, reicht aber für Badezimmer oder Küche locker aus.

Kosten: 30€ Pi (muss man inzwischen gebraucht kaufen, und das lohnt nicht), 6€ Lautsprecher und knapp 10€ für den Touchscreen. Beim chinesichen Direktvertrieb bekommt man ihn bestimmt für die Hälfte wenn man Geduld hat. 5€ für ein Netzteil wenn noch nicht vorhanden.

 


 

PI Zero mit pHAt DAC

Eigentlich hatte ich den Pi Zero als Abspielmechanismus auserkoren, denn aufgrund seiner kleinen Bauform würde er wunderbar in eine Lautsprecherbox passen.

Allerdings hat er keinen Lautsprecherausgang. Man könnte sich wohl etwas zusammenlöten, aber es war das Wochenende und ich hatte die Teile nicht da. Außerdem wollte ich so wenig Aufwand wie möglich betreiben. 

Variante A war die Lösung mittels HDMI-Kabel die ich weiter vorn beschrieben habe, und dann stieß ich auf der Seite von max2play auf eine weitere Lösung: eine Aufsteckplatine die dem Pi Zero ganz hervorragende Audioeigenschaften geben sollte. Zwar etwas teuer mt etwa 18 Euro, aber wenn die Ausioeigenschaften so gut sind?

Also bestellte ich ein Modul via ebay (so viel zum Thema \'alles am Wochenede ausprobieren\') und stellte fest dass es wohl genau den Schaltungen entsprach die ich im Internet gefunden habe. Es sind jedenfalls außer der Buchse nur drei bis fünf Bauteile drauf, keine Ahnung warum das Ding so teuer ist.

Es funktionierte problemlos, blockiert allerdings den GPIO und verhindert damit dass man einen Touchscreen verwendet. Da ich aber die Pins selbst anlöten musste hätte ich vermutlich auch gleich eine weitere Erweiterungsbuchse mit anlöten können und so beide Module nutzen können.

 

Und, ehrlich gesagt: so viel besser als die Ausgabe via Klinke oder HDMI-Adapter klingt der DAC nicht. 

 

Kosten: Pi Zero 30€, pHAt DAC 20€, Lautsprecher 6€. 5€ für ein Netzteil wenn noch nicht vorhanden.

 


 

 

 

Gehäuse und 7" Touchscreen - ein neuer Wecker?

RPi TouchGehäuseAuf den Produktfotos ganz gut gefallen hat mir ein Set aus Gehäuse und 7" Touchscreen das offiziell von der Raspberry Foundation entwickelt wurde. Es ist mit 87€ zwar ziemlich teuer, aber es könnte vielleicht als Ersatz für meinen Radiowecker dienen und ins Smarthome eingebunden werden.

As ich es dann aber in der Hand hielt fand ich die Qualität des Materials ziemlich enttäuschend. Ein Stück Plastik (einzeln für 13€ zu haben) und ein relativ billig aussehender Schirm - nicht das was ich für 87€ erwartet hatte.
Es war auch keinerlei Anleitung beigelegt, und die beiliegenden Kabel müssen irgendwie sinnvoll verbunden werden. Die erste Anleitung die ich im Internet gefunden habe war dann gleich einmal falsch.

Und dann ist das Ganze nicht wirklich passgenau, der Schirm hängt etwas schief im Rahmen.

Was mich aber am meisten stört ist dass Strom-, Audio- und HDMI-Kabel nach oben aus dem Gehäuse kommen. Das sieht leider ziemlich unsauber aus, und Platz für Lautsprecher gibt es auch nicht..

Wie gesagt, die Kombination kostet 87€. Dafür ist es mir viel zu billig gemacht und ich überlege das Ding wieder zurückzuschicken.

Darauf wollte ich wie am PC SqueezePlayer laufen lassen, aber für den Raspberry bzw. Linux finde ich das Programm nicht. Ich hätte aber schon ganz gerne diese oder eine ähnliche Oberfläche, denn was nutzt mir der Touchscreen sonst? Außerdem könnte ich dann am "Radio" selbst nichts ändern sondern benötige immer einen anderen Client.

Touchscreen 7"

 

Das bietet der piCorePlayer, dieser hat eine zusätzlich installierbare Oberfläche "jivelite" die ich vielleicht nutzen kann. Das funktionierte hervorragend und bis auf die Tatsache dass ich dem Gerät mitteilen musste dass das Display zu drehen ist perfekt.

Die Bildqualität ist toll und der Schirm reagiert gut auf Eingaben. 

Hardwaremäßig bin ich weniger zufrieden, denn das Gehäuse hat keinen Platz für Erweiterungen oder Lautsprecher.

Es gibt auch wenig Skins für die 800x480er-Auflösung dieses Touchscreens, was mich doch etwas wundert da es sich ja um "den offiziellen Touchscreen" handeln soll. Wie gesagt, das kommt mir alles etwas mittelmäßig vor - und das bei einem Preis von 87€.

Schlussendlich habe ich das Display dann wirklich zurückgeschickt.

Kosten: Pi 35€, Gehäuse 87€, Lautsprecher 6€, 5€ für ein Netzteil wenn noch nicht vorhanden.


 

 

MiniTouchscreen3.5" Touchscreen

Von diesem Erfolg gestärkt beschloss ich einen Versuch mit den billigen 3.5"-Screens zu machen die ich vor Wochen in China bestellt hatte. 

Als Quelle verwendete ich http://www.pughx2.com/picore3.html, ich wiederhole hier die wichtigsten Schritte mal.

Zunächst wird piCorePlayer heruntergeladen und auf eine SD-Karte gebracht. Danach hat man eine kleine Windows-Partition auf der ein paar Schritte zu tun sind.

Die Datei cmdline.txt besteht nur aus einer Zeile, an sie muss

fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo 

angehängt werden.

Dann muss das Ende von config.txt verändert werden und dort eine dtoverlay-Einstellung eingefügt werden:

#---Begin-Custom-(Do not alter Begin or End Tags)-----
dtoverlay=piscreen,speed=24000000,rotate=270
#---End-Custom-----------------------------------------

Anschließend empfiehlt der Artikel eine wpa_supplicant.conf zu erstellen, da sich aber piCorePlayer darüber beschwert hat würde ich das beim nächsten Mal nicht mehr machen, vermutlich reicht die WLAN-Einstellung des piCoreplayers aus.

Danach sucht man die "Extensions" auf die erscheinen wenn man den "Beta"-Reiter aufruft. Bei mir erschien danach zuerst nur ein leerer Schirm, aber nach einem F5 war alles zu sehen.

Dort stellt man die Quelle auf  piCorePlayer sourceforge repository um und installiert  pcp-jivelite_default-wav35skin.tcz . Bitte daran denken vor dem Verlassen des Schirms "Reset" zu drücken um diese Einstellung wieder in den Originalzustand zu versetzen.

Ich musste hier zusätzlich noch die HD-Skins deinstallieren, vermutlich wurden diese installiert als ich den 7"-Schirm in Betrieb nahm. Vorher startete jivelite im Sekundentakt neu.

Ein neues Startskript muss als /mnt/mmcblk0p2/tce/jivelite.sh mit dem folgenden Inhalt angelegt werden

 

#!/bin/sh

#export SDL_VIDEO_FBCON_ROTATION=UD

#export HOME=/home/tc
#export JIVE_FRAMERATE=22
#/usr/sbin/fbset -depth 32
#export SDL_TOUCHSCREEN=1
#TSLIB_CALIBFILE=/usr/local/etc/pointercal
#export SDL_MOUSEDEV=$TSLIB_TSDEVICE
#sudo -E -b /opt/jivelite/bin/jivelite.sh >/dev/null 2>&1

EVENTNO=$(cat /proc/bus/input/devices | awk \'/ADS7846 Touchscreen/{for(a=0;a>=0;a++){getline;{if(/mouse/==1){ print $NF;exit 0;}}}}\')

export JIVE_NOCURSOR=1
export SDL_VIDEODRIVER=fbcon
export SDL_FBDEV=/dev/fb1
export TSLIB_TSDEVICE=/dev/input/$EVENTNO
export SDL_MOUSEDRV=TSLIB

 

while true; do
    /opt/jivelite/bin/jivelite
    sleep 3
done

 

 und per

chmod +x  /mnt/mmcblk0p2/tce/jivelite.sh

ausführbar gemacht werden.

Dann noch jivelite unter "Tweaks" auf Autostart stellen und nach dem Booten steht eine hübsche Oberfläche zur Verfügung. 

 

MiniTouchscreenSpielt

 

Kalibrieren konnte ich den Schirm mit:

 

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event2 /usr/local/bin/ts_calibrate

 

Und, voila, auch mit diesem kleinen Schirm kann man Musik vom LMS empfangen.

Hier sieht man die Kabelwüste natürlich noch deutlicher, aber hier ist ja auch gar kein Gehäuse dran.

Die Bedienung per beigelegtem Stift und auch dem Finger geht auch auf dem kleinen Schirm gut und nur ein wenig hakelig. Die Klangqualität ist ok, aber nichts um sich übermäßig zu begeistern. Leider belegt der kleine Schirm den GPIO so dass ich den DAC nicht aufstecken kann. Aber dieser war mir eh' zu leise.

Da es schon spät war habe ich nicht allzu lange mit den Schlaf- und Weckerfunktionen herumexperimentiert. Die Einstellungen den Bildschirm nach Ende der Musik abzuschalten wurden jedoch erst einmal ignoriert. Sollte sich der Schirm nicht abschalten oder stark herunterdimmen lassen kann es sein dass er zu hell ist um auf dem Nachttisch zu stehen.

Nachtrag:

Obwohl es die Funktion in piCorePlayer gibt habe ich es nicht geschafft den Bildschirm abschalten zu lassen. Wahrscheinlich könnte man den GPIO direkt ansteuern und den Strom kappen, aber wie das unter dem Player-Betriebssystem funktionieren soll weiß ich leider nicht.

 


 

 

Bedenken

Was man aber bedenken muss: diese "Mini-WLAN-Lautsprecher" sind nachher komplette Rechner mit Zugang ins Internet. Das bedeutet sie müssen vor Viren und anderen Angriffen geschützt werden. 

 

Einbindung in Home Assistant

 

HA Squeeze Detail

Extrem einfach war es das Ganze in Home Assistant zu steuern. Mit dem Eintrag 

media_player:
  - platform: squeezebox
    host: 192.168.178.???

 

HA Squeeze 250

 

lernt Home Assistant den Medienserver kennen und wird von diesem über die Player unterrichtet. 

 

Diese kann man dann in die Overfläche einrichten und dort detailliert steuern:

 


 

Fehlersuche

 

Nach einer Neuinstallation hatte ich das Problem dass der Server eben NICHT auf Port 9000 zu erreichen war. Ein

ps -Al

zeigte dass der Prozess läuft, aber

sudo lsof -i -P -n

ergab dass der Port nicht belegt war. Ich bin im Moment noch auf der Suche warum das nicht klappt.

Leider sind alle Guides und Hilfen schon sehr alt - ein Nachteil daran ein solch altes Produkt zu verwenden.

Der Aufruf von 

squeezeboxserver

allein sagte dann schon mehr:

LMS debug

Die Suche nach diesen Fehlern ergab dann dass die Perl-Version inzwischen zu neu ist um korrekt zu arbeiten. Alternative: den LMS neu compilieren. Das erschien mir aber dann doch etwas übertrieben, denn auf meinem Minimal-Pi ist kein Compiler und nichts.

Ein Besuch auf 

http://update-origin.slimdevices.com/update/firmware

zeigte jedoch eine Version 7.9.2 die ich dann herunterlud und installierte - und schon ging alles.

Kurzbemerkung zu Ikea NORRFLY

Kurztest Ikea NORRFLY

Bei einem Ikea-Besuch vor einiger Zeit fand ich die LED-Beleuchtung NORRFLY deren Konzept sich ganz nett anhört: Sensoren registrieren wenn der Schrank geöffnet wird und schalten dann die Beleuchtung ein so dass man prima sieht was man anziehen kann.

Leider funktioniert das nur wenn man die Lampe über Kopfhöhe hängt. In meinem PAX habe ich über der Kleiderstange zwei Regalbretter auf denen Pullover usw. liegen. Dadurch hängt die Lampe etwa in Kopfhöhe - und wenn ich dann meine Hemden anschaue komme ich immer wieder in den Sensorbereich und die Lampe schaltet aus.

Außerdem hatte ich gehofft dass Home Assistant so mitbekommen würde dass der Kleiderschrank geöffnet wird. Leider kann man aber nur den Zustand des Treibers, also der Stromversorgung abfragen. Und diese ist immer an, egal ob das Licht gerade leuchtet oder nicht.