Exception in MySensorsBase::SendSensor2Domoticz
Posted: Monday 20 April 2020 17:14
My Domoticz crashed multiple times/day within the MySensorsBase::SendSensor2Domoticz() function. I downloaded the sources, compiled and found an error around line 990 where vType == V_FORECAST. The following code
The else clause (with pSensorBaro==null) still uses pSensorBaro->nodeID. This will generate an exception which will crash domoticz. I fixed the code as follows:
I want to push the change back into github - but I get a 'permission denied'. Not sure how I can get permission to post changes. Any ideas?
(added as issue 4088 on https://github.com/domoticz/domoticz/issues/4088)
Code: Select all
if (pSensorBaro)
{
float Baro;
if (pSensorBaro->GetValue(V_PRESSURE, Baro))
{
int forecast = intValue;
if (forecast == bmpbaroforecast_cloudy)
{
if (Baro < 1010)
forecast = bmpbaroforecast_rain;
}
SendBaroSensor(pSensorBaro->nodeID, pSensorBaro->childID, pSensorBaro->batValue, Baro, forecast, (!pChild->childName.empty()) ? pChild->childName : "Baro");
}
}
else
{
if (pChild->GetValue(V_FORECAST, stringValue))
{
std::string devname = (!pChild->childName.empty()) ? pChild->childName : "Forecast";
SendTextSensor(pSensorBaro->nodeID, pSensorBaro->childID, pChild->batValue, stringValue, devname);
}
Code: Select all
if (pSensorBaro)
{
float Baro;
if (pSensorBaro->GetValue(V_PRESSURE, Baro))
{
int forecast = intValue;
if (forecast == bmpbaroforecast_cloudy)
{
if (Baro < 1010)
forecast = bmpbaroforecast_rain;
}
SendBaroSensor(pSensorBaro->nodeID, pSensorBaro->childID, pSensorBaro->batValue, Baro, forecast, (!pChild->childName.empty()) ? pChild->childName : "Baro");
}
}
else
{
_tMySensorChild *pSensorForecast = FindChildWithValueType(pChild->nodeID, V_FORECAST, pChild->groupID);
if (pSensorForecast && pChild->GetValue(V_FORECAST, stringValue))
{
std::string devname = (!pChild->childName.empty()) ? pChild->childName : "Forecast";
SendTextSensor(pSensorForecast->nodeID, pSensorForecast->childID, pChild->batValue, stringValue, devname);
}
(added as issue 4088 on https://github.com/domoticz/domoticz/issues/4088)