pilight 7.0

pilight 7.0

The latest pilight version is all about reaching a greater audience. pilight is now also supported on Windows and OpenWRT routers, and by using the pilight USB nano, any computer with USB can now be turned into a full fledge domotica solution. The eventing library has also been improved greatly.

With targeting a broader audience comes also the responsibility to create good documentation. The past couple of weeks we've been working on a new pilight manual. This manual is currently available in English, Dutch, and Italian and is partly driven by the community.

So, to get started with the new pilight version, please read the new documentation targeted at pilight 7.0 and ideally, help us translate it in your language.

If you are a happy pilight user then please consider a donation (of any amount) to support the project. Donations are keeping this project running in regard to server maintainance, experimenting with new equipment and such.

New Features

Windows support

Windows support has been added to pilight. This allows users to run the pilight daemon in Windows and use the pilight clients in Windows as well. The goal is to add various Windows hardware support so we can use the full potential of pilight.

OpenWRT routers support

OpenWRT support has been added to pilight. This allows users to run the pilight daemon on OpenWRT routers. When connecting the pilight USB nano you can turn you're router in a full fledge domotica solutions.
pilight usb nano

pilight can be used on Linux, FreeBSD, and Windows. The problem was that only those devices that supported GPIO could be fully used with pilight. This has changed with the release of the pilight usb nano firmware and hardware module. This new firmware allows users to use a Arduino Nano to control and receive 433.92Mhz devices. This turns every USB capable computer into a full fledge domotica solution.

Secure webserver authentication storage

In the previous pilight versions, the webserver authentication data stored in plain text. By adding authentication, users were able to secure their webserver with a username and password. The problem was that the password was easy retrieveble from the pilight configuration. This problem has been solved by storing the passwords in a secure SHA256 encrypted way. However, encrypting your password with regular SHA256 tools won't work because pilight uses several thousand encryption iterations to further improve the reliability of the encryption. To easuly encrypt your passwords you can use the new pilight-sha256 program like this: pilight-sha256 -p password were password is the password you want to encrypt. Add the output to the webserver-authentication setting as described in the pilight-manual.
Improved eventing


The eventing parsing has been greatly improved with proper AND and OR parsing. This means that an OR can let (parts of a) rule succeed without having to parse all logic. An AND can let (parts of a) rule fail without having to parse all logic. This greatly increases the efficiency in rule parsing

All actions are now being executed asynchronicly. This means that rules can trigger an action, but the action is executed separatly so we can evaluate the other rules a lot quicker.

Timed events

The switch and dim events have been grealty enhanced.

The switch action has been enhanced with a FOR and AFTER variable. Both
are optional. E.g.,

IF 1 == 1 THEN switch DEVICE light TO on FOR 30 AFTER 10

The dim action has been enhanced with a FOR, AFTER, FROM, and IN variable.
For examples:

IF 1 == 1 THEN dim DEVICE wakeup TO 15 FROM 1 IN 2700
IF 1 == 1 THEN dim DEVICE dimmer TO 1 AFTER 10 FOR 30

    FOR: Change state for X seconds and then restore to previous state.
    AFTER: Don't change immediatly but after X seconds.
    FROM + IN: Change state of device FROM X to Y in Z seconds.

Device parameters as action arguments

This new feature allows you to dynamically change the behavior of an event. A few examples:

IF 1 == 1 THEN dim DEVICE dimmer TO dimmerMax.dimlevel FOR dimmerDuration.dimlevel
IF 1 == 1 THEN switch DEVICE light TO television.state
IF 1 == 1 THEN label DEVICE dimLabel TO dimmer.dimlevel

This new feature can be used on the following fields
- TO
- IN


Event function add an addition level of freedome to rule creation. The currently implemented event functions behaves much alike the MySQL functions. Currently, the following function are supported: RANDOM, DATE_FORMAT, and DATE_ADD. The DATE functions allow you to more easily work with time mathematics. Functions can be used nested and used with the already working operators. A few examples:

IF RANDOM(0, 23) == datetime.hour THEN ...
IF DATE_FORMAT(datetime, %H%M) == sunriseset.sunrise THEN ...
IF sunriseset.sunset == DATE_FORMAT(DATE_ADD(datetime, +1 HOUR), \\\\\\\\"%Y-%m-%d %H:%M:%S\\\\\\\\", %H.%M) THEN ...

Multiple actions per rule

A rule can now execute multiple actions. This makes rule creation yet more efficient. An example:

IF 1 == 1 THEN label DEVICE dimLabel TO dimmer.dimlevel AND switch DEVICE lamp AND light TO on AND dim DEVICE dimmer TO 10

New protocols

  • ev1527 contact sensor.
  • Conrad RSL Switches.
  • Conrad RSL Conact sensors.
  • Logilink switches.
  • Generic Label
  • Heitech
  • Daycom

New actions

  • pushbullet
  • label


  • Fixed decimals in ds18s20 protocol.
  • Segfault when running in threadprofiler.
  • Fixed winddir icon in webGUI.
  • Fixed segfault when arping protocol was called when the main network device didn't have a valid IP.
  • Fixed UUID generation when first network device is offline.
  • Time in log is now in UTC to prevent time shifts.
  • Fixed webGUI wind direction updates.
  • Fixed bug datetime and sunriseset protocol with times between 0:00 - 2:00.
  • Finally fixed error that made the webserver crash while running.


  • Enhanced datetime and sunriseset protocol time calculations.
  • MIPS CI20 creator support.
  • Only start some devices in master when running in client/server mode.
  • pilight-flash now support USB flashing and the ATMega328P.
  • Underscores en hyphens are now allows in the config device id's.
  • Sunrise / Sunset calculations are more accurate.
  • Check relay states on pilight start.
  • Differentiate GUI decimals for temperature, humidity, wind, pressure, and sunriseset.
  • Allow underscores in weather underground locations.
  • Add possibility to custom compile pilight with webserver SSL support.
  • Infinite rule loop detection. If a rule triggers itself, pilight will disable it to prevent it from hanging.
  • Add confirmation option to gui configuration so you get asked for a confirmation first before an action is actually executed.

Important changes

  • The webgui-template, send-repeats, and receive-repeats settings has been removed, because they weren't used.

Published on