homeean

Alles rund um homeean, ein webbasiertes Buildtool, welches es Dir ermöglicht auf einem RaspBerry Pi Drittools zur Integration von noch nicht von homee unterstützten Geräten zu installieren.

homeean - Hintergrund, Installation und Nutzung

homeean ist ein webbasiertes Tool, welches Euch Installationsskripte für einen Raspberry Pi generiert, mit deren Hilfe Ihr eine Auswahl gängiger Smart Home Tools und Erweiterungen für homee installieren könnt, ohne vorher einen schwarzen Gürtel in Linux-Systemkonfiguration erwerben zu müssen.

Warum homeean?

homeean (ja, das schreibt man wirklich konsequent KLEIN - auch am Satzanfang) entstand aus einer Diskussion in der homee Community, einer Community zum Smart Home System homee (das man komischerweise auch konsequent KLEIN schreibt - auch am Satzanfang).

Obwohl homee von Hause aus (je nach vorhandenen Funkwürfeln) schon sehr viele Geräte verschiedener Funkstandards nativ unterstützt, fehlten und fehlen einigen homee Usern wichtige Funktionen oder die Einbindung von Dritttools oder Geräten.

Manch einer der ambitionierteren homee-User griff zur Selbsthilfe, was zu solchen Perlen wie

führte und hoffentlich auch in Zukunft - vielleicht irgendwann mit einer offiziellen API von homee -  so weitergehen wird.

Die Zielgruppe von homee (das ein kommerzielles Produkt ist) unterscheidet sich jedoch etwas von der von offenen Systemen wie ioBroker, FHEM, Home Assistant, openHAB und vielen weiteren frei verfügbaren Lösungen.

Der Durchschnittsuser von homee hat sich entweder bewusst für eine "fertige" Lösung entschieden, weil seine IT-Kenntnisse oder seine Zeit nicht ausreichen sich in eines der o.g. Systeme einzuarbeiten, geschweige denn es zum Laufen zu bekommen oder aber homee mit dem festen Vorsatz gekauft hat nur sein Zuhause zu automatisieren und nicht wild herumzubasteln (Stichwort: WAF).

So war ein nicht unbeträchtlicher Teil der homee User nicht in der Lage diese Tools und viele andere, welche sich in den letzten Jahren als in der Community sehr beliebt herausstellten, zu nutzen oder seine ursprünglichen guten Vorsätze im Smart Home Rausch ohne allzu grossen Aufwand, über Bord zu werfen.

In genau dem Moment als die Zahl an homee-Zusatztools sprunghaft anstieg und mit der Idee es jeder und jedem zu ermöglichen solche Tools mit wenig Aufwand zu nutzen, wurde homeean geboren.

Und das beste ist: Viele der in homeean eingebundenen Tools lassen sich auch von Usern von anderen Smart Home Systemen benutzen - auch wenn wir natürlich der Meinung sind, dass die Beschäftigung mit anderen Smart Home Systemen eigentlich überflüssig ist ;-) 

Der Name homeean ist eine Hommage an Debian (der Urvater von Raspbian) und homee.

Installationsvoraussetzungen

Damit die Installation einwandfrei funktioniert, benötigst du einen aktuellen Raspberry Pi - aktuell empfehlen wir Anfängern sich einen Raspberry Pi 3B+* zu kaufen, am besten in einem Set, mit Netzteil, Gehäuse und einer leistungsfähigen SD-Karte. Für die SD-Karte empfehlen wir mindestens 16 GB - die Sandisk Ultra 16 GB Class 10* ist unsere konkrete Produktempfehlung, nicht nur wegen der Geschwindigkeit und der Zuverlässigkeit, sondern auch weil sie mit einem SD-Adapter geliefert wird.

Wir empfehlen zudem mindestens eine Ersatz-SD-Karte (für Experimente).

Für die Installation der SD-Karte benötigt Ihr zudem noch einen PC (Windows, Mac oder Linux) mit einem SD-Kartenleser.

