,

Homematic – SONOS steuern – Teil 01 – Hardware und Software

Ich betreibe seit Jahren eine umfangreiche HomeMatic Installation und parallel dazu habe ich einige SONOS Lautsprecher im Einsatz. Gerne würde ich diese beiden Systeme verbinden um die Lautsprecher auch über mein HomeMatic steuern zu können. In den letzten Monaten habe ich einige Lösungsansätze getestet und mich dann für die Lösung einschieden, die ich euch hier vorstellen möchte. Obwohl einiges an Linux Know How erforderlich ist, habe ich versucht es so einfach zu beschreiben, das es auch Raspberry Pi und Linux Einsteiger hinbekommen sollten.

Quelle Foto Original: Sonos  – Text: Technikkram

Allgemeines

Die von mir hier vorgestellte und beschriebene Lösung gibt dem Anwender die Möglichkeit alle Funktionen des SONOS Systemes zu verwenden und über HomeMatic zu steuern. Es ist allerdings eine separate Raspberry Pi notwendig, was ich selbst jedoch nicht als Problem sehe. Bei anderen Lösungen wie IO-Broker oder Mediola ist ebenfalls weitere Hardware erforderlich. Da mein erster Ansatz immer ist, alles über HomeMatic selbst steuern zu können, ist das Github Projekt von Jimmy Shimizu (Jishi): „node-sonos.http.api“ meine favorisierte Lösung. Das Ganze hört sich im ersten Moment ziemlich kompliziert an, aber ich versuche es so einfach wie möglich und Schritt für Schritt zu erklären. Am Ende hoffe ich ihr seid genauso begeistert wie ich.

Nach der Umsetzung des Projektes ist folgendes möglich:

  • Jeden SONOS Lautsprecher einzeln, als Gruppe oder alle gemeinsam steuern
  • Gruppen bilden und auflösen
  • Playlisten abspielen
  • Favoriten abspielen
  • Radio Sender abspielen
  • Durchsagen oder MP3-Sounds abspielen
  • Musik aus Internetdiensten (Deezer, Spotify, usw.) abspielen
  • Interpreten in Playlisten oder Internetdiensten suchen und abspielen
  • Durchsagen auf bestimmten oder allen Lautsprechern abspielen
  • MP3 Dateien auf bestimmten oder alle Lautsprecher abspielen
  • Playbar Parameter einstellen

Was benötigen wir alles für dieses Tutorial?

Amazon eBay ELV
Raspberry Pi3 Link Link Link
Bausatz-Funkmodul Link Link Link
microSD Karte Link Link Link
Gehäuse Link Link Link
Gehäuse für HS Link Link Link
Netzteil für HS Link Link Link
USB für Netzteil HS Link Link Link
externe Antenne Link Link

Möglichkeiten

Da die Möglichkeiten so umfangreich sind, ist eine kleine Serie entstanden von insgesamt drei Artikeln mit dem folgenden Inhalt:

  1. Hardware und Software Installation (Raspbian, Node.js und SONOS API)
  2. Steuerung der SONOS Lautsprecher über HomeMatic (CCU2/RaspberryMatic)
  3. Ausgabe von Durchsagen oder Alarmierungen über die Sonos Lautsprecher

Diese einzelnen Artikel werden zeitnah hintereinander erscheinen, da ich sie in den letzten Wochen seit November erstellt habe. Wollte das Ganze aber erst nach einem längeren Testlauf veröffentlichen.

Dieser Test ist nun erfolgreich abgeschlossen und ich möchte euch über diese Artikel das tolle Github Projekt von Jimmy, Schritt für Schritt beschreiben und zeigen was Alles möglich ist. Wenn beispielsweise ein Bewegungsmelder im Bad eine Bewegung erkennt, kann man die gewünschte Musik in der gewünschten Lautstärke auf den gewünschten Lautsprechern abspielen. Oder aber bei einem Einbruchalarm könnte man aus allen SONOS Boxen einen Sirenenton oder Ansagen abspielen. Auch die Wecker Funktion von SONOS erfährt mit dieser Lösung eine deutliche Aufwertung, weil man sich in Abhängigkeit von Feiertag, Wochenende, Arbeitstag oder Urlaub wecken lassen kann. Alle denkbaren Auslöser im HomeMatic können eine Aktion innerhalb des SONOS Systems auslösen.

