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> <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 }
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); }