pilight 5.0

New features


A new pilight program has been released called pilight-flash. It's meant to manually update the pilight-firmware in case the automated update fails or when auto updating isn't supported. Flashing is as easy as:

pilight-flash -F /home/pilight/pilight_firmware_t45_v3.hex

Improved thread priorities

pilight makes heavy use of threading. However, not all threads are evenly important. In this version, high thread priorities were given to the sender and receiver threads. This greatly improved the receiving and sending speed.

Fully modular protocols and hardware

With each pilight version, all (new) protocols and hardware modules are compiled in. The most important reason for this is speed. However, whenever new protocol or hardware modules are developed or existing ones are updated, users have to wait for new pilight versions. Also, introducing new modules is limited to the pilight developers.

This version of pilight allows users to use new protocols and hardware modules when they are released and compatible with the pilight version used. These new modules can be placed in the /usr/local/lib/pilight/protocols/ and /usr/local/lib/pilight/hardware/ folders. Each time pilight is started, it checks these locations for modules and it will load them accordingly. When modules are found that are already compiled into pilight, it will replace the internal code with the code from the module. This also gives third-party developers the opportunity to add new module for pilight without the need to be added to pilight itself. One can think for example of closed source modules from commercial companies (@somfy, please do!)

[ May 23 09:50:20:24122] pilight-daemon: DEBUG: removed protocol x10
[ May 23 09:50:20:24146] pilight-daemon: DEBUG: freed options struct
[ May 23 09:50:20:24163] pilight-daemon: DEBUG: loaded protocol x10.so

With this new feature, two new settings are introduces:

"protocol-root": "/usr/local/lib/pilight/protocols",
"hardware-root": "/usr/local/lib/pilight/hardware"

These settings will change the default search path for modules of pilight. This can be especially handy while developing your own protocols.

Continuously running pilight-debug

pilight-debug has been updated to run continuously. This is especially handy for weather stations that emit codes in a specific interval. pilight-debug will reset itself after it didn't find a match for 1 second.

Biphase Mark Coded Differential Manchester Encoding

pilight got support for devices with the Biphase Mark Coded Differential Manchester Encoding. These are protocols that have a variable code length and generally have larger footers. Therefor the allowed footers were increased by 2.5x and a minrawlen and maxrawlen has been introduced.


pilight got support for monitoring its own CPU and memory usage. This is not only a nice gimmick for inside the GUIs. pilight uses both feature to make sure the system doesn't hang when troubles occur. pilight will follow the following rule. Whenever pilight uses more than 70% CPU or RAM, it will check again in 10 seconds. If the CPU or RAM usage is still larger than 70%, pilight will gracefully stop. If the CPU usage is above 90% at the second check, pilight will terminate immediatly.

Whenever pilight stopped early, check the log for a detailed report on the CPU usage. pilight will post for each thread what the CPU usage was so we can more easily find the cause.

[Jun 04 06:27:03:288140] pilight-daemon: ERROR: ----- Thread Profiling -----
[Jun 04 06:27:03:290849] pilight-daemon: ERROR: - thread lirc: 3.159843%
[Jun 04 06:27:03:293504] pilight-daemon: ERROR: - thread rpi_temp: 0.593350%
[Jun 04 06:27:03:294941] pilight-daemon: ERROR: - thread ds18b20: 10.402585%
[Jun 04 06:27:03:295907] pilight-daemon: ERROR: - thread second parser: 2.615490%
[Jun 04 06:27:03:296284] pilight-daemon: ERROR: - thread socket: 0.000000%
[Jun 04 06:27:03:298060] pilight-daemon: ERROR: - thread ssdp: 3.075720%
[Jun 04 06:27:03:299406] pilight-daemon: ERROR: - thread sender: 0.000000%
[Jun 04 06:27:03:300886] pilight-daemon: ERROR: - thread broadcaster: 26.332925%
[Jun 04 06:27:03:301906] pilight-daemon: ERROR: - thread updater: 8.657362%
[Jun 04 06:27:03:302843] pilight-daemon: ERROR: - thread 433gpio: 99%
[Jun 04 06:27:03:304003] pilight-daemon: ERROR: - thread receive parser: 8.995350%
[Jun 04 06:27:03:304397] pilight-daemon: ERROR: - thread webserver worker #0: 2.500333%
[Jun 04 06:27:03:306065] pilight-daemon: ERROR: - thread webserver client: 1.559016%
[Jun 04 06:27:03:306500] pilight-daemon: ERROR: - thread webserver broadcast: 0.478791%
[Jun 04 06:27:03:307431] pilight-daemon: ERROR: - thread firmware upgrader: 1.977035%
[Jun 04 06:27:03:308581] pilight-daemon: ERROR: ----- Thread Profiling -----

Nightly repository

A new nightly repository has been released. Each night a new nightly will be automatically compiled and uploaded to this new repository. This makes testing of new code a lot user friendly.

Updated webgui jQuery backend

The jquery backened of the webgui has been updated from version 1.3.2 to 1.4.2. This update not only improved the future proofness of the webgui but also the looks of the webgui.

New protocols

The protocols conrad_rsl_switch, conrad_rsl_contact, ehome and mumbi are removed from pilight. The first three protocols are not fully working yet. The state of the mumbi protocol is unknown. Please let me know if it works and I will include it by default.

These protocols are however avaible through the developmental apt repository for testing purposes:

apt-get install pilight-protocol-conrad-rsl-switch
apt-get install pilight-protocol-conrad-rsl-contact
apt-get install pilight-protocol-mumbi
apt-get install pilight-protocol-ehome


  • TFA


  • Cleverwatts
  • SelectRemote
  • Another Rev


  • Screen


  • New mongoose version.
  • The process finder got improved so running pilight-daemon and pilight-{raw,debug,learn} simultaniously is disabled again.
  • Also added the humidity and temperature offset feature to the weather stations.
  • Firmware update will better respect the different ATTiny versions.
  • pilight-daemon can now connect to another daemon by using the server / port CLI parameter.
  • Added the ByeByeStandBye brand to the archtech_old protocol.


  • The adhoc network feature should finally work as expected.
  • The program protocol got supported for non-persistent scripts.
  • Config wrecking on reboot is fixed.
  • Swapped longitude and latitude.
  • File logging has been fixed.
  • Fix crash in log library when log file wasn't set yet.

Published on