www-thermferm/index.php

Sun, 07 Jul 2019 14:31:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 07 Jul 2019 14:31:10 +0200
branch
stable
changeset 603
fcff55324b84
parent 578
d694abd9d809
child 693
3518c07737d8
permissions
-rw-r--r--

Merged fix from default

<?php
/*****************************************************************************
 * Copyright (C) 2014-2019
 *   
 * Michiel Broek <mbroek at mbse dot eu>
 *
 * This file is part of ThermFerm
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2, or (at your option) any
 * later version.
 *
 * ThermFerm is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with ThermFerm; see the file COPYING.  If not, write to the Free
 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 *****************************************************************************/

/*
 * Look for the style names in the jqwidgets/styles directory.
 */
$my_style = 'ui-redmond';

require_once('utilities.php');
require_once('liveview.php');



/*
 * Handle the post events
 */
if (isset($_POST['mode']) && isset($_POST['UUID'])) {
    send_array(array('UNIT PUT '.$_POST['UUID'], 'MODE,'.$_POST['mode'], '.'));
    unset($_POST['UUID']);
    unset($_POST['mode']);
}


if (isset($_POST['HeaterState']) && isset($_POST['UUID'])) {
    send_array(array('UNIT PUT '.$_POST['UUID'], 'HEATER_STATE,'.$_POST['HeaterState'], '.'));
    unset($_POST['UUID']);
    unset($_POST['HeaterState']);
}


if (isset($_POST['CoolerState']) && isset($_POST['UUID'])) {
    send_array(array('UNIT PUT '.$_POST['UUID'], 'COOLER_STATE,'.$_POST['CoolerState'], '.'));
    unset($_POST['UUID']);
    unset($_POST['CoolerState']);
}


if (isset($_POST['FanState']) && isset($_POST['UUID'])) {
    send_array(array('UNIT PUT '.$_POST['UUID'], 'FAN_STATE,'.$_POST['FanState'], '.'));
    unset($_POST['UUID']);
    unset($_POST['FanState']);
}


if (isset($_POST['Fridge_lo']) && isset($_POST['Fridge_hi']) && isset($_POST['key']) && isset($_POST['UUID'])) {

    if ($_POST['key'] == "Set") {
	send_array(array('UNIT PUT '.$_POST['UUID'], 'FRIDGE_SET_LO,'.$_POST['Fridge_lo'], 'FRIDGE_SET_HI,'.$_POST['Fridge_hi'], '.'));
    }
    unset($_POST['Fridge_lo']);
    unset($_POST['Fridge_hi']);
    unset($_POST['key']);
    unset($_POST['UUID']);
}


if (isset($_POST['Beer_lo']) && isset($_POST['Beer_hi']) && isset($_POST['key']) && isset($_POST['UUID'])) {

    if ($_POST['key'] == "Set") {
	send_array(array('UNIT PUT '.$_POST['UUID'], 'BEER_SET_LO,'.$_POST['Beer_lo'], 'BEER_SET_HI,'.$_POST['Beer_hi'], '.'));
    }
    unset($_POST['Beer_lo']);
    unset($_POST['Beer_hi']);
    unset($_POST['key']);
    unset($_POST['UUID']);
}


if (isset($_POST['SetProfile']) && isset($_POST['key']) && isset($_POST['UUID'])) {

    $cmd = array('UNIT PUT '.$_POST['UUID']);
    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);

$version = "?";
$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] == "RELEASE")
	    $version = $f[1];
	if ($f[0] == "TEMP_STATE")
	    $temp_state = $f[1];
	if (($f[0] == "TEMP_VALUE") && ($temp_state == "OK"))
	    $temp_value = $f[1];
	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;
$outstr .= ' <head>'.PHP_EOL;
$outstr .= '  <meta http-equiv="content-type" content="text/html; charset=utf-8" />'.PHP_EOL;
$outstr .= '  <title>ThermFerm monitor</title>'.PHP_EOL;
$outstr .= '  <link type="text/css" href="css/style.css" rel="stylesheet" media="all" />'.PHP_EOL;
$outstr .= '  <link type="text/css" href="jqwidgets/styles/jqx.base.css" rel="stylesheet" />'.PHP_EOL;
$outstr .= '  <link type="text/css" href="jqwidgets/styles/jqx.'.$my_style.'.css" rel="stylesheet" />'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxcore.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxwindow.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxtabs.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxcheckbox.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxbuttons.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxradiobutton.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxchart.core.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxgauge.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxdraw.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxdata.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxdata.export.js"></script>'.PHP_EOL;
$outstr .= '  <script type="text/javascript" src="jqwidgets/jqxtooltip.js"></script>'.PHP_EOL;
$outstr .= ' </head>'.PHP_EOL;

$outstr .= ' <body class="default">'.PHP_EOL;
$outstr .= '  <div id="jqxWidget">'.PHP_EOL;
$outstr .= '   <div id="header">'.PHP_EOL;
$outstr .= '    <div id="title">'.PHP_EOL;
$outstr .= '     ThermFerm '.$version.PHP_EOL;
$outstr .= '    </div>'.PHP_EOL;
$outstr .= '    <div id="room">'.PHP_EOL;
$outstr .= '     <div id="room_temp" class="rtemp">'.$temp_value.' &deg;C</div>'.PHP_EOL;
$outstr .= '     <div id="room_hum" class="rtemp">'.$hum_value.' %</div>'.PHP_EOL;
$outstr .= '    </div>'.PHP_EOL;
$outstr .= '    <form action="maintenance.php" style="margin:30px; float:right">'.PHP_EOL;
$outstr .= '     <input type="submit" id="maintenance" value="Maintenance panel" />'.PHP_EOL;
$outstr .= '    </form>'.PHP_EOL;
$outstr .= '   </div> <!-- header -->'.PHP_EOL;
$outstr .= liveview();

/* Create the tabs */
$outstr .= '   <script type="text/javascript" src="js/index.js"></script>'.PHP_EOL;
$outstr .= '  </div> <!-- jqxWidget -->'.PHP_EOL;
$outstr .= ' </body>'.PHP_EOL;
$outstr .= '</html>'.PHP_EOL;

echo $outstr;

mercurial