Der Gäste-Modus

Ihr kennt das sicher: wenn Gäste zu besuch sind, gibt es immer in paar Aufgaben die zu erledigen sind.

Ich finde es zum Beispiel sehr angenehm, wenn in unserem Flur immer ein kleines Licht brennt (der Flur ist sonst extrem Dunkel) und auch der Warmwasser Boiler im Gäste-WC muss eingeschaltet werden. Außerdem sollte natürlich wenn es dunkler wird das Ambiente – Licht im Wohnzimmer eingeschaltet werden.

Dazu habe ich bei mir in FHEM einen Gäste-Modus erstellt der genau diese Tasks abdeckt. Geschaltet wird der Task über meine TabletUI:

Bildschirmfoto 2016-07-23 um 19.00.28

Hier wird nur ein Dummy DUM_Guests auf „on“ gesetzt. Über DOIF Funktionen werden dann das Garderobenlicht im Flur sowie der Wasserboiler aktiviert und bei Dämmerung (festgestellt über den Lichtsensor meiner Z-Weather Anlage) das Licht im Wohnzimmer:

([DUM_Guests:state] eq „on“ and [BK.Wetterstation:luminance] < 25) (set Lampe_Wohnzimmer on; define WZ.SofaAuf100Dim at +*{7}00:01:00 set WZ.SofaFarbe dimup 15)

Somit kann ich durch nur einen Tastendruck alles nötige Veranlassen um es unseren Gästen bequem zu machen 🙂 Mal sehen, was mir noch so einfällt…

Status meines „Smart Home“

Dies soll ein Artikel über die aktuell verwendeten Komponenten sein, den ich regelmäßig aktualisiere.

Stand: 07. Juli 2016

Wohnzimmer

Flur

  • Fibaro Zwischenstecker an der Garderobenbeleuchtung
  • Tablet für die Steuerung mit der TabletUI in der Garderobe

Schlafzimmer

Badezimmer

Arbeitszimmer

Balkon

Steuerung

Smart Home Abläufe (Teil 1)

In der letzten Zeit habe ich mir Gedanken gemacht, was ich mit meinem Smart Home Projekt eigentlich erreichen möchte. Warum fange ich an, Lampen, Fernseher etc. mit „intelligenter“ Technik auszustatten.

Angefangen hat das Ganze als Spielerei, aber jetzt soll es doch nützlich werden. Der erste Prozess den ich umgesetzt habe war das „zu Bett gehen“.

Wenn der TV im Wohnzimmer nach 21 Uhr ausgeschaltet wird, erkennt der FHEM Server das als „ins Bett gehen“. Das trifft zwar nicht immer zu, ist aber ein ganz guter Indikator.

Als Aktion leitet er daraus folgendes ab:

  • Im Wohnzimmer wird für eine Dauer von 10 Minuten der LED Streifen auf 50% aktivieren. [In Zukunft soll noch das Licht im Flur aktiviert werden, da fehlt aber der Aktor noch.]
  • im Schlafzimmer werden der Strom für den TV und den FireTV sowie die Beleuchtung aktiviert.
    • Sollte ich nicht innerhalb von 15 Minuten Kodi starten, wird alles wieder abgeschaltet da ich es offensichtlich nicht brauche.
    • Nach dem Starten eines Videos in Kodi automatisch das Licht abgeschaltet.
    • Nach dem Kodi auf den Status „stop“ gewechselt hat überprüft ein Watchdog ob ich innerhalb von 5 Minuten wieder ein Video starte, wenn nicht werden TV und FireTV abgeschaltet. Ein etwas „improvisierter“ Sleep-Timer.
      • Sollte ich Kodi händisch beenden, werden auch der TV und FireTV abgeschaltet.

So viel zu meinem ersten Prozess.

Microsoft Setup Bootstrapper has stopped working / Microsoft Setup Bootstrapper funktioniert nicht mehr

Heute wollte ich auf einem Terminalserver ein MS Office 2013 x64 durch die 32-Bit Variante ersetzen, da es sonst nicht mit DATEV zusammen arbeitet.

Also fix das 64-Bit Office deinstalliert und den Installer für 32-Bit gestartet, mit dem Ergebnis:

B971C95C-5C69-422C-9FE0-2231E797B72F

Microsoft Setup Bootstrapper has stopped working / Microsoft Setup Bootstrapper funktioniert nicht mehr

Was ist das denn nu? Mal schnell den 64-Bit Installer probiert – ging auch nicht. Anschließend mal einen Blick ins Logfile geworfen….

Error: Unable to select Source Engine process to start, see debug level logs for detail Type: 88::UnexpectedError.

Sehr vielsagend, danke. Unexpected error … Aber google hat geholfen! Das Problem hatte natürlich schon jemand anders und er hat es auch gelöst. Hier nun für euch die Lösung:

  1. Erstellt einen Ordner für den OSE Dienst:
    1. C:\Program Files\Common Files\microsoft shared\Source Engine
  2. Kopiert die OSE.exe aus <DVD>\standard.ww\ose.exe in diesen Ordner
  3. Installiert das ose.reg – File (siehe unten)
  4. Einmal neustarten bitte…
  5. In die Dienst-Verwaltung (services.msc) gehen und den Office 64 Source Engine Dienst starten:
  6. Bildschirmfoto 2016-06-26 um 14.24.22
  7. Die Installation von Office 2013 erneut starten.
Download: ose.txt (in ose.reg umbenennen und doppelklicken)


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ose64]
"DisplayName"="Office 64 Source Engine"
"Description"="Saves installation files used for updates and repairs and is required for the downloading of Setup updates and Watson error reports."
"Type"=dword:00000010
"Start"=dword:00000003
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,\
6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,43,00,6f,00,6d,00,6d,00,6f,\
00,6e,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,4d,00,69,00,63,00,72,00,\
6f,00,73,00,6f,00,66,00,74,00,20,00,53,00,68,00,61,00,72,00,65,00,64,00,5c,\
00,53,00,6f,00,75,00,72,00,63,00,65,00,20,00,45,00,6e,00,67,00,69,00,6e,00,\
65,00,5c,00,4f,00,53,00,45,00,2e,00,45,00,58,00,45,00,22,00,00,00
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ose64\Security]
"Security"=hex:01,00,14,80,8c,00,00,00,98,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,5c,00,04,00,00,00,00,00,14,00,9d,01,00,00,01,01,00,00,00,00,00,\
05,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,05,12,00,00,00,\
00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,00,\
00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,06,00,00,00,01,01,00,00,00,00,\
00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

 

Radio-Steuerung über Popp-Schalter

Wie bereits besprochen, muss mein Radio (bzw. Multi-Room-System) auch in FHEM eingebunden werden. Im ersten Schritt ging es um den WAF. Radio an und aus mit einem Schalter.

Ich habe aktuell in der Küche folgendes Setup:

Raspberry Pi mit snapcast Client sowie aktiv-Boxen die an einem Fibaro Wallplug hängen. 

Nun war meine Aufgabe für heute: Das Radio mit einem Schalter steuerbar zu machen. Dazu habe ich bei Amazon einen Popp Funkwandschalter bestellt (Link) und diese in mein Setup als „KU.Schalter1“ eingebunden. Der Schalter ist wie folgt belegt:

Schalter

Über einen Dummy („RadioOn“) habe ich mit zwei notifys („RadioOnNotify“ und „RadioOffNotify“) eine Funktion hinterlegt, die die Musik startet und die Steckdose aktiviert oder deaktiviert.

Entsprechend habe ich also mit einem notify den Schalter angebunden: Bildschirmfoto 2016-06-03 um 17.41.53

Das „KU.RadioNot“ ist der On/Off Schalter, dazu hat er folgende Definition:

KU.Schalter1:cSceneSet..1 IF ([RadioOn] eq „off“) (set RadioOn on) ELSE (set RadioOn off)

Die Volume-notifys sind ganz normal umgesetzt:

KU.Schalter1:cSceneDim..2 set myMPD volumeUp

KU.Schalter1:cSceneDim..4 set myMPD volumeDown

Interessant ist aber das „ChangeSender“. Irgendwie muss man ja mal den Sender wechseln können. Aber wie? Ich habe mir mit einer kleinen Clustom Funktion beholfen, die den aktuellen Sender prüft und einen anderen auswählt.


sub ChangeSender()
{
my @rsender = (
"http://player.ffn.de/ffnstream.mp3",
"http://188.94.97.91/radio21.mp3",
"http://stream.radiosaw.de/"
);
my $i = 0;

foreach my $sender ( @rsender ) {
if (ReadingsVal("myMPD", "file", "none") eq $sender)
{

}else{
if ($i eq 0){
fhem("set myMPD playfile ".$sender);
$i++;
}
}
} # foreach
}

Diese Funktion wird einfach über den Schalter aufgerufen und fertig ist die 4-Tasten-Radio-Steuerung.

Heimautomatisierung

Der Begriff Heimautomatisierung bzw. Smart Home ist mittlerweile ja relativ bekannt und verbreitet. Worum geht es dabei?

Nun grundsätzlich geht es darum, das Haus bestimmte Dinge selbstständig erledigen zu lassen um Energie oder Zeit zu sparen. Der klassiche Anwendungsfall ist: Wenn ich das Fenster öffne wird die Heizung herunter gedreht oder Wenn niemand im Raum ist, wird das Licht ausgeschaltet. Einige dieser Ansätze finde ich sehr gut und interessant sodass ich beschlossen habe unsere Wohnung auch etwas intelligenter zu machen.

Ich habe ja zuletzt an einem Multi-Room-Audiosystem gearbeitet, das muss natürlich auch integriert werden. Das Projekt wird sich also nicht auf die Heizung beschränken 🙂 Ich werde versuchen euch hier im Blog ein wenig auf dem laufenden zu halten.

plug_01

Fibaro Wall Plug

Aktuell verwende ich ein Setup aus einem Raspberry Pi 2 und einem Z-Wave Stick. Dieses steuere ich mit FHEM. Als Aktoren habe ich Fibaro Wall Plugs. Die sehen sogar ganz schick aus!

Die Problematik bei solchen Projekten ist immer der WAF – das heißt in meinem Fall es darf keine „Smartphone Steuerung“ sein sondern muss sich auch über Schalter bedienen lassen. Hier bin ich noch auf der Suche nach einem guten Modell.

Da ich noch ganz am Anfang bin werden zur Zeit nur folgende Szenarien „smart“ umgesetzt:

  1. Wenn ich TV schaue und es draußen dunkel wird geht die kleine Lampe neben dem TV an.
  2. Wenn ich Musik über das Multi-Room-Audio-System starte geht die Steckdose mit den Lautsprechern für die Küche automatisch an.
  3. Bin ich im Arbeitszimmer und es wird draußen dunkel geht langsam meine Schreibtischlampe an. Hier fehlt mir nur noch eine gute Anwesenheitserkennung.

In einem der folgenden Posts werde ich euch ein wenig die verwendeten Technologien vorstellen.

DynDNS selber hosten

Falls noch jemand diese Idee hat und nach einer schnellen Lösung sucht, schaut mal hier vorbei:

https://github.com/arkanis/minidyndns

Ist in ca 5 Minuten konfiguriert. Dazu dann noch ein IP-Update Script auf der Synology oder Fritzbox und fertig ists…


#!/bin/bash

IP=$(curl -s http://whatismijnip.nl |cut -d " " -f 5)
wget --user fo --password bar -O /dev/null http://15.14.13.12:8099/?myip=$IP

APNS Zertifikat kann nicht importiert werden

Heute wollte ich in einem SOTI MobiControl Server ein APNS Zertifikat installieren. Dabei kam immer die Meldung, ein interner Fehler sei aufgetreten. Sehr hilfreich…
Im Mobi Control Log sag ich dann folgenden Fehler:

***********************************************************************************************************************
* Exception: A certificate chain could not be built to a trusted root authority. (Exception from HRESULT: 0x800B010A) *
***********************************************************************************************************************
[COMException: A certificate chain could not be built to a trusted root authority. (Exception from HRESULT: 0x800B010A)]
 at CERTENROLLLib.IX509Enrollment.InstallResponse(InstallResponseRestrictionFlags Restrictions, String strResponse, EncodingType Encoding, String strPassword)
 at Soti.Cryptography.PKCS10.CertificateSigningRequest.CompleteCertificateSigningRequest(String cert)
 at Soti.MobiControl.ManagementService.FileService.SetAPNSCertificate(AddCertificateRequest request)
***********************************************************************************************************************

Die Zertifikatkette für das APNS Zertifikat ist nicht vollständig. Interessant. Glücklicherweise stellt Apple die Zertifikate aber bereit:
http://www.apple.com/certificateauthority/

  • Apple Inc. Root Certificate
  • Application Integration Certificate

Nachdem die beiden Zertifikat ein die Trusted Root Certificates des Servers (!) installiert wurden, war der Import erfolgreich.

Multi-Room-Audio (Teil 1)

Multi-Rooom-Audio – das war schon länger mein Traum. Aber alles was es kommerziell zu kaufen gibt, war mir einfach zu teuer für so eine „Spielerei“. Mehrere hundert Euro für einen Lautsprecher mit „Wireless“ Funktion? Nein danke.

Also wollte ich so ein System selber bauen. So schwer kann es ja nicht sein… dachte ich damals. Lange habe ich nach einer möglichen Lösung gesucht – leider ohne Erfolg.
Jetzt wo es langsam Sommer wird un der Balkon wieder stärker in frequentiert wird, muss da natürlich auch Musik hin! Gestern habe ich mich dann noch einmal ausgiebig mit dem Thema beschäftigt und endlich eine Lösung gefunden.

Die Zielsetzung

Überall in der Wohnung soll die gleiche Musik spielen. Diese Musik soll sich über eine zentrale Oberfläche steuern lassen und wenn möglich sollen sich die Wiedergabezonen auch zentral individuell steuern lassen. Zum Beispiel soll die Musik nur auf dem Balkon und in der Küche spielen, nicht aber im Wohnzimmer.

Das ganze soll natürlich günstig und flexibel sein. Günstig sowohl in der Anschaffung als auch im Betrieb.

Die Lösung

Die Lösung die mir am besten gefallen hat, ist auf Basis von RaspberryPis – sowohl als Sender als auch als Empfänger.

Pi2ModB1GB_-comp_

Auf einem RaspberryPi 3 laufen der Musik- und der Streaming-Server. Die Musik kann via Webinterface gesteuert werden. Als Quelle wird entweder die lokale Musikdatenbank oder Spotify genutzt.

Bildschirmfoto 2016-03-31 um 22.06.21

Die Empfänger sind 2 RaspberryPi 1 und ein RapsberryPi 2. Diese sind über WLAN angebunden und empfangen den Stream des Servers. Durch die verwendete Stream-Software ist die Wiedergabe zeitsynchron und die einzelnen Empfänger lassen sich via App steuern.

Im nächsten Teil gibt es dann technische Infos zur Installation und Umsetzung.

Hier gehts zu Teil 2

Multi-Room-Audio (Teil 2)

Wie besprochen gibt es in diesem Artikel Informationen über die Installation.

Server

Auf dem Server-Pi werden der Mopidy-Server und der Snapcast-Server installiert.

Mopidy

Als erstes das frisch Installierte System auf den neusten Stand bringen:
apt-get update && apt-get upgrade -y
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
wget -q -O /etc/apt/sources.list.d/mopidy.list <a href="https://apt.mopidy.com/jessie.list">https://apt.mopidy.com/jessie.list</a></pre>
apt-get update
apt-get install mopidy python-pip
apt-get install mopidy-spotify mopidy-youtube gstreamer0.10-plugins-bad
pip install Mopidy-MusicBox-Webclient Mopidy-WebSettings Mopidy-Mopify
Konfiguration erweitern und anpassen:
cat /root/.config/mopidy/mopidy.conf >> /etc/mopidy/mopidy.conf
nano /etc/mopidy/mopidy.conf
mixer=software
output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/snapfifo
 
[http]
enabled = true
hostname = 192.168.15.54
port = 6680
 
[spotify]
username=<Username>
password=<Password>
Mopidy in den Autostart und einmal neustarren für die neue Config
update-rc.d mopidy defaults
/etc/init.d/mopidy restart

Snapcast

Aktuelle Version des Snapcast Servers herunterladen
wget "https://github.com/badaix/snapcast/releases/download/v0.5.0/snapserver_0.5.0_armhf.deb
dpkg -i snapserver_0.5.0_armhf.deb
apt-get install -f

Konfiguration des Servers anpassen:

nano /etc/default/snapserver
Zeile 21:
SNAPSERVER_OPTS=“-d -s pipe:///tmp/snapfifo?name=Radio&sampleformat=48000:16:2&codec=flac“
update-rc.d snapserver defaults
/etc/init.d/snapserver restart