Abwesenheitsgesteuerte Anrufweiterleitung mit FritzBox und Fhem

In einem echten Smart Home sollte natürlich auch die Kommunikation intelligenter erfolgen. Wie wäre es beispielsweise wenn die Telefonanlage wüsste, dass man nur kurz außer Haus ist? Anrufe könnten dann direkt auf die entsprechenden Mobilgeräte weitergeleitet werden und man erspart sich umständliches Anrufbeantworter abhören und zurückrufen. Mit den Fhem Modulen RESIDENTS, ROOMMATE, GEOFANCY und FRITZBOX ist diese Vision seit einiger Zeit leicht wie folgt umzusetzen:

Zuerst muss eine RESIDENTS Instanz definiert werden, diese stellt den Status einer ganzen Wohneinheit d.h. Wohnung, Haus etc. dar:

Danach werden dieser Residents Instanz die einzelnen Bewohner hinzugefügt:

Um fhem mitzuteilen wer gerade anwesend ist gibt es mittlerweile eine Vielzahl von Möglichkeiten. Die zuverlässigsten sind PRESENCE per FritzBox oder Bluetooth sowie Geofancy:

Mit der kostenlosen Geofancy iPhone App lassen sich z.B. einfach Geofences für iDevices erstellen und überwachen. Eine GEOFANCY Instanz auf fhem Seite kann folgendermaßen definiert werden:

Mit einem Notifier können die erfassten Orte dann ins ROOMMATE Modul übernommen und die Anwesenheit der Wohneinheit aktualisiert werden:

Alternativ kann die Anwesenheit auch mit PRESENCE und Bluetooth überwacht werden:

Und den zugehörigen Notifiern:

Nun zur tatsächlichen Anrufweiterleitung auf der FritzBox. Diese muss zuerst im Webinterface angelegt werden. Ein kleiner Tipp am Rande: Wenn die Abgangsrufnummer auf „automatisch“ steht, kann es passieren das die Anrufweiterleitung direkt im Amt geschieht (AWS). In diesem Falle finden sich keinerlei Logeinträge in der FritzBox Anrufhistorie.

Auf fhem Seite muss eine Instanz des FritzBox Moduls definiert werden. Dieses kann entweder im lokalen Modus laufen, wenn Fhem direkt auf der FritzBox installiert ist und als root läuft oder im entfernten Modus laufen, d.h. per telnet auf fritz.box. Dazu muss telnet zuerst per Telefon auf der FritzBox aktiviert werden (#96*7*) und das telnet Passwort in der Datei fb_pwd.txt im Fhem root Verzeichnis hinterlegt werden. Gegebenenfalls muss auch noch das telnet perl modus auf dem hem server installiert werden:

Die Instanz des FRITZBOX Moduls kann einfach folgendermaßen definiert werden:

Mit den folgenden Notifies kann dann auf verschiedene Anwesenheitsstatus reagiert werden:

Und Voilà, die intelligente Anrufweiterleitung spart Zeit, Nerven und Roamingkosten.

TFTP server on OS X

For flashing, recovering or unbricking embedded devices often a TFTP server is needed for serving the firmware image. On OS X such a server is already built in. To use it, simply put the firmware in /private/tftpboot and then start the tftp daemon with:

Once you are done you can stop the daemon with:

Neato Botvac 80 Wifi Mod

As the [easyazon_link asin=“B00IZD9Z46″ locale=“DE“ new_window=“yes“ nofollow=“yes“ tag=“tait03-21″]Neato BotVac 85[/easyazon_link], unlike its luxury sibling [easyazon_link asin=“B00NLG7206″ locale=“DE“ new_window=“yes“ nofollow=“yes“ tag=“tait03-21″]Vorwerk Kobold VR200[/easyazon_link], does not have a Wifi interface, I was looking for a solution to retrofit it. Here is some instructions on how to do it.

After doing some research, I found a similar mod for the older Neato XV Series. So I ordered a Hame MPR-A5 which is basically the same as the Hame MPR-A1 without the battery. Two months later it finally arrived.

To integrate this little router in your home network as a client, lets install OpenWrt on it. First make sure you have gotten my device or an equivalent clone:

Connect to your router by ethernet with the credentials on the back of the device and flash the following image from the webinterface.

Login to your router via

type passwd and choose a secure password. The router should now be available via

Now lets tackle the network config:

and adjust like this

config wifi-device ‚radio0‘
option type ‚mac80211′
option hwmode ’11g‘
option path ‚10180000.wmac‘
option htmode ‚HT20‘
option disabled ‚0‘
option country ‚DE‘
option txpower ’20‘
option wmm ‚1‘
option channel ‚9‘

config wifi-iface
option device ‚radio0‘
option network ‚wwan‘
option mode ’sta‘
option encryption ‚psk2‘
option ssid ‚Network‘
option key ‚wpakey‘

and adjust like this:

config interface ‚loopback‘
option ifname ‚lo‘
option proto ’static‘
option ipaddr ‚127.0.0.1‘
option netmask ‚255.0.0.0‘

config interface ‚lan0‘
option ifname ‚eth0.1‘
option proto ‚dhcp‘
option gateway ‚192.168.181.1‘
option dns ‚8.8.8.8‘

config ‚interface‘ ‚wwan‘
option ‚proto‘ ‚dhcp’</code>

Also change the name server to a name server of your choice

After rebooting, continue by installing some missing packages:

Now plugin your neato with a good [easyazon_link asin=“B00607N7WA“ locale=“DE“ new_window=“yes“ nofollow=“yes“ tag=“tait03-21″]USB A to Micro USB cable[/easyazon_link] (2 of my usual ones did not work) and

Now lets make the serial port available via telnet with ser2net. Edit the configuration file for ser2net

It only needs to contain this line:

3000:telnet:0:/dev/ttyACM0:115200

This line says to listen for incoming telnet connections on port 3000, and connect them
to /dev/ttyACM0 at 115200 baud.

As ser2net doesn’t start automatically, add ser2net &
to /etc/rc.local before the exit 0. Reboot and you should now be able to connect the Neato Botvac 80 via telnet

and control it using the commands from the Neato API.

Switch between formula versions in Homebrew

When working with ROS on MacOS X and updating and upgrading your packages via Homebrew, you will often find your packages broken because some library was replaced by a newer one. A typical error looks like this:

Not too long ago, one would have just used brew versions and checked out the version needed, but that was long deprecated and has become unavailable recently. Nowadays, switch can be used instead:

Now you can easily switch back to r116 by: