mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	#2117 change entered_zones from set to list so that they are not automatically alphabetically ordered (#2212)
This commit is contained in:
		
							parent
							
								
									f91f4f0053
								
							
						
					
					
						commit
						1e7f196e5c
					
				@ -71,7 +71,7 @@ class TrackedObject:
 | 
				
			|||||||
        self.camera_config = camera_config
 | 
					        self.camera_config = camera_config
 | 
				
			||||||
        self.frame_cache = frame_cache
 | 
					        self.frame_cache = frame_cache
 | 
				
			||||||
        self.current_zones = []
 | 
					        self.current_zones = []
 | 
				
			||||||
        self.entered_zones = set()
 | 
					        self.entered_zones = []
 | 
				
			||||||
        self.false_positive = True
 | 
					        self.false_positive = True
 | 
				
			||||||
        self.has_clip = False
 | 
					        self.has_clip = False
 | 
				
			||||||
        self.has_snapshot = False
 | 
					        self.has_snapshot = False
 | 
				
			||||||
@ -147,7 +147,8 @@ class TrackedObject:
 | 
				
			|||||||
                # if the object passed the filters once, dont apply again
 | 
					                # if the object passed the filters once, dont apply again
 | 
				
			||||||
                if name in self.current_zones or not zone_filtered(self, zone.filters):
 | 
					                if name in self.current_zones or not zone_filtered(self, zone.filters):
 | 
				
			||||||
                    current_zones.append(name)
 | 
					                    current_zones.append(name)
 | 
				
			||||||
                    self.entered_zones.add(name)
 | 
					                    if name not in self.entered_zones:
 | 
				
			||||||
 | 
					                        self.entered_zones.append(name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # if the zones changed, signal an update
 | 
					        # if the zones changed, signal an update
 | 
				
			||||||
        if not self.false_positive and set(self.current_zones) != set(current_zones):
 | 
					        if not self.false_positive and set(self.current_zones) != set(current_zones):
 | 
				
			||||||
@ -178,7 +179,7 @@ class TrackedObject:
 | 
				
			|||||||
            "region": self.obj_data["region"],
 | 
					            "region": self.obj_data["region"],
 | 
				
			||||||
            "motionless_count": self.obj_data["motionless_count"],
 | 
					            "motionless_count": self.obj_data["motionless_count"],
 | 
				
			||||||
            "current_zones": self.current_zones.copy(),
 | 
					            "current_zones": self.current_zones.copy(),
 | 
				
			||||||
            "entered_zones": list(self.entered_zones).copy(),
 | 
					            "entered_zones": self.entered_zones.copy(),
 | 
				
			||||||
            "has_clip": self.has_clip,
 | 
					            "has_clip": self.has_clip,
 | 
				
			||||||
            "has_snapshot": self.has_snapshot,
 | 
					            "has_snapshot": self.has_snapshot,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -732,7 +733,7 @@ class TrackedObjectProcessor(threading.Thread):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # if there are required zones and there is no overlap
 | 
					        # if there are required zones and there is no overlap
 | 
				
			||||||
        required_zones = snapshot_config.required_zones
 | 
					        required_zones = snapshot_config.required_zones
 | 
				
			||||||
        if len(required_zones) > 0 and not obj.entered_zones & set(required_zones):
 | 
					        if len(required_zones) > 0 and not set(obj.entered_zones) & set(required_zones):
 | 
				
			||||||
            logger.debug(
 | 
					            logger.debug(
 | 
				
			||||||
                f"Not creating snapshot for {obj.obj_data['id']} because it did not enter required zones"
 | 
					                f"Not creating snapshot for {obj.obj_data['id']} because it did not enter required zones"
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
@ -773,7 +774,7 @@ class TrackedObjectProcessor(threading.Thread):
 | 
				
			|||||||
    def should_mqtt_snapshot(self, camera, obj: TrackedObject):
 | 
					    def should_mqtt_snapshot(self, camera, obj: TrackedObject):
 | 
				
			||||||
        # if there are required zones and there is no overlap
 | 
					        # if there are required zones and there is no overlap
 | 
				
			||||||
        required_zones = self.config.cameras[camera].mqtt.required_zones
 | 
					        required_zones = self.config.cameras[camera].mqtt.required_zones
 | 
				
			||||||
        if len(required_zones) > 0 and not obj.entered_zones & set(required_zones):
 | 
					        if len(required_zones) > 0 and not set(obj.entered_zones) & set(required_zones):
 | 
				
			||||||
            logger.debug(
 | 
					            logger.debug(
 | 
				
			||||||
                f"Not sending mqtt for {obj.obj_data['id']} because it did not enter required zones"
 | 
					                f"Not sending mqtt for {obj.obj_data['id']} because it did not enter required zones"
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user