### Fhem on the Fritzbox 7270 and 7170

## FHEM on the Fritz!Box

### Fritz!Box 7390 (as of 2011-09-03)

After the CeBIT 2011 AVM released an image for the Fritz!Box7390 containing fhem, see this link. This image is to be installed in addition to the normal firmware. Version 19798 of this fhem-image (not the Lab firmware) configures 2 CUL devices, the first one talking FS20 ("SlowRF"), the second preconfigured for HomeMatic. Autoconfigure is not enabled by default, so you'll either have to enable it or to enter the devices by hand.
The bad news with this fhem-image is, that it will start fhem in a chroot environment, i.e. you will not be able to trigger arbitrary FritzBox functions out of fhem, e.g. sending mail, enabling WLAN, etc.
This fhem-image contains a stripped down version of the perl package from the AVM fhem-image, a newer version of fhem, and a modified installation script. The main difference is starting fhem in a normal (non-chroot) environment, and enabling autocreate. When installing it, you have to confirm with an extra click that it does not have a valid AVM signature. It will reuse your old logfiles and configuration, unlike the "original" AVM firmware. Autocreate is on, and there are NO CUL devices defined in the initial configuration, you'll have to do this manually, e.g. by following the HOWTO or the command reference.

### Fritz!Box 7270 (as of 2011-09-03)

Thank to Eyk's work there is also a ZIP file for the Fritz!Box7270. To install it:

- First unzip the .ZIP file in the root directory of the USB-disk/USB-stick.
- Attach the stick to the FB
- open a telnet window, connect to the FB.
- With the command df check the name of the stick on the FB.
- Execute the following command in the FB telnet window to start fhem when the FB reboots:
  echo "<name-of-the-stick>/fhem/startfhem" >> /var/flash/debug.cfg
- Start fhem manually with "<name-of-the-stick>/fhem/startfhem"

Note: As the perl in this package does not contain the Device::SerialPort module, currently only the CUL and devices connected via TCP/IP are supported. To define the CUL, the following command should be used:

define MyCUL CUL /dev/ttyACM0@directio 1234

for details see the CUL documentation.

### Fritzbox 7170 in fhemwiki

### Fritzbox 7170 (from Achim, as of 2009-10-19)

- Flash the FritzBox with the Freetz firmware using the Fritzbox web-frontend. As we are not allowed to offer a FritzBox binary image for download, here is a mini HOWTO:
  - Download http://trac.freetz.org/downloads/freetz-1.0.3.tar.bz2
  - Bunzip2 and untar the package
  - Copy dotconfig into the untarred directory as .config
  - Call make
- Copy the tgz packages apache (1MB), fhem (1MB) and perl (10MB) to the USB stick and attach it to the box.
- Restart the box and connect to the box using telnet, e.g. with

              telnet 192.168.178.1

- Untar the packages into a new directory on the USB stick, e.g.

            cd /var/media/ftp/uStor01/
            mkdir fritzext
            cd fritzext
            tar -xvzf ../fhem-4.6.tgz
            tar -xvzf ../perl-5.6.2.tgz
            tar -xvzf ../apache-1.3.41.tgz

  For the following ascii file modifications the editor nano can be used which is contained in the Freetz firmware.
- Adapt /var/flash/debug.cfg, and change the path to fhem:

            /var/flash # more debug.cfg
            export dTSB=1212687845
            /bin/sleep 120
            cd /var/media/ftp/uStor01/fritzext/fhem-4.5 && ./rc.fhem

- Adapt fhem/rc.fhem, and change the path to perl, fhem, apache:

            #!/bin/sh
            # "RC" script for a fhem running on the Fritz!Box from
            # an attached usb-stick.

            cd /var
            ln -s /var/media/ftp/uStor01/fritzext/perl .
            ln -s /var/media/ftp/uStor01/fritzext/apache-1.3.41 .
            ln -s /var/media/ftp/uStor01/fritzext/fhem  .

            export LD_LIBRARY_PATH=/var/perl/lib
            export PATH=/var/perl/bin:$PATH
            export PERL5LIB=/var/perl/lib/:/var/perl/perl5/:/var/perl/lib/perl5/5.6.2/

            mount -o remount,rw /var/media/ftp/uStor01

            swapon /var/perl/swapfile

            # For CUL:
            insmod /lib/modules/2.6.13.1-ohio/kernel/drivers/usb/serial/usbserial.ko
            vendor=0x03eb product=0x204b

            # For FHZ:
            insmod /lib/modules/2.6.13.1-ohio/kernel/drivers/usb/serial/ftdi_sio.ko

            cd /var/media/ftp/uStor01/fritzext/fhem
            perl fhem.pl fhem.cfg
            cd /var/
            apache-1.3.41/apache apache-1.3.41/conf/apache.conf

- Adapt your fhem.cfg. CUL can be used on /dev/ttyUSB0.
- Restart the box

### Fritzbox 7270 (from Volker, as of 2009-10-19)

- Unpack fhem45-on-fritzbox.tgz to the USB-stick.
- Attach the USB storage (stick) to the Fritz!Box. The Fritz!Box should recognize it. Now we have to modify usr/fhem/rc.fhem.
- Login (via telnet) to the Fritz!Box with the WEB-Password

          telnet fritz.box

- Change to the folder /var/media/ftp/*partition*/usr/fhem
- Edit rc-cp.fhem with nvi
  (i starts editing, ESC leaves edit mode, X deletes a character, :q! quits nvi without change, ; :wq saves and quits nvi)
  and adapt the mount point. This is often MassStorageDevice-Partition-0-1. This script will generate some links, makes a copy of .../usr/fhem to /var/usr/ and starts "perl fhem-celica.pl fhem.volker.conf" in the background.
- Run ./rc-cp.fhem in the directory usr/fhem
  Note:After rebooting the Fritz!Box you will have run this script again.