isAuthorized()) { // On récupère la liste des entités que Home Assistant connaît // Cela nous sert de "liste de courses" pour savoir ce qu'on doit mettre à jour. $all_entities = $api->loadStates(); foreach ($all_entities as $entity_data) { $id = $entity_data['entity_id']; $details = $api->getState($id); // Récupère le type (temp, humidity, etc.) et l'état actuel. if ($details) { /** * ÉTAPE CRUCIALE : Ici, au lieu d'attendre un événement AirSend, * vous devez appeler une fonction qui interroge directement * votre service AirSendWebService pour obtenir la valeur physique. * * Si vous avez une méthode ou un endpoint dans AirSend pour "récupérer tout", * utilisez-le ici pour remplir $current_physical_value. */ $current_physical_value = $details['state']; // Par défaut, on garde l'ancienne si pas de changement // Exemple logique si vous interrogez le service AirSend directement : // $raw_airsend = \AirSendService::fetchStatus($entity_data['some_id']); // if ($raw_airsend) { $current_physical_value = $raw_airsend; } // On force la mise à jour vers Home Assistant $api->setState( $id, $details['type'] ?? 'state', $current_physical_value, time() * 1000, // Timestamp actuel pour forcer le "last_updated" dans HA $entity_data['attributes']['channel'] ?? null ); } } }