I've been looking through all the code for hours now and I find this part a bit strange:
Almost every call to a plugin with "PLUGIN_READ" will return 'success = true'. Well at least when a value is read.
Except P012_LCD.
That one returns "success = false"
Perhaps with the idea no value is being read.
In ESPEasy.ino in
Code: Select all
void SensorSendTask(byte TaskIndex)
There is a check which does a call with PLUGIN_READ:
Code: Select all
if(Settings.TaskDeviceDataFeed[TaskIndex] == 0) // only read local connected sensorsfeeds
success = PluginCall(PLUGIN_READ, &TempEvent, dummyString);
else
success = true;
if (success)
{
for (byte varNr = 0; varNr < VARS_PER_TASK; varNr++)
{
if (ExtraTaskSettings.TaskDeviceFormula[varNr][0] != 0)
{
[...]
}
}
sendData(&TempEvent);
}
This sendData does also do other things and eventually do a checkUDP().
It is being called from other controllers also, which may explain why it would work when some controller is enabled.
As a test, I will move the call to sendData outside the scope of the if(success) check, since the TempEvent is not changed within that if-scope.
See pull request
https://github.com/letscontrolit/ESPEasy/pull/896
If someone could test it, that would be great