Github Boards Devices Community Docs Blog

TFA Sensor not detected anymore since v0.9.6

Hi there,

i own a TFA temperature and humidity sensor that worked fine with pilight until i updated to 0.9.6
It works with rtl_433 but than my favourite 433 remote does not work anymore and i don’t want to go back 0.9.5

Here is a message from pilight i captured with 0.9.5:
{“message”:{“id”:208,“temperature”:20.94,“humidity”:34.00,“battery”:1,“channel”:1},“protocol”:“tfa”,“length”:“208”,“value”:“208”,“repeats”:2,“status”:2}

Can anyone point me in a direction to start addressing this issue?

Hi,

It may be due to a regression on Pilight, you can take the previous version of pilight (the one pointed in v0.9.5) and use it to rebuild the v0.9.6.

I was able to narrow it down to ESPilight.cpp

With Version 0.17 the new Method calc_lengths was introduced which reads minLen, maxLen, minGap and maxGap from the protocols and uses that instead of hardcoded values like in Version 0.16.2.

If i change the method to always set the hardcoded Values from Version 0.16.2 instead of reading them from the protocols, TFA starts working again.

ESPiLight.cpp:143

  const uint8_t minLen = 5; //protocol->minrawlen;
  const uint8_t maxLen = MAXPULSESTREAMLENGTH; //protocol->maxrawlen;
  const uint16_t minGap = 5100; //protocol->mingaplen;
  const uint16_t maxGap = 10000; //protocol->maxgaplen;

Until that gets fixed, is there a possibility to override that specific file or method?

It seems that there is a conflict between two protocols like mentioned here: conflict between nexus and tfa protocols? · Issue #55 · puuu/ESPiLight · GitHub

Nexus and TFA protocols don’t work together at the moment so i commented out the nexus_init() call and the include of 433.92/nexus.h protocol in the pilight protocols folder in .pio

.pio/libdeps/esp32cc1101_pilight_ir/ESPiLight/src/pilight/libs/pilight/protocols/protocol_init.h:32
.pio/libdeps/esp32cc1101_pilight_ir/ESPiLight/src/pilight/libs/pilight/protocols/protocol_header.h:32

I was able to revert my changes to ESPiLight.cpp than and the sensor works just fine.

Is there any way to persist these changes? I thought the libs folder would do the trick but it doesn’t work if i copy both files over.

Anyone having the same issue can use:

The pilight submodule of the repository is a fork with nexus module removed. Thats the only change.

1 Like