Пример #1
0
    function displayThermostat($ds)
    {
        $thermState = getExtendedDeviceState($ds['d_id']);
        ?>
      <div class="device_line" 
          data-type="<?php 
        echo $ds['d_type'];
        ?>
" id="dvc_<?php 
        echo $ds['d_key'];
        ?>
">

        <span 
          class="asCharacter state_<?php 
        echo $ds['d_state'];
        ?>
" 
          data-state="<?php 
        echo $ds['d_state'];
        ?>
"
          style="text-align:center;float:left;width:84px;">
          <div  id="temp_<?php 
        echo $ds['d_key'];
        ?>
"><?php 
        echo $thermState['TEMPERATURE'];
        ?>
°C</div>
          <div class="smalltext" id="settemp_<?php 
        echo $ds['d_key'];
        ?>
"><?php 
        echo $thermState['SET_TEMPERATURE'];
        ?>
°C</div>
        </span>
        
        <div class="device_line_text">
          <div><select onchange="var vl = $(this).val(); if(vl != -1) setDeviceState('<?php 
        echo $ds['d_id'];
        ?>
:2', 'SET_TEMPERATURE', vl+'.0'); $(this).val(-1);">
            <option selected value="-1"><?php 
        echo so($ds['d_name']);
        ?>
</option>
            <?php 
        for ($tc = 3; $tc <= 30; $tc++) {
            ?>
<option value="<?php 
            echo $tc;
            ?>
">
                <?php 
            echo $tc;
            ?>
 °C
              </option><?php 
        }
        ?>
            </select></div>
          <div class="smalltext"> 
            <?php 
        echo $ds['statusIconStr'];
        ?>
            <span class="smalltext" id="humidity_<?php 
        echo $ds['d_key'];
        ?>
">Humidity <?php 
        echo $thermState['HUMIDITY'];
        ?>
%</span>&nbsp; 
            <span class="smalltext" id="indicator_<?php 
        echo $ds['d_key'];
        ?>
"></span>
          </div>
        </div>
        
      </div>
      <script>
        busDataSubscribers['<?php 
        echo $ds['d_id'];
        ?>
:1'] = function(data) {
          if(data.param == 'TEMPERATURE')
            $('#temp_<?php 
        echo $ds['d_key'];
        ?>
').text(data.value+'°C');
          else if(data.param == 'HUMIDITY')
            $('#humidity_<?php 
        echo $ds['d_key'];
        ?>
').text('Humidity '+data.value+'%');
        };
        busDataSubscribers['<?php 
        echo $ds['d_id'];
        ?>
:2'] = function(data) {
          //console.log('UPD', data);
          if(data.param == 'ACTUAL_TEMPERATURE')
            $('#temp_<?php 
        echo $ds['d_key'];
        ?>
').text(data.value+'°C');
          if(data.param == 'SET_TEMPERATURE')
            $('#settemp_<?php 
        echo $ds['d_key'];
        ?>
').text(data.value+'°C');
        };
      </script>
    <?php 
    }
Пример #2
0
 function handleTHERMOSWITCHLine($line, $data)
 {
     $emitterName = CutSegment(':', $line);
     if (trim($emitterName) == '') {
         $emitterName = $data['emitter_root'];
     }
     $thermoDS = getDeviceDS($emitterName);
     if (sizeof($thermoDS) == 0) {
         $GLOBALS['log'][] = 'THERMOSWITCH device not found: ' . $emitterName;
         return;
     }
     $thermostat = getExtendedDeviceState($emitterName);
     $thermostat[$data['param']] = $data['value'];
     $data['thermo'] = $thermostat;
     $data['reverseAction'] = !(floatval($thermostat['SET_TEMPERATURE']) > floatval($thermostat['TEMPERATURE']));
     $GLOBALS['log'][] = 'THERMOSWITCH ' . $thermostat['SET_TEMPERATURE'] . ' ' . $thermostat['TEMPERATURE'] . ' ' . $data['reverseAction'];
     $this->executeLine($data['line'], $data);
 }