# HG changeset patch # User Michiel Broek # Date 1408528969 -7200 # Node ID 173b4480c4a03fbe67552b58c5ce334abf853abe # Parent a21865cb1ef419e8531a13ab13750f3d84d609a9 Made a function to send arrays to the server. The room temperature and humidity are now displayed at once when the dashboard is loaded. diff -r a21865cb1ef4 -r 173b4480c4a0 www-thermferm/index.php --- a/www-thermferm/index.php Mon Aug 18 20:00:30 2014 +0200 +++ b/www-thermferm/index.php Wed Aug 20 12:02:49 2014 +0200 @@ -35,108 +35,38 @@ * Handle the post events */ if (isset($_POST['mode']) && isset($_POST['UUID'])) { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'MODE,'.$_POST['mode'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'MODE,'.$_POST['mode'], '.')); unset($_POST['UUID']); unset($_POST['mode']); } if (isset($_POST['HeaterState']) && isset($_POST['UUID'])) { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'HEATER_STATE,'.$_POST['HeaterState'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'HEATER_STATE,'.$_POST['HeaterState'], '.')); unset($_POST['UUID']); unset($_POST['HeaterState']); } if (isset($_POST['CoolerState']) && isset($_POST['UUID'])) { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'COOLER_STATE,'.$_POST['CoolerState'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'COOLER_STATE,'.$_POST['CoolerState'], '.')); unset($_POST['UUID']); unset($_POST['CoolerState']); } if (isset($_POST['FanState']) && isset($_POST['UUID'])) { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'FAN_STATE,'.$_POST['FanState'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'FAN_STATE,'.$_POST['FanState'], '.')); unset($_POST['UUID']); unset($_POST['FanState']); } + if (isset($_POST['Fridge']) && isset($_POST['key']) && isset($_POST['UUID'])) { if ($_POST['key'] == "Set") { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'FRIDGE_SET,'.$_POST['Fridge'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'FRIDGE_SET,'.$_POST['Fridge'], '.')); } - unset($_POST['Fridge']); unset($_POST['key']); unset($_POST['UUID']); @@ -146,21 +76,7 @@ if (isset($_POST['Beer']) && isset($_POST['key']) && isset($_POST['UUID'])) { if ($_POST['key'] == "Set") { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - socket_write($sock, 'BEER_SET,'.$_POST['Beer'], 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } + send_array(array('UNIT PUT '.$_POST['UUID'], 'BEER_SET,'.$_POST['Beer'], '.')); } unset($_POST['Beer']); unset($_POST['key']); @@ -170,39 +86,54 @@ if (isset($_POST['SetProfile']) && isset($_POST['key']) && isset($_POST['UUID'])) { - $sock = open_socket(); - if ($sock != false) { - socket_write($sock, 'UNIT PUT '.$_POST['UUID'], 4096); - usleep(20000); - if ($_POST['key'] == "Set") - socket_write($sock, 'PROFILE,'.$_POST['SetProfile'], 4096); - else if ($_POST['key'] == "Start") - socket_write($sock, 'PROF_STATE,RUN', 4096); - else if (($_POST['key'] == "Pause") || ($_POST['key'] == "Resume")) - socket_write($sock, 'PROF_STATE,PAUSE', 4096); - else if ($_POST['key'] == "Abort") - socket_write($sock, 'PROF_STATE,ABORT', 4096); - else if ($_POST['key'] == "Off") - socket_write($sock, 'PROF_STATE,OFF', 4096); - usleep(20000); - socket_write($sock, '.', 4096); - /* Absorb response */ - while (1) { - $line = socket_read($sock, 4096); - if ($line === '') - break; - } - socket_close($sock); - } - + $cmd = array('UNIT PUT '.$_POST['UUID']); + if ($_POST['key'] == "Set") + $cmd[] = 'PROFILE,'.$_POST['SetProfile']; + else if ($_POST['key'] == "Start") + $cmd[] = 'PROF_STATE,RUN'; + else if (($_POST['key'] == "Pause") || ($_POST['key'] == "Resume")) + $cmd[] = 'PROF_STATE,PAUSE'; + else if ($_POST['key'] == "Abort") + $cmd[] = 'PROF_STATE,ABORT'; + else if ($_POST['key'] == "Off") + $cmd[] = 'PROF_STATE,OFF'; + $cmd[] = '.'; + send_array($cmd); unset($_POST['SetProfile']); unset($_POST['key']); unset($_POST['UUID']); } +/* + * Get initial room temperature and humidity + */ +$answer = send_cmd('GLOBAL GET'); +$arr = explode("\r\n", $answer); + $temp_value = "NA"; +$temp_state = "NA"; $hum_value = "NA"; +$hum_state = "NA"; + +if (startsWith($arr[0], "213")) { + $j = 1; + while (1) { + if (strcmp($arr[$j], ".") == 0) + break; + $f = explode(",", $arr[$j]); + + if ($f[0] == "TEMP_STATE") + $temp_state = $f[1]; + if (($f[0] == "TEMP_VALUE") && ($temp_state == "OK")) + $temp_value = $f[1].' °C'; + if ($f[0] == "HUM_STATE") + $hum_state = $f[1]; + if (($f[0] == "HUM_VALUE") && ($hum_state == "OK")) + $hum_value = $f[1].' %'; + $j++; + } +} $outstr = ''.PHP_EOL; $outstr .= ''.PHP_EOL; diff -r a21865cb1ef4 -r 173b4480c4a0 www-thermferm/utilities.php --- a/www-thermferm/utilities.php Mon Aug 18 20:00:30 2014 +0200 +++ b/www-thermferm/utilities.php Wed Aug 20 12:02:49 2014 +0200 @@ -66,6 +66,37 @@ /* + * @param string array of $commands to send to the server. + * Return: string with the complete reply from the + * server. This can be a multiline reply. + */ +function send_array($command) +{ + $sock = open_socket(); + if ($sock == false) { + return ""; + } + + foreach($command as $cmd) { + socket_write($sock, $cmd, 4096); + usleep(20000); /* Give server time to recognize lines */ + } + + $answer = ""; + while (1) { + $line = socket_read($sock, 4096); + if ($line === '') + break; + $answer .= $line; + } + socket_close($sock); + + return $answer; +} + + + +/* * @param string $command to send to the server. * Return: 0 = Ok. * 1 = Server responden with an error.