Durch das Github Projekt von Alex „piVCCU – CCU2 auf Raspberry pi oder Tinkerboard“ ergibt sich eventuell auch die Möglichkeit HomeMatic und die SONOS API auf einer Raspberry Pi laufen zu lassen. Solbald die Tests abgeschlossen sind, wird das ein zusätzlicher Artikel zur SONOS Reihe.

Raspberry Pi Grundinstallation

Als Basis Betriebsystem für dieses Projekt empfehle ich RASPBIAN. Wie ihr auch als Einsteiger diese System auf einer Raspberry installieren könnt, habe ich im Artikel „NOOBS – Einstieg und erste Schritte in die Raspberry Pi Welt“  beschrieben.


Für fortgeschrittene Anwender ist es auch möglich, direkt das RASPBIAN Image herunter zuladen und auf eine SD-Karte zu schreiben. Die Einstellung von WIFI, Sprache usw. ist dann aber nicht so einfach wie bei der Installation über NOOBS.

Die aktuelle RASPBIAN Version findet ihr hier als Download

Installation von RASPBIAN auf einer SD-Karte

  1. Ihr müsst die folgenden Schritte durchführen, um NOOBS auf dem Raspberry Pi zu installieren:
  2. RASPBIAN herunterladen (bereits erledigt im vorherigen Schritt);
  3. Die ZIP-Datei entpacken;
  4. Formatiert die SD-Karte im FAT32 Format und kopiert die entpackten Dateien anschließend auf die SD-Karte;
  5. SD-Karte in den Pi stecken und LAN-Kabel einstecken und mit dem Router verbinden. Zusätzlich den Bildschirm über HDMI verbinden, sowie eine Tastatur und Maus über USB. Zum Schluß dann das USB Stromkabel einstecken und mit dem Strom verbinden;
  6. Dann startet automatisch der Boot Vorgang und RASPBIAN wird gestartet.

Installation von Node.js

Nachdem RASPBIAN auf der Raspberry Pi installiert ist, muss als nächstes Node.js aktualisiert werden.

In unserer Raspbian Installation ist Node.js zwar vorhanden, aber dabei handelt es sich nicht um die benötigte Version. Daher ist es notwendig die erforderliche Version nachträglich zu installieren.

Bevor wir mit der Installation starten können, sollte zuerst die alte Version entfernt werden. Dazu müssen die folgenden Befehle abgesetzt werden.

sudo apt-get remove nodejs
sudo apt-get autoremove
sudo apt-get autoclean

Installation über das NodeSource Repository

Hierbei handelt es sich sowohl um die einfachste, wie auch die sicherste Methode Node.JS zu installieren. Verwendet wird das Repository von NodeSource, wodurch alle Updates über den Paketmanager installiert werden.

Jetzt müssen wir die erforderliche Version installieren. Das gestartete Setup-Script erkennt automatisch das installierte Betriebssystem und konfiguriert die Pakete entsprechend. Empfohlen wird aktuell die Version 6.x zu installieren. Dies machen wir mit dem folgenden Befehl:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

Nun müssen wir Node.js sowie die benötigten Build-Tools installieren. Dazu müssen wir den folgenden Befehl ausführen.

sudo apt-get install -y nodejs build-essential

Damit haben wir jetzt in unserem Raspbian die empfohlene Node.js Version installiert. Zum Schluss noch mit dem folgenden Befehl alles in das Verzeichnis /usr/local/ kopieren:

sudo cp -R * /usr/local/

Ob das Ganze funktioniert hat können wir mit dem folgenden Befehl kontrollieren:

node –v

Es sollte dann die gewünschte Version angezeigt werden.

v6.12.0

Installation SONOS API

Nachdem wir nun den Server inklusive Node.js Server komplett aufgebaut haben, können wir jetzt mit der Installation der SONOS API starten.