homeean unterstützt inzwischen auch die Installation auf älteren Raspberry-Geräten (Raspberry Pi 1 und 2), sowie den deutlich kompakteren Zero Modellen (Raspberry Pi Zero und Zero W). Andere Systeme (OrangePi, NanoPi) haben wir noch nicht aktiv getestet.

Am besten klappt die Installation mit einer frischen Installation von Raspbian oder Raspbian Lite. Die jeweils aktuellste Version erhältst du auf der offiziellen Raspberry Pi Seite - wir empfehlen Raspbian Lite

Für die absoluten Anfänger ist aber die Installation mit Noobs sicher am einfachsten.

Für die Installation und die ersten Schritte werdet Ihr allerdings nicht umhin kommen Euch auf der Webseite https://www.raspberrypi.org/help/ kurz ins Thema einzulesen. Die Anleitungen dort sind sehr verständlich (wenn auch in Englisch) - das können wir nicht besser machen, nur kürzer:

  • Lade dir zunächst Etcher (ein kostenloses Programm für das Schreiben von SD-Kartenimages) und das neuste Raspbian-Image (siehe oben) herunter.
  • Lege die SD-Karte in den verbundenen SD-Kartenleser (ggf. die Micro-SD vorher in den hoffentlich mitgelieferten SD-Kartenadapter stecken).
  • Öffne Etcher und wähle das heruntergeladene Image und die SD-Karte aus und klicke auf den Flash Button.
  • Erstelle auf der SD-Karte eine neue Datei mit dem Namen `ssh` und gib keine Dateiendung an (das erlaubt Dir dich gleich nach dem ersten Start per SSH mit dem Raspberry Pi zu verbinden).
  • Stecke die SD-Karte (nachdem Du sie aus dem SD-Kartenadapter entnommen hast) in Deinen Raspberry und schließe ein Netzwerkkabel und das Stromkabel an. Nach wenigen Minuten sollte der Raspberry im Netzwerk erreichbar sein. Du kannst Ihm natürlich auch beim Booten zuschauen, wenn Du einen HDMI-fähigen Monitor anschliesst und Dich lokal anmelden, wenn Du eine USB-Tastatur mit ihm verbindest.

Stefan Himpler (der Kopf hinter homeean) hat auf seinem Blog hier eine noch etwas ausführlichere Anleitung bereitgestellt.

Als zusätzlicher Tipp:
Nicht jeder hat immer ein Netzwerkkabel zur Hand, allerdings kann der Raspberry Pi beim ersten Start auch gleich mit Eurem WLAN (2.4 GHZ, kein 5GHz - zumindest nicht Modelle vor dem gerade erst erschienen Raspberry Pi 3B+) verbinden. Alles was Ihr dafür tun müsst ist (analog dem SSH-File, das oben beschrieben wurde) auf der SD-Karte ein Textfile mit dem Namen wpa_supplicant.conf anzulegen, mit folgendem Inhalt:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Euer-WLAN-Name"
psk="Euer-WLAN-Passwort"
key_mgmt=WPA-PSK
}

Euer-WLAN-Name und Euer-WLAN-Passwort müsst Ihr natürlich durch Eure Daten ersetzen, wobei die Gänsefüsschen " zu Beginn und Ende jeweils erhalten bleiben müssen.

Wenn Ihr Euch das erste Mal nicht per SSH verbindet (wir empfehlen für die SSH-Verbindung für Windows Putty und für Mac und Linux die jeweiligen Standardclients auf deren Kommandozeile), sondern über eine lokal angeschlossene Tastatur, dann werdet Ihr bei der Erstanmeldung (der angelegte Standarduser ist pi und dessen Standardpasswort lautet raspberry) ggf. gleich auf das erste Problem stossen.

Standardmässig ist eine englische Tastatur aktiviert (für die lokale Erstanmeldung wichtig ist, dass die Buchstaben z und y vertauscht sind - gebt also bei Loginfehlermeldungen mal rasberrz statt raspberry als Passwort ein).

Nachdem diese Hürde gemeistert ist und Ihr das natürlich korrigieren wollt und bei dieser Gelegenheit auch das Standardpasswort ändern wollt (was wir wirklich ernsthaft empfehlen!), gebt als erstes den folgenden Befehl ein:

