Fhem on the Fritz!Box

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., it relies only on the commands provided by a busybox copied to the chroot environment.

    This image from fhem.de contains a stripped down version of the perl package from the AVM fhem-image, the fhem package, a dfu-programmer for flashing the CUL, 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 7170/7270 (as of 2011-09-03)

    Due to Eyk's work there is also a ZIP file for the Fritz!Box 7170 and 7270 models. As the FB720/7170 has not enough internal storage to install fhem, you have to use an external USB Drive:
    • 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 "<path-of-the-stick>/fhem/startfhem" > /var/flash/debug.cfg
    • Start fhem manually with "<path-of-the-stick>/fhem/startfhem"

Fritz!Box 7170 in fhemwiki

Fritz!Box 7170 (from Achim, as of 2009-10-19)

  • Flash the FritzBox with the Freetz firmware using the Fritz!Box 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

Fritz!Box 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.