@@ -1177,6 +1177,7 @@ public static function getEvents($mqtt = false, $events = array(), $type = 'end'
11771177
11781178 // si data description existe, le mettre à jour aussi
11791179 if (isset ($ event ['data ' ]['description ' ])) {
1180+ log::add (__CLASS__ , 'debug ' , "║ Mise à jour du champ recognition_description pour event ID: " . $ event ['id ' ] . ". ancienne valeur: " . json_encode ($ frigate ->getRecognition_description ()) . ", nouvelle valeur: " . json_encode ($ event ['data ' ]['description ' ]));
11801181 $ frigate ->setRecognition_description ($ event ['data ' ]['description ' ]);
11811182 }
11821183 $ frigate ->save ();
@@ -1221,7 +1222,7 @@ private static function eventAdd($event, $eqLogicId)
12211222 "type " => $ event ->getType (),
12221223 "isFavorite " => $ event ->getIsFavorite () ?? 0 ,
12231224 "zones " => $ event ->getZones () ?? '' ,
1224- "description " => $ event ->getRecognition_description () ?? ''
1225+ "description " => $ event ->getRecognition_description ()
12251226 );
12261227
12271228
@@ -1743,7 +1744,7 @@ public static function showEvents()
17431744 "type " => $ event ->getType (),
17441745 "isFavorite " => $ event ->getIsFavorite () ?? 0 ,
17451746 "zones " => $ event ->getZones () ?? '' ,
1746- "description " => $ event ->getRecognition_description () ?? ''
1747+ "description " => $ event ->getRecognition_description ()
17471748 );
17481749 }
17491750
@@ -1985,98 +1986,120 @@ public static function generateEqStats()
19851986
19861987 public static function updateTrackedObjects ($ trackedObjects )
19871988 {
1988- $ type = $ trackedObjects ['type ' ];
1989- $ camera = $ trackedObjects ['camera ' ];
1990- $ id = $ trackedObjects ['id ' ];
1989+ $ type = $ trackedObjects ['type ' ] ?? null ;
1990+ $ camera = $ trackedObjects ['camera ' ] ?? null ;
1991+ $ id = $ trackedObjects ['id ' ] ?? null ;
1992+
19911993 log::add (__CLASS__ , 'debug ' , "╔════════════════════════ :fg-success:UPDATE TRACKED OBJECTS:/fg: ═══════════════════ " );
1992- log::add (__CLASS__ , 'debug ' , "║ Type d'objet suivi : " . $ type . " pour l'événement ID : " . $ id . " sur la caméra : " . $ camera );
1993- // mettre a jour ou créer les commandes
1994+ log::add (__CLASS__ , 'debug ' , "║ Type d'objet : $ type | Événement ID : $ id | Caméra : $ camera " );
1995+
1996+ // Vérification équipement Frigate
19941997 $ frigate = frigate::byLogicalId ("eqFrigateCamera_ " . $ camera , 'frigate ' );
19951998 if (!is_object ($ frigate )) {
1996- log::add (__CLASS__ , 'error ' , "║ Impossible de trouver l'équipement pour la caméra : " . $ camera );
1999+ log::add (__CLASS__ , 'error ' , "║ Équipement introuvable pour la caméra : $ camera" );
19972000 return ;
19982001 }
2002+
19992003 $ eqlogicId = $ frigate ->getId ();
20002004 $ frigateEvent = frigate_events::byEventId ($ id );
20012005 if (is_array ($ frigateEvent ) && !empty ($ frigateEvent )) {
20022006 $ frigateEvent = $ frigateEvent [0 ];
20032007 }
2004- log::add (__CLASS__ , 'debug ' , "║ Json : " . json_encode ($ trackedObjects ));
2005- if ($ type == "description " ) {
2006- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la description générée pour l'événement ID : " . $ id );
2007- // mettre à jour les commandes
2008- $ cmd = self ::createCmd ($ eqlogicId , "Type de détection " , "string " , "" , "info_detection_type " , "" , 0 , null , 0 );
2009- $ cmd ->save ();
2010- $ cmd ->event ("description " );
2011- $ cmd ->save ();
20122008
2013- $ cmd = self ::createCmd ($ eqlogicId , "description " , "string " , "" , "info_id " , "" , 0 , null , 0 );
2014- $ cmd ->save ();
2015- $ cmd ->event ($ trackedObjects ['description ' ]);
2016- $ cmd ->save ();
2017- // mettre a jour la DB aussi
2018- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la DB pour la description générée " );
2019- if (!is_object ($ frigateEvent )) {
2020- log::add (__CLASS__ , 'error ' , "║ Impossible de trouver l'événement pour l'ID : " . $ id );
2009+ if (!is_object ($ frigateEvent )) {
2010+ log::add (__CLASS__ , 'error ' , "║ Événement introuvable pour l'ID : $ id " );
2011+ return ;
2012+ }
2013+
2014+ log::add (__CLASS__ , 'debug ' , "║ Données reçues : " . json_encode ($ trackedObjects ));
2015+
2016+ // Mise à jour de la base de données
2017+ self ::updateDatabase ($ frigateEvent , $ type , $ trackedObjects );
2018+
2019+ // Création / mise à jour des commandes Jeedom
2020+ self ::updateCommands ($ eqlogicId , $ type , $ trackedObjects );
2021+
2022+ log::add (__CLASS__ , 'debug ' , "╚════════════════════════ END UPDATE TRACKED OBJECTS ═══════════════════ " );
2023+ }
2024+
2025+ private static function updateDatabase ($ frigateEvent , $ type , $ trackedObjects )
2026+ {
2027+ switch ($ type ) {
2028+ case "description " :
2029+ log::add (__CLASS__ , 'debug ' , "║ MAJ DB → Description générée " );
2030+ $ frigateEvent ->setRecognition_type ("description " );
2031+ $ frigateEvent ->setRecognition_description ($ trackedObjects ['description ' ] ?? '' );
2032+ break ;
2033+
2034+ case "face " :
2035+ log::add (__CLASS__ , 'debug ' , "║ MAJ DB → Reconnaissance faciale " );
2036+ $ frigateEvent ->setRecognition_type ("face " );
2037+ $ frigateEvent ->setRecognition_name ($ trackedObjects ['name ' ] ?? '' );
2038+ $ frigateEvent ->setRecognition_score ($ trackedObjects ['score ' ] ?? '' );
2039+ break ;
2040+
2041+ case "lpr " :
2042+ log::add (__CLASS__ , 'debug ' , "║ MAJ DB → Plaque d’immatriculation " );
2043+ $ frigateEvent ->setRecognition_type ("lpr " );
2044+ $ frigateEvent ->setRecognition_plate ($ trackedObjects ['plate ' ] ?? '' );
2045+ $ frigateEvent ->setRecognition_name ($ trackedObjects ['name ' ] ?? '' );
2046+ $ frigateEvent ->setRecognition_score ($ trackedObjects ['score ' ] ?? '' );
2047+ break ;
2048+
2049+ default :
2050+ log::add (__CLASS__ , 'debug ' , "║ Type de suivi inconnu : $ type " );
20212051 return ;
2022- }
2023- $ frigateEvent ->setRecognition_type ("description " );
2024- $ frigateEvent ->setRecognition_description ($ trackedObjects ['description ' ]);
2025- $ frigateEvent ->save ();
2026- } elseif ($ type == "face " ) {
2027- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la reconnaissance faciale pour l'événement ID : " . $ id );
2028- // mettre à jour les commandes
2029- $ cmd = self ::createCmd ($ eqlogicId , "Type de détection " , "string " , "" , "info_detection_type " , "" , 0 , null , 0 );
2030- $ cmd ->save ();
2031- $ cmd ->event ("face " );
2032- $ cmd ->save ();
2052+ }
20332053
2034- $ cmd = self ::createCmd ($ eqlogicId , "Nom " , "string " , "" , "info_detection_name " , "" , 0 , null , 0 );
2035- $ cmd ->save ();
2036- $ cmd ->event ($ trackedObjects ['name ' ]);
2037- $ cmd ->save ();
2054+ $ frigateEvent ->save ();
2055+ }
2056+ private static function updateCommands ($ eqlogicId , $ type , $ trackedObjects )
2057+ {
2058+ log::add (__CLASS__ , 'debug ' , "║ MAJ Commandes pour le type : $ type " );
20382059
2039- $ cmd = self ::createCmd ($ eqlogicId , "Score de detection " , "numeric " , "% " , "info_detection_score " , "" , 0 , null , 0 );
2040- $ cmd ->save ();
2041- $ cmd ->event ($ trackedObjects ['score ' ]);
2042- $ cmd ->save ();
2043- // mettre a jour la DB aussi
2044- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la DB pour la reconnaissance faciale " );
2045- $ frigateEvent ->setRecognition_type ("face " );
2046- $ frigateEvent ->setRecognition_name ($ trackedObjects ['name ' ]);
2047- $ frigateEvent ->setRecognition_score ($ trackedObjects ['score ' ]);
2048- $ frigateEvent ->save ();
2049- } elseif ($ type == "lpr " ) {
2050- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la reconnaissance de plaque d'immatriculation pour l'événement ID : " . $ id );
2051- // mettre à jour les commandes
2052- $ cmd = self ::createCmd ($ eqlogicId , "Type de détection " , "string " , "" , "info_detection_type " , "" , 0 , null , 0 );
2053- $ cmd ->save ();
2054- $ cmd ->event ("lpr " );
2055- $ cmd ->save ();
2060+ // Commande de type
2061+ $ cmd = self ::createCmd ($ eqlogicId , "Type de détection " , "string " , "" , "info_detection_type " , "" , 0 , null , 0 );
2062+ $ cmd ->save ();
2063+ $ cmd ->event ($ type );
2064+ $ cmd ->save ();
20562065
2057- $ cmd = self ::createCmd ($ eqlogicId , "Plaque d'immatriculation " , "string " , "" , "info_plate " , "" , 0 , null , 0 );
2058- $ cmd ->save ();
2059- $ cmd ->event ($ trackedObjects ['plate ' ]);
2060- $ cmd ->save ();
2066+ switch ($ type ) {
2067+ case "description " :
2068+ $ cmd = self ::createCmd ($ eqlogicId , "description " , "string " , "" , "info_description " , "" , 0 , null , 0 );
2069+ $ cmd ->save ();
2070+ $ cmd ->event ($ trackedObjects ['description ' ] ?? '' );
2071+ $ cmd ->save ();
2072+ break ;
20612073
2062- $ cmd = self ::createCmd ($ eqlogicId , "Nom " , "string " , "" , "info_detection_name " , "" , 0 , null , 0 );
2063- $ cmd ->save ();
2064- $ cmd ->event ($ trackedObjects ['name ' ]);
2065- $ cmd ->save ();
2074+ case "face " :
2075+ $ cmd = self ::createCmd ($ eqlogicId , "Nom " , "string " , "" , "info_detection_name " , "" , 0 , null , 0 );
2076+ $ cmd ->save ();
2077+ $ cmd ->event ($ trackedObjects ['name ' ] ?? '' );
2078+ $ cmd ->save ();
20662079
2067- $ cmd = self ::createCmd ($ eqlogicId , "Score de detection " , "numeric " , "% " , "info_detection_score " , "" , 0 , null , 0 );
2068- $ cmd ->save ();
2069- $ cmd ->event ($ trackedObjects ['score ' ]);
2070- $ cmd ->save ();
2071- // mettre a jour la DB aussi
2072- log::add (__CLASS__ , 'debug ' , "║ Mise à jour de la DB pour la reconnaissance de plaque d'immatriculation " );
2073- $ frigateEvent ->setRecognition_type ("lpr " );
2074- $ frigateEvent ->setRecognition_plate ($ trackedObjects ['plate ' ]);
2075- $ frigateEvent ->setRecognition_name ($ trackedObjects ['name ' ]);
2076- $ frigateEvent ->setRecognition_score ($ trackedObjects ['score ' ]);
2077- $ frigateEvent ->save ();
2080+ $ cmd = self ::createCmd ($ eqlogicId , "Score de detection " , "numeric " , "% " , "info_detection_score " , "" , 0 , null , 0 );
2081+ $ cmd ->save ();
2082+ $ cmd ->event ($ trackedObjects ['score ' ] ?? '' );
2083+ $ cmd ->save ();
2084+ break ;
2085+
2086+ case "lpr " :
2087+ $ cmd = self ::createCmd ($ eqlogicId , "Plaque d'immatriculation " , "string " , "" , "info_plate " , "" , 0 , null , 0 );
2088+ $ cmd ->save ();
2089+ $ cmd ->event ($ trackedObjects ['plate ' ] ?? '' );
2090+ $ cmd ->save ();
2091+
2092+ $ cmd = self ::createCmd ($ eqlogicId , "Nom " , "string " , "" , "info_detection_name " , "" , 0 , null , 0 );
2093+ $ cmd ->save ();
2094+ $ cmd ->event ($ trackedObjects ['name ' ] ?? '' );
2095+ $ cmd ->save ();
2096+
2097+ $ cmd = self ::createCmd ($ eqlogicId , "Score de detection " , "numeric " , "% " , "info_detection_score " , "" , 0 , null , 0 );
2098+ $ cmd ->save ();
2099+ $ cmd ->event ($ trackedObjects ['score ' ] ?? '' );
2100+ $ cmd ->save ();
2101+ break ;
20782102 }
2079- log::add (__CLASS__ , 'debug ' , "╚════════════════════════ END UPDATE TRACKED OBJECTS ═══════════════════ " );
20802103 }
20812104
20822105 private static function createCmd ($ eqLogicId , $ name , $ subType , $ unite , $ logicalId , $ genericType , $ isVisible = 1 , $ infoCmd = null , $ historized = 0 , $ type = "info " )
@@ -2568,10 +2591,7 @@ public static function majEventsCmds($event)
25682591 $ cmd ->save ();
25692592
25702593 $ cmd = self ::createCmd ($ eqlogicId , "description " , "string " , "" , "info_description " , "" , 0 , null , 0 );
2571- $ data = $ event ->getData ();
2572- $ dataArray = is_array ($ data ) ? $ data : json_decode ($ data , true );
2573- $ description = isset ($ dataArray ['description ' ]) ? $ dataArray ['description ' ] : "" ;
2574- $ cmd ->event ($ description );
2594+ $ cmd ->event ($ event ->getRecognition_description ());
25752595 $ cmd ->save ();
25762596
25772597 $ cmd = self ::createCmd ($ eqlogicId , "id " , "string " , "" , "info_id " , "" , 0 , null , 0 );
@@ -2769,9 +2789,7 @@ private static function executeActionNewEvent($eqLogicId, $event)
27692789 $ camera = $ event ->getCamera ();
27702790 $ cameraId = eqLogic::byLogicalId ("eqFrigateCamera_ " . $ camera , "frigate " )->getId ();
27712791 $ label = $ event ->getLabel ();
2772- $ data = $ event ->getData ();
2773- $ dataArray = is_array ($ data ) ? $ data : json_decode ($ data , true );
2774- $ description = isset ($ dataArray ['description ' ]) ? $ dataArray ['description ' ] : "" ;
2792+ $ description = $ event ->getRecognition_description ();
27752793 $ zones = $ event ->getZones ();
27762794 $ score = $ event ->getScore ();
27772795 $ type = $ event ->getType ();
0 commit comments