About the pilight nightlies

Between two stable releases, pilight development continues in the background. To make it easy to use this new functionality, a pilight nightly is automatically generated each night. That means that you can just enable the nightly repository and start installing pilight nightlies to use the vary latest features of pilight. To enable this repository check this section of the Installation manual.

Running a pilight nightly (can) mean that the code is unstable or buggy, but bugs don't happen that often. As a test case, the main developers and tester always run nightlies in their own situation and without many issues. But don't use nightlies if you aren't willing to report bugs and delve into them. Because we run nightlies ourselves, we also encounter bugs really fast and they will mostly be fixed on the next day.

Running nightlies can also mean configuration and API changes. Those will be described the best way possible in GitHub commit messages and on this page.


The pilight nightly requires two additional (uncommon) libraries:

  1. libunwind8
  2. libpcap0.8

For manually compiling you need:

  1. libunwind-dev
  2. libpcap-dev

Please be aware that libunwind isn't available on Debian Wheezy. If you install the latest nightlies on these versions, make sure you also enable the pilight stable apt repository.

New Features

Greatly improved REST API

Instead of posting arbitrary urlencoded JSON objects, users can know use regular GET and POST methods.

To mimic pilight-send behavior using the REST API:


To mimic pilight-control behavior using the REST API:

https://x.x.x.x:xx/control?device=label&values[label]=computer is disconnected&values[color]=red

The REST API can parse regular URL input, POST messages, and GET messages.

Please notice that the REST API validates no more than the REST input. That means, pilight does not check if e.g. the ID that was sent is valid for the specific protocol or if a device can take a specific state.

The REST API also does not care if you sent more information than required. It will just use the information needed to control a device or sent codes.

Z-Wave support

Z-Wave support was added using the OpenZWave library. At the time of writing only switches are supported.

"stalamp": {
	"protocol": [ "zwave_switch" ],
	"id": [{
		"homeId": 1234567890,
		"nodeId": 10
	"state": "off"

Controlling the Z-Wave driver is done by using the command line zwave_ctrl protocol:

  • Inclusion
root@pilight: ~# pilight-send -p zwave_ctrl -i
  • Exclusion
root@pilight: ~# pilight-send -p zwave_ctrl -e
  • Soft-Reset
root@pilight: ~# pilight-send -p zwave_ctrl -r
  • Stopping previous command
root@pilight: ~# pilight-send -p zwave_ctrl -s

The hardware module syntax is like this:

"zwave": {
	"comport": "/dev/ttyAMA0"

The code is currently only tested on Linux but should be able to work on at least FreeBSD and maybe Windows.


  • Integrated timezone data into pilight itself instead of loading it externally.
  • Support for Radxa hardware
  • Add support for eventing rules based on received data
  • Prevent protocol names from being used as device name
  • Arduino Uno support
  • Add protocol for TFA 30.X weather stations (tfa30)
  • Add filtering option to pilight-receive
  • Enhance pushbullet action functionality
  • Add eventing ISNOT operator
  • Add protocol for Secudo/FlammEx smoke detector (secudo_smoke)
  • Add support for SOENS weather stations to tfa protocol
  • Add separate protocol for Eurodomest switches (eurodomest_switch)
  • Add protocol for TCM 218943 weather stations (tcm)
  • Add support for AArch64


  • Small bugfix in XBMC and Lirc protocol preventing pilight to properly stop when no connection could be made.
  • Fixed the incorrect time calculation in the dimmer IN parameter.
  • Several minor protocol fixes
  • Fix several potential buffer overflows
  • Improved email format validation
  • Fix dimmer display bugs in the webgui, and a generic_dimmer bug

Published on