mirror of
https://github.com/xoseperez/espurna.git
synced 2026-03-09 17:57:08 +01:00
Merge pull request #1603 from ElderJoy/thermostat
Add thermostat module
This commit is contained in:
@@ -215,6 +215,10 @@ div.state {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.button-thermostat-reset-counters {
|
||||
background: rgb(204, 139, 41);
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
Sliders
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
@@ -364,6 +364,31 @@ function getJson(str) {
|
||||
}
|
||||
}
|
||||
|
||||
<!-- removeIf(!thermostat)-->
|
||||
function checkTempRangeMin() {
|
||||
var min = parseInt($("#tempRangeMinInput").val(), 10);
|
||||
var max = parseInt($("#tempRangeMaxInput").val(), 10);
|
||||
if (min > max - 1) {
|
||||
$("#tempRangeMinInput").val(max - 1);
|
||||
}
|
||||
}
|
||||
|
||||
function checkTempRangeMax() {
|
||||
var min = parseInt($("#tempRangeMinInput").val(), 10);
|
||||
var max = parseInt($("#tempRangeMaxInput").val(), 10);
|
||||
if (max < min + 1) {
|
||||
$("#tempRangeMaxInput").val(min + 1);
|
||||
}
|
||||
}
|
||||
|
||||
function doResetThermostatCounters(ask) {
|
||||
var question = (typeof ask === "undefined" || false === ask) ?
|
||||
null :
|
||||
"Are you sure you want to reset burning counters?";
|
||||
return doAction(question, "thermostat_reset_counters");
|
||||
}
|
||||
<!-- endRemoveIf(!thermostat)-->
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Actions
|
||||
// -----------------------------------------------------------------------------
|
||||
@@ -1625,6 +1650,11 @@ function processData(data) {
|
||||
var days = uptime;
|
||||
value = days + "d " + zeroPad(hours, 2) + "h " + zeroPad(minutes, 2) + "m " + zeroPad(seconds, 2) + "s";
|
||||
}
|
||||
<!-- removeIf(!thermostat)-->
|
||||
if ("tmpUnits" == key) {
|
||||
$("span.tmpUnit").html(data[key] == 1 ? "ºF" : "ºC");
|
||||
}
|
||||
<!-- endRemoveIf(!thermostat)-->
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Matching
|
||||
@@ -1799,6 +1829,10 @@ $(function() {
|
||||
$("#uploader").on("change", onFileUpload);
|
||||
$(".button-upgrade").on("click", doUpgrade);
|
||||
|
||||
<!-- removeIf(!thermostat)-->
|
||||
$(".button-thermostat-reset-counters").on('click', doResetThermostatCounters);
|
||||
<!-- endRemoveIf(!thermostat)-->
|
||||
|
||||
$(".button-apikey").on("click", generateAPIKey);
|
||||
$(".button-upgrade-browse").on("click", function() {
|
||||
$("input[name='upgrade']")[0].click();
|
||||
|
||||
@@ -96,6 +96,12 @@
|
||||
<a href="#" class="pure-menu-link" data="panel-general">GENERAL</a>
|
||||
</li>
|
||||
|
||||
<!-- removeIf(!thermostat) -->
|
||||
<li class="pure-menu-item module module-thermostat">
|
||||
<a href="#" class="pure-menu-link" data="panel-thermostat">THERMOSTAT</a>
|
||||
</li>
|
||||
<!-- endRemoveIf(!thermostat) -->
|
||||
|
||||
<!-- removeIf(!lightfox) -->
|
||||
<li class="pure-menu-item module module-lightfox">
|
||||
<a href="#" class="pure-menu-link" data="panel-lightfox">LIGHTFOX RF</a>
|
||||
@@ -1043,6 +1049,130 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- removeIf(!thermostat) -->
|
||||
<form id="form-thermostat" class="pure-form form-settings">
|
||||
<div class="panel" id="panel-thermostat">
|
||||
|
||||
<div class="header">
|
||||
<h1>THERMOSTAT</h1>
|
||||
<h2>Thermostat configuration</h2>
|
||||
</div>
|
||||
|
||||
<div class="page">
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="thermostatOperationMode">Operation mode</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="thermostatOperationMode" type="text" readonly />
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend>Temperature range</legend>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4">Max (<span class="tmpUnit"></span>)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" id="tempRangeMaxInput" name="tempRangeMax" type="number" min="1" max="100" tabindex="32" data="20" onchange="checkTempRangeMax()" />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4">Min (<span class="tmpUnit"></span>)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" id="tempRangeMinInput" name="tempRangeMin" type="number" min="0" max="99" tabindex="31" data="10" onchange="checkTempRangeMin()" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend>Remote sensor</legend>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="remoteSensorName">Remote sensor name</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="remoteSensorName" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="remoteTmp">Remote temperature (<span class="tmpUnit"></span>)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="remoteTmp" type="text" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="remoteTempMaxWait">Remote temperature waiting (s)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="remoteTempMaxWait" type="number" min="0" max="1800" tabindex="33" data="120" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend>Operation mode</legend>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="maxOnTime">Max heating time (m)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="maxOnTime" type="number" min="0" max="180" tabindex="34" data="30" />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="minOffTime">Min rest time (m)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="minOffTime" type="number" min="0" max="60" tabindex="35" data="10" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend>Autonomous mode</legend>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="aloneOnTime">Heating time (m)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="aloneOnTime" type="number" min="0" max="180" tabindex="36" data="5" />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="aloneOffTime">Rest time (m)</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" name="aloneOffTime" type="number" min="0" max="180" tabindex="37" data="55" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
||||
<legend>Time worked</legend>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="burnToday">Today</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" type="text" name="burnToday" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="burnYesterday">Yesterday</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" type="text" name="burnYesterday" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="burnThisMonth">Current month</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" type="text" name="burnThisMonth" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="burnPrevMonth">Previous month</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" type="text" name="burnPrevMonth" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<label class="pure-u-1 pure-u-lg-1-4" for="burnTotal">Total</label>
|
||||
<input class="pure-u-1 pure-u-lg-1-4" type="text" name="burnTotal" readonly />
|
||||
</div>
|
||||
|
||||
<div class="pure-g">
|
||||
<button type="button" class="pure-button button-thermostat-reset-counters">Reset counters</button>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!-- endRemoveIf(!thermostat) -->
|
||||
|
||||
<form id="form-domoticz" class="pure-form form-settings">
|
||||
<div class="panel" id="panel-domoticz">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user