www/js/fermenter.js

changeset 680
8b3c86124a08
parent 678
cc49115e769e
child 681
1f81e52c5abf
--- a/www/js/fermenter.js	Mon Apr 15 17:06:15 2024 +0200
+++ b/www/js/fermenter.js	Tue Apr 16 16:03:47 2024 +0200
@@ -141,13 +141,13 @@
    { name: 'alarm', map: 'metric>alarm', type: 'int' },
    { name: 'setpoint_high', map: 'metric>setpoint>high' },
    { name: 'setpoint_low', map: 'metric>setpoint>low' },
-   { name: 'profile_uuid', type: 'string' },
-   { name: 'profile_name', type: 'string' },
-   { name: 'profile_state', type: 'string' },
-   { name: 'profile_percent', type: 'int' },
-   { name: 'profile_inittemp_high', type: 'float' },
-   { name: 'profile_inittemp_low', type: 'float' },
-   { name: 'profile_steps', type: 'string' },
+   { name: 'profile_uuid', map: 'metric>profile>uuid' },
+   { name: 'profile_name', map: 'metric>profile>name' },
+   { name: 'profile_state', map: 'metric>profile>state', type: 'string' },
+   { name: 'profile_percent', map: 'metric>profile>percent', type: 'int' },
+   { 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' }
   ],
@@ -162,6 +162,7 @@
  });
 
  function updateScreen() {
+	 console.log('mode ' + record.mode + ' profile ' + record.profile_state + ' name ' + record.profile_name);
    $('#room_thb').html(global.room_temp + '°C  ' + global.room_hum + '% humidity');
    $('#info_system').html(record.unit);
    $('#info_beer').html(record.beercode + ' - ' + record.beername);
@@ -186,126 +187,126 @@
    } else {
     $('#fermenter_powerled').html('<div class="LEDblue_off"></div>Power');
    }
-    if (record.alarm != '0') {
-     $('#fermenter_alarmled').html('<div class="LEDred_on"></div>Alarm');
-    } else {
-     $('#fermenter_alarmled').html('<div class="LEDred_off"></div>Alarm');
-    }
-
-    $('#target_lo').val(record.setpoint_low);
-    $('#target_hi').val(record.setpoint_high);
-    if ((record.mode == 'FRIDGE') || (record.mode == 'BEER')) {
-     $('#target_lo').jqxNumberInput({ readOnly: false, Width: 70, spinButtons: true });
-     $('#target_hi').jqxNumberInput({ readOnly: false, Width: 70, spinButtons: true });
-    } else {
-     $('#target_lo').jqxNumberInput({ readOnly: true, Width: 50, spinButtons: false });
-     $('#target_hi').jqxNumberInput({ readOnly: true, Width: 50, spinButtons: false });
-    }
+   if (record.alarm != '0') {
+    $('#fermenter_alarmled').html('<div class="LEDred_on"></div>Alarm');
+   } else {
+    $('#fermenter_alarmled').html('<div class="LEDred_off"></div>Alarm');
+   }
 
-    $('.f_control_leds').show();
-    if (record.heater_state != '0') {
-     $('#fermenter_led1').html('<div class="LEDgreen_on"></div>Heat');
-    } else {
-     $('#fermenter_led1').html('<div class="LEDgreen_off"></div>Heat');
-    }
-    if (record.cooler_state != '0') {
-     $('#fermenter_led2').html('<div class="LEDgreen_on"></div>Cool');
-    } else {
-     $('#fermenter_led2').html('<div class="LEDgreen_off"></div>Cool');
-    }
-    if (record.fan_state != '0') {
-     $('#fermenter_led3').html('<div class="LEDgreen_on"></div>Fan');
-    } else {
-     $('#fermenter_led3').html('<div class="LEDgreen_off"></div>Fan');
-    }
+   $('#target_lo').val(record.setpoint_low);
+   $('#target_hi').val(record.setpoint_high);
+   if ((record.mode == 'FRIDGE') || (record.mode == 'BEER')) {
+    $('#target_lo').jqxNumberInput({ readOnly: false, Width: 70, spinButtons: true });
+    $('#target_hi').jqxNumberInput({ readOnly: false, Width: 70, spinButtons: true });
+   } else {
+    $('#target_lo').jqxNumberInput({ readOnly: true, Width: 50, spinButtons: false });
+    $('#target_hi').jqxNumberInput({ readOnly: true, Width: 50, spinButtons: false });
+   }
 
