FHEM Review, Pricing & Features

FHEM review: the Perl-based open-source home automation server. Explore its module ecosystem, licensing, self-hosting setup, and alternatives like Home…

Category
Internet of Things (IoT) & Home Automation
Pricing
Open Source, from Free
Verified
Not yet
Last updated
July 18, 2026
Founded
2005
Headquarters
Frankfurt am Main, Germany
Free PlanWindowsWeb AppOpen SourceSelf-HostedMac

Overview

FHEM is a Perl-based, self-hosted home automation server created in 2005 by German developer Rudolf König, originally to control radio-based heating thermostats and later expanded into a general-purpose smart home platform supporting more than four hundred thirty device and protocol modules.

The project has no commercial owner and is governed as a community effort supported by FHEM e.V., a registered German nonprofit association, with its source code maintained on Subversion and released under the GNU General Public License version 2.

Key Features

FHEM's modular architecture supports an unusually wide range of smart home protocols, including Homematic, KNX, Z-Wave, ZigBee, EnOcean, MQTT, 1-Wire, Philips Hue, and FRITZ!DECT, alongside integrations with Apple HomeKit and Amazon Alexa.

Automation logic can be built using the simple built-in notify mechanism for basic triggers, or the more powerful community-developed DOIF module for declarative, conditional automation rules, with full Perl scripting available for advanced use cases.

Pricing

FHEM is entirely free and open source under the GPLv2 license, with no paid tiers, subscriptions, or hosted cloud version offered by the project.

Because there is no commercial entity behind FHEM, users must self-host it themselves, typically on a Raspberry Pi, NAS device, Linux server, or router, running on Linux, Windows via Cygwin, macOS, or BSD systems.

Key Features

Pros & Cons

Pros

  • Completely free and open source under the GPLv2 license with no commercial restrictions
  • Unusually broad support for legacy and niche radio-frequency protocols, especially in the German market
  • Mature, two-decade-old codebase with an active community and regular releases
  • Highly flexible automation logic via notify and the DOIF module, plus full Perl scripting for advanced users

Cons

  • Documentation and community discussion are predominantly in German, which can be a barrier for English-only users
  • Older architecture that some long-time users describe as more resource-intensive than newer platforms
  • Requires real technical comfort with Perl, Subversion-based updates, and radio hardware for full setup
  • No official mobile-first design or modern app-store apps comparable to newer competitors

Pricing

Frequently Asked Questions

Is FHEM free to use?

Yes, FHEM is entirely free and open source under the GNU General Public License version 2, with no paid tiers, subscriptions, or hosted cloud version.

Who created FHEM?

FHEM was created in 2005 by German developer Rudolf König, originally to control radio-based heating thermostats in his own house, and has since grown into a community-maintained project.

Is FHEM a company?

No, FHEM has never been a company product; it is supported by FHEM e.V., a registered German nonprofit association founded in 2015 that maintains the project's community forum and infrastructure.

What devices and protocols does FHEM support?

FHEM supports more than four hundred thirty modules covering protocols including Homematic, KNX, Z-Wave, ZigBee, EnOcean, MQTT, 1-Wire, and integrations with Apple HomeKit and Amazon Alexa.

How is FHEM different from Home Assistant or openHAB?

FHEM predates both Home Assistant and openHAB, having launched in 2005, and has particularly deep support for older German-market radio-frequency protocols, though some users find its architecture more resource-intensive than these newer alternatives.

What do I need to run FHEM?

FHEM requires a Perl interpreter and is commonly self-hosted on a Raspberry Pi, NAS device, Linux server, or router, running on Linux, Windows via Cygwin, macOS, or BSD; controlling USB radio devices additionally requires the Device::SerialPort Perl module.

Related Tools