Raspberrry PI Raspberry PI

Musik via Squeezebox / Squeeze Player auf einem Raspberry

Die ersten Versuche mit Musik war mit Mopidy & MPD. Das war so 2014. Funktionierte auch mit Spotify. Hier gab es technisch noch ein wenig Potenzial. Auch war ein "Synchronisieren" der Musik Player nicht möglich. Daher bin ich ca 2018 auf Logitech Squeezebox umgestiegen. Das ist ursprünglich eine Logitech Lösung, wo es jetzt auch OpenSource Projekte zu gibt. Anfangs hatte ich den Server auf meine SynologyNAS installiert. Da die Version jedoch nicht aktuell war, habe ich umgesattelt. Mittlerweile läuft der Squeezebox Server auf einer PI 4, wo auch das Openhab läuft.

Auf den Raspberrys wo die Musik abgespielt werden soll, läuft jetzt ein Squeezebox Player. Dieser Clients verbinden sich alle mit dem Server und können dann "auch" zentral gesteuert werden.

D.h. ich hab z.B. auf meinem iPhone eine App "iPeng" installiert. Das ist eine coole App um die Squeezebox Clients zu Steuern. 

Der große Vorteil von der Squeezebox Lösung ist das Synchronisieren der Clients. Wenn ich alle Clients eingeschaltet habe, kann ich diese Zusammenschalten sodass wie aus einem Munde der gleiche Stream abgespielt wird.

Vollständige Kauflösungen wie Sonos haben ihre Vorteile wie "Einschalten und läuft", jedoch ist der Preis nicht zu verachten. Auch kann ich meine bestehenden "Lautsprecher" oder die Hifi Anlage im Wohnzimmer weiterhin benutzten. 

Raspberry mit 7Zoll Display im Kioskmodus Starten

Der Raspberry Pi kann viele Funktionen erfüllen. Er wird mit Mopidy oder Squeezelight zum Musikplayer. Internet Radio, Spotify oder auch lokale MP3 Files können so bequem abgespielt werden. Die Steuerung kann z.B. per Handy Browser oder auch per App (MPD Client) erfolgen.

Im Smarthome kann er mit OpenHAB zur Steuerung im Haus benutzt werden.

 

Hat man ein Touch Display für den PI, kann die Steuerung direkt über das Touch-Display erfolgen.Wie man das einrichtet, will ich hier in diesem Beitrag beschreiben. Ziel ist es, das nach einschalten des Gerätes, eine Oberfläche automatische startet, welche eine Eingabe bzw. Steuerung über das Display mit den Fingern ermöglicht.

Zunächst lade ich das Betriebssystem NOOBS_v2.8.2 light. Da wird dann nur die "lite" Version über das Internet installiert. Also sowenig wie nötig an Software installiert.

Da nach dem ersten Starten wird SSH aktiviert, die Einstellung für die Sprache und sowas wie "set -o vi" ins /etc/profile geschrieben. Also etwas was mir ein wenig die Arbeit erleichtert.

raspi-config

Dann gehts los und ich arbeite die folgenden Befehlen und Einstellungen ab.
vi /etc/X11/xorg.conf.d/99-calibration.conf

root@mobile:~ # cat /usr/share/X11/xorg.conf.d/99-calibration.conf 

# current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535

Section "InputClass"

Identifier "calibration"

MatchProduct "FT5406 memory based driver"

Option "MinX" "-218"

Option "MaxX" "65753"

Option "MinY" "1991"

Option "MaxY" "66889"

Option "SwapXY" "0" # unless it was already set to 1

Option "InvertX" "0"  # unless it was already set

Option "InvertY" "0"  # unless it was already set

EndSection

Jetzt wird die grafische Oberfläche installiert

apt-get install -y xinit xorg lsb-release xserver-xorg-legacy chromium-browser xserver-xorg xserver-xorg-video-fbdev lxde-core lxterminal lxappearance lightdm xserver-xorg-video-fbdev

sudo sed -i "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config
sudo wget https://goo.gl/NEqFRp -O /opt/start-gui
chmod +x /opt/start-gui
sudo wget https://goo.gl/bTB4Vv -O /lib/systemd/system/start-gui.service

Der Start der Oberfläche nach dem Booten wird durch folgenden Aufruf erledigt:

root@mobile:~ # cat /opt/start-gui

#!/bin/bash

# Aufruf des Musikplayer Mopidy

#/usr/bin/xinit /usr/bin/chromium-browser --start-maximized --incognito --single-process --process-per-site --disable-sync-preferences --no-startup-window --kiosk --touch-events --disable-touch-drag-drop --enable-touchview --enable-pinch --window-size=800,480 --window-position=0,0 --disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost:6680/musicbox_webclient/index.html#home --nocursor

# Aufruf openhab2/habpanel

/usr/bin/xinit /usr/bin/chromium-browser --start-maximized --touch-events --disable-touch-drag-drop --enable-touchview --enable-pinch --window-size=800,480 --window-position=0,0 --app=http://openhab.fritz.box:8080/habpanel/index.html#/view/Home --nocurser --disable-infobars

Die Konfigurationsdatei für das Stück Software für den Autostart sieht wo aus:

root@mobile:~ # cat /lib/systemd/system/start-gui.service

[Unit]

Description=Start Chromium GUI

After=nginx.service php5-fpm.service mpd.service

[Service]

Type=simple

ExecStart=/opt/start-gui

User=pi

[Install]

WantedBy=multi-user.target

Den Service muss man dann noch einrichten:
systemctl enable start-gui

Jetzt wird noch

# Install X11 LXDE

# https://www.therryvanneerven.nl/how-to-install-raspbian-jessie-on-an-old-raspberry-pi.html

# Keyboard

# http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/

apt-get install -y xinput* 

# Touchscreen

# https://rataks.com/blog/raspberry-pi-touchscreen-in-moode-with-chromium.html

# 7" Display howto:

https://maker-tutorials.com/raspberry-pi-touchscreen-installieren-und-anschliessen-tipps-tricks/

https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-touch-display-installieren-und-einrichten

sudo apt-get install florence

apt-get install x11-xserver-utils unclutter

Dann muss noch die Autostart Datei für die graphische Oberfläche angepasst werden.

root@mobile:~ # cat /etc/xdg/lxsession/LXDE/autostart

@xset s off

@xset -dpms

@xset s noblank

@chromium --kiosk --incognito

Für den Autostart wird u.a. ein Script benötigt, welches nach Login die grafische Oberfläche start. Dabei muss dann wiederum ein "Programm" gestartet werden, welches für die Steuerung genutzt werden kann. Was gibt es besseres als einen Browser (chromium-browser) der auf eine WebSite (mopidy) zugreift. Hierzu das folgende Scipt /opt/start-gui

#!/bin/bash

/usr/bin/xinit /usr/bin/chromium-browser --start-maximized --incognito --single-process --process-per-site --disable-sync-preferences --no-startup-window --kiosk --touch-events --disable-touch-drag-drop --enable-touchview --enable-pinch --window-size=800,480 --windowposition=0,0 --disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost:6680/musicbox_webclient/index.html#home --nocursor

Mit dem Befehl raspi-conf wird die Konfiguration des Systems so eingestellt, das automatisch der Benutzer "pi" sich anmeldet. 

Raspberry PI für Openhab 2 mit HabPannel

Wer Openhab 2 mit HabPanel kennt, möchte vielleicht in seiner Wohnung ohne PC, Handy oder Tablet die Steuerung über Openhab bedienen. Das funktioniert erstaunlich gut. Wie das aussehen kann, zeigen ein paar Bilder. Das letzte Bild zeigt den Verbrauch. Bei ca 2,5 Watt wenn der Bildschirm aus ist. Bei ca. 5 Watt wenn der Bildschirm an ist.
Die Kosten für das ganze betragen ca. 140,- € (PI Bundle ca. 50,-€ , Gehäuse ca. 20,-€ und Display ca. 70,-€)

  • raspberry-7zoll-1-vorne

Simple Image Gallery Extended

Wie man das installiert, wird grundsätzlich hier beschrieben.

Raspberry als Musikplayer mit Mopidy/MPD

