www/js/fermenter.js

changeset 717
22dd7ab614e5
parent 712
93a87fe230cc
child 718
39a68509b138
--- a/www/js/fermenter.js	Thu May 02 15:49:16 2024 +0200
+++ b/www/js/fermenter.js	Fri May 03 14:14:01 2024 +0200
@@ -98,16 +98,15 @@
    { name: 'FW' },
    { name: 'server_port', type: 'int' },
    { name: 'websocket_port', type: 'int' },
-   { name: 'thb_temp_uuid', map: 'THB>temperature>uuid' },
    { name: 'temp_uuid', map: 'THB>temperature>uuid' },
    { name: 'temp_state', map: 'THB>temperature>state' },
-   { name: 'temp_value', map: 'THB>temperature>value', type: 'int' },
+   { name: 'temp_value', map: 'THB>temperature>value', type: 'float' },
    { name: 'hum_uuid', map: 'THB>humidity>uuid' },
    { name: 'hum_state', map: 'THB>humidity>state' },
-   { name: 'hum_value', map: 'THB>humidity>value', type: 'int' }
+   { name: 'hum_value', map: 'THB>humidity>value', type: 'float' }
   ],
   id: 'name',
-  url: 'getglobal.php'
+  url: 'dbglobal.php'
  },
  globalData = new $.jqx.dataAdapter(globalSource, {
   loadComplete: function(records) {
@@ -121,33 +120,40 @@
   datafields: [
    { name: 'type' },
    { name: 'unit' },
+   { name: 'beeruuid', map: 'metric>product>uuid' },
    { name: 'beercode', map: 'metric>product>code' },
    { name: 'beername', map: 'metric>product>name' },
-   { name: 'yeast_lo', map: 'metric>product>yeast_lo' },
-   { name: 'yeast_hi', map: 'metric>product>yeast_hi' },
+   { name: 'yeast_lo', map: 'metric>product>yeast_lo', type: 'float' },
+   { name: 'yeast_hi', map: 'metric>product>yeast_hi', type: 'float' },
+   { name: 'air_address', map: 'metric>air>address' },
    { name: 'air_state', map: 'metric>air>state' },
-   { name: 'air_temperature', map: 'metric>air>temperature' },
+   { name: 'air_temperature', map: 'metric>air>temperature', type: 'float' },
+   { name: 'beer_address', map: 'metric>beer>address' },
    { name: 'beer_state', map: 'metric>beer>state' },
-   { name: 'beer_temperature', map: 'metric>beer>temperature' },
+   { name: 'beer_temperature', map: 'metric>beer>temperature', type: 'float' },
+   { name: 'chiller_address', map: 'metric>chiller>address' },
    { name: 'chiller_state', map: 'metric>chiller>state' },
-   { name: 'chiller_temperature', map: 'metric>chiller>temperature' },
-   { name: 'heater_state', map: 'metric>heater>state' },
-   { name: 'heater_usage', map: 'metric>heater>usage' },
-   { name: 'cooler_state', map: 'metric>cooler>state' },
-   { name: 'cooler_usage', map: 'metric>cooler>usage' },
-   { name: 'fan_state', map: 'metric>fan>state' },
-   { name: 'fan_usage', map: 'metric>fan>usage' },
+   { name: 'chiller_temperature', map: 'metric>chiller>temperature', type: 'float' },
+   { name: 'heater_address', map: 'metric>heater>address' },
+   { name: 'heater_state', map: 'metric>heater>state', type: 'int' },
+   { name: 'heater_usage', map: 'metric>heater>usage', type: 'int' },
+   { name: 'cooler_address', map: 'metric>cooler>address' },
+   { name: 'cooler_state', map: 'metric>cooler>state', type: 'int' },
+   { name: 'cooler_usage', map: 'metric>cooler>usage', type: 'int' },
+   { name: 'fan_address', map: 'metric>fan>address' },
+   { name: 'fan_state', map: 'metric>fan>state', type: 'int' },
+   { name: 'fan_usage', map: 'metric>fan>usage', type: 'int' },
    { name: 'light_address', map: 'metric>light>address' },
-   { name: 'light_state', map: 'metric>light>state' },
-   { name: 'light_usage', map: 'metric>light>usage' },
+   { name: 'light_state', map: 'metric>light>state', type: 'int' },
+   { name: 'light_usage', map: 'metric>light>usage', type: 'int' },
    { name: 'door_address', map: 'metric>door>address' },
-   { name: 'door_state', map: 'metric>door>state' },
+   { name: 'door_state', map: 'metric>door>state', type: 'int' },
    { name: 'psu_address', map: 'metric>psu>address' },
-   { name: 'psu_state', map: 'metric>psu>state' },
+   { name: 'psu_state', map: 'metric>psu>state', type: 'int' },
    { name: 'mode', map: 'metric>mode' },
    { name: 'alarm', map: 'metric>alarm', type: 'int' },
-   { name: 'setpoint_high', map: 'metric>setpoint>high' },
-   { name: 'setpoint_low', map: 'metric>setpoint>low' },
+   { name: 'setpoint_high', map: 'metric>setpoint>high', type: 'float' },
+   { name: 'setpoint_low', map: 'metric>setpoint>low', type: 'float' },
    { name: 'profile_uuid', map: 'metric>profile>uuid' },
    { name: 'profile_name', map: 'metric>profile>name' },
    { name: 'profile_state', map: 'metric>profile>state', type: 'string' },
@@ -155,10 +161,9 @@
    { name: 'profile_inittemp_high', map: 'metric>profile>inittemp>high', type: 'float' },
    { name: 'profile_inittemp_low', map: 'metric>profile>inittemp>low', type: 'float' },
    { name: 'profile_steps', map: 'metric>profile>steps', type: 'string' },
-   { name: 'stage', map: 'metric>stage', type: 'string' },
-   { name: 'beeruuid', map: 'metric>product>uuid' }
+   { name: 'stage', map: 'metric>stage', type: 'string' }
   ],
-  id: 'alias',
+  id: 'unit',
   url: url
  },
  dataAdapter = new $.jqx.dataAdapter(source, {
@@ -169,24 +174,24 @@
  });
 
  function updateScreen() {
-   $('#room_thb').html(global.temp_value + '°C  ' + global.hum_value + '% humidity');
+   $('#room_thb').html(global.temp_value.toFixed(1) + '°C  ' + global.hum_value.toFixed(1) + '% humidity');
    $('#info_system').html(record.unit);
    $('#info_beer').html(record.beercode + ' - ' + record.beername);
    $('#info_mode').jqxDropDownList('selectItem', record.mode);
    $('#info_stage').jqxDropDownList('selectItem', record.stage);
    if (record.door_address) {
-     if (record.door_state != '0') {
-      $('#fermenter_doorled').html('<div class="LEDyellow_on"></div>Door');
-     } else {
-      $('#fermenter_doorled').html('<div class="LEDyellow_off"></div>Door');
-     }
+    if (record.door_state != '0') {
+     $('#fermenter_doorled').html('<div class="LEDyellow_on"></div>Door');
+    } else {
+     $('#fermenter_doorled').html('<div class="LEDyellow_off"></div>Door');
+    }
    }
    if (record.light_address) {
-     if (record.light_state != '0') {
-      $('#fermenter_lightled').html('<div class="LEDyellow_on"></div>Light');
-     } else {
-      $('#fermenter_lightled').html('<div class="LEDyellow_off"></div>Light');
-     }
+    if (record.light_state != '0') {
+     $('#fermenter_lightled').html('<div class="LEDyellow_on"></div>Light');
+    } else {
+     $('#fermenter_lightled').html('<div class="LEDyellow_off"></div>Light');
+    }
    }
    if (record.mode != 'OFF') {
     $('#fermenter_powerled').html('<div class="LEDblue_on"></div>Power');
@@ -209,25 +214,41 @@
     $('#target_hi').jqxNumberInput({ readOnly: true, Width: 50, spinButtons: false });
    }
 
-   $('.f_control_leds').show();
-   if (record.heater_state != '0') {
-    $('#fermenter_led1').html('<div class="LEDgreen_on"></div>Heat');
+   if (record.heater_address) {
+    if (record.heater_state != '0') {
+     $('#fermenter_led1').html('<div class="LEDgreen_on"></div>Heat');
+    } else {
+     $('#fermenter_led1').html('<div class="LEDgreen_off"></div>Heat');
+    }
    } else {
-    $('#fermenter_led1').html('<div class="LEDgreen_off"></div>Heat');
+    $('#fermenter_led1').html('<div class="LEDgreen_hide"></div>Heat');
    }
-   if (record.cooler_state != '0') {
-    $('#fermenter_led2').html('<div class="LEDgreen_on"></div>Cool');
+
+   if (record.cooler_address) {
+    if (record.cooler_state != '0') {
+     $('#fermenter_led2').html('<div class="LEDgreen_on"></div>Cool');
+    } else {
+     $('#fermenter_led2').html('<div class="LEDgreen_off"></div>Cool');
+    }
    } else {
-    $('#fermenter_led2').html('<div class="LEDgreen_off"></div>Cool');
+    $('#fermenter_led2').html('<div class="LEDgreen_hide"></div>Cool');
    }
-   if (record.fan_state != '0') {
-    $('#fermenter_led3').html('<div class="LEDgreen_on"></div>Fan');
+
+   if (record.fan_address) {
+    if (record.fan_state != '0') {
+     $('#fermenter_led3').html('<div class="LEDgreen_on"></div>Fan');
+    } else {
+     $('#fermenter_led3').html('<div class="LEDgreen_off"></div>Fan');
+    }
    } else {
-    $('#fermenter_led3').html('<div class="LEDgreen_off"></div>Fan');
+    $('#fermenter_led3').html('<div class="LEDgreen_hide"></div>Fan');
    }
 
    if (record.mode == 'NONE') {
-    $('.f_control_switches').show();
+    $('#fermenter_toggle1,#fermenter_toggle2,#fermenter_toggle3').show();
+    $('#fermenter_toggle1').jqxSwitchButton({ disabled: (record.heater_address) ? false:true });
+    $('#fermenter_toggle2').jqxSwitchButton({ disabled: (record.cooler_address) ? false:true });
+    $('#fermenter_toggle3').jqxSwitchButton({ disabled: (record.fan_address) ? false:true });
     if ((record.heater_state != 0) != $('#fermenter_toggle1').jqxSwitchButton('val'))
      $('#fermenter_toggle1').val(record.heater_state != 0);
     if ((record.cooler_state != 0) != $('#fermenter_toggle2').jqxSwitchButton('val'))
@@ -235,7 +256,8 @@
     if ((record.fan_state != 0) != $('#fermenter_toggle3').jqxSwitchButton('val'))
      $('#fermenter_toggle3').val(record.fan_state != 0);
    } else {
-    $('.f_control_switches').hide();
+    $('#fermenter_toggle1,#fermenter_toggle2,#fermenter_toggle3').jqxSwitchButton({ disabled:true });
+    $('#fermenter_toggle1,#fermenter_toggle2,#fermenter_toggle3').hide();
    }
 
    $('#info_profile').html(record.profile_name);
@@ -291,29 +313,17 @@
     $('#gaugeContainer_air').jqxGauge({ caption: { value: 'Air: ' + record.air_temperature.toFixed(3) }});
     $('#gaugeContainer_air').jqxGauge({ value: record.air_temperature });
    }
-   if (record.air_state == 'YES') {
-    $('#gaugeContainer_air').jqxGauge({ disabled: false });
-   } else {
-    $('#gaugeContainer_air').jqxGauge({ disabled: true });
-   }
+   $('#gaugeContainer_air').jqxGauge({ disabled: (record.air_state == 'YES') ? false:true });
    if (record.beer_temperature !== undefined) {
     $('#gaugeContainer_beer').jqxGauge({ caption: { value: 'Beer: ' + record.beer_temperature.toFixed(3) }});
     $('#gaugeContainer_beer').jqxGauge({ value: record.beer_temperature });
    }
-   if (record.beer_state == 'YES') {
-    $('#gaugeContainer_beer').jqxGauge({ disabled: false });
-   } else {
-    $('#gaugeContainer_beer').jqxGauge({ disabled: true });
-   }
+   $('#gaugeContainer_beer').jqxGauge({ disabled: (record.beer_state == 'YES') ? false:true });
    if (record.chiller_temperature !== undefined) {
     $('#gaugeContainer_chiller').jqxGauge({ value: record.chiller_temperature });
    }
-   if (record.chiller_state == 'YES') {
-    $('#gaugeContainer_chiller').jqxGauge({ disabled: false });
-   } else {
-    $('#gaugeContainer_chiller').jqxGauge({ disabled: true });
-   }
- }
+   $('#gaugeContainer_chiller').jqxGauge({ disabled: (record.chiller_state == 'YES') ? false:true });
+ } /* Updatescreen */
 
  $('#gaugeContainer_air').jqxGauge(gaugeoptions);
  $('#gaugeContainer_air').jqxGauge({ caption: { value: 'Air: 00.000' }});
@@ -442,7 +452,7 @@
   var msg = evt.data;
   var obj = JSON.parse(msg);
 
-  console.log('ws got ' + msg);
+ // console.log('ws got ' + msg);
 
   if (obj.ping) {
    websocket.send('{"pong":' + obj.ping + '}');
@@ -459,6 +469,7 @@
    global.room_hum = obj.THB.humidity;
    updateScreen();
   } else if (obj.type == 'fermenter' && obj.unit == record.unit) {
+	  console.log('ws got unit ' + msg);
    record.beeruuid = obj.metric.product.uuid;
    record.beercode = obj.metric.product.code;
    record.beername = obj.metric.product.name;
@@ -476,14 +487,28 @@
      record.chiller_state = obj.metric.chiller.state;
      record.chiller_temperature = obj.metric.chiller.temperature;
    }
-   if (obj.metric.heater)
-     record.heater_state = obj.metric.heater.state;
-   if (obj.metric.cooler)
-     record.cooler_state = obj.metric.cooler.state;
-   if (obj.metric.fan)
+   if (obj.metric.heater) {
+    record.heater_address = obj.metric.heater.address;
+    record.heater_state = obj.metric.heater.state;
+   } else {
+    record.heater_address = '';
+   }
+   if (obj.metric.cooler) {
+    record.cooler_address = obj.metric.cooler.address;
+    record.cooler_state = obj.metric.cooler.state;
+   } else {
+    record.cooler_address = '';
+   }
+   if (obj.metric.fan) {
+    record.fan_address = obj.metric.fan.address;
     record.fan_state = obj.metric.fan.state;
-   if (obj.metric.door)
-     record.door_state = obj.metric.door.state;
+   } else {
+    record.fan_address = '';
+   }
+   if (obj.metric.door) {
+    record.door_address = obj.metric.door.address;
+    record.door_state = obj.metric.door.state;
+   }
    if (obj.metric.light)
      record.light_state = obj.metric.light.state;
    if (obj.metric.psu)

mercurial