Monatsarchive: November 2013

Projekt Raspberry Pi: Heizungssteuerung per CUL und FHEM – Part 7

Weiter geht es in Sachen Home-Automation. Ich habe im letzten Beitrag beschrieben, wie ich meine Intertechno IT-1500 mit dem CUL-Stick von Busware angesteuert habe. Dort wurde auch die grundlegende fhem.cfg erklärt. Damit nun die HomeMatic-Komponenten angesteuert werden können, brauchen wir aber ein paar Änderungen in der Konfiguration.

Da es wirklich nicht besonders schön wäre alle Geräte per Hand in die Konfiguration zu schreiben, nutzen wir das automatische Pairing. In diesem Modus werden alle gefunden Komponenten automatisch in die fhem.cfg aufgenommen. Da das aber eventuell in einer sehr unaufgeräumten Datei enden kann, sollte man sich vorher ein Backup der fhem.cfg anlegen.

Nach einem Neustart von FHEM muss man dann folgenden Befehl im Frontend eingeben.

Damit wird das Pairing gestartet. Dieser Wert darf auf keinen Fall in die Config eingetragen werden – damit kommt FHEM irgendwie nicht so klar und startet nicht mehr. Weiterlesen…

Raspberry Pi: DynDNS nutzen und aktuell halten – no-ip

Nun habe ich als Apple-Nutzer mit einem Airport Extreme nicht die Möglichkeit, Zugangsdaten zu dynDNS oder no-ip einzugeben. Wenn man eine FritzBox sein eigenen nennt, ist es sehr viel einfacher dynDNS zu konfigurieren. Aber kein Grund zum verzweifeln: Die IP-Änderungen kann genauso gut ein Raspberry Pi an einen dynDNS-Provider senden, oder? Schließlich läuft das Gerät 24/7.

Bitte beachten: VOR DER KONFIGURATION SOLLTEN UNBEDINGT ALLE STANDARDPASSWÖRTER GEÄNDERT WERDEN!!!

Prinzip

Da man als Privatkunde bei einem Provider (wie z.B. T-Online, Unitymedia, Vodafone, …) keine Fest IP-Adresse zugewiesen bekommt, sondern diese in regelmäßigen Abständen geändert wird / sich ändern kann, muss man sich eine andere Lösung überlegen um sein Netzwerk von außen zu erreichen. Das Ganze läuft über einen sogenannten dynDNS. Das bedeutet, dass sich ein Gerät aus dem eigenen Netzwerk beim jeweiligen dynDNS-Anbieter in regelmäßigen Abständen meldet, und die aktuelle IP-Adresse übergibt.

So ist es möglich, dass man sein Netzwerk immer über die selbe Domain erreichen kann, ohne dass man sich einen anderen komplexen Prozess ausdenken muss, oder sich gar IP-Adressen aufschreiben muss, welche irgendwann einfach jemand anderen gehören.

Installation

Die Installation geht dabei wirklich einfach von der Hand:

Während der Installation wird man nach seinem Benutzernamen und seinem Passwort gefragt. Daher ist es sinnvoll, den Account vorher auf der Webseite zu registrieren. Weiterhin habe ich mir einen Host angelegt und eine Gruppe (welche ich Home genannt habe). In diese Gruppe habe ich nur den einen Hostnamen gespeichert und auf der Webseite ansonsten nichts weiter getan.

Die Ausgabe der Konfiguration sah folgendermaßen aus:

Wie man sieht, wurde automatisch ein Konfigurationsfile angelegt. Damit ist die Installation eigentlich auch schon abgeschlossen. Nun müssen wir das Programm nurnoch ausführen:

Wenn man sich nun die Hosts unter no-ip anguckt, sollte man feststellen, dass sich die IP auf die eigene IP-Adresse geändert hat. Fertig! Noch besser ist es allerdings, das Programm mit in den Autostart des Raspberry Pi aufzunehmen.

Natürlich hilft einem diese Lösung erst dann etwas, wenn man auch Port Forwarding in seinem Router eingerichtet hat, und die wichtigsten Dienste auf den Raspberry Pi schickt. Wie das genau geht, steht im Handbuch des jeweiligen Routers.

Über diese Seite kann man seine IP auf offene Ports scannen lassen.

Alternativen

Alternativen gibt es auf dem Markt sehr viele, nur leider wenig kostenlose. Ich weiß zumindest noch, dass ich vor etlichen Jahren mal den Dienst von dyn.com (damals noch dyndns.org) genutzt habe. Dies bieten aber aktuell nur kostenpflichtige Pakete über die Webseite an.

Über einen kleinen Trick kommt man aber noch an kostenlose Accounts (habe ich gehört). Dafür meldet man sich einfach über dlinkddns an. Angeblich prüft die Seite aber, ob man wirklich einen D-Link-Router sein eigenen nennt. Falls nicht, wird man wohl wieder aus dem Programm geschmissen (keine Ahnung wie die das machen).

Projekt Raspberry Pi: Den CUL-Stick in Betrieb nehmen – Part 6

So, da ist er nun: ein CUL-Stick v3 von busware. Problem 1: Die Plastikhülle vom Stick nehmen. Unglaublich wie fest das Teil sitzt! Ich musste sogar einen Schraubenzieher zu Hilfe nehmen damit das Teil abzubekommen war – das Stecke ich da jedenfalls nie wieder drauf. Aber egal.

Auf meiner Einkaufsliste standen folgende Produkte:

Flashen des CUL-Sticks

Ein paar Worte vor dem eigentlichen Prozess: Angeblich soll es auch möglich sein, den Stick über FHEM direkt zu flashen. Das habe ich allerdings gar nicht erst versucht und kann daher auch nicht sagen wie schwer oder leicht das Ganze ist. In dem manuellen Prozess habe ich wenigstens die volle Kontrolle über alles was so passiert und bin keiner „Magie“ von FHEM ausgesetzt.

Also steckte ich den Stick an den Raspberry Pi. Damit kann man erstmal noch nicht soviel anfangen, da man ja erstmal eine Firmware auf den Stick aufspielen muss. Dazu brauchen wir folgendes Pakete:

Danach laden und entpacken wir die entsprechende Firmware (bitte auf neuere Version auf der Website prüfen).

Nun können wir den CUL-Stick auch schon schon flashen. Das geht einfach mit folgendem Befehl:

Die Ausgabe sah bei mir so aus:

Nun sollte die LED am CUL anfangen zu blinken. Schaut also erstmal alles gut aus. Kontrollieren wir also, ob das Gerät da ist. Alle USB-Geräte listet man folgendermaßen auf:

Irgendwo sollte nun ein Eintrag ähnlicher Eintrag wie dieser stehen:

Den CUL in FHEM konfigurieren

Die Hardware läuft also nun schonmal – was noch fehlt, ist die Konfiguration des Sticks in FHEM. Wie oben schon geschrieben, ist es angeblich möglich, dass der Stick automatisch hinzugefügt wird – ich weiß aber nicht wie das geht. Also wieder der manuelle Weg über die fhem.cfg.

Dort fügen wir ganz unten folgende Zeilen ein:

Wie man sieht, legen wir drei Schalter an (weil in dem Paket natürlich auch drei Steckdosen enthalten sind). Weiterhin definieren wir für jeden Schalter einen Namen (Stehlampe, Standlicht, Vitrine) und einen Gerätecode. Wie sich die Codes von Intertechno zusammensetzen, kann man in diesem Wiki-Eintrag sehr gut nachlesen.

Man muss dazu sagen, dass man mit den IT-1500 relativ frei in der Codevergabe ist, da diese Steckdosen auf jeden beliebigen Code angelernt werden können. Nun startet man FHEM neu und öffnet die Weboberfläche.

Nun hatte ich allerdings in den Logs von FHEM noch ein paar Fehlemeldungen. Daher habe ich die Geräteberechtigung kurzerhand geändert:

Wenn alles richtig gemacht wurde, tauchen hier nun die drei neuen Schalter auf.

FHEM Schalter

Diese muss man nun anlernen wie mit der Fernbedienung: Den Schalter aus der Wand ziehen und wieder einstecken. Während die LED am Schalter blinkt drückt man einfach auf „ON“ in der Weboberfläche. Die Schalter des IT-1500-Sets können auf bis zu drei Codes programmiert werden. Daher ist es kein Problem, sowohl die originale Fernbedienung, als auch FHEM zum Schalten der Steckdosen zu benutzen.

Irgendwie ist es ja schon ein sehr cooles Gefühl, wenn man das erste Mal eine Lampe über eine Weboberfläche schaltet. Ich hätte wirklich nicht gedacht, dass alles so reibungslos und ohne große Probleme einzurichten ist. Ich hoffe, dass das mit den Heizungsthermostaten auch so laufen wird – aber dazu mehr im nächsten Beitrag.

Viel Erfolg!

Für einen einfachen Einstieg empfehle ich ebenfalls folgendes Buch:

Projekt Raspberry Pi: Installation von FHEM – Part 5

In meinem letzten Beitrag habe ich meine Gedanken zum Thema Home-Automation zusammengefasst und eine Menge Links gepostet. Einer der wichtigsten Faktoren in meinen Augen, war die Nutzung von FHEM. Nun möchte ich kurz erläutern, wie ich die Software installiert habe ohne meine anderen Komponenten auf dem Raspberry Pi zu stören.

Aktuell steht Version 5.5 von FHEM zum Download bereit. Da diese Anleitung natürlich auch irgendwann weniger aktuell sein wird, rate ich jedem ein Blick auf die Website zu werfen, um zu prüfen ob nicht eine neuere Version verfügbar ist.

Da FHEM in Perl geschrieben ist, brauchen wir natürlich die entsprechenden Pakete:

Dann können wir die Installation auch schon anstoßen:

Danach sollte der Prozess bereits laufen.

  • Unter Port 8083 läuft die Desktop-Version: http://raspberry.local:8083/fhem
  • Unter Port 8084 läuft eine Smartphone-Version: http://raspberry.local:8084/fhem
  • Unter Port 8085 läuft eine Tablet-Version: http://raspberry.local:8085/fhem

Das war es eigentlich auch schon. Auf die Konfiguration der einzelnen Schalter etc. gehe ich ein, sobald die ersten Teile meiner Bestellung ankommen und ich mich mit dem System ausreichend auseinandergesetzt habe.

Zum Schluss noch ein paar Basics. Die Konfiguration liegt unter:

Neustart von FHEM:

Viel Erfolg!

Weitere tolle Informationen findet man in folgendem Buch:

Projekt Raspberry Pi: Gedanken zur Home-Automation – Part 4

Kommen wir nun zum wahrscheinlich umfangreichsten Teil des kompletten Raspberry-Projektes: Der Home-Automation (Hausautomatisierung). Nun habe ich schon mehrere Beiträge und Texte dazu gelesen. Meine größte Angst ist aktuell, dass verschiedene Komponenten nicht zusammen passen.

Bei meinen Recherchen im Netz, ist mir schon öfter die Abkürzung FHEM (Freundliche Hausautomatisierung und Energie-Messung) auf dem Monitor gezeigt worden. Das klingt schon sehr spannend! Gerade in Kombination mit der Energie-Messung eröffnen sich nochmals ganz neue Möglichkeiten. So stelle ich mir schon jetzt ein paar Statistiken vor, welche meinen Energieverbrauch über das Jahr darstellen – klingt doch irgendwie super, oder?

Am liebsten hätte ich natürlich ein Funkmodul, welches Herstellerübergreifend arbeitet und ich eine größtmögliche Freiheit habe die einzelnen Geräte anzusteuern. Dabei sollen natürlich mehrere Typen unterstützt werden: Schalter, Heizungsthermostate, … . Nachdem ich einiges gelesen habe, möchte ich aber primär auf den HomeMatic-Standard aufsetzen, da dieser (durch Rückmeldesignale der Geräte) zuverlässiger arbeitet und außerdem im weniger „belasteten“ 868 MHz Bereich sendet. Gerade im Bereich der Heizungssteuerung wünscht man sich doch etwas mehr Zuverlässigkeit. Weiterlesen…

Mac OS X: Ton beim Ändern der Lautstärke deaktivieren

Seitdem ich unter Mac OS X Mavericks regelmäßig die Soundausgabe auf meinen Denon X1000 umstelle, um die Musik aus Spotify auf meine Anlage zu bekommen, nervt mich der Ton beim Ändern der Lautstärke ungemein. Natürlich kann man einfach „Shift“ gedrückt halten, während man den Ton lauter und leiser macht – aber das nervt auf Dauer dann doch ungemein.

Die Lösung dafür ist denkbar einfach: In den Sound-Einstellungen die Feedback-Sounds ausstellen. Das hätte ich schon viel eher machen sollen – irgendwie habe ich aber nie wirklich danach gesucht.

Sound Settings Mac OS X

Viel Spaß beim ungestörten Musik hören!

Projekt Raspberry Pi: Siri-Proxy und Steuerung des Denon X1000 – Part 3

Wie ich in meinem ersten Beitrag angekündigt habe, möchte ich gerne all meine Änderungen per Siri-Proxy steuern können. Nun nenne ich aktuell ein iPhone 5 mein eigen und habe natürlich iOS 7 installiert. Leider wird die Version aktuell noch nicht unterstützt und so bin ich mir nicht sicher, ob der Punkt auf meiner Liste abgehakt werden kann. Das wäre natürlich sehr schade, da ein Siri-Proxy schließlich den maximalen Komfort bieten würde.

Aber die Hoffnung stirbt ja bekanntlich zuletzt – so kann man im GitHub-Projekt lesen, dass die Entwicklung weiter geht. Es ist also hoffentlich nur eine Frage der Zeit, bis iOS 7 dann doch voll unterstützt wird – teilweise läuft sie sogar wohl schon. Also habe ich an dieser Stelle nur die Nachricht, dass ich die Installation des Siri-Proxy in einen späteren Step verschiebe, um bestmöglichen Support von iOS 7 zu gewährleisten und keine bösen Überraschungen zu erfahren. Falls das Ganze läuft, reizt mich auch folgendes PluIn für XMBC: SiriProxy-XBMC.

Denon AVR-X1000

Bleibt für diesen Beitrag noch die Ansteuerung meines AV-Receivers. Ich besitze erst seit kurzem einen Denon AVR-X1000. Bisher habe ich gedacht, dass die Schnittstelle nicht öffentlich ist und man daher nur mit sehr viel Aufwand an die möglichen Befehle kommt – doch dem ist zum Glück nicht so. Die Dokumentation der Netzwerk-Schnittstelle des Denon AVR-X1000 findet man hier zum Download als PDF.

Da ich den Funktionsumfang der Denon App ja bereits kenne, weiß ich schon was alles möglich ist und möchte mir daher den Aufwand machen, ein Schnittstelle zu Entwickeln, welche ich über die Shell auf dem Raspberry Pi nutzen kann. Nutzen werde ich:

  • An-/Ausschalten
  • Eingangsquelle wählen
  • Lauter und leiser

Zum rumspielen habe ich ein Tool namens AVRConsole (für Mac OS X – XCode benötigt) gefunden (wird leider nicht mehr weiterentwickelt). Damit ist es relativ einfach die einzelnen Befehle und deren Auswirkung zu testen. Man muss einfach nur im Code die IP-Adresse des Receivers anpassen und schon kann man damit starten ein paar Befehle zu versenden und die Ergebnisse zu betrachten.

AVRConsole

Nach ein paar Minuten hatte ich mit der Dokumentation der Schnittstelle schon die ersten Ergebnisse mit PHP erzielt. Nun, ich gebe natürlich zu, dass PHP nicht die beste Sprache für diesen Anwendungsfall ist. Aber es ist eben meine „Alltagssprache“ und ich wusste genau was ich machen muss.

So einfach kann es manchmal sein. Wirklich sehr cool insgesamt! Leider bringt das Ganze per PHP-Script noch nicht so wirklich viel, da ich ja kein Webinterface für den Receiver schreiben möchte. Schön wäre es eben, wenn die Kombination zusammen mit dem Siri-Proxy laufen würde. Dann macht es auch richtig Spaß!

Bei Gelegenheit werde ich das Script natürlich noch erweitern und auf GitHub schieben.

Leider habe ich noch nicht rausgefunden, wie man eine Geräteliste aller Receiver bekommt. Das macht ja beispielsweise die Remote-App von Denon so. Hier bin ich aktuell dabei den Netzwerktraffic zu analysieren. Das muss ja in jedem Fall über Broadcast-Messages laufen.