Der Raspberry Pi wird mit Mopidy zum Musikplayer. Internet Radio, Spotify oder auch lokale MP3 Files können so bequem abgespielt werden. Die Steuerung kann z.B. per Handy Browser oder auch per App (MPD Client) erfolgen. Hat man ein Touch Display für den PI, gehts auch anders. Das will ich hier in diesem Beitrag beschreiben. Ziel ist es, das nach einschalten des Gerätes, eine Oberfläche automatische startet, die eine Eingabe bzw. Steuerung über das Display mit den Fingern ermöglicht.

Stand 2018 (Multiroom)

Mittlerweile bin ich von Mopidy runter und setze Squeezebox/Squeezelight ein. In Kombination mit dem NAS System von Synologie, wo der Squeezebox Server läuft, wird aus den Raspberry mit Squeezelight ein einfacher Mediaplayer der Daten/Inhalte, die auf dem Server bereitgestellt werden. Der große Vorteil von Squeezebox/Squeezelight ist die Multiroom-Funktion. Auf den Apple Geräten habe ich iPeng als App und bin super zufrieden.

Hier die Mopidy Installation 

Zunächst lade ich das Betriebssystem NOOBS_v2.8.2 light. Da wird dann nur die "lite" Version über das Internet installiert. Also sowenig wie nötig an Software installiert.

Da nach dem ersten Starten wird SSH aktiviert, die Einstellung für die Sprache und sowas wie "set -o vi" ins /etc/profile geschrieben. Also etwas was mir ein wenig die Arbeit erleichtert.

raspi-config 

Dann gehts los und ich arbeite die folgenden Befehlen und Einstellungen ab.

echo "# Mopidy APT archive" | sudo tee --append /etc/apt/sources.list.d/mopidy.list
echo "deb http://apt.mopidy.com/ stable main contrib non-free" | sudo tee --append /etc/apt/sources.list.d/mopidy.list
echo "deb-src http://apt.mopidy.com/ stable main contrib non-free" | sudo tee --append /etc/apt/sources.list.d/mopidy.list
wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/jessie.list
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
apt-get update
apt-get upgrade
reboot
apt-get install -y mopidy mopidy-alsamixer mopidy-scrobbler mopidy-spotify
apt-get install -y mopidy-spotify-tunigo mopidy-local-sqlite
apt-cache search mopidy
cd /etc/mopidy/
cp logging.conf logging.conf-orig
cp mopidy.conf mopidy.conf-orig
cp /dsnas/backups/mobile.fritz.box/etc/mopidy/mopidy.conf .
cp /dsnas/backups/mobile.fritz.box/etc/mopidy/logging.conf .
/etc/init.d/mopidy start
apt-get install -y mopidy-alsamixer
apt-get install -y python-pip
pip install Mopidy-Iris
service mopidy restart
systemctl enable mopidy
cd /var/lib/mopidy/playlists/
cp /dsnas/backups/mobile.fritz.box/var/lib/mopidy/playlists/* .
cp /dsnas/backups/mobile.fritz.box/etc/motd /etc/.
sudo mopidyctl local scan
pip install Mopidy-Moped
cd /usr/share/mopidy/
cp mopidy-cmd mopidy-cmd-orig
service mopidy restart
sudo usermod -a -G video $(whoami)

sudo echo "mopidy ALL=NOPASSWD: /usr/local/lib/python2.7/dist-packages/mopidy_iris/system.sh" >> /etc/sudoers

Mopidy sollte jetzt laufen nach einem reboot. Was jetzt noch fehlt ist das Mopidy automatisch etwas spielt. Dazu habe ich ein kleines Script gebaut welches eine Playlist lädt und startet.

root@mobile:~ # cat /usr/local/bin/autoplay.sh

#!/bin/bash
echo "START AUTOPLAY"
sleep 15
echo "RUN AUTOPLAY"
mpc load autoplay
mpc volume 50
mpc play
echo "ENDE AUTOPLAY"
exit 0

Sicherlich gibt es auch andere Methoden. Damit das Script geladen wird, muss noch vor dem "exit 0" in der Datei /etc/rc.local ein laden des autoplay.sh Script eingebaut:

root@mobile:~ # more /etc/rc.local 

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

 

# Print the IP address

_IP=$(hostname -I) || true

if [ "$_IP" ]; then

  printf "My IP address is %s\n" "$_IP"

fi

/usr/local/bin/autoplay.sh &

exit 0

Das war es für Mopidy.

Joomla templates by a4joomla