sudo raspi-config

raspi-config ist ein Tool, mit dessen Hilfe Ihr neben der Änderung des Passwortes des pi-Users auch gleich die Tastaturbelegung und viele andere Einstellungen vornehmen könnt. Unter diesem Link könnt Ihr nachlesen wie Ihr innerhalb des Tools navigiert und was ihr wo einstellen könnt.

Wenn das alles erledigt ist, dann könnt Ihr Euch an die Installation von homeean machen - das wird deutlich einfacher, versprochen.

Installation

Prinzipiell lässt sich festhalten: Alle mit homeean bereitgestellten Pakete lassen sich auch manuell installieren, meist ist diese manuelle Installation auf den jeweiligen Websites / den Repositories beschrieben. Aus diesem Grund verlinken wir in den Artikeln zu jedem Paket auch noch mal die Websites, wo sich diese Informationen finden lassen.

Eleganter, einfacher und vor allem zeitsparender ist die Installation via homeean.

Pro-Tipp:
Wenn Ihr ein Paket manuell installieren wollt, dann könnt Ihr auch homeean als Ausgangsbasis benutzen. Ladet Euch einfach das generierte Installerskript herunter und benutzt es als Inspiration für Eure manuelle Installation.

Wenn Ihr die zuvor beschriebenen Installationsvoraussetzungen erfüllt - ein fertig installierter Raspberry Pi mit einem der unterstützten Betriebssysteme - dann könnt Ihr jetzt mit der Installation von homeean beginnen.

Öffnet dazu in einem Webbrowser Eurer Wahl folgende Webseite:

https://himpler.com/homeean/

In der Paketauswahl (siehe nachfolgendes Bild) wählt ihr nun einfach die gewünschten Pakete aus - es lassen sich auch alle auf einmal auswählen (Klick auf Alle auswählen oben). Hinter dem jeweiligen Paketnamen (einfach darauf klicken) verbirgt sich jeweils noch eine Kurzbeschreibung zum jeweiligen Paket mit allen relevanten Links, inkl. der Links zu einem passenden Wiki-Artikel (sofern dieser bereits erstellt wurde).

homeean-paket.sonos.png

Bildschirmfoto-2018-03-25-um-22.16.03.png

Unten auf der Seite bestätigt bitte noch die Hinweise zum Datenschutz und klickt dann den Button Installationsdatei erstellen an.

Nach dem Klick auf Installationsdatei erstellen erscheint nach kurzer Zeit unterhalb ein grüner Kaste, wie der nachfolgende:

downloadbox.PNG

Den Inhalt des grauen Bereiches - von source bis einschliesslich der schliessenden Klammer ) kopiert ihr nun in die Zwischenablage - das geht einfacher mit dem Klick auf das Kopieren-Symbol kopieren.PNGin der oberen rechten Ecke des grauen Bereiches.

Ein gültiger Inhalt der Zwischenablage könnte wie nachfolgend aussehen:

