(p)
| 1564 | # boolean (a still subject flickers the boolean; motion_level is steadier). |
| 1565 | motion_level = str(cls.get('motion_level') or '') |
| 1566 | engine_present = motion_level.startswith('present') or motion_level == 'active' |
| 1567 | # Corroborated presence: require TWO independent votes before confirming. |
| 1568 | # The fused aggregate motion classifier is ONE vote; each non-stale node |
| 1569 | # is one vote. This rejects the two live failure modes seen in an EMPTY |
| 1570 | # apartment: (a) a single weak/edge node twitching alone (through-wall |
| 1571 | # neighbour / RF noise), and (b) the aggregate motion heuristic firing on |
no outgoing calls
no test coverage detected