www/mon_fermenter.php

Tue, 28 Aug 2018 20:54:53 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 28 Aug 2018 20:54:53 +0200
changeset 40
b825c675987d
parent 16
522022b4fae4
child 180
a5aa3502310c
permissions
-rw-r--r--

Finished mash steps editing. Style sheets cleanup.

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php');
page_header('Hoofdmenu', NULL);
$uuid = $_GET["uuid"];
?>
   <script>
  $(document).ready(function () {

    var gaugeoptions = {
	  min: -5, max: 35, width: 275, height: 275,
	  ranges: [{ startValue: -5, endValue:  0, style: { fill: '#3399FF', stroke: '#3399FF' }, endWidth: 10, startWidth: 10 },
	           { startValue:  0, endValue: 16, style: { fill: '#00CC33', stroke: '#00CC33' }, endWidth: 10, startWidth: 10 },
	           { startValue: 16, endValue: 24, style: { fill: '#FCA76A', stroke: '#FCA76A' }, endWidth: 10, startWidth: 10 },
	           { startValue: 24, endValue: 35, style: { fill: '#FC6A6A', stroke: '#FC6A6A' }, endWidth: 10, startWidth: 10 }],
	  ticksMinor: { interval: 1, size: '5%' },
	  ticksMajor: { interval: 5, size: '9%' },
	  labels: { interval: 5 },
	  style: { fill: '#eeeeee', stroke: '#666666' },
	  value: 0,
	  colorScheme: 'scheme05',
	  animationDuration: 1200
    };
    var gaugeSmalloptions = {
	  min: -20, max: 25, width: 150, height: 150,
	  ranges: [{ startValue: -20, endValue:  0, startWidth: 5, endWidth: 5, style: { fill: '#3399FF', stroke: '#3399FF' }},
	           { startValue:   0, endValue: 25, startWidth: 5, endWidth: 5, style: { fill: '#FC6A6A', stroke: '#FC6A6A' }}],
	  ticksMinor: { interval: 1, size: '5%' },
	  ticksMajor: { interval: 5, size: '9%' },
	  labels: { interval: 5 },
	  style: { fill: '#eeeeee', stroke: '#666666' },
	  value: 0,
	  colorScheme: 'scheme05',
	  animationDuration: 1200,
	  caption: { value: 'Chiller', position: 'bottom', offset: [0, 10] }
    };

    $("#gaugeContainer_air").jqxGauge( gaugeoptions );
    $("#gaugeContainer_air").jqxGauge( { caption: { value: 'Air', position: 'bottom', offset: [0, 10] }} );
    $("#gaugeContainer_beer").jqxGauge( gaugeoptions );
    $("#gaugeContainer_beer").jqxGauge( { caption: { value: 'Beer', position: 'bottom', offset: [0, 10] }} );
    $("#gaugeContainer_chiller").jqxGauge( gaugeSmalloptions );

    var uuid = "<?php echo $uuid; ?>";
    var url = "getfermenter.php?uuid='" + uuid + "'";
    var source = {
	  datatype: "json",
	  datafields: [
	    { name: 'record', type: 'int' },
	    { name: 'uuid', type: 'string' },
	    { name: 'alias', type: 'string' },
	    { name: 'node', type: 'string' },
	    { name: 'online', type: 'bool' },
	    { name: 'beercode', type: 'string' },
	    { name: 'beername', type: 'string' },
	    { name: 'air_address', type: 'string' },
	    { name: 'air_state', type: 'string' },
	    { name: 'air_temperature', type: 'float' },
	    { name: 'beer_address', type: 'string' },
	    { name: 'beer_state', type: 'string' },
 	    { name: 'beer_temperature', type: 'float' },
	    { name: 'chiller_address', type: 'string' },
	    { name: 'chiller_state', type: 'string' },
	    { name: 'chiller_temperature', type: 'float' },
	    { name: 'heater_address', type: 'string' },
	    { name: 'heater_state', type: 'int' },
	    { name: 'heater_usage', type: 'int' },
	    { name: 'cooler_address', type: 'string' },
	    { name: 'cooler_state', type: 'int' },
	    { name: 'cooler_usage', type: 'int' },
	    { name: 'fan_address', type: 'string' },
	    { name: 'fan_state', type: 'int' },
	    { name: 'fan_usage', type: 'int' },
	    { name: 'light_address', type: 'string' },
	    { name: 'light_state', type: 'int' },
	    { name: 'light_usage', type: 'int' },
	    { name: 'door_address', type: 'string' },
	    { name: 'door_state', type: 'int' },
	    { name: 'psu_address', type: 'string' },
	    { name: 'psu_state', type: 'int' },
	    { name: 'mode', type: 'string' },
	    { name: 'alarm', type: 'int' },
	    { name: 'setpoint_high', type: 'float' },
	    { name: 'setpoint_low', type: 'float' },
	    { name: 'profile_uuid', type: 'string' },
	    { name: 'profile_name', type: 'string' },
	    { name: 'profile_state', type: 'string' },
	    { name: 'profile_precent', type: 'int' },
	    { name: 'profile_inittemp_high', type: 'float' },
	    { name: 'profile_inittemp_low', type: 'float' },
	    { name: 'profile_steps', type: 'string' },
	    { name: 'stage', type: 'string' }
    	  ],
    	  id: 'record',
          url: url
    };
    var dataAdapter = new $.jqx.dataAdapter(source, {
      loadComplete: function (records) {
	var record = dataAdapter.records[0];
	var oline = (record.online) ? "On-line" : "Off-line";
	var html  = "<div id='fermenter_table'>";
	    html += "<table style='width: 100%; padding: 10px;'>";
	    html += "<tr><th colspan=2>Klimaatkast overzicht</th></tr>";
	    html += "<tr><td>Uuid</td><td>" + record.uuid + "</td></tr>";
	    html += "<tr><td>Systeem</td><td>" + record.node +  "/" + record.alias + " " + oline + "</td></tr>";
	    html += "<tr><td>Bier</td><td>" + record.beercode + " - " + record.beername + "</td></tr>";
	    html += "<tr><td>Werking</td><td>" + record.mode + "</td></tr>";
	    html += "<tr><td>Fase</td><td>" + record.stage + "</td></tr>"
	    html += "</<table>";
	    html += "</div>";
	$("#ContentPanel").html(html);

	$('#gaugeContainer_air').jqxGauge({ value: record.air_temperature });
	if (record.online && (record.air_state == "OK")) {
	      $("#gaugeContainer_air").jqxGauge({ disabled: false });
	} else {
	      $("#gaugeContainer_air").jqxGauge({ disabled: true });
	}
	$('#gaugeContainer_beer').jqxGauge({ value: record.beer_temperature });
	if (record.online && (record.beer_state == "OK")) {
	  $("#gaugeContainer_beer").jqxGauge({ disabled: false });
	} else {
	  $("#gaugeContainer_beer").jqxGauge({ disabled: true });
	}
	$("#gaugeContainer_chiller").jqxGauge({ value: record.chiller_temperature });
	if (record.online && (record.chiller_state == "OK")) {
	  $("#gaugeContainer_chiller").jqxGauge({ disabled: false });
	} else {
	  $("#gaugeContainer_chiller").jqxGauge({ disabled: true });
	}

	html  = "<div>SpH <span class='temperature NUM'>" + record.setpoint_high.toFixed(1) + "</span></div>";
	html += "<div>SpL <span class='temperature NUM'>" + record.setpoint_low.toFixed(1) + "</span></div>";
	html += "<div>Air <span class='temperature NUM'>" + record.air_temperature.toFixed(3) + "</span></div>";
	html += "<div>Beer <span class='temperature NUM'>" + record.beer_temperature.toFixed(3) + "</span></div>";
	$("#fermenter_tempdigits").html(html);  
      }
    });

    // Get the data immediatly and then at regular intervals to refresh.
    dataAdapter.dataBind();
    setInterval(function(){
      dataAdapter.dataBind();
    }, 10000);

  });
   </script>
   <div id="MainPanel">
    <div id="ContentPanel"></div>
    <div id='fermenter_thermometers'>
      <div id="gaugeContainer_air" style='float: left; margin-top: 10px; margin-left: 10px;'></div>
      <div id="gaugeContainer_beer" style="float: right; margin-top: 10px; margin-right: 10px;"></div>
      <div id="gaugeContainer_chiller" style="float: left; margin-top: 15px;"></div>
      <div id="fermenter_tempdigits"></div>
     </div>
   </div>

<?php
page_footer();
?>

mercurial