source <(wget -q https://himpler.com/homeean/a1234567-1234-1234-1234-abc12345678 -O -)

Die Skripte werden dynamisch zur Laufzeit mit jedem Klick auf Installationsdatei erstellen neu generiert. Diese generierten Skripte werdem nach einigen Tagen wieder gelöscht. Wir empfehlen für jede Installation eine neue Installationsdatei zu erstellen, damit ist auch sichergestellt, dass Ihr das jeweils aktuellste Skript generiert.

Mit dem Text in der Zwischenablage öffnet Ihr nun eine SSH-Verbindung zu Eurem Raspberry Pi und meldet Euch mit dem User pi und Eurem Passwort (das Standardpasswort raspberry solltet Ihr aus Sicherheitsgründen bereits geändert haben) an.

Wenn Ihr die IP-Adresse Eures Raspberry Pis nicht wisst, dann könnt Ihr diese über Euren Router herausfinden, der meist diese IP-Adressen an im Netz angeschlossene Geräte vergibt.

Alternativ könnt Ihr auf der Kommandozeile auch ifconfig eingeben, die IP-Adresse wird dann in der Ausgabe des Befehles ersichtlich.

Als Hinweis gilt noch zu vermerken, dass das homeean Installerskript am Ende jeder Installation versucht den Hostnamen des Raspberry Pis auf homeean zu ändern, so dass dieser oft (das ist jedoch u.U. abhängig von Eurem Router und seinem Umgang mit lokalen Domänen) nach einem Reboot auch unter http://homeean erreichbar ist.

Stellt sicher, dass Ihr Euch nach der Anmeldung (das sollte in der Regel automatisch der Fall sein) im home Verzeichnis des Users pi (/home/pi) befindet. Das solltet Ihr nicht ändern, denn das Skript kopiert fast alle Programme in dieses Verzeichnis.

Fügt dann den Inhalt Eurer Zwischenablage auf einer geöffneten Shell (auf der Ihr mit dem User pi angemeldet seid) ein und drückt Return.

Das Installationsskript wird nun heruntergeladen und gleich ausgeführt.

Der Installer wird immer mit einem Update der Paketquellen beginnen und danach, in der Reihenfolge abhängig von den Abhängigkeiten von einzelnen Paketen zueinander (NodeJS wird zum Beispiel für einige der Tools vorausgesetzt) die ausgewählten Pakete installieren.

Die Installation kann (je nach Zahl der ausgewählten Pakete, deren Abhängigkeiten und dem verwendeten Raspberry System) bis zu einer halben Stunde dauern. Solange sich auf dem Bildschirm noch regelmässig etwas tut und ihr nicht wieder in der Kommandozeile gelandet seid, läuft die Installation noch.

Haben wir zu viel versprochen? Das war doch wirklich einfach, oder?

Nach erfolgreicher Installation schadet es nichts Stefan Himpler (dem Brain hinter homeean) einen Kaffee auszugeben.

Achtung:
Derzeit unterstützt homeean nicht das Updaten von bereits installierten Paketen, indem Ihr einfach ein neues Skript generiert und die darin enthaltenen Pakete noch mal mit dem Skript neu darüber installieren lasst. Bei einem solchen Vorgehen besteht zudem die Möglichkeit, dass Ihr Eure individuellen Konfigurationen für bestehende Pakete verliert. Wir arbeiten an einer Lösung für dieses Problem. Bis dahin empfehlen wir für jede Neuinstallation ein nacktes (ggf. vorkonfiguriertes) Raspian auf eine neue oder nicht mehr benötigte SD-Karte, damit Ihr die bestehenden Konfigurationen der Pakete im Zweifelsfall wiederherstellen könnt (deswegen empfehlen wir mindestens zwei SD-Karten).

Nach der Installation

Nach der Installation empfehlen wir folgendes:

  • Schaut ob es während der Installation irgendwelche Fehlermeldungen gab und kopiert Euch entsprechende Meldungen (inkl. einiger Zeilen vorher und hinterher) in eine Textdatei. Diese könnt Ihr uns (wie im später folgenden Kapitel "Melden von Fehlern" beschrieben) für die Fehlersuche zur Verfügung stellen.
  • Lest die separaten Artikel zu allen installierten Paketen aufmerksam durch. Auch wenn wir uns bemühen die Installation komplett zu automatisieren (wir haben dazu noch einige Ideen für Verbesserungen), kann es sein, dass Ihr hier und da noch mal selbst Hand mit anlegen müsst, um ein Paket fehlerfrei zum Laufen zu bekommen. Solche individuellen Einstellungen sind in den Artikeln zu den jeweiligen Paketen beschrieben.

Dienste Starten & Stoppen

In der Regel installieren wir alle Pakete so, dass diese auch nach einem Neustart des Raspberry Pis oder einem Absturz des Dienstes wieder automatisch starten. Dazu wird der systemd system and service manager benutzt und so konfiguriert, dass ein abgestürzter Prozess nach spätestens 10 Sekunden wieder neu gestartet wird. Diese Startskripte legen wir in /etc/systemd/system ab.

Die Dienste heissen in der Regel genauso wie das Verzeichnis in dem sie im Homeverzeichnis des Users pi abgelegt werden.

Jeder so installierte Dienst lässt sich mit dem folgenden Befehl neu starten (was getan werden muss, wenn Ihr die Konfiguration verändert habt und ihr wollt, dass diese Änderung wirksam wird):
sudo systemctl restart dienstname (z.B. fregata) 

Ein erstmaliges starten oder stoppen wird mit folgendem Befehl erreicht:
sudo systemctl start/stop dienstname

Den aktuellen Status eines Dienstes erfahrt Ihr nach der Eingabe des Befehles:
sudo systemctl status dienstname

Sollte es bei einzelnen Paketen zu Abweichungen zu diesem Vorgehen kommen, dann ist das im Artikel zum jeweiligen Paket beschrieben.

Logfiles / Fehlersuche / Debugging

In der Regel installieren wir alle Pakete so, dass diese Ihre Fehlerausgaben für deren Autostart in
/var/log/syslog ausgeben, auch einige der Pakete selbst (z.B. homeeUp und die Harmony API) schreiben Ihr Logfile ins syslog.

Sollte ein Dienst also nicht funktionieren, dann wird die Eingabe von tail -f /var/log/syslog in der Regel nach spätestens 10 Sekunden (wenn der Dienst erneut zu starten versucht wird) zu einer hoffentlich sprechenden Fehlerausgabe führen.

Weitere Logfiles liegen in der Regel entweder in /var/log oder deren Pfad kann den Konfigurationsdateien der jeweiligen Dienste entnommen werden.

Sollte es bei einzelnen Paketen zu Abweichungen zu diesem Vorgehen kommen, dann ist das im Artikel zum jeweiligen Paket beschrieben.

Melden von Fehlern

Wenn die Installation generell nicht erfolgreich war, dann meldet Euch im Support-Thread auf der homee Community mit einer Fehlerbeschreibung.

Wenn ein einzelnes Paket nicht richtig funktioniert, dann meldet Euch im jeweiligen Support-Thread in der homee Community. Dort lesen auch meist die Entwickler (bei solchen speziell für homee entwickelten Lösungen) oder jemand aus dem homeean Team mit. Die Links auf diese Threads finden sich am Ende jedes Artikels zu den Paketen oder der Kurzbeschreibung des jeweiligen Paketes auf der homeean-Webseite wieder. 

Wie geht die Entwicklung von homeean weiter?

Wir entwicklen homeean neben Job, Familie und anderen Hobbys ständig weiter. Was wir diskutieren oder an Inputs erhalten, halten wir transparent auf einem Trello Board fest.

Wie kann ich das Projekt unterstützen?

Unterstützen könnt Ihr uns vor allem durch Mitarbeit, z.B. in der Erstellung von neuen oder der Optimierung von bestehenden Skripten, dem Testen (auf verschiedenen Plattformen),  in der Dokumentation der bestehenden Pakete und der Lieferung von neuen Ideen/Vorschlägen. Wir sind für alles offen - sprich uns einfach im offiziellen Support-Thread auf der homee Community an. 


Zusatzinfos

homeean Website:
https://himpler.com/homeean

Liste aller Artikel rund um homeean auf diesem Wiki:
https://www.homeepedia.de/books/homeean

Thread zu homeean in der homee Community:
https://community.hom.ee/t/homeean-skriptsammlung-fuer-webhook-apis-fuer-homee-und-einen-raspberry-pi/10166

Mit * markierte Links sind sogenannte Affiliate Links. Wenn Du über einen solchen Link bei Amazon einkaufst, erhält das homeean Projekt eine kleine Provision, mit der die Kosten für Server, Speicher und Datentransfer finanziert werden können. Du zahlst dafür nichts extra. 

 

Sonos HTTP API

Die Sonos HTTP API stellt eine REST API zur Verfügung, mit deren Hilfe - zum Beispiel via Webhooks - Sonos Boxen gesteuert werden können. Damit kannst Du nicht nur die Musik und die Lautstärke Deiner Boxen steuern, sondern auch Sprachmeldungen wie „Schatz, die Waschmaschine ist fertig!“ auf Deinen Boxen ausgeben (inkl. einem optionalen Ankündigungston wie ein Gong vor der Sprachausgabe).

In diesem Wiki-Artikel soll erklärt werden, wie das ganze im Zusammenspiel mit homee funktioniert. Die hier beschriebenen Methoden lassen sich natürlich auch auf andere Smart Home Systeme übertragen, welche Webhooks oder beliebige URL-Aufrufe unterstützen.

homee unterstützt von Haus aus bisher noch keine Sonos-Boxen, auch wenn der Gerätevorschlag zur Sonos-Integration einer der meist gelikten und diskutierten der homee Community ist.

Installation

Die API kann manuell installiert werden - siehe Zusatzinfos am Ende dieses Artikels - oder via homeean.

Die manuelle Installation ist nicht im Fokus dieses Artikels, wir konzentrieren uns auf die Installation und Konfiguration im Zusammenspiel mit homeean. Die manuelle Installation ist auf der Webseite der API ausreichend dokumentiert.

Die Installationsvoraussetzungen und die eigentliche Installation sind im nachfolgend verlinkten Wiki-Artikel ausführlich beschrieben:

Installation & Nutzung von homeean

Wenn die Installation gem. der oben verlinkten Anleitung abgeschlossen ist, dann erreicht Ihr in einem beliebigen Webbrowser eines Rechners, der sich im selben LAN-Segment wie Euer Raspberry Pi und Eure Sonos-Boxen befindet, die Weboberfläche der Sonos HTTP API wie folgt:

http://[IP-Eures-Raspis]:5005

Die IP-Adresse Eures Raspberry Pis muss Euch eigentlich schon bekannt sein, denn ansonsten hätte Ihr keine SSH-Verbindung zu diesem aufbauen können, als Hinweis gilt noch zu vermerken, dass homeean am Ende jeder Installation versucht den Hostnamen des Raspberry Pis auf homeean zu ändern, so dass oft (das ist jedoch u.U. abhängig von Eurem Router) auch http://homeean:5005 zum Erfolg führen wird.

Wenn die nachfolgende Seite erscheint, dann war die Installation erfolgreich:

Bildschirmfoto-2018-03-25-um-22.54.20.png

Wenn die Installation nicht erfolgreich war und diese Webseite nicht erscheint, dann meldet Euch im Support-Thread auf der homee Community mit einer Fehlerbeschreibung.

Nach erfolgreicher Installation schadet es nichts Stefan Himpler (dem Brain hinter homeean) einen Kaffee auszugeben.

Konfiguration

Die Sonos HTTP API muss in der Regel gar nicht mehr konfiguriert werden. Nach der Installation wird das Paket Eure Sonos-Boxen automatisch erkennen. Ob das der Fall ist erkennt Ihr nach Aufruf der API-Website unter
 http://[IP-Eures-Raspis]:5005

Wenn die Installation ohne Fehlermeldungen durchgelaufen ist, dann findet Ihr im Home-Verzeichnis des Users pi unter /home/pi ein neues Verzeichnis mit dem Namen node-sonos-http-api.

Mit dem Befehl cd node-sonos-http-api wechselt Ihr bei Bedarf in dieses Unterverzeichnis - der Gesamtpfad lautet:  
/home/pi/node-sonos-http-api

In diesem Verzeichnis befinden sich alle Dateien der API, individuelle Konfigurationen können (gem. der offiziellen Dokumentation) dort auch abgelegt werden.

Beispiele

REST-APIs

Eine REST-API zeichnet sich stark vereinfach dadurch aus, dass Sie über einen eindeutigen URL-Aufruf und eine dazu benutzte Methode (Get/Post/Put/Delete...) aufgerufen wird. In der Regel ist eine solche API dokumentiert, die Dokumentation der Sonos HTTP API findet sich hier.

homee Webhooks zum Aufruf von REST-APIs

homee unterstützt dieses Prinzip mit dem sogenannten Webhook, der als Aktion in einem Homeegramm benutzt werden kann (siehe nachfolgendes Beispielbild).

Bildschirmfoto-2018-03-26-um-22.30.14.png

Unter URL wird die URL des Raspberry Pis (hier: die lokale IP-Adresse des Beispielgerätes) mit dem Port 5005 aufgerufen, dahinter folgen jeweils nach einem "/" der Name des gewünschten Gerätes (hier Wohnzimmer), dahinter die Aktion (hier: Lautstärke), danach der gewünschte Parameter (+5%).

Als Methode benutzt die Sonos HTTP API immer GET und den Content Type braucht Ihr nicht verändern.

Selbstverständlich lassen sich auch komplexe JSON-Datenstrukturen an die API übergeben, aber das sprengt den Rahmen dieses WIKI-Artikels und wird hier nicht betrachtet.

Die Sonos HTTP API

Wir folgern also daraus, dass die Sonos HTTP API in der Regel (es gibt Ausnahmen, die aber dokumentiert sind) wie folgt aufgerufen wird:

http://[IP-Eures-Raspis]:5005/{zone name}/{action}[/{parameter}

{zone name} steht für den Namen der Zone, welche Ihr ansprechen wollt. Die Namen dieser Zonen habt Ihr in der Sonos-APP selbst bereits vergeben.

Wenn Ihr diese einmal vergebenen Zonennamen nicht in der APP findet (unter Einstellungen), dann hilft Euch die API auch weiter. Ein Klick auf /zones im Infokasten des Webinterfaces liefert Euch die Zoneneinstellungen Eurer Sonos-Installation als JSON-Datei zurück. Sucht in der Datei (spätestens jetzt versteht Ihr, warum JSON-Datenstrukturen den Rahmen dieses Artikels sprengen) nach allen Instanzen von roomname. Bei mir liefert die API folgendes (2 Mal) zurück:

,"roomName":"Wohnzimmer",

Auf die selbe Art und Weise könnt Ihr im Webinterface übrigens auch Eure favorites (Favoriten) und Eure playlists (Playlisten) auslesen.

Damit habt Ihr den Namen der ansprechbaren Zonen identifiziert. Ihr könnt jede Zone separat ansprechen oder (je nach Aktionstyp) auch alle gleichzeitig (pauseall / resumeall).

{action} steht dabei für eine der in der Dokumentation beschriebenen Aktionen, in unserem Beispiel volume (Lautstärke).

{parameter} steht dabei für einen (teilweise) optionalen Parameter, wie +5, der in unserem Beispiel die Lautstärke der ausgewählten Zone um 5% erhöhen wird. Ein absoluter Wert wie 15 würde die Lautstärke auf 15% des Maximums (100%) setzen.

Weitere Beispiele für actions und parameter findet Ihr auf der Doku-Seite der Sonos HTTP API.

Hervorzuheben sind meiner Meinung nach die folgenden (es schadet aber nichts sich alle mal anzusehen und auch mal damit herumzuspielen):

  • play (spielt etwas ab, was Ihr im Parameter definiert, was Ihr aber vorher in der Sonos APP konfiguriert haben müsst)
  • pause (pausiert eine vorher definierte Zone)
  • playpause (wechselt zwischen Play und Pause, je nachdem was Eure Boxen der gewählten Zone gerade tun)
  • say bzw. sayall führt zur Ausgabe eines im Parameter definierten Textes wie "Schatz, die Waschmaschine ist fertig!" auf einer definierten Zone oder (sayall) allen Zonen. Dieses Beispiel gehen wir als nächstes an.

Unser Beispielaufruf um die Lautstärke Eurer Wohnzimmerzone um 5% zu erhöhen (wie oben im Screenshot des Webhooks zu sehen) lautet also:

http://[IP-Eures-Raspis]:5005/Wohnzimmer/volume/+5

Kleiner Exkurs zu Anwendungsmöglichkeiten

Ihr fragt Euch warum man mit einem Webhook die Lautstärke einer Zone einstellen können will? Weil man damit z.B. mit Hilfe von Wandtastern, Homeegrammen, Webhooks und der Sonos HTTP API seine Sonos-Anlage bequem vom Esstisch aus (fern-)steuern kann. Wie das geht ist hier beschrieben und nachfolgend beispielhaft an gelaserten Eltako FT55 Enocean Tastern zu sehen: