Abspielen von lokalen Medien auf Amazon Echo

Ich verwende bei mir zu Hause momentan einen Amazon Echo Dot für die Heimautomatisierung. Mit dem kleinen Dot kann ich da sehr viele Szenarien direkt und einfach umsetzen.

Was mir bis jetzt gefehlt hat, war die Wiedergabe von Musik die auf meiner lokalen Synology liegt. Da dran hat Amazon natürlich kein Interesse, weil die Medien bei Amazon Prime (kostet ca. 69 Euro pro Jahr für 2 Mio. Songs) oder Amazon Music Unlimited (kostet zwischen 79 Euro pro Jahr und 149 Euro pro Jahr für 40 Mio. Songs) liegen sollen.

Bei Amazon kann man auch kostenlos 250 Songs in seine Musikbibliothek hochladen oder 250.000 Songs für 24,99 Euro pro Jahr kaufen (das wäre die wirtschaftlich sinnvolle Variante, wenn man den lokalen Stromverbrauch mitrechnet).

Ich habe aber alle meine Medien auf meiner lokalen Synology in meinem Hausnetzwerk. Die einzige Möglichkeit, die ich gefunden habe, ist mein Tablet oder Smartphone per Bluetooth mit dem Echo Dot zu “pairen” (das geht per “Alexa Bluetooth”) und dann ist das Endgerät mit dem Lautsprecher verbunden.

Nun kann ich mit den Apps auf dem Endgerät z.B. DS file oder DS audio die Medien auf den Lautsprecher streamen. Damit kann ich natürlich die komplette Sprachsteuerung von Alexa nicht nutzen, aber dafür habe ich ohne Umwege meine lokale Musik im Zugriff.

Eine elegantere Möglichkeit habe ich leider gerade nicht gefunden. Kennt Ihr einen Weg Medien per UPnP oder auf einer Synology lagernd direkt in Alexa / Amazon Echo zu integrieren (ohne die Daten erst in die Cloud zu bringen)?

Sanftes Dimmen der EIB / KNX Lichter, wenn der der Beddi-Alarm ausgelöst wird

Bis jetzt habe ich das Licht im Schlafzimmer immer auf 100 % geschalten, wenn mich unter der Woche der Alarm des Beddi-Weckers aufgeweckt hat. Aber die Halogenlichter sind da doch recht hell 🙂

Ich habe also eine kleine Regel erstellt, um das Licht beim Aktivieren des Weckers langsam zu dimmen.

Items

Ich habe einen Switch in der Items-Datei von openHAB 2 für den Wecker erstellt:

Switch Beddi_Wecker "Beddi Wecker" (gLicht_OG, gLicht)

Rules

Dieser Switch wird durch diese einfache Regel gesteuert. Wenn das Status “ON” vorhanden ist, wird das Licht in 5 % Schritte beginnend bei 50 % des Wertes alle 5 Sekunden höher gedimmt:

rule "Beddi Wecker"
 when
 Item Beddi_Wecker received update
 then
 if(Beddi_Wecker.state == ON) {
 var percent = 5
 while(percent < 50) {
 sendCommand(Dimmen_OG_Schlafen, new Integer(percent).toString)
 percent = percent + 5
 Thread::sleep(5000) // 5 Sekunden
 }
 }
 
 logInfo("Beddi Wecker","Beddi Wecker wurden per Regel gesteuert")
end

Fazit

Durch diese einfache Regel ist es einfach möglich in der Früh ohne allzu grelles Licht geweckt zu werden.

Welche Einsatzgebiete seht Ihr noch bei einem “smarten Wecker”?

EIB / KNX Lichtgruppen per Alexa in openHAB 2 schalten

Ich wollte in unserer Hausinstallation ein paar Gruppenfunktionen (Licht EG, Licht OG, Licht Gesamt) per openHAB 2 mit Alexa schalten. Dazu verwende ich momentan noch die Hue Emulation wie in diesem Beitrag beschrieben. Ich wollte jetzt auch ein paar Gruppen- und Zentralfunktionen steuern z.B. wenn ich das Haus verlasse alle Lichter mit “Alexa – Licht Haus ausschalten” deaktivieren.

Leider kann ich die konfigurierten Gruppen aus openHAB nicht per Alexa steuern (ggf. liegt es auch an der Hue Emulation).

Ich habe mir dann mit einem Scripting-Workaround beholfen, den ich euch hier kurz beschreiben möchte.

Items

Es wird ein wirtueller Switch in der Items-Datei für die Funktion generiert. Hier ein mal ein Beispiel:

Switch Licht_Gesamt “Licht Gesamt” (gLicht_OG, gLicht_EG, gLicht) [“Lighting”]

Der Switch wird mit dem Kommand “Licht Gesamt” gestartet und ist per [“Lighting”] für Alexa freigegeben. Optional habe ich meine globale Gruppe noch gefüllt (gLicht_OG, gLicht_EG, gLicht).

Rules

Dann habe ich mir eine Regel geschrieben, die reagiert wenn der Status von dem Switch Licht_Gesamt sich ändert. Ihr müsst hier nur entsprechend euren Vorstellungen die sendCommand Funktionen anpassen:

rule "Licht - Gesamt"
 when
 Item Licht_Gesamt received update
 then
 if(Licht_Gesamt.state == ON) {
 sendCommand(Licht_EG_Buero, ON)
 // Alle weiteren Lichter / Funktionen
 // ...
}
 
 if(Licht_Gesamt.state == OFF) {
 sendCommand(Licht_EG_Buero, OFF)
 // Alle weiteren Lichter / Funktionen
 // ...
}
 
 logInfo("Licht - Gesamt","Lichter im gesamten Haus wurden per Regel gesteuert")
end

Fazit

Durch diese kleine Regel kann ich jetzt über Alexa meine Zentralfunktionen im Haus steuern. Wobei ich aktuell nur das Licht im gesamten Haus beim Verlassen das Hauses deaktivieren möchte. Seht Ihr noch weitere Anwendungsfälle für zentrale Gruppenfunktionen?

Hat da jemand eine Idee warum ich die “Group” Funktoin von openHAB 2 nicht mit Alexa und der Hue Emulation verwenden kann?

 

EIB / KNX Rollläden per Alexa und openHAB steuern

Im letzten Artikel habe ich schon einmal kurz beschrieben, wie man Lichter und Steckdosen schalten und auch Lichter per Alexa und openHAB dimmen kann. Momentan fehlt dazu bei mir noch das Steuern der Rollläden im Haus. Beim Suchen in der Dokumentation ist mir keine Anbindung von “Rollershuttern” in der Hue Emulation aufgefallen.

Hier gab es aber einen Kommentar vom 30.12.2016 von Thomas Schwarz, wie man per [“Lightning”] auch Rollläden anbinden kann.

Items

Die Rollläden müssen entsprechend konfiguriert sein (siehe erstes Item). Zusätzlich benötigt man einen Switch um das Sprachkommando aufzunehmen.

Rollershutter Jalousie_EG_Wohnzimmer "Jalousie Wohnzimmer" (gJalousie_EG, gJalousie, gEG_Wohnen) {knx="5/0/2,5/0/1"}
Switch Jalousie_EG_Wohnzimmer_Name "Jalousie Wohnzimmer" ["Lighting"]

Rules

Eine Regel kann dann für Alexa wie folgt aussehen:

rule "Jalousie_EG_Wohnzimmer"
 when
 Item Jalousie_EG_Wohnzimmer_Name received command
 then

var $i = 0

switch(receivedCommand) {
 case ON: 
 while($i < 700) {
 Jalousie_EG_Wohnzimmer.sendCommand(UP)
 $i++ 
 }
 
 case OFF: 
 while($i < 660) {
 Jalousie_EG_Wohnzimmer.sendCommand(DOWN)
 $i++ 
 }
 }
 logInfo("INFO","Regel ausgeführt - Jalousie_EG_Wohnzimmer")
end

Die While-Schleife benötigt man nicht zwingend (ich habe die nur eingebaut, da meine Rollläden ansonsten nicht sauber gesteuert werden können).

Sprachsteuerung

Ich kann jetzt mit “Alexa, schalte Jalousie Wohnzimmer an /aus” die Rollläden entsprechen hoch- und runterfahren.

Lieber wäre mir hier noch, wenn Alexa / die Hue Emulation anstatt “an und aus” besser “hoch und runter” verstehen würden. Das habe ich aber auf die Schnelle nicht hinbekommen. Hat dazu jemand eine Idee?

 

Integration Alexa in openHAB für Sprachsteuerung des Bus-Systems

Hier wird beschrieben, wie man in openHAB 2 einen Amazon Echo Dot (Alexa) integrieren kann. Ziel ist es unsere EIB / KNX Hausinstallation per Sprache zu steuern.

Haus.items

Die Items in openHAB müssen für die Verwedndung der Hue Emulation entsprechend angepasst werden. Folgende Eigenschaften können ergänzt werden:

  • [“Lighting”]
  • [“Switchable”]
  • [“TargetTemperature]