Dazu müssen wir zuerst in das „Home Verzeichnis“ des Users „Pi“ wechseln (1). Mit dem nächsten Befehl die Datei „master.zip“ herunterladen (2). Durch den dritten Befehl wird die Datei „master.zip“ entpackt (3). Mit dem letzten Befehl in das Verzeichnis „nodesonoshttpapimaster“ wechseln (4).

cd ~
wget https://github.com/jishi/node-sonos-http-api/archive/master.zip
unzip master.zip
cd node-sonos-http-api-master

Installation

An dieser Stelle findet dann die eigentliche Installation statt. Während diesem Installationsvorgang werden die benötigten Pakete und Module heruntergeladen und installiert. Mit Abschluss der Installation sind diese dann dem Node.js Server bekannt.

Dieser Vorgang kann etwas länger dauern, aber keine Sorge, dein System arbeitet.

Um sicher zu gehen, den folgenden Befehl eingeben, um in das korrekte Verzeichnis zu wechseln:

cd /home/pi/node-sonos-http-api-master

Jetzt folgt der eigentliche Befehl zur Installation der SONOS API:

npm install --production

Während der Installation seht ihr eine Auflistung der Module und Pakete, die ab dem Moment für Node.js zur Verfügung stehen.

Auszug der Paket und Modul Auflistung

Solange keine „roten Fehlermeldungen“ erscheinen, ist alles einwandfrei gelaufen.

Konfiguration

Nachdem wir die Installation erfolgreichhinter uns gebracht haben, können wiruns jetzt der Konfiguration widmen. Dazu ist es aus meiner Sicht sinnvoll, eine WinSCP Verbindung zur Raspberry herzustellen. Es ist deutlich einfacher Konfigurationsdateien mittels Windows oder Mac Editor anzupassen, als in der Shell.

Die beiden hier beschriebenen Schritte sind nur notwendig, wenn ihr

  1. Textansagen über Sonos abspielen möchtet (Details im 3. Teil der Sonos Serie)
  2. Voreinstellungen für eure Sonos Lautsprecher definieren möchtet

Diese Schritte könnt ihr entweder weglassen oder aber auch zu einem späteren Zeitpunkt durchführen, wenn ihr euch anders entschieden habt.

Konfiguration durchführen

Mit WinSCP in das Verzeichnis /home/pi/node-sonos-http-api-master wechseln.

1.) Text-to-Speech (TTS)

Möchtet ihr einen beliebigen Text an eine oder alle Sonos Lautsprecher übergeben, müsst ihr einen sogenannten TTS (Text-to-Speech) Service in Anspruch nehmen. Dieser wandelt einen Test in eine Sprachausgabe um.

Für unser Sonos Projekt nutzen wir den kostenlosen TTS-Service Voice RSS.

Um diesen nutzen zu können, müsst ihr den obigen Link verwenden und auf der Startseite seht ihr gleich die verschieden Profile, welche ihr nutzen könnt.

Preisbeispiele auf der Startseite

Ganz links seht ihr die kostenllose Option, mit der ihr täglich bis zu 350 mal den Service nutzen könnt. Ich denke das sollte reichen.


Um den Service nutzen zu können, müsst ihr auf den Button „GET STARTED“ klicken. Dann geht ein Fenster auf in dem ihr euch registrieren müsst. (Existierende Mail-Adresse notwendig).

Registrierungs Bildschirm (Voice RSS)

Nachdem ihr alle notwendigen Felder ausgefüllt habt und auf den Button „Register“ geklickt habt, bekommt ihr eure Registrierungsdaten angezeigt. Das wichtigste für die Funktion ist die API Key.

Zum Abschluß müsst ihr dann nur noch den Button „Update“ klicken. Dann bekommt ihr eine Mail mit den Registrierungsinformationen an die angegebene Mail-Adresse.

Damit ist dann die kostenlose Registrierung bei Voice RSS abgeschlossen. Als nächsten Schritt müssen wir innerhalb der SONOS API diese Registrierung definieren. Dazu gehen wir am besten über WINSCP in das folgende Verzeichnis:

Dort dann eine Datei mit dem Namen „settings.json anlegen, dessen Inhalt wiefolgt aussehen sollte.

