diff --git a/networkdetector/devicemonitor.cpp b/networkdetector/devicemonitor.cpp index db0eba3c..3c37976b 100644 --- a/networkdetector/devicemonitor.cpp +++ b/networkdetector/devicemonitor.cpp @@ -61,7 +61,7 @@ void DeviceMonitor::ping() return; } - m_pingProcess->start("arping", {"-I", targetInterface.name(), "-f", "-w", "90", m_host->address()}); + m_pingProcess->start("arping", {"-I", targetInterface.name(), "-f", "-w", "180", m_host->address()}); } void DeviceMonitor::arpLookupFinished(int exitCode) diff --git a/networkdetector/devicepluginnetworkdetector.cpp b/networkdetector/devicepluginnetworkdetector.cpp index 605bba18..b4733afa 100644 --- a/networkdetector/devicepluginnetworkdetector.cpp +++ b/networkdetector/devicepluginnetworkdetector.cpp @@ -163,5 +163,8 @@ void DevicePluginNetworkDetector::deviceSeen() { DeviceMonitor *monitor = static_cast(sender()); Device *device = m_monitors.value(monitor); - device->setStateValue(networkDeviceLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); + QDateTime oldLastSeen = QDateTime::fromTime_t(device->stateValue(networkDeviceLastSeenTimeStateTypeId).toInt()); + if (oldLastSeen.addSecs(60) < QDateTime::currentDateTime()) { + device->setStateValue(networkDeviceLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); + } }