Ein EIB-Item bei mir im Büro sieht wie folgt aus:

Switch Licht_EG_Buero  "Licht Büro"(gEG_Buero, gLicht_EG, gLicht) ["Lighting"] {knx="<0/0/4711"}

Paper UI

In der Administrationsoberfläche “Paper UI” muss man dann die Hue Emulation aktivieren.

Dies erfolgt unter “Addons – Misc – Hue Emulation – INSTALL”.

Danach wird das Pairing unter “Configuration – Services – Hue Emulation – CONFIGURE – Pairing enabled” aktiviert.

Die Hue Emulation ist notwendig, da es aktuell noch kein direktes Binding für Alexa in openHAB gibt.

Amazon Alexa App

In der AlexaApp kann man dann unter Smarthome den Befehl “Geräte suchen” ausführen (oder direkt per Sprachbefehl: Alexa: Geräte suchen).

Danach werden in der App die entsprechend konfigurierten Items angezeigt und können über Alexa per Sprache gesteuert werden.

Sprachsteuerung

Durch diese einfache Konfiguration kann ich jetzt alle meine EIB-Items per Sprache steuern.

Ich habe dies mit folgenden Befehlen integriert:

  • Alexa, schalte Licht Büro ein / aus
  • Alexa, setze Dimmen Büro auf 20 %
  • Alexa, schalte Steckdose Büro Computer ein / aus

Fazit

Das war die bis jetzt einfachste Integration eines neuen Endgeräts in openHAB.

Was meint Ihr dazu? Würdet Ihr eine Sprachsteuerung bei euch zu Hause nutzen? Würdet Ihr Amazon vertrauen um euer Smart Home zu steuern?

Erster Test mit Amachon Echo Dot

Am 23.01.2017 wurde mir ein Amazon Echo Dot geliefert. Ich habe bewusst den Dot und nicht den normalen Echo bestellt, da ich das Gerät nur zur Sprachsteuerung unserer EIB / KNX Installation verwenden möchte und damit auf die integrierten Lautsprecher nicht angewiesen bin.

Der Echo Dot ist sehr schnell in Betrieb genommen. Dazu wird auf dem Smartphone die Amazon Echo App installiert und dort kann man dann per Bluetooth die Erstkonfiguration vornehmen und das Gerät in das WLAN aufnehmen. Gleichzeitig werden die neuesten Softwareupdates auf dem System installiert.

Damit ist die Einrichtung auch schon erledigt und ein paar Kommandos können getestet werden:

  • Alexa: Spiele “Rock Antenne”
  • Alexa: Spiele Playlist “Hardrock-Klassiker”
  • Alexa: Wie ist das Wetter?
  • Alexa: Stelle einen Wecker auf 15 Uhr
  • Alexa: Aktuelle Infos des Tages

Es gibt also ein paar schöne Kommandos für den Dot. Das Gerät kann noch um “Skills” erweitert werden (das schaue ich mir aber später an).

Jetzt wird erst einmal Alexa in openHAB integriert 🙂

Update auf die Release-Version 2.0 von openHAB

Am 23.01.2017 wurde die Version 2.0 von openHAB veröffentlicht. Die Änderungen bzw. das Changelog der Version findet ihr hier.

Das Update meiner Version vom 24.12.2016 auf die offizielle Version konnte ich wie folgt durchführen:

sudo systemctl stop openhab2.service

wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -

echo 'deb http://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee /etc/apt/sources.list.d/openhab2.list

sudo apt-get update
sudo apt-get upgrade

sudo systemctl start openhab2.service

Die Aktualisierung hat ca. 15 Minuten benötigt. Nach dem Update habe ich einmal alle Logs kontrolliert und die Funktionen getestet. Das Update war ohne weitere Anpassungen erfolgreich 🙂

Wie nutze ich meinen Beddi-Wecker?

Aktuell habe ich in meinem Beddi-Wecker folgende Alarme definiert (hier kann man beliebig variieren):

  • Wochentags zu einer bestimmten Uhrzeit z.B. 06:30 Uhr von Montag – Freitag
  • Sonntags einen Einzelalarm z.B. 06:00 Uhr zum Laufen
  • Einen individuellen Alarm, wenn ich mal zu anderen Zeiten aufstehen muss / will

Im Alarm habe ich für mich einen ruhigen Ton zum Wecken eingestellt (FM-Radio benötige ich in der Früh zum Aufstehen eher nicht, auch wollte ich nicht eine extra Playlist beim Wecken zusammenstellen).

Beim Wecken habe ich dann noch eingestellt, dass die aktuellen Wetterinformationen vorgelesen werden.