Erklärung:

  • announceVolume   =   Hier könnt ihr die Standardlautstärke der Ansagen einstellen.
  • voicerss   =   Hier die „xxx“ durch euren API key ersetzen.

2.) Voreinstellungen für die Lautsprecher

In der folgenden Konfigurationsdatei innerhalb der SONOS API könnt ihr die Standardeinstellungen all eurer Sonos Lautsprecher einstellen. Auch diesen Schritt könnt ihr weglassen, dann werden die Einstellungen aus der Sonos App als Standard genommen. Oder aber zu einem späteren Zeitpunkt einstellen.

Im Verzeichnis „/home/pi/node-sonos-http-api-master/presets/ findet ihr die Beispieldatei „example.json“. Diese könnt ihr über WINSCP an eure SONOS Umgebung anpassen. Damit die Definitionen aktiv werden, müsst ihr die Datei in „original.json“ umbenennen. Wie gesagt, ich nutze diese Option nicht, weil ich die Voreinstellung in der Sonos App vorgenommen habe.

Erster Start SONOS API

Jetzt haben wir alle Voraussetzungen erfüllt und können die SONOS API zum erstenmal starten. Dafür den folgenden Befehl ausführen:

Um sicher zu gehen vorher in das korrekte Verzeichnis zu wechseln, sonst funktioniert der Start Befehl nicht.

cd /home/pi/node-sonos-http-api-master

Jetzt folgt der eigentliche Befehl zum Start der SONOS API:

npm start

Die folgenden Informationen sollten angezeigt werden, dann hat alles funktioniert und die API steht zur Verfügung und „lauscht“ jetzt auf dem port 5005 auf die HTTP Befehle.

Test über Browser

Die API hört nun auf die Namen des jeweiligen Raumes. In meinem Beispiel nehme ich meinen Lautsprecher in der Küche und lasse dort die im Sonos definierte Playliste „TOP100“ abspielen.

Bei den Raumnamen keine Umlaute verwenden, also anstatt „Küche“ bitte „Kueche“ verwenden, ansonsten funktioniert das nicht.

Natürlich müsst ihr die IP Adresse auf die eurer Sonos Raspberry ändern.

In einem Browser folgende URL öffnen:

http://192.168.1.54:5005/kueche/playlist/top100

Es funktioniert, die Box beginnt mit dem ersten Titel der aktuellen Top100. Ihr könnt dann noch ein paar weitere Befehle über den Browser testen.

http://192.168.1.54:5005/kueche/next = springt zum nächsten Titel

http://192.168.1.54:5005/kueche/previous = springt zum vorherigen Titel

http://192.168.1.54:5005/kueche/volume/30 = setzt die Lautstärke auf den Wert 30

http://192.168.1.54:5005/kueche/volume/-10 = reduziert die Lautstärke um den Wert 10

http://192.168.1.54:5005/kueche/pause = stoppt das Abspielen

http://192.168.1.54:5005/kueche/play = startet das Abspielen wieder

http://192.168.1.54:5005/kueche/playlist/lieblingssongs = startet eine andere Playlist

Das soll für den ersten Test über den Browser mal reichen und enn alles funktioniert hat, werdet ihr meine Begeisterung sicher teilen. Ihr könnt das Ganze neben den Aktionen am Lautsprecher auch immer in der SONOS App verfolgen. Im Browser wird angezeigt ob der Befehl korrekt ist, der Raumname bzw. die Playlist existiert. Wenn alles stimmt, bekommt ihr folgende Bestätigung:

Problem mit Node.js Instanz

Obwohl bis jetzt alles super funktioniert, gibt es in der ganzen Konstellation noch ein kleines Problem, zu dem ich euch aber hier auch gleich eine Lösung präsentieren kann.

Ih könnt an dem folgenden Screenshot erkennen, das ihr euch nach dem Start der SONOS API in einer Node.js Instanz befindet. Dies erkennt ihr daran, dass ihr eigentlich keinen Prompt mehr seht, sondern nurden Cursor:

Solange sich euer Node.js Server in diesem Zustand befindet, empfängt er eure HTTP Befehle und setzt sie entsprechend um.

