FHEM-Befehle mit FritzBox-Telefon steuern

Installiert man FHEM auf der Fritz!Box, wird automatisch das Script fhemcmd.sh per link in die Fritz-Box eingebunden:

ACHTUNG!!! ALLE ANGABEN OHNE GEWÄHR – GARANTIE KANN DADURCH VERLOREN GEHEN!!!

ln -sf /var/media/ftp/fhem/FHEM/fhemcmd.sh /var/fhemcmd

UPDATE vom 24.04.2014

Leider funktioniert der Code oben nur bis zu einem Neustart der Fritzbox (Fritz-Box 7490 – denke/dachte bei der 7390 war das auch nach einem Neustart noch aktiv).

Als Workaround habe ich nun folgendes gemacht:

nvi /var/flash/debug.cfg
dort mittels „i“ in den Editier-Modus wechseln (die debug.cfg wird bei jedem FritzBox-Boot aufgerufen – Änderungen hier nur mit größter Vorsicht vornehmen).

und am Ende folgende Zeile einfügen (den Pfad für /var/media/ftp/Fritz/fhemcmd.sh ggf. anpassen – liegt direkt auf dem Fritz-Box internen Speicher):
ln -sf /var/media/ftp/Fritz/fhemcmd.sh /var/fhemcmd

Nun mittels „:wq!“ speichern – die debug.cfg führt nun bei jedem Reboot den Symlink aus.

die fhemcmd.sh sieht wie folgt aus:
#!/bin/sh

## FritzBox 7390
## Beispiel fuer das Senden von FHEM Kommandos ueber den Telefoncode
## #95*x* wobei x hier 1 bzw 2 entspricht.

case $1 in
1) echo „set Steckdose on“ | /sbin/socat – TCP:127.0.0.1:7072
;;
2) echo „set Steckdose off“ | /sbin/socat – TCP:127.0.0.1:7072
;;
esac

Da ich FHEM nicht mehr auf der Fritz!Box ausführen lassen will, sondern auf meinem Raspberry Pi läuft, habe ich das angepasst:

#!/bin/sh

## FritzBox 7390
## Beispiel fuer das Senden von FHEM Kommandos ueber den Telefoncode
## #95*x* wobei x hier 1 bzw 2 entspricht.

case $1 in
1) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch1%22)}‘
;;
2) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch2%22)}‘
;;
3) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch3%22)}‘
;;
4) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch4%22)}‘
;;
5) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch5%22)}‘
;;
6) wget -q ‚http://192.168.178.123:8083/fhem?cmd={ToggleOnOff(%22myITSwitch6%22)}‘
;;
esac

Dadurch kann man per WGET ein beliebiges Kommando auf dem entfernten FHEM auf dem RPi absetzen.
Und mittels Tasten-Code #95*x* FHEM-Befehle absetzen.

Raspberry PI mit RaspBMC als Media-Center und FHEM zur Hausautomation

Vor ein paar Monaten habe ich mit FHEM auf der Fritz!Box 7390 meine ersten Schritte in Sachen Hausautomation gemacht. Leider hat die Fritz!Box immer wieder mal Probleme mit der Performance und Abstürze, weshalb ich mich nun für eine Installation von FHEM auf dem Raspberry Pi („Himmbeer-Kuchen“ :-) ) entschieden hab. „Raspberry PI mit RaspBMC als Media-Center und FHEM zur Hausautomation“ weiterlesen

Hausautomation mit Fritz!Box, FHEM, CUL und Fritz!Fon

Auf meiner Fritz!Box 7390 habe ich mir mal FHEM installiert (gib ein eigenes Install-File für die 7390) bei fhem.de.
FHEM ist ein OpenSource Hausautomations-Server.
Benötigt wird aber noch ein Empfänger – dazu habe ich den CUL868 bestellt. Damit kann man viele handelsübliche Funk-Steckdosen und viele Hausautomations-Produkte von ELV und Conrad steuern.

Über die Fritz-Box bzw. über angeschossene Systeme kann man Sogar per Tastencode Steckdosen schalten.

Bei mir im Einsatz sind Intertechno-Steckdosen (IT-1500) – FHEM bietet dafür ein eigenes Modul an, um diese anzusteuern.
Angelegt werden die Steckdosen wie folgt über die FHEM-Oberfläche:

define myITSwitch1 IT XXXXXXXXXX FF F0
attr myITSwitch1 IODev CUL_0
attr myITSwitch1 alias NanoAquarium
attr myITSwitch1 model itswitch
attr myITSwitch1 room Wohnzimmer

XXXXXXXXXX  muss dabei individuell ermittelt werden => siehe FHEM-Wiki.

als zweiter Schritt wird die Datei 99_Utils.pm erweitert:

## untoggle
# author: Markus Kress - http://kress.it
# What: Toggle devices with state on and off
sub ToggleOnOff($)
{
my ($obj) = shift;
Log 4, "ToggleOnOff($obj)";
if (OldValue($obj) eq "off") {
{fhem ("set ".$obj." on")}
}
else {
{fhem ("set ".$obj." off")}
}
}

und zuletzt die Datei fhemcmd.sh:

#!/bin/sh

## FritzBox 7390
## Beispiel fuer das Senden von FHEM Kommandos ueber den Telefoncode
## #95*x* wobei x hier 1 bzw 2 entspricht.

case $1 in

1) echo ‚{ToggleOnOff(„myITSwitch1“)}‘ | /sbin/socat – TCP:127.0.0.1:7072
…. usw…

Dadurch kann durch die Tatenkombination #95*1* das Gerät myITSwitch1 an bzw. ausgeschaltet werden.

Tipp: Die Nummer im Fritz!Fon-Telefonbuch speichern und im Favoriten-Menü hinterlegen.