-    if (record.mode == 'NONE') {
-     $('.f_control_switches').show();
-    } else {
-     $('.f_control_switches').hide();
-    }
-    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'))
-     $('#fermenter_toggle2').val(record.cooler_state != '0');
-    if ((record.fan_state != '0') != $('#fermenter_toggle3').jqxSwitchButton('val'))
-     $('#fermenter_toggle3').val(record.fan_state != '0');
-
-    $('#info_profile').html(record.profile_name);
-    if (record.profile_name == '')
-     $('#info_mode').jqxDropDownList('disableItem', 'PROFILE');
-    else
-     $('#info_mode').jqxDropDownList('enableItem', 'PROFILE');
+   $('.f_control_leds').show();
+   if (record.heater_state != '0') {
+    $('#fermenter_led1').html('<div class="LEDgreen_on"></div>Heat');
+   } else {
+    $('#fermenter_led1').html('<div class="LEDgreen_off"></div>Heat');
+   }
+   if (record.cooler_state != '0') {
+    $('#fermenter_led2').html('<div class="LEDgreen_on"></div>Cool');
+   } else {
+    $('#fermenter_led2').html('<div class="LEDgreen_off"></div>Cool');
+   }
+   if (record.fan_state != '0') {
+    $('#fermenter_led3').html('<div class="LEDgreen_on"></div>Fan');
+   } else {
+    $('#fermenter_led3').html('<div class="LEDgreen_off"></div>Fan');
+   }
 
-    if (record.mode == 'PROFILE') {
-     if (record.profile_state == 'OFF') {
-      $('#info_mode').jqxDropDownList({ disabled: false });
-      $('#Profile1').jqxButton({ template: 'success', value: 'Starten' });
-      $('#Profile1').show();
-      $('#Profile2').hide();
-      $('#status_profile').html('');
-     } else if (record.profile_state == 'RUN') {
-      $('#info_mode').jqxDropDownList({ disabled: true });
-      $('#Profile1').jqxButton({ template: 'danger', value: 'Afbreken' });
-      $('#Profile2').jqxButton({ template: 'primary', value: 'Pauze' });
-      $('#Profile1').show();
-      $('#Profile2').show();
-      $('#status_profile').html('Profiel actief, ' + record.profile_percent + '% gereed');
-     } else if (record.profile_state == 'PAUSE') {
-      $('#info_mode').jqxDropDownList({ disabled: true });
-      $('#Profile1').jqxButton({ template: 'danger', value: 'Afbreken' });
-      $('#Profile2').jqxButton({ template: 'success', value: 'Doorgaan' });
-      $('#Profile1').show();
-      $('#Profile2').show();
-      $('#status_profile').html('Profiel pauze, ' + record.profile_percent + '% gereed');
-     } else if (record.profile_state == 'DONE') {
-      $('#info_mode').jqxDropDownList({ disabled: true });
-      $('#Profile1').jqxButton({ template: 'primary', value: 'Profiel Ok' });
-      $('#Profile1').show();
-      $('#Profile2').hide();
-      $('#status_profile').html('Profiel is gereed');
-     }
-    } else {
+   if (record.mode == 'NONE') {
+    $('.f_control_switches').show();
+   } else {
+    $('.f_control_switches').hide();
+   }
+   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'))
+    $('#fermenter_toggle2').val(record.cooler_state != '0');
+   if ((record.fan_state != '0') != $('#fermenter_toggle3').jqxSwitchButton('val'))
+    $('#fermenter_toggle3').val(record.fan_state != '0');
+
+   $('#info_profile').html(record.profile_name);
+   if (record.profile_name == '')
+    $('#info_mode').jqxDropDownList('disableItem', 'PROFILE');
+   else
+    $('#info_mode').jqxDropDownList('enableItem', 'PROFILE');
+
+   if (record.mode == 'PROFILE') {
+    if (record.profile_state == 'OFF') {
      $('#info_mode').jqxDropDownList({ disabled: false });
-     $('#Profile1').hide();
+     $('#Profile1').jqxButton({ template: 'success', value: 'Starten' });
+     $('#Profile1').show();
      $('#Profile2').hide();
      $('#status_profile').html('');
+    } else if (record.profile_state == 'RUN') {
+     $('#info_mode').jqxDropDownList({ disabled: true });
+     $('#Profile1').jqxButton({ template: 'danger', value: 'Afbreken' });
+     $('#Profile2').jqxButton({ template: 'primary', value: 'Pauze' });
+     $('#Profile1').show();
+     $('#Profile2').show();
+     $('#status_profile').html('Profiel actief, ' + record.profile_percent + '% gereed');
+    } else if (record.profile_state == 'PAUSE') {
+     $('#info_mode').jqxDropDownList({ disabled: true });
+     $('#Profile1').jqxButton({ template: 'danger', value: 'Afbreken' });
+     $('#Profile2').jqxButton({ template: 'success', value: 'Doorgaan' });
+     $('#Profile1').show();
+     $('#Profile2').show();
+     $('#status_profile').html('Profiel pauze, ' + record.profile_percent + '% gereed');
+    } else if (record.profile_state == 'DONE') {
+     $('#info_mode').jqxDropDownList({ disabled: true });
+     $('#Profile1').jqxButton({ template: 'primary', value: 'Profiel Ok' });
+     $('#Profile1').show();
+     $('#Profile2').hide();
+     $('#status_profile').html('Profiel is gereed');
     }
+   } else {
+    $('#info_mode').jqxDropDownList({ disabled: false });
+    $('#Profile1').hide();
+    $('#Profile2').hide();
+    $('#status_profile').html('');
+   }
 
-    var yl = record.yeast_lo;
-    var yh = record.yeast_hi;
-    var range = { ranges: [{ startValue: 0, endValue: yl, style: { fill: '#3399FF', stroke: '#3399FF' }, endWidth: 10, startWidth: 10 },
+   var yl = record.yeast_lo;
+   var yh = record.yeast_hi;
+   var range = { ranges: [{ startValue: 0, endValue: yl, style: { fill: '#3399FF', stroke: '#3399FF' }, endWidth: 10, startWidth: 10 },
                       { startValue: yl, endValue: yh, style: { fill: '#00CC33', stroke: '#00CC33' }, endWidth: 10, startWidth: 10 },
                       { startValue: yh, endValue: 45, style: { fill: '#FC6A6A', stroke: '#FC6A6A' }, endWidth: 10, startWidth: 10 }]};
-    $('#gaugeContainer_air').jqxGauge(range);
-    $('#gaugeContainer_beer').jqxGauge(range);
+   $('#gaugeContainer_air').jqxGauge(range);
+   $('#gaugeContainer_beer').jqxGauge(range);
 
-    if (record.air_temperature !== undefined) {
-     $('#gaugeContainer_air').jqxGauge({ caption: { value: 'Air: ' + record.air_temperature.toFixed(3) }});
-     $('#gaugeContainer_air').jqxGauge({ value: record.air_temperature });
-    }
-    if (record.air_state == 'OK') {
-     $('#gaugeContainer_air').jqxGauge({ disabled: false });
-    } else {
-     $('#gaugeContainer_air').jqxGauge({ disabled: 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 == 'OK') {
-     $('#gaugeContainer_beer').jqxGauge({ disabled: false });
-    } else {
-     $('#gaugeContainer_beer').jqxGauge({ disabled: true });
-    }
-    if (record.chiller_temperature !== undefined) {
-     $('#gaugeContainer_chiller').jqxGauge({ value: record.chiller_temperature });
-    }
-    if (record.chiller_state == 'OK') {
-     $('#gaugeContainer_chiller').jqxGauge({ disabled: false });
-    } else {
-     $('#gaugeContainer_chiller').jqxGauge({ disabled: true });
-    }
+   if (record.air_temperature !== undefined) {
+    $('#gaugeContainer_air').jqxGauge({ caption: { value: 'Air: ' + record.air_temperature.toFixed(3) }});
+    $('#gaugeContainer_air').jqxGauge({ value: record.air_temperature });
+   }
+   if (record.air_state == 'OK') {
+    $('#gaugeContainer_air').jqxGauge({ disabled: false });
+   } else {
+    $('#gaugeContainer_air').jqxGauge({ disabled: 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 == 'OK') {
+    $('#gaugeContainer_beer').jqxGauge({ disabled: false });
+   } else {
+    $('#gaugeContainer_beer').jqxGauge({ disabled: true });
+   }
+   if (record.chiller_temperature !== undefined) {
+    $('#gaugeContainer_chiller').jqxGauge({ value: record.chiller_temperature });
+   }
+   if (record.chiller_state == 'OK') {
+    $('#gaugeContainer_chiller').jqxGauge({ disabled: false });
+   } else {
+    $('#gaugeContainer_chiller').jqxGauge({ disabled: true });
+   }
  }
 
  $('#gaugeContainer_air').jqxGauge(gaugeoptions);
@@ -331,7 +332,7 @@
  $('#Profile1').hide(); // Hide these until they are needed.
  $('#Profile2').hide();
 
- // Get the data immediatly and then at regular intervals to refresh.
+ // Get the data immediatly and then via websockets to refresh.
  dataAdapter.dataBind();
  globalData.dataBind();
 
@@ -438,15 +439,27 @@
   var msg = evt.data;
   var obj = JSON.parse(msg);
 
-  console.log('ws got ' + msg);
+//  console.log('ws got ' + msg);
 
   if (obj.ping == 1) {
-   console.log('ws got ping');
+//   console.log('ws got ping');
    websocket.send('{"pong":1}');
   }
 
+  if (obj.type == 'global') {
+   console.log('ws got global ' + msg);
+   global.name = obj.name;
+   global.node = obj.node;
+   global.os = obj.os;
+   global.os_version = obj.os_version;
+   global.FW = obj.FW;
+   global.room_temp = obj.THB.temperature;
+   global.room_hum = obj.THB.humidity;
+   updateScreen();
+  }
+
   if (obj.type == 'fermenter' && obj.unit == record.unit) {
-   console.log('ws got this device ' + msg);
+//   console.log('ws got this device ' + msg);
    record.beeruuid = obj.metric.product.uuid;
    record.beercode = obj.metric.product.code;
    record.beername = obj.metric.product.name;
@@ -475,15 +488,15 @@
    record.alarm = obj.metric.alarm;
    record.setpoint_low = obj.metric.setpoint.low;
    record.setpoint_high = obj.metric.setpoint.high;
-   if (obj.profile) {
-     record.profile_uuid = obj.profile_uuid;
-     record.profile_name = obj.profile_name;
-     record.profile_state = obj.profile_state;
-     record.profile_percent = obj.profile_percent;
-     record.profile_inittemp_high = obj.profile_inittemp_high;
-     record.profile_inittemp_low = obj.profile_inittemp_low;
+   if (obj.metric.profile) {
+     record.profile_uuid = obj.metric.profile.uuid;
+     record.profile_name = obj.metric.profile.name;
+     record.profile_state = obj.metric.profile.state;
+     record.profile_percent = obj.metric.profile.percent;
+     record.profile_inittemp_high = obj.metric.profile.inittemp.high;
+     record.profile_inittemp_low = obj.metric.profile.inittemp.low;
    } else {
-     record.profile_uuid = '';
+     record.profile_uuid = 'Haha';
      record.profile_name = '';
      record.profile_state = '';
      record.profile_percent = 0;

mercurial