<?php

	echo("</br>");
	echo("traitement des changement d'état des sondes :</br>");
	echo("&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;envoi des SMS</br>");
	echo("&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;actions SHELLY si activées</br>");

	if ( $link_AQCM05_OK ) {

		if ( $NB_users > 0 ) {

			echo( $NB_users );
			echo(" utilisateur(s) identifié(s) pour ce site !!!");
			echo("</br>");

			if ( $NB_sondes > 0 ) {
				
				echo($NB_sondes);
				echo(" sonde(s) identifiée(s) pour ce site !!!");
				echo("</br>");

				//----------------------------------------------------------------------------------------------------
				// boucle sur les utilisateurs
				//----------------------------------------------------------------------------------------------------
				for ( $index_users = 0; $index_users < $NB_users; $index_users++ ) {
					
					//----------------------------------------------------------------------------------------------------
					// $aqcm_SHELLY_EN[$i]		
					// $aqcm_SHELLY_SERVER[$i]		
					// $aqcm_SHELLY_KEY[$i]			
					// $aqcm_SHELLY_ID[$i]			
					// $aqcm_SHELLY_POWER_ON[$i]	
					// $aqcm_SHELLY_POWER_OFF[$i]
					// 
					//----------------------------------------------------------------------------------------------------
					// boucle sur les sondes
					//----------------------------------------------------------------------------------------------------
					for ( $index_sonde = 0; $index_sonde < $NB_sondes; $index_sonde++ ) {
						
						//------------------------------------------------------------------------------------------------
						// actions sur les modules SHELLY PLUG S si activés
						//------------------------------------------------------------------------------------------------
						if ( $aqcm_SHELLY_EN[$index_sonde] == "ON" ) {
							
							echo("SHELLY activé pour la sonde $p_aqcm_SITE_ID / $aqcm_NAME[$index_sonde]...</br>") ;
							
							$new_SHELLY_POWER_ON_OFF_FLAG	= true ;
							$new_aqcm_SHELLY_POWER_OFF 	= 'NON' ;
							$new_aqcm_SHELLY_POWER_ON  	= 'NON' ;

							if ( $aqcm_SHELLY_POWER_OFF[$index_sonde] == "OUI" ) {

								//----------------------------------------------------------------------------------------
								// action = mise hors tension du module SHELLY PLUG S de cette sonde
								//----------------------------------------------------------------------------------------
								$aqcm_SHELLY_POST_DATA = array(
									'channel'		=> '0',
									'turn'  		=> 'off',
									'id'			=> $aqcm_SHELLY_ID[$index_sonde],
									'auth_key'	=> $aqcm_SHELLY_KEY[$index_sonde]
								);

								$curl = curl_init();
								curl_setopt($curl, CURLOPT_URL, $aqcm_SHELLY_SERVER[$index_sonde]."/device/relay/control" );
								curl_setopt($curl, CURLOPT_TIMEOUT, 10);
								curl_setopt($curl, CURLOPT_POST, 1);
								curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
								curl_setopt($curl, CURLOPT_POSTFIELDS, $aqcm_SHELLY_POST_DATA);

								$curl_response = curl_exec($curl);

								if ( curl_errno($curl) ) {
									
									
									$new_SHELLY_POWER_ON_OFF_FLAG = false ;		// 	l'action aura lieu la fois suivante
									echo ("POWER OFF : NOK !!! (#1)</br>") ;					//echo ( curl_error($curl) . "</br>" ) ;	
									
									
								} 
								else {

									$decoded_curl_response = json_decode($curl_response, true);

									if ( $decoded_curl_response["isok"] ) {
										
										echo("POWER OFF : OK... (#0)</br>") ;
										echo("POWER ON programmé pour $p_aqcm_SITE_ID / $aqcm_NAME[$index_sonde] ...</br>");
										$new_aqcm_SHELLY_POWER_ON = 'OUI' ;
										
									}
									else {
										$new_SHELLY_POWER_ON_OFF_FLAG = false ;		// 	l'action aura lieu la fois suivante
										echo ("POWER OFF : NOK !!! (#2)</br>") ;
									}

								}

								//----------------------------------------------------------------------------------------

							}
							elseif ( $aqcm_SHELLY_POWER_ON[$index_sonde] == "OUI" ) {

								//----------------------------------------------------------------------------------------
								// action = mise sous tension du module SHELLY PLUG S de cette sonde
								//----------------------------------------------------------------------------------------
								$aqcm_SHELLY_POST_DATA = array(
									'channel'		=> '0',
									'turn'  		=> 'on',
									'id'			=> $aqcm_SHELLY_ID[$index_sonde],
									'auth_key'	=> $aqcm_SHELLY_KEY[$index_sonde]
								);

								$curl = curl_init();
								curl_setopt($curl, CURLOPT_URL, $aqcm_SHELLY_SERVER[$index_sonde]."/device/relay/control" );
								curl_setopt($curl, CURLOPT_TIMEOUT, 10);
								curl_setopt($curl, CURLOPT_POST, 1);
								curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
								curl_setopt($curl, CURLOPT_POSTFIELDS, $aqcm_SHELLY_POST_DATA);

								$curl_response = curl_exec($curl);

								if ( curl_errno($curl) ) {
									$new_SHELLY_POWER_ON_OFF_FLAG = false ;		// 	l'action aura lieu la fois suivante
									echo ("power on : NOK !!! (#11)</br>") ;					//echo ( curl_error($curl) . "</br>" ) ;
								} 
								else {

									$decoded_curl_response = json_decode($curl_response, true);

									if ( $decoded_curl_response["isok"] ) {
										
										echo ("POWER ON : OK... (#10)</br>") ;
																				
									}
									else {
										$new_SHELLY_POWER_ON_OFF_FLAG = false ;		// 	l'action aura lieu la fois suivante
										echo ("POWER ON : NOK !!! (#12)</br>") ;
									}

								}

							}
							else {
								echo ("POWER ON/OFF : nothing to do...</br>") ;
							}

							//------------------------------------------------------------------------------------------------
							if ( $new_SHELLY_POWER_ON_OFF_FLAG ) {
								
								$query_1 = "
									UPDATE IGNORE AQCM05_SONDES_MESURES 
									SET 
										aqcm_SHELLY_POWER_OFF='" . $new_aqcm_SHELLY_POWER_OFF . "',
										aqcm_SHELLY_POWER_ON ='" . $new_aqcm_SHELLY_POWER_ON  . "' 
									WHERE ( aqcm_MAC = '" . $aqcm_MAC[$index_sonde] . "' )
								";
										
								$result_1 = mysqli_query( $link_AQCM05, $query_1 ) ;
										
							}
							
						}
						
						//------------------------------------------------------------------------------------------------
						// si un drapeau d'alerte est levé (ou est resté levé) pour cette sonde :
						//		- envoi de SMS
						//		- programmation des actions SHELLY si actives
						//------------------------------------------------------------------------------------------------
						if ( $new_RX_ALERT[$index_sonde] == "ON" ) {
							
							//---------------------------------------------------------------------------------------
							// envoi SMS avec le nouveau statut de la sonde
							//---------------------------------------------------------------------------------------
							echo("envoi du SMS pour la sonde : " . $aqcm_NAME[$index_sonde] . " ; " . $aqcm_USER_2FA_PHONE[$index_users] . "...</br>");

							$admin_phone_number	= $aqcm_USER_2FA_PHONE[$index_users] ;
							$sms_text				= "AQCM05 / " . $p_aqcm_SITE_ID . " : la sonde " . $aqcm_NAME[$index_sonde] . " est " . $new_RX_STATUS[$index_sonde] . " !" ;
							include("./RX_WARNING_send_sms.php");

							//---------------------------------------------------------------------------------------
							if ( $SMS_code_erreur == 0 ) {
									
								$query_1 = "
									UPDATE IGNORE AQCM05_SONDES_MESURES 
									SET aqcm_RX_ALERT='OFF' 
									WHERE ( aqcm_MAC = '".$aqcm_MAC[$index_sonde]."' )
								";
										
								$result_1 = mysqli_query($link_AQCM05, $query_1) ;
								
							}
							else {
								
								echo(" erreur d'envoi du SMS pour la sonde : " . $aqcm_NAME[$index_sonde] . " ; " . $aqcm_USER_2FA_PHONE[$index_users] . "...</br>");

							}

							//---------------------------------------------------------------------------------------
							// programmation des actions SHELLY si actives
							//---------------------------------------------------------------------------------------
							if ( $aqcm_SHELLY_EN[$index_sonde] == "ON" ) {
								
								if ( $new_RX_STATUS[$index_sonde] == "OFF" ) {
									// la sonde s'est arrêtée -> mise HORS tension au prochain scan (+10mn) :
									echo("POWER OFF programmé pour $p_aqcm_SITE_ID / $aqcm_NAME[$index_sonde] ...</br>");
									$new_aqcm_SHELLY_POWER_OFF 	= 'OUI' ;
									$new_aqcm_SHELLY_POWER_ON  	= 'NON' ;
								}
								elseif ( $new_RX_STATUS[$index_sonde] == "ON"  ) {
									// la sonde fonctionne à nouveau -> pas d'action programmée
									$new_aqcm_SHELLY_POWER_OFF 	= 'NON' ;
									$new_aqcm_SHELLY_POWER_ON  	= 'NON' ;
								}
								else {
									// pas d'action programmée par défaut
									$new_aqcm_SHELLY_POWER_OFF 	= 'NON' ;
									$new_aqcm_SHELLY_POWER_ON  	= 'NON' ;
								}
								
								$query_1 = "
									UPDATE IGNORE AQCM05_SONDES_MESURES 
									SET 
										aqcm_SHELLY_POWER_OFF='" . $new_aqcm_SHELLY_POWER_OFF . "',
										aqcm_SHELLY_POWER_ON ='" . $new_aqcm_SHELLY_POWER_ON  . "' 
									WHERE ( aqcm_MAC = '" . $aqcm_MAC[$index_sonde] . "' )
								";
										
								$result_1 = mysqli_query( $link_AQCM05, $query_1 ) ;

							}
								
						}
						else {
							
							echo(" pas de changement pour la sonde : " . $aqcm_NAME[$index_sonde] . " ; " . $aqcm_USER_2FA_PHONE[$index_users] . "...</br>");

						}

					}
					
				}
				
			}
			else {
				
				echo("aucune sonde identifiée pour ce site !!!");
				echo("</br>");
				
			}

			
			
		}
		else {

			echo("aucun utilisateur identifié pour ce site !!!");
			echo("</br>");
			
		}

	}
	else {

		echo("accès MySQL : erreur !!!");
		echo("</br>");
		
	}


?>
