Made a function to send arrays to the server. The room temperature and humidity are now displayed at once when the dashboard is loaded.

Wed, 20 Aug 2014 12:02:49 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 20 Aug 2014 12:02:49 +0200
changeset 251
173b4480c4a0
parent 250
a21865cb1ef4
child 252
2197976f2bc5

Made a function to send arrays to the server. The room temperature and humidity are now displayed at once when the dashboard is loaded.

www-thermferm/index.php file | annotate | diff | comparison | revisions
www-thermferm/utilities.php file | annotate | diff | comparison | revisions
--- 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].' &deg;C';
+	if ($f[0] == "HUM_STATE")
+	    $hum_state = $f[1];
+	if (($f[0] == "HUM_VALUE") && ($hum_state == "OK"))
+	    $hum_value = $f[1].' %';
+	$j++;
+    }
+}
 
 $outstr  = '<!DOCTYPE html>'.PHP_EOL;
 $outstr .= '<html>'.PHP_EOL;
--- 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.

mercurial