Der wichtigste Punkt war für mich dann die Weckation “HTTP Request”. Damit kann ich wie folgt direkt meine openHAB-Installation ansprechen und dort Regeln auslösen (hier geht dann auch IFTTT etc.):

http://IP:PORT/classicui/CMD?VARIABLE=ON

Damit wird momentan das Licht im Schlafzimmer automatisch eingeschalten. Hier benötige ich noch etwas mehr Intelligenz, dass in der Früh das Licht nicht auf 100 % angeht, sondern auf ca. 30 % automatisch gedimmt wird 😉

Viele der Funktionen des Beddi nutze ich aktuell nicht z.B. individuelle Smartbuttons, FM-Radio, Lichtsteuerung, bestimmte Töne / Melodien die beim Einschlafen helfen sollen oder die Ansteuerung externer Services wie Spotify, Nest, Philips hue etc.

Was meint Ihr dazu? Würdet Ihr euch einen “smarten Wecker” in das Schlafzimmer stellen? Welche Szenarien fallen euch dazu ein?

Unschärfen des “Beddi” Weckers

Ich habe mir vor ein paar Wochen einen Intelligenten Beddi Wecker für zu Hause gekauft.

Der Wecker hat bis jetzt zuverlässig funktioniert. Ich nutze aber nur einen Teil der Funktionen. Ziel war es, über den Wecker ein Gerät zu haben, mit dem ich bestimmte Funktionen beim Aufstehen automatisieren kann.

Ich bin beim Kauf davon ausgegangen, dass der Wecker sich direkt in das Netzwerk per WLAN integriert. Der Wecker wird aber von der Logik direkt von einer Smartphone-App per Bluetooth gesteuert d.h. es muss das Smartphone im Schlafzimmer sein. Normalerweise liegt mein Telefon aber zum Laden über Nacht immer im Büro.

Fazit ist, dass ich jetzt mein Smartphone in das Schlafzimmer legen muss, damit eine Bluetooth-Verbindung zum Wecker hergestellt wird. Der Beddi hat einen USB-Anschluss d.h. das Telefon kann direkt von dort geladen werden. Auch ist das Smartphone automatisch auf lautlos gestellt, wenn es geladen wird.

Außerdem kann man ohne Smartphone nicht erkennne, ob ein Alarm am Gerät aktiv ist. Auch ist es ohne Smartphone nicht möglich einen Alarm zu aktivieren oder zu deaktivieren. Das ist bei einem solchen Gerät etwas schade, aber “works as designed”.

Ich habe bei Wittidesign nachgefragt, ob dort auch ein Gerät zur Verfügung ist, dass direkt im WLAN integriert ist und ohne weiteres Gerät funktioniert. Ein solches Gerät ist für 2017 in Planung. Das könnte dann eine interessante Alternative für mich sein …

 

Erstes eigenes Binding für openHAB

Nachdem der Aufbau der Entwicklungsumgebung beschrieben wurde, muss natürlich auch ein eigenes Binding programmiert werden 🙂

Hier gibt es auch schon eine kurze Einführung dazu:

Ich habe neben dem Video noch folgende Anpassungen durchführen müssen:

  • Maven herunterladen und den PATH um das BIN-Verzeichnis erweitern
  • Systemvariable JAVA_HOME auf das aktuelle Java-Verzeichnis erstellen (ansonsten kann man den Befehl “mvn” nicht ausführen)
  • Das Binding (Code-Gerüst) wie folgt erstellen:
    • create_openhab_binding_skeleton.cmd CoolStuff coolstuff
    • Danach den Author eingeben und die restlichen Vorgaben mit “Yes” akzeptieren
  • Damit wird das Projekt “org.openhab.binding.coolstuff” erzeugt

Das Projekt kann jetzt direkt in Eclipse ausgeführt und erweitert werden.

Folgende wichtige Dateien habe ich mir aus dem Video noch notiert:

  • \org.openhab.binding.coolstuff\pom.xm (Build-File für Maven)
  • \org.openhab.binding.coolstuff\ESH-INF\binding\binding.xml (Binding-File für openHAB)
  • \org.openhab.binding.coolstuff\ESH-INF\thing\thing-types.xml (Thing-File für openHAB)
  • \org.openhab.binding.coolstuff\src\main\java\org\openhab\binding\coolstuff\handler\CoolStuffHandler.java (Ablageort für die Logik des Bindings)

Die Erstellung eines eigenen Bindings war damit doch recht einfach. Jetzt muss ich mal schauen, wie man ein UPnP-Radio in ein Binding integriert.

Happy Coding 🙂