### Description

Fhem is a GPL'd perl server for house automation. It is used to automate some common tasks in the household like switching lamps / shutters / heating / etc. and to log events like temperature / humidity / power consumption.
The program runs as a server, you can control it via web or smartphone frontends, telnet or TCP/IP directly.
In order to use FHEM you'll need a 24/7 server (Fritz!Box, NAS, RPi, PC, MacMini, etc) with a perl interpreter and some attached hardware like the CUL, FHZ1300PC, etc. to access the actors and sensors. See the "Supported hardware" section below.

### Download

Last released version: (as of =DATE=): fhem-=VERS=.tar.gz, fhem-=VERS=.deb,
See the CHANGED file for the change history or the svn log for a more detailed log.
Note: the FHEM development is a continuous one, and a release is only a starting point for the update process.
Use the update command to get the most recent version, especially if you want to report issues in the forum.
Nightly versions: fhem-cvs.tgz, debian.fhem.de
Please fill out our survey, as we'd like to know which FHEM modules are in use. Here are the results.
Or use the fheminfo command to automatically generate this statistics.

### Frontend screenshots

- Builtin web frontend: overview on the desktop or on the smartphone, SVG-plots.
- The FHEM FLOORPLAN module: Example1, Example2, LCars.
- The InfoPanel module, FHEM Tablet UI: Example1, Example2, Live demo and SmartVisu
- The Charting frontend and YAF (Yet Another Frontend).
- myHCE: screenshot gallery, fheME: screenshot gallery, HomeMini: screenshot & download
- iPhone frontends: Fhemobile (native app), dhs-computertechnik or phyfhem
- Android frontends: andFHEM (native app), Fullscreen Browser App, ORCA addition, notify-app

### Features

- support for a lot of protocols used in house automation, audio/video devices, weather services, online calendars and more.
- autocreating devices/logs when receiving data from a new device: start FHEM and watch how the plots of your sensors are appearing automatically.
- logging events to files or a database, with regexp filters
- notifying external programs or scripts when receiving certain events
- timed commands (e.g. switching a lamp on from sunset till midnight)
- lot of interfaces: simple text, JSON, XML, each of them over plain TCP/IP, SSL or HTTP.
- modular architecture with currently over 250 modules, easy to add your special device
- lot of frontends, choose your favorite

### Supported protocols (excerpt)

- eQ3 specific: FS20, HomeMatic, MAX!, EM1000, FHT80b, HMS, S300, ESA2000
- KNX, ZWave, EnOcean, X10, FRITZ!Dect, Intertechno, HomeEasy, Philipps HUE
- 1Wire, Firmata, webio, panStamp, LIRC, JeeLink, RFXCOM/RFXTRX, TellStick
- Davis VantagePro2, Oregon Scientific, Allnet
- TVs from Samsung/Panasonic/LG/Philips, devices from Sonos/Squeezebox, amplifier from Yamaha/Denon/Onkyo, iTunes/AppleTV, Enigma2, XBMC
A complete list of all FHEM-modules with a detailed description can be found in the commandref document.

### Documentation

Heimautomatisierung-mit-fhem.pdf (pdf, german)
commandref.html contains a detailed description of all features/modules.
Our wiki at fhemwiki.de
Forum: http://forum.fhem.de
Although most entries are in german here, don't be afraid to ask something in english.
meintechblog.de: Blog with guides focused on FHEM
Frequently Asked Questions: faq.html
HOWTO.html for a short installation/configuration.
contrib/README describes some loosely coupled useful modules / scripts which can be used with FHEM.

### Links

Homepage: http://fhem.de/fhem.html
Development source at SVN@sourceforge: https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/
Device/OS Specific installation guides:

- Instructions for the Fritz!Box
- Instructions for Nas/Routers (NSLU2): http://www.martin-haas.de/fhz/nslu2fhz
- Instructions for Synology Diskstation / Rackstation: http://www.fischer-net.de/hausautomation/fhem.html
- Instructions for the Allnet all6250: http://wiki.dungeon.de/all6250_opennas_mit_fhem
- Raspberry PI with EnOcean
- Linux driver installation: linux.html
- Misc USB problems: USB.html
- Russels Blog for Windows user: http://russellallen.info/category/FHEM.aspx
- Windows driver installation: http://fhz4linux.info/tiki-index.php?page=Driver%20installation
  (use "Solution B", only COM1..COM9 is supported)

Commercial products:

- http://www.dhs-computertechnik.de: Integration of FHZ and NAS running FHEM. Using an enhanced transmitter to achieve more distant transmission. Full integrated solution for Home-Control and beyond (other service like UPS management, etc. are also available).
- CUL: Hardware shop, firmware homepage

### Installation

#### Debian/Ubuntu

- Install this package. For a better integration check out debian.fhem.de

#### Unix / OSX

- Make sure you have perl. Most certainly you will need the Device::SerialPort perl module, install it with "sudo cpan Device::SerialPort" or "apt-get install libdevice-serialport-perl".
- Download the .tar.gz package, unpack it, and change to the unpacked directory.
- start FHEM directly from this directory (perl fhem.pl fhem.cfg).

#### Windows

- See the HOWTO_Windows.html for a detailed description.
- If you are using cygwin for your perl installation you can follow the guidelines for Unix.

#### Fritz!BOX

As of Fritz!OS 6.20 AVM decided to remove all possibilities to start "foreign" programs automatically after a reboot, that is why I advise against deploying FHEM on the Fritz!BOX, see also this discussion (in german). If you still insist:
- On the FB7390 or FB7490 install this image. Note: it is needed additionally to the OS image from AVM.
- On the FB7270 unpack this zip file to a USB-Disk, attach the disk to the FritzBox, log in, and start FHEM from there.

After the installation follow the HOWTO for adding devices or try out the demo configuration by starting fhem with:

`perl fhem.pl fhem.cfg.demo`

### License:

Copyright:

- Rudolf Koenig (r dot koenig at koeniglich dot de. Note: I do not provide fhem-support via private mail, use the forum instead)
- Numerous other people with their FHEM modules

License: GPL (v2)
Thanks to TOSTi for inspiration.