diff --git a/src/EntityManager.cpp b/src/EntityManager.cpp
index 08797ac..5ec5cfa 100644
--- a/src/EntityManager.cpp
+++ b/src/EntityManager.cpp
@@ -884,22 +884,24 @@
             bool powerOff = !isPowerOn();
             for (const auto& item : lastJson.items())
             {
-                if (!systemConfiguration.contains(item.key()))
+                if (systemConfiguration.contains(item.key()))
                 {
-                    bool requirePowerOn = deviceRequiresPowerOn(item.value());
-                    if (powerOff && requirePowerOn)
-                    {
-                        // power not on yet, don't know if it's there or not
-                        continue;
-                    }
-                    if (!powerOff && scannedPowerOff && requirePowerOn)
-                    {
-                        // already logged it when power was off
-                        continue;
-                    }
-
-                    logDeviceRemoved(item.value());
+                    continue;
                 }
+
+                bool requirePowerOn = deviceRequiresPowerOn(item.value());
+                if (powerOff && requirePowerOn)
+                {
+                    // power not on yet, don't know if it's there or not
+                    continue;
+                }
+                if (!powerOff && scannedPowerOff && requirePowerOn)
+                {
+                    // already logged it when power was off
+                    continue;
+                }
+
+                logDeviceRemoved(item.value());
             }
             scannedPowerOff = true;
             if (!powerOff)
