publish) if ($type == "sara_MQTT_publish") { $port=$_GET['port']; $timeout=$_GET['timeout']; $message=$_GET['message']; $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/MQTT/publish.py ' . $port . ' ' . $message . ' ' . $timeout; $output = shell_exec($command); echo $output; } #Connect to network if ($type == "sara_connectNetwork") { $port=$_GET['port']; $timeout=$_GET['timeout']; $networkID=$_GET['networkID']; $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_connectNetwork.py ' . $port . ' ' . $networkID . ' ' . $timeout; $output = shell_exec($command); echo $output; } #SET THE URL for messaging if ($type == "sara_setURL") { $port=$_GET['port']; $url=$_GET['url']; $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_setURL.py ' . $port . ' ' . $url; $output = shell_exec($command); echo $output; } #SET APN if ($type == "sara_APN") { $port=$_GET['port']; $timeout=$_GET['timeout']; $APN_address=$_GET['APN_address']; $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_setAPN.py ' . $port . ' ' . $APN_address . ' ' . $timeout; $output = shell_exec($command); echo $output; } #TO WRITE MESSAGE TO MEMORY if ($type == "sara_writeMessage") { $port=$_GET['port']; $message=$_GET['message']; $message = escapeshellcmd($message); $type2=$_GET['type2']; if ($type2 === "write") { $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_writeMessage.py ' . $port . ' ' . $message; $output = shell_exec($command); } if ($type2 === "read") { $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_readMessage.py ' . $port . ' ' . $message; $output = shell_exec($command); } if ($type2 === "erase") { $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_eraseMessage.py ' . $port . ' ' . $message; $output = shell_exec($command); } echo $output; } #Send the typed message to server (for ntfy notification) if ($type == "sara_sendMessage") { $port=$_GET['port']; $endpoint=$_GET['endpoint']; $endpoint = escapeshellcmd($endpoint); $command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_sendMessage.py ' . $port . ' ' . $endpoint; $output = shell_exec($command); echo $output; } if ($type == "internet") { //eth0 $command = 'nmcli -g GENERAL.STATE device show eth0'; $eth0_connStatus = shell_exec($command); $eth0_connStatus = str_replace("\n", "", $eth0_connStatus); $command = 'nmcli -g IP4.ADDRESS device show eth0'; $eth0_IPAddr = shell_exec($command); $eth0_IPAddr = str_replace("\n", "", $eth0_IPAddr); //wlan0 $command = 'nmcli -g GENERAL.STATE device show wlan0'; $wlan0_connStatus = shell_exec($command); $wlan0_connStatus = str_replace("\n", "", $wlan0_connStatus); $command = 'nmcli -g IP4.ADDRESS device show wlan0'; $wlan0_IPAddr = shell_exec($command); $wlan0_IPAddr = str_replace("\n", "", $wlan0_IPAddr); $data= array( "ethernet" => array( "connection" => $eth0_connStatus, "IP" => $eth0_IPAddr ), "wifi" => array( "connection" => $wlan0_connStatus, "IP" => $wlan0_IPAddr ) ); $json_data = json_encode($data); echo $json_data; } # IMPORTANT # c'est ici que la connexion vers le WIFI du client s'effectue. if ($type == "wifi_connect") { $SSID=$_GET['SSID']; $PASS=$_GET['pass']; echo "will try to connect to
"; echo "SSID: " . $SSID; echo "
"; echo "Password: " . $PASS; echo "
"; echo "
"; echo "You will be disconnected. If connection is successfull you can find the device on your local network."; $script_path = __DIR__ . '/connexion.sh'; $log_file = __DIR__ . '/logs/app.log'; shell_exec("$script_path $SSID $PASS >> $log_file 2>&1 &"); #$output = shell_exec('sudo nmcli connection down Hotspot'); #$output2 = shell_exec('sudo nmcli device wifi connect "AirLab" password "123plouf"'); } if ($type == "wifi_scan") { // Set the path to your CSV file $csvFile = '/var/www/nebuleair_pro_4g/wifi_list.csv'; // Initialize an array to hold the JSON data $jsonData = []; // Open the CSV file for reading if (($handle = fopen($csvFile, 'r')) !== false) { // Get the headers from the first row $headers = fgetcsv($handle); // Loop through the rest of the rows while (($row = fgetcsv($handle)) !== false) { // Combine headers with row data to create an associative array $jsonData[] = array_combine($headers, $row); } // Close the file handle fclose($handle); } // Set the content type to JSON header('Content-Type: application/json'); // Convert the array to JSON format and output it echo json_encode($jsonData, JSON_PRETTY_PRINT); } if ($type == "wifi_scan_old") { $output = shell_exec('nmcli device wifi list ifname wlan0'); // Split the output into lines $lines = explode("\n", trim($output)); // Initialize an array to hold the results $wifiNetworks = []; // Loop through each line and extract the relevant information foreach ($lines as $index => $line) { // Skip the header line if ($index === 0) { continue; } // Split the line by whitespace and filter empty values $columns = preg_split('/\s+/', $line); // If the line has enough columns, store the relevant data if (count($columns) >= 5) { $wifiNetworks[] = [ 'SSID' => $columns[2], // Network name 'BARS' => $columns[8], 'SIGNAL' => $columns[7], // Signal strength ]; } } $json_data = json_encode($wifiNetworks); echo $json_data; }