

Am 06.11.2016 habe ich mein Jahreslaufziel von 800 Kilometern erreicht. Zum 31.12.2016 habe ich jetzt folgende LĂ€ufe durchgefĂŒhrt und mit Runtastic protokolliert:
Mal schauen wie ich 2017 mit dem Laufen weiter vorankomme. Als Jahresziel sind jetzt auf alle FĂ€lle erst einmal 1000 Kilometer gesetzt. Dann muss ich mal schauen, ob ich lieber einen schnelleren Halbmarathon oder einen „langsamen“ Marathon laufen möchte (da bin ich noch unschlĂŒssig) đ
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:
Das Projekt kann jetzt direkt in Eclipse ausgefĂŒhrt und erweitert werden.
Folgende wichtige Dateien habe ich mir aus dem Video noch notiert:
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 đ
Ich habe mittlerweile zwei GerĂ€te bei uns gefunden, fĂŒr die keine openHAB-Bindings existieren. Dazu gehören auch unsere Philips Streamium MP3 Radios. Diese sind per UPnP im Netzwerk erreichbar und ich wĂŒrde die Radios gerne per Binding anbinden.
FĂŒr den Aufbau der Eclipse-Entwicklungsumgebung gibt es hier bereits ein Video (auf Basis von Eclipse Mars):
Aktuell ist Eclipse Neon (4.6.1). Ich habe die IDE Ă€hnlich wie in dem Video aufgebaut. Hier noch einmal die Ănderungen, die bei mir notwendig waren:
FĂŒr einen Funktionstest kann man nun unter „Run – Run Configurations“ die „Eclipse Application openHAB_Runtime“ starten und sich mit http://localhost:8080 darauf verbinden.
Als ich das letzte Mal mit Eclipse zu tun hatte (dĂŒrfte so Version 3.2 – Callisto gewesen sein), war das alles noch nicht so einfach đ
Auf unserem Fire TV Stick von Amazon lĂ€uft das Media-Center Kodi. Es macht dann natĂŒrlich auch Sinn die Mediensteuerung in die Hausautomatisierung zu integrieren.
Hier in dem Beispiel möchte ich die Informationen von Kodi in openHAB darstellen und Kodi damit fernsteuern. Es sollen auch bestimmte Aktionen ausgefĂŒhrt werden z.B. wenn ich Pause drĂŒcke, soll das Licht automatisch gedimmt werden.
Im ersten Schritt sollte man kontrollieren, ob man im Fire TV Stick eine feste IP-Adresse hinterlegt hat (das kann man im WLAN-Dialog unter erweitert etwas versteckt einstellen).
Danach Kodi starten und kontrollieren, ob das Einstellungslevel mindestends „Standard“ ist (oder wie bei mir „Fortgeschritten“.
Dann kann man unter „System – Einstellungen – Dienste – Webserver“ die „Steuerung ĂŒber HTTP zulassen“ aktivieren.
AuĂerdem muss man noch unter „System – Einstellungen – Dienste – Fernsteuerung“ die „Steuerung ĂŒber lokale Programme zulassen“ und „Steuerung ĂŒber entferne Programme zulassen“ einschalten.
Das Ergebnis kann man mit dem Aufruf http://IP-ADRESSE:8080 kontrollieren.
Nun wird das Binding in openHAB 2.x aktiviert – „Paper UI – Add-ons – BINDINGS – XBMC Binding“ – dazu INSTALL auswĂ€hlen.
Nun kann man das Binding ĂŒber den Eclipse SmartHome Desinger unter „Services – xbmc.cfg“ parametrieren:
# Hostname / IP address of your XBMC host (required). Example: livingRoom.host=IP-ADRESSE # Port number for the json rpc service (optional, defaults to 8080). Example: livingRoom.rsPort=8080 # Port number for the web socket service (optional, defaults to 9090). Example: livingRoom.wsPort=9090 # Username to connect to XBMC. (optional, defaults to xbmc). Example: livingRoom.username=xbmc # Password to connect to XBMC. (optional, defaults to xbmc). Example: livingRoom.password=xbmc #Refresh interval in ms (optional, defaults to 60000ms [1 minute]) refreshInterval=60000
In diesem Beispiel muss die IP-ADRESSE noch getauscht und optional Benutzer und Passwort gesetzt werden.
Danach kann man beginnen seine gewĂŒnschten Items einzufĂŒgen. Eine Ăbersicht der Möglichkeiten findet Ihr hier.
Meine erste Test-Konfiguration sieht wie folgt aus:
Switch XBMC_System_State "XBMC - System.State [%s]" {xbmc="<[#livingRoom|System.State]"} Switch XBMC_System_Shutdown "XBMC - System.Shutdown" {xbmc=">[#livingRoom|System.Shutdown]", autoupdate="false"} String XBMC_Player_State "XBMC - Player.State [%s]" {xbmc="<[#livingRoom|Player.State]"} String XBMC_Player_Title "XBMC - Player.Title [%s]" {xbmc="<[#livingRoom|Player.Title]"} Switch XBMC_Player_PlayPause "XBMC - Player.PlayPause" {xbmc=">[#livingRoom|Player.PlayPause]", autoupdate="false"} Switch XBMC_Player_Stop "XBMC - Player.Stop" {xbmc=">[#livingRoom|Player.Stop]", autoupdate="false"} String XBMC_GUI_ShowNotification "XBMC - GUI.ShowNotification [%s]" {xbmc="<[#livingRoom|GUI.ShowNotification]", autoupdate="false"} String XBMC_Label_Player_FinishTime "XBMC - Label.Player.FinishTime [%s]" {xbmc="<[#livingRoom|Label.Player.FinishTime]"} String XBMC_Label_Player_Time "XBMC - Label.Player.Time [%s]" {xbmc="<[#livingRoom|Label.Player.Time]"} String XBMC_Label_System_Uptime "XBMC - Label.System.Uptime [%s]" {xbmc="<[#livingRoom|Label.System.Uptime]"} String XBMC_Label_VideoPlayer_VideoCodec "XBMC - Label.VideoPlayer.VideoCodec [%s]" {xbmc="<[#livingRoom|Label.VideoPlayer.VideoCodec]"}
Die Visualisierung in der Sitemap habe ich mir wie folgt aufgeteilt:
Text label="Kodi (Fire TV Stick)" icon="video" { Frame label="System" { Text item=XBMC_System_State label="Systemstatus [%s]" Text item=XBMC_Label_System_Uptime label="Systemlaufzeit [%s]" //Switch item=XBMC_System_Shutdown label="Herunterfahen" mappings=[OFF="OK"] visibility=[XBMC_System_State==ON] } Frame label="Mediensteuerung" { Switch item=XBMC_Player_PlayPause label="Wiedergabe starten" mappings=[ON="Play"] visibility=[XBMC_Player_State==Pause] Switch item=XBMC_Player_PlayPause label="Wiedergabe pausieren" mappings=[ON="Pause"] visibility=[XBMC_Player_State==Play] Switch item=XBMC_Player_Stop label="Wiedergabe beenden" mappings=[ON="Stop"] visibility=[XBMC_Player_State==Play, XBMC_Player_State==Pause] } Frame label="Medieninformationen" { Text item=XBMC_Player_State label="Medienstatus [%s]" Text item=XBMC_Player_Title label="Gerade lÀuft [%s]" Text item=XBMC_Label_Player_Time label="Aktuelle Laufzeit [%s]" Text item=XBMC_Label_Player_FinishTime label="Ende um [%s]" Text item=XBMC_Label_VideoPlayer_VideoCodec label="Video-Codec [%s]" } }
Um das Zusammenspiel etwas besser darzustellen wird mit dieser Regel sobald man Pause drĂŒckt per KNX das Licht gedimmt (und bei Play wieder ausgeschalten):
var Number brightnessBeforePause rule "Licht an bei Pause" when Item XBMC_Player_State changed from Play to Pause then brightnessBeforePause = Dimmen_EG_Wohnen.state as DecimalType logInfo("TEST","Licht vor Pause: " + brightnessBeforePause) if (brightnessBeforePause < 50){ sendCommand(Dimmen_EG_Wohnen,50) } end rule "Licht aus bei Pauseende" when Item XBMC_Player_State changed from Pause to Play then if (Dimmen_EG_Wohnen.state == 50){ sendCommand(Dimmen_EG_Wohnen,OFF) } end
Mit dem XBMC / Kodi Binding ist es recht einfach das Media-Center in openHAB zu integrieren. Damit kann ich zukĂŒnftig wieder auf eine Fernbedienung verzichten.
Leider habe ich keine Möglichkeit gefunden Kodi auf dem Fire TV Stick automatisch zu starten (das geht scheinbar nur, wenn es auf eigenstĂ€ndiger Hardware lĂ€uft). Auch funktioniert in meiner Kodi-Version 15.1 der Befehl „System.Shudown“ nicht um Kodi abzuschalten.
Welche AnwendungsfÀlle fallen euch im Zusammenspiel mit Kodi ein?
Ab und zu benötigt man zur Steuerung nicht nur fixe Uhrzeiten, sondern auch astronomische Ereignisse z.B. Sonnenaufgang oder Sonnenuntergang.
Wir möchten zum Beispiel die Weihnachtsbeleuchtung einschalten, wenn die Sonne untergegangen ist. Oder die Jalousien öffnen, eine Stunde bevor die Sonne aufgegangen ist.
Dazu benötigt man in openHAB das Astro-Binding.
In der Things-Datei dazu die notwendige Konfiguration vornehmen und mit den GPS-Koordinaten vervollstÀndigen:
astro:sun:home [ geolocation="xx.xxxxxx,xx.xxxxxx", interval=60] astro:moon:home [ geolocation="xx.xxxxxx,xx.xxxxxx", interval=60]
Orte kann man sich hier in GPS-Koordinaten darstellen lassen.
Nun kann man aus der Dokumentation die Items in seine Konfiguration ĂŒbernehmen:
DateTime Sunrise_Time "Sonnenaufgang [%1$tH:%1$tM]" {channel="astro:sun:home:rise#start"} DateTime Sunset_Time "Sonnenuntergang [%1$tH:%1$tM]" {channel="astro:sun:home:set#start"} Number Azimuth "Azimut" {channel="astro:sun:home:position#azimuth"} Number Elevation "Höhenlage" {channel="astro:sun:home:position#elevation"} String MoonPhase "Mondphase" {channel="astro:moon:home:phase#name"}
Etwas komplizierter wird es mit den Regeln. Hier fehlt im Gegensatz zu openHAB 1.x in der 2.x Version noch die Funktion „trigger channels“ anzusprechen (das Verhalten ist hier und hier beschrieben).
Behelfen kann man sich aber, indem man die Regel z.B. alle 8 Minuten startet und dann entsprechend reagiert (bis die oben genannten Requests umgesetzt wurden):
rule "sunrise-sunset" when //Channel 'astro:sun:home:rise#event' triggered START Time cron "8 * * * * ?" then val now_ms = now.millis val sunrise = (Sunrise_Time.state as DateTimeType) val sunset = (Sunset_Time.state as DateTimeType) logInfo("Astro Rules", "sunrise: "+ sunrise) logInfo("Astro Rules", "sunset: "+ sunset) logInfo("Astro Rules", "now in ms: "+ now_ms) end
Ich habe gerade noch gesehen, dass es auch ein Binding fĂŒr Onkyo-Receiver fĂŒr openHAB 2.x gibt. Mein Receiver Onkyo TX-NR515 wird dort zwar nicht offiziell unterstĂŒtzt, aber funktioniert trotzdem einwandfrei. đ
Als erstes wieder die „Dinge“ erkennen lassen. Bei der manuellen Erkennung hat leider die Steuerung bei mir nicht funktioniert:
onkyo:onkyoAVR:myOnkyo [ipAddress="xxx.xxx.xxx.xxx", port=60128]
Es muss im Binding noch die richtige IP-Adresse angegeben werden.
Ich habe also ĂŒber Paper UI das GerĂ€t automatisch erkennen lassen. Damit lĂ€uft es dann einwandfrei.
Ich nutze an dem Receiver nur die Zone 1 und auch keine NET-Funktionen. FĂŒr einen ersten Test kann man die Funktionen wie folgt in seine Item-Datei aufnehmen:
Switch Onkyo_Power "Onkyo - Power" {channel="onkyo:onkyoAVR:xxxIDxxx:zone1#power"} Number Onkyo_Input "Onkyo - Eingang" {channel="onkyo:onkyoAVR:xxxIDxxx:zone1#input"} Dimmer Onkyo_Volume "Onkyo - LautstÀrke" {channel="onkyo:onkyoAVR:xxxIDxxx:zone1#volume"} Switch Onkyo_Mute "Onkyo - Stumm" {channel="onkyo:onkyoAVR:xxxIDxxx:zone1#mute"}
Die xxxIDxxx muss noch gegen den richtigen Unique Device Name getauscht werden.
Dann kann man den AVR wie folgt im Web / App visualisieren:
Text label="Onkyo AVR" icon="video" { Switch item=Onkyo_Power label="Ausschalten" Setpoint item=Onkyo_Volume label="LautstÀrke Àndern" minValue=0 maxValue=50 step=1 visibility=[Onkyo_Power==ON] Switch item=Onkyo_Mute label="Stumm" visibility=[Onkyo_Power==ON] Selection item=Onkyo_Input label="Eingang wechseln" mappings=[01="CBL/SAT", 02="GAME", 03="AUX", 05="PC", 16="BD/DVD", 34="PHONO", 35="TV/CD", 36="FM", 37="AM", 39="NETWORK", 41="USB", 46="BLUETOOTH"] visibility=[Onkyo_Power==ON] }
Mittlerweile bin ich bei der Einbindung von neuen GerÀten in openHAB recht schnell geworden. Man muss aber immer schauen, ob man aus einer Einbindung eines GerÀts den entsprechenden Nutzen hat.
Beim Onkyo-Receiver ist mir aufgefallen, dass das entfernte Einschalten nicht funktioniert (aber das Ausschalten). Da ich dafĂŒr scheinbar ein Firmeware-Update benötige, werde ich das jetzt erst einmal so belassen (bis ich ein vernĂŒnftiges Szenario dafĂŒr habe). Leider gab es im Internet einige BeitrĂ€ge, bei denen nach einem Firmeware-Update der Receiver nicht mehr bedienbar war.
Ich habe zufĂ€llig auch bemerkt, dass der Receiver ĂŒber vTuner auch als Internetradio verwendet werden kann. Das macht natĂŒrlich nur Sinn, wenn ich den Radio ĂŒber openHAB auch einschalten kann đ
Am 24.12.2016 wurde die neue Beta-Version von openHAB 2.0 beta5 veröffentlicht. Hier findet Ihr ein paar Informationen zur AnkĂŒndigung und den Erweiterungen.
Falls Ihr die beta4 im Einsatz habt, passt beim Update etwas auf (hier gab es Ănderungen die nicht abwĂ€rtskompatibel sind). Es wurde von einer proprietĂ€ren mapdb auf eine offene jsondb gewechselt (und davon gibt es keinen Migrationspfad).
Das Update kann durch die automatische Installation einfach per apt-get durchgefĂŒhrt werden:
sudo systemctl stop openhab2.service sudo apt-get update sudo apt-get upgrade sudo systemctl start openhab2.service
Ich habe also erst einmal den Dienst gestoppt, dann das Update durchgefĂŒhrt und der Dienst wird wieder automatisch gestartet.
Danach einmal die Logs und die Bindings kontrolliert. Aus irgendeinem Grund muss ich das KNX und das Fritzbox TR064 Binding neu installieren. Nachdem ich das gemacht habe, haben aber wieder alle Szenarien einwandfrei funktioniert.
Der nĂ€chste wichtige Termin ist der 22.01.2017. An dem Tag soll die Version 2.0 offiziell erscheinen đ
Habt Ihr auch schon auf beta5 aktualisiert? Falls ja, lief bei euch alles reibungslos?
Schritt fĂŒr Schritt wird die Hausautomatisierung ausgebaut. Da ich gerade an der Integration der Rauchmelder bin, möchte ich natĂŒrlich eine externe Benachrichtigung auf mein SmartPhone haben, wenn ein Rauchmelder im Haus auslöst.
Normalerweise verwende ich fĂŒr Nachrichten WhatsApp, aber das ist leider direkt an die Telefonnummer gebunden. Bei onesmarthome habe ich die Integration von Telegram in openHAB gesehen. Damit kann ich alle Nachrichten des SmartHome direkt auf das Telefon „pushen“. Die genaue Einrichtung wird in dem oben genannten Link erklĂ€rt.
Hier einmal die Kurzfassung:
Jetzt kann man wie folgt per Script oder automatisiert an seinen neuen Bot Textnachrichten senden:
sendTelegram("reinhard", "Licht wurde eingeschalten")
In Kombination mit der Hausautomatisierung und den Rauchmeldern fallen mir da einige Einsatzszenarien ein. Welche Szenarien seht Ihr fĂŒr Push-Nachrichten direkt auf ein mobiles EndgerĂ€t?
Ich habe mir gerade noch einen smarten bzw. intelligenten Wecker bestellt. Ich denke bei dem BEDDI passt der Funktionsumfang und der Preis sehr gut.
Hier sieht man was man mit dem BEDDI-Wecker alles so machen kann:
Die meisten Funktionen werde ich nicht benötigen. Ich möchte den Wecker nur nutzen um meine openHAB-Regeln und EIB / KNX Funktionen beim Aufstehen zu aktivieren.
Hoffentlich dauert die Lieferung jetzt ĂŒber Weihnachten nicht zu lange đ