Mit Strg+C beendet man diese Node.js Instanz. Das gleiche passiert wenn ihr eure SSH Verbindung zum Server beendet. Damit beendet ihr auch SONOS API und eure Befehle laufen ins Leere.

Mit „Strg-C“ beendet ihr die Node.js Instanz

Lösung

Um die SONOS API auch laufen zu lassen, wenn kein User auf dem Raspberry Server angemeldet ist, wird SCREEN benötigt. Mit dem Programm SCREEN verwalten wir mehrere virtuelle Konsolen in einem einzigen Terminal-Fenster, lassen Prozesse auf entfernten Servern weiterlaufen (während wir längst vom System abgemeldet sind.

Installation von SCREEN

Um sicher zu gehen vorher in das korrekte Verzeichnis zu wechseln, sonst funktioniert der Start Befehl nicht.

cd /home/pi/node-sonos-http-api-master

Jetzt folgt der eigentliche Befehl zur Installation von SCREEN:

sudo apt-get install screen

Installation von SCREEN

Nachdem die Installation abgeschlossen ist, könnt ihr SCREEN mit dem folgenden Befehl starten:

screen

Ihr bekommt dann die nachfolgenden Meldungen und befindet euch dann quasi in einer Shell innerhalb einer Shell in der nun die SONOS API erneut gestartet werden muss.

Um die SONOS API erneut zu starten, geht ihr wieder den folgenden Befehl ein:

npm start

Dadurch läuft nun die SONOS API in einer separaten Shell und die Befehle zur Steuerung der Sonos Lautsprecher werden korrekt bearbeitet.

Um zurück auf die Original Shell zu kommen, müsst ihr „Strg+A+D“ nacheinander drücken (also Strg gedrückt halten, dann A und dann D).

Mit dem folgenden Befehl könnt ihr in die Screen Instanz zurückzukehren:

screen -r

Die SONOS API läuft nun im Hintergrund. Ihr könnt nun ohne Bedenken eure SSH Session (WINSCP oder PUTTY) beenden, ohne das die SONOS API beendet wird.

Damit ist die Installation komplett abgeschlossen, die zusätzliche Raspberry läuft mit dem Node-js Server und der SONOS API und wartet auf die Abarbeitung von HTTP Befehlen. Ihr könnt an dieser Stelle den Test von Oben ja nochmal wiederholen. Es sollte alles funktionieren.

Anmerkung

Solltet ihr aus welchen Gründen auch immer gezwungen sein die SONOS Raspberry neu zu Starten, müsst ihr natürlich erneut innerhalt der SCREEN Instanz die SONOS API neu starten.

Bei mir läuft der Server nun schon zwei Monate ohne Probleme durch und bearbeitet meine HTTP Steuerungs-Befehle ohne zu murren.

Ich teste im Moment noch eine Lösung sowohl SCREEN als auch die SONOS API beim Neustart des Systemes automatisch zu starten. Sollte ich dort eine Lösung finden, werde ich euch informieren.

Steuerung SONOS über HomeMatic

Aufgrund der Länge dieses Artikels werde ich einen noch eine Fortsetzung als weiteren Artikel zu diesem Thema verfassen. Dieser wird zeitnah veröffentlicht. Bis dahin könnt ihr den ersten Teil ja schon umsetzen.

Auch die Möglichkeiten der Programmierung für die SONOS Steuerung innerhalb von HomeMatic sind so umfangreich, dass es dazu viel zu berichten gibt. Also viel Spass bei der Fortsetzung im Artikel „Homematic – SONOS Lautsprecher komplett über Homematic steuern – Teil 02“


Service von uns

Wir bekommen häufig die Anfrage per Mail, ob wir Euch bei der Installation und Einrichtung behilflich sein können. Ich kann Euch gerne ein fertiges System zusammenstellen. Schreibt mich dazu einfach an: werner (@) technikkram.net

Fazit

Abgesehen davon, dass mich dieser Artikel bereits seit November 2017 beschäftigt, finde ich die hier vorgestellte Lösung zur Steuerung eines Sonos Systems wirklich sehr gut. Ich habe glaube ich noch keinen so umfangreichen Artikel geschrieben, aber ich wollte all unseren Lesern die Einrichtung ermöglichen.

Es hat sich mal wieder gezeigt, das es viele tolle Projekte gibt, welche die Möglichkeiten der Hausautomation über HomeMatic erweitern können. Im konkretten Fall gilt mein besonderer Dank Jimmy Shimizu (Jishi).

Um Fragen vorzubeugen hier gleich die Information, das die SONOS API nicht parallel zu RaspberryMatic auf der gleichen Hardware installiert werden kann. Bei der Lösung mit piVCCU werde ich das Testen und anschließend hier berichten.

Bei mir läuft diese Lösung schon seit November 2017 und ich wünsche euch viel Erfolg bei der Umsetzung.

32 Kommentare
  1. Marco
    Marco sagte:

    Hallo,
    ich habe alle Konfiguriert und ich kann jetzt die Sonos über die Browser Befehle steuern.
    Aber ich verstehe nicht wirklich wie ich über die Homematic die Sonos ansteuern kann.
    Ich habe das Funk Modul auf dem Pi. Aber wie binde ich das Funkmodul in die CCU3 ein?

    Antworten
  2. Moin
    Moin sagte:

    Hallo, ich hänge mich hier einfach mal dran.
    Meine Startdatei „/etc/init.d/dasher“ sieht wie folgt aus:

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides: dasher
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start daemon at boot time
    # Description: Enable service provided by daemon.
    ### END INIT INFO

    dir=“/home/pi/node-sonos-http-api-master“
    cmd=“node server.js“
    user=“root“

    name=`basename $0`
    pid_file=“/var/run/$name.pid“
    stdout_log=“/var/log/$name.log“
    stderr_log=“/var/log/$name.err“

    get_pid() {
    cat „$pid_file“
    }

    is_running() {
    [ -f „$pid_file“ ] && ps -p `get_pid` > /dev/null 2>&1
    }

    case „$1“ in
    start)
    if is_running; then
    echo „Already started“
    else
    echo „Starting $name“
    cd „$dir“
    if [ -z „$user“ ]; then
    sudo $cmd >> „$stdout_log“ 2>> „$stderr_log“ &
    else
    sudo -u „$user“ $cmd >> „$stdout_log“ 2>> „$stderr_log“ &
    fi
    echo $! > „$pid_file“
    if ! is_running; then
    echo „Unable to start, see $stdout_log and $stderr_log“
    exit 1
    fi
    fi
    ;;
    stop)
    if is_running; then
    echo -n „Stopping $name..“
    kill `get_pid`
    for i in 1 2 3 4 5 6 7 8 9 10
    # for i in `seq 10`
    do
    if ! is_running; then
    break
    fi

    echo -n „.“
    sleep 1
    done
    echo

    if is_running; then
    echo „Not stopped; may still be shutting down or shutdown may have failed“
    exit 1
    else
    echo „Stopped“
    if [ -f „$pid_file“ ]; then
    rm „$pid_file“
    fi
    fi
    else
    echo „Not running“
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
    echo „Unable to stop, will not attempt to start“
    exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
    echo „Running“
    else
    echo „Stopped“
    exit 1
    fi
    ;;
    *)
    echo „Usage: $0 {start|stop|restart|status}“
    exit 1
    ;;
    esac

    exit 0

    Antworten
  3. Andii
    Andii sagte:

    Vielen Dank für die gute Anleitung!

    Eine Frage, weil sich die Anleitung auf die CCU2 bezieht, ich aber eine CCU3 habe: Da in der CCU3 ja ein Raspberry Pie verbaut ist, wird dann wirklich noch ein weiterer Raspberry Pie erforderlich? Oder lässt sich die Installation auch direkt auf der CCU3 durchführen, sodass keine weitere Hardware nötig ist?

    Antworten
  4. Jan
    Jan sagte:

    Hallo – mir gehts wie Christian: Bei der Node-Installation wird statt 6.12 die 8.11 installiert und danach läßt sich das Sonos API nicht installieren – es bricht mit dem von Christian schon beschriebenen Fehler ab. Sehr schade – kann man da noch was tun oder wars das dann?

    Gruß

    Jan

    Antworten
  5. Christian Preiß
    Christian Preiß sagte:

    Hallo,
    die Version 6 lässt sich nicht installieren, er bügelt automatisch 8.11 drauf.
    Und kommt die Fehlermeldung „-bash: npm: command not found.

    Antworten
  6. Manfred
    Manfred sagte:

    Hallo Werner, Du hast hier einen super Job geleistet, Dafür großen Dank.
    Ich nutze alles mit einem Mac und kann bestätigen, dass es ein Putty gibt und für alles andere nehme ich Cyberduck.

    Ich habe allerdings das mit dem screen weggelassen und mir ein Startscript aus dem Netz geladen.
    ### BEGIN INIT INFO
    # Provides: noip
    # Required-Start: $syslog
    # Required-Stop: $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: noip server
    # Description:
    ### END INIT INFO

    export PATH=$PATH:/usr/local/bin
    export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules

    case „$1“ in
    start)
    echo „node-sonos-http-api wird gestartet“
    # Starte Programm
    cd /home/pi/node-sonos-http-api-master/
    npm start
    ;;
    stop)
    echo „node-sonos-http-api wird beendet“
    echo „kein Stop-Script installiert!“
    # Beende Programm
    cd /home/pi/node-sonos-http-api-master/
    npm stop
    ;;
    *)
    echo „Benutzt: /etc/init.d/sonos {start|stop}“
    exit 1
    ;;
    esac

    exit 0

    Du kannst die Datei direkt aus dem Editor anlegen mit: sudo nano /etc/init.d/sonos
    Dort kopierst Du den Text hinein, wobei Du natürlich deinen Pfad anpassen must.
    Speichern und schließen.

    Danach gibst Du noch in die Commando-Zeile ein:
    chmod 755 /etc/init.d/sonos
    update-rc.d sonos defaults

    Ich habe den Befehl „/etc/init.d/sonos start“ einfach in die Datei „/etc/rc.local“ eingefügt und so startet automatisch der „npm -start“ Befehl.

    Vielleicht hilft das dem einen oder anderen.
    Gruß Manfred

    Antworten
  7. Marco
    Marco sagte:

    Kann es sein das man sich nicht mehr bei Voice RSS regestrieren kann? Wenn ich auf Register klicke , geht bei mir nichts, oder mache ich was falsch ?

    Antworten
  8. Udo
    Udo sagte:

    Hallo Werner,

    hast Du hier schon was erreichen können, ich komme da nicht weiter, es funktioniert einfach nicht mit dem automatischen Neustart.
    Ich teste im Moment noch eine Lösung sowohl SCREEN als auch die SONOS API beim Neustart des Systemes automatisch zu starten. Sollte ich dort eine Lösung finden, werde ich euch informieren.
    Alles Andere läuft super, es ist eigentlich jetzt nur noch ein Schönheitsfehler.
    Gruß Udo

    Antworten
  9. Rico
    Rico sagte:

    Hallo Werner,

    den folgenden Hinweis könnte ich an vielen Stellen in Technikkram.net hinterlassen. Dass ich es hier tue ist reiner Zufall.
    In Euren wirklich tollen Beiträgen, die den Raspberry verwenden beschreibt Ihr stets die Eingaben über ein verbundenes Windows. Ich arbeite allerdings mit einem Mac. Wäre es möglich, vielleicht einmal auf die Aufrufe (SSH, etc.) von einem Mac aus einzugehen? Welche Softwre wird hierfür empfohlen, etc.

    Vielleicht bin ich nur ein DAU. Aber ein solcher, kurzer Beitrag würde mir und vielleicht einigen anderen auch das Leben mit dem Raspberry erleichtern.

    Viele Grüße,
    Rico

    Antworten
    • Werner
      Werner sagte:

      Hallo Rico,

      da ich selbst leider keinen Mac habe, bin ich an dieser Stelle auch nicht der Fachmann.

      Was ich weiß, ist das dort die Befehle Telnet und SSH direkt im Terminal vom Mac implementiert sind.

      Ich habe gerade mal ein wenig recherchiert und gesehen, das es sogar einen „PuTTY“ für den Mac gibt. Hier ist der Link und vielleicht hilft dir das ja weiter. Es existiert dort auch ein kurzes Installationsvideo: https://macsoftware.ch/putty-fuer-mac/

      Grüße
      Werner

      Antworten
      • Rico
        Rico sagte:

        Hallo Werner,

        vielen Dank für die schnelle Antwort.
        Dann werde ich mich einfach mal näher mit dem integrierten Terminal näher befassen. Warum ein Werkzeug anschaffen, wenn es schon eines gibt

        Vielen Dank nochmal und weiter so…
        Rico

        Antworten
  10. Norbert
    Norbert sagte:

    Habe die Fehlermeldung zwar auch erhalten, habe dann aber einfach weiter installiert und hat dann alles auch geklappt. Super!!! :-)

    Antworten
  11. JJ
    JJ sagte:

    Endgeil!! Funktioniert super. Vielen Dank.

    Anmerkung zum Thema Neustart:

    Mit PM2 geht das bei mir ganz geschmeidig:
    Installation:
    $ sudo npm install -g pm2
    $ pm2 startup
    $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi –hp /home/pi

    Autostart:
    $ cd /home/pi/node-sonos-http-api-master/
    $ pm2 start server.js -x –name „http-api“
    $ pm2 save

    Quellen:
    https://github.com/jishi/node-sonos-http-api/issues/20
    https://github.com/Unitech/pm2su
    http://pm2.keymetrics.io/docs/usage/quick-start/

    Grüße

    -Jochen

    Antworten
    • Torsten
      Torsten sagte:

      Ersetzt das auch screen?
      Das sind ja zwei verschiedene Punkte. Erstens die sich blendend Sitzung vom sonos http Server und zweitens der Neustart bei dem man Screen und den Server neustarten muss.
      Vg Torsten

      Antworten
  12. Torsten
    Torsten sagte:

    Super, werde ich morgen mal testen. Seit neuesten werden bei dem Image von
    ihm die Leerzeichen nicht mehr decodet (AlpineLinux based)

    VG Torsten

    Antworten
  13. Andreas
    Andreas sagte:

    Hallo Werner,

    kann ich für die Installation auch einen Raspi nutzen auf welchem schon io.Broker incl. Node.js und Pi-Hole installiert ist oder sollte ich mir dan einen weiteren Raspi nur für Sonos zulegen?

    Danke im vorraus und Gruss Andreas

    Antworten
    • Werner
      Werner sagte:

      Hallo Andreas,

      ich teste zur Zeit genau diese Möglickeiten und werde diese Woche noch einen Bericht darüber schreiben.
      Hoffe du hast noch ein paar Tage Geduld.

      Gruss

      Werner

      Antworten
  14. Duracell
    Duracell sagte:

    Guten Abend, die Anleitung ist wie immer super beschrieben.
    Leider komme ich ab dem Punkt:
    „1
    node –v
    Es sollte dann die gewünschte Version angezeigt werden.
    v6.12.0“
    nicht mehr weiter. Bekomme dort nur einen Err angezeigt.
    Auch kann ich weder SSH noch per WinSCP auf den raspberry zugreifen.

    Antworten
    • Duracell
      Duracell sagte:

      Das ist der Fehler der nach dem Eintrag node -v erscheint:
      module.js:471
      throw err;
      ^
      Error: Cannot find module ‚/home/pi/–v‘
      at Function.Module._resolveFilename (module.js:469:15)
      at Function.Module._load (module.js:417:25)
      at Module.runMain (module.js:604:10)
      at run (bootstrap_node.js:383:7)
      at startup (bootstrap_node.js:149:9)
      at bootstrap_node.js:496:3

      Antworten
    • Werner
      Werner sagte:

      Hallo Björn,
      um den Fehler analysieren zu können, benötige ich weitere Informationen.
      Du schreibst: Auch kann ich weder SSH noch per WinSCP auf den raspberry zugreifen.
      Wie gibst du dann den Befehl: „node -v“ ein?
      Kannst du mir deine einzelnen Schritte bis zu dem Fehler beschreiben und vielleicht ein paar Screenshots an die Mailadress werner (@) Technikkram.net schicken.

      Danke und Gruss
      Werner

      Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert