Posts mit dem Label HomeAutomation werden angezeigt. Alle Posts anzeigen
Posts mit dem Label HomeAutomation werden angezeigt. Alle Posts anzeigen

Montag, 20. September 2021

Alexa Remote Control Shell Script

 It's about time for a new post since a lot of things have changed over the course of the past four years.

First things first though, the good news is there's finally an almost official way to properly use the script with your Amazon Alexa. Luckily all major home automation projects became inspired by the idea of the original script and some inner workings have been discovered by people smarter than me. Michael Geramb of openHAB and Ingo Fischer of ioBroker came up with the idea to proxy the login to Amazon very similar to how a mobile app would.

The result was for example the nodeJs package alexa-cookie2 (by Ingo Fischer). Looking more closely at the result of the login process it became clear that only a single item is required for our purposes. Hence I created a small nodeJS app that will output the token after successfully completing the login.

As not everybody would want to install nodeJS (or run it in Docker) I created packaged binaries using the nodeJS packager pkg.

While the old login flow may still work (for some time) I strongly encourage everybody to try the new cleaner method.

Montag, 16. Oktober 2017

MAX! Cube Umbau zu 4-fach Netzwerk CUL (CUN)

Es erfreut das Bastlerherz, was findige Tüftler so alles mit der Welt teilen. So auch die Portierung der CUL Firmware auf die Hardware des MAX! Cube. Damit wird der Cube ein starker Konkurrent gegen den einstmals günstigen USB-CUL von busware.de.

Doch damit nicht genug, der Benutzer Telekatz aus dem FHEM Forum hat in der Portierung gleich ein Multiplexing für bis zu drei zusätzliche Tranceiver vorgesehen.
MAX! Cube

Sonntag, 15. Oktober 2017

FHEM Anwesenheitserkennung mit FritzBox-WLAN

Für die Anwesenheitserkennung meiner HomeAutomation setze ich schon lange auf die WLAN Assoziierungen im WLAN Router (OpenWRT: 'iw dev wlan1 station dump' bzw. Fritz!Box: 'ctlmgr_ctl r wlan status/wlanlist'). Nachdem in ab Fritz!OS 6.25 Telnet auf die Fritz!Box aus Sicherheitsgründen nicht mehr unterstützt wird, kommt das moderner TR-064 mit SOAP zum Einsatz.

Da ich in einer Wohnung mit vielen Heizkörpern günstige MAX! Heizkörperventile einsetze, bin ich auch wieder zum Nutzer der FHEM Homeautomatisierungssoftware geworden.
FHEM Anwesenheitsstatus

Vieles, was ich sonst per BASH Script und Crontabs gelöst hatte, lässt sich so sauber per Webfrontend umsetzen. Es gibt für alle erdenklichen Anforderungen ein Modul - so z.B. auch für die Fritz!Box.
Allerdings scheint das Modul 72_FRITZBOX.pm noch nicht so richtig in der "neuen" SOAP Zeit angekommen zu sein. So wird TR-064 zwar für Nachrichten unterstützt, aber vieles scheint noch über die Fernsteuerung der Web-Oberfläche zu laufen.
Für die meisten Leute funktioniert das ja auch und bringt darüber hinaus eine Unmenge weiterer Funktionen mit sich.

Für mich disqualifizierte sich das Modul dadurch, dass ich das Polling-Interval auf minimal 60 Sekunden stellen konnte (und auch ständig Events generierte - jede Signalstärkenänderung eines Geräts = neuer Event). Also habe ich eine eigene kleine Anwesenheitserkennung per Perl geschrieben, die per HTTP Aufruf mit FHEM kommuniziert.

Dienstag, 10. Oktober 2017

Amazon Alexa per Shell fernsteuern (Echo remote control)

Hier gibt es einen aktuelleren Post zu diesem Thema. Please look here for an updated post!
UPDATE 2021-09-20

Nachdem Amazon mit dem Multiroom Feature der Echos meine alten Multiroom Audio Bemühungen quasi nebenbei erledigt hat, fehlte mir zu meinem Glück noch die Fernsteuerung meiner Echos.

Wenn ich nach Hause komme, soll die Home Automation bitte auch gleich das Radio auf den Amazon Echos einschalten.
Für den umgekehrten Weg nutze ich HA-Bridge, welches meine Intertechno Billigsteckdosen per Alexa Sprachkommando schaltet. Daher kenne ich auch die Möglichkeit, über einen Browser auf das Alexa Interface zuzugreifen.

Was ein Browser kann, das sollte sich doch auch per Shell bewältigen lassen...

Samstag, 28. Januar 2017

HomeAutomation and multi-room audio revisited

In älteren Beiträgen hatte ich bereits meine Begeisterung über Multi-Room Audio und dessen Bedeutung für die HomeAutomation geteilt.
Inzwischen gibt es viele neue Entwicklungen, die den Möglichkeiten eines SONOS Systems etwas näher kommen.

Ich nutze nach wie vor kleine Router mit USB-Soundkarte auf OpenWRT Basis als Netzwerklautsprecher in jedem Raum. Es gibt drei Möglichkeiten, Sound auf diese Geräte zu schicken, wobei ich auf den letzten Punkt insbesonders eingehen möchte:
  1. AirPlay (iPhone, iPad, iPod touch)
  2. DLNA / UPNP-AV (Android)
  3. EsounD/PulseAudio (HomeAutomation Server)

Samstag, 30. Januar 2016

RWE Smart Home - Notifications mit PHP Library

Während ich noch vor ein paar Jahren eine Gastherme aus den 90ern zum Heizen der Wohnung per kontrolliertem Strom ein/aus über eine Funksteckdose schalten musste, habe ich nun den "Luxus" einer Fußbodenheizung.
Da ich bis vor zwei Jahren bei ELV (FS20) nichts gefunden hatte, was mir diesbezüglich zusagte,hatte ich bei einem BlackFriday Angobot zugeschlagen und günstig eine RWE SmartHome Zentrale Controller für Fußbodenheizungsventile und vier Raumthermostate erstanden.

Der allgemeine Glauben, dass man sich wegen der "geschlossenen" Lösung in Bezug auf die Benutzung vom Hersteller abhängig macht, stimmt hier nicht - es gibt eine Reihe von Ansätzen, mit der Anlage genau das zu machen, was der werte HomeAutomation Hacker möchte. Die API ist inzwischen rechtgut dokumentiert.

Aus Platz- und Speicherspargründen habe ich mich für die PHP-Implementierung der API entschieden. Alternativen sind im SmartHomeForum beschrieben.

Donnerstag, 10. Januar 2013

OpenWRT UPnP/DLNA Renderer - diesmal wirklich!

Geht es in meinem Freundeskreis um das Thema Netzwerkaudio und Streaming, frage ich immer, ob überwiegend ein Apple Universum vorhanden ist oder eher viele verschiedene andere Geräte - also AirPlay oder UPNP/DLNA (meine EsounD, Pulseaudio-Lösung konnte ich bisher noch niemandem schmackhaft machen...). Mit Shairplay gibt es eine relativ schlanke Lösung für die AirPlay-Ausgabe auf beliebigen OpenWRT Geräten mit USB-Soundkarte.

In einem der alten Posts habe ich mich bereits beklagt, dass es jedoch keinen UPNP/DLNA-Renderer für Linux geben würde. Es gibt scheinbar Millionen von UPNP-Servern aber die Welt der Controlpoints und Renderer ist recht dünn gesät. Aus diesem Grund habe ich, vor gut einem Jahr, einem guten Freund den "alten" Fritz!Repeater empfohlen - nicht, um in seiner 3-Zimmer Wohnung das ohnehin gute WLAN zu verstärken, sondern als UPNP-Renderer für's Netz. Nach anfänglichen Erfolgen hält sich die Zufriedenheit in Grenzen und eine nennenswerte Weiterentwicklung scheint es auch nicht zu geben.

Diese kleine Niederlage wollte ich ungern auf mir sitzen lassen, so dass mir meine neuen PogoPlugs wie gerufen kamen, um damit Rygel mit PlayBin als Renderer auszuprobieren.

Samstag, 25. August 2012

HomeAutomation und Audio - final thoughts

Wie ich schon in Teil 1 bzw. Teil 2 geschrieben habe, ist PulseAudio eine interessante Alternative zu EsounD. Es ist nicht nur ein Drop-In Replacement für ESD, es wird zur Abwechslung auch mal konsequent weiterentwickelt.

Bisher habe ich mit PulseAudio v0.9.x getestet, inzwischen gibt es v2.0 und sogar vorkompilierte OpenWRT Pakete. Eigentlich ist es an der Zeit, mal 'was Neues zu probieren... ;)

Freitag, 24. August 2012

HomeAutomation SoundClients (Teil 3)


In den Server Wrapper Dateien konnte man bereits sehen, die Clients wurden einfach über den "$esdopt" Parameter angegeben. Ein Client ist ein beliebiges Gerät, auf dem der ESD Server läuft. Es gab mal für Windows einen virtuellen Soundkartentreiber, aktuell würde ich EsounD aus dem Cygwin Projekt verwenden. Allerdings gibt es bei uns zu Hause keinen stationären Rechner mehr, auf den es sich lohnen würde Audio auszugeben (früher in der WG liefen die Kisten noch ständig...) - deshalb geht es hier um dedizierte Clients.

Ich bin bei OpenWRT als "Distribution" meiner Wahl gelandet, weil es eine Vielzahl an Plattformen unterstützt. Auf der Homepage kann man unter "Supported Devices" eine umfangreiche Hardwareliste finden. Es sollte sich jeder Router eignen, solange er einen USB-Port besitzt, in den eine billige USB-Soundkarte kommt.
Schafft man gezielt Hardware an, helfen Preisvergleichsportale (mein Favorit ist geizhals.at/de), auf denen man teilweise bei den Router-Features auf "USB" und "OpenWRT" Filtern kann.

HomeAutomation SoundServer (Teil 2)

Im ersten Post habe ich bereits mein Bedürfnis für die Sound-Integration in die HomeAutomation und meinen Enthusiasmus über die Netzwerkfähigkeit von EsounD zum Ausdruck gebracht. Im folgenden möchte ich meine rudimentären Perl-Kenntnisse zur Schau stellen ;-)

Die dargestellten Scripte bilden sozusagen das Herzstück der Interaktion mit den diversen EsounD Servern auf den Netzwerk Clients, da sie über das Webinterface angesteuert werden können. Aber auch meine Cron-Scripte (Weckzeitplaner, etc.) greifen darauf zurück.

HomeAutomation ist auch "Audio in jedem Raum" (Multi-Room Audio) - Teil 1

Ich brauche zu Hause immer eine Geräuschkulisse, am liebsten in jedem Raum. Deshalb haben wir in unsere Homeautomation auch schon frühzeitig Lautsprecher und deren "Bespielung" eingebaut.

Anfänglich (als es noch kein Alsa mit DMIX und TTABLE gab) habe ich EsounD (ESD) dazu genutzt, den Stereo-Kanal einer Soundkarte in zwei getrennte Mono-Kanäle aufzuteilen, die an zwei Verstärker in unterschiedlichen Räumen angeschlossen waren.

Auf diese Weise mit dem spärlich Dokumentierten (und längst nicht mehr weiterentwickelten) EsounD vertraut, habe ich bald auch die Netzwerkfähigkeit von ESD dazu genutzt, Audio in alle Räume zu bringen.

Zunächst liefen drei ESD über drei USB Soundkarten an einem NSLU. Ein günstiges 5.1 Verstärker-Set bekam auf diese Weise drei Input-Kanäle auf die einzelnen Boxen verteilt (vorn, hinten, center) und drei anliegende Räume konnten mit Sound versorgt werden.

Freitag, 27. Juli 2012

Outlook Kalender als interaktives Türschild

Wenn man eine begrenzte Anzahl von Meeting Räumen hat, führt man früher oder später einen Gemeinsamen Kalender ein, um die Belegung zu organisieren. Wäre irgendwie praktisch, wenn diese Reservierungen zusätzlich direkt am Raum visualisiert würden und eventuell sogar ein potentieller Gast namentlich begrüßt würde.