<!DOCTYPE html>
<html>
<head>
<!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script><![endif]-->
<title>Пеллетная горелка</title>
<meta name="keywords" content="" >
<meta name="description" content="" >
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<link href="style/new.css" rel="stylesheet">
<link href="style/range.css" rel="stylesheet">
<script type="text/javascript" src="js/jquery-3.2.0.min.js"></script>
<!-- <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script> -->
<script type="text/javascript" src="js/jquery.flot.min.js"></script>
<script type="text/javascript" src="js/jquery.flot.time.min.js"></script>
<script type="text/javascript">
var currentDate = new Date();
var unixdate = currentDate.getTime();
var time_zone = (new Date().getTimezoneOffset()/60)*(-1);
var dateoffset = time_zone*60*60*1000;
var intval = unixdate + dateoffset;
var secs = 0;
var timelapseflag = 1;
var iv = 1;
var v1 = [];
var t1 = [];
var p1 = [];
var m1 = [];
var m2 = [];
var time = 0;
var opop;
var diagram_enable = 0;
var screen = $(window).width();
var updsecret = 0;
var powersecret = 0;
var val_flag = 0;
var connection_mode = 0;
var pmaxH,pmaxL,pminH,pminL;
var tecoset;
var toset;
var updateerrors = ["Обновление прошло успешно", "Отсутствует соединение", "Не удалось подключится к серверу", "Ошибка файла прошивки", "Ошибка MD5", "MD5 не совпадает", "Передача прервана", "Ошибка конфигурации сервера"];
var modes = ["Ожидание", "Рожиг", "Нагрев", "Стоп", "Электрокотел", "Дрова", "Ожид. Темпер.", "Стоп по темпер."]
function grafik() {
var plot = $.plot("#diagram", [
{ data: v1, label: 'ПЛАМЯ' },
{ data: t1, label: 'ТК' },
{ data: p1, label: 'ТО' },
{ data: m1, label: 'МОЩНОСТЬ' },
{ data: m2, label: 'ВОЗДУХ' }
] , {
series: {
shadowSize: 0 // Drawing is faster without shadows
},
yaxis: {
min: 0,
max: 180
},
xaxis: {
mode: "time",
show: true
}
});
// plot.draw();
}
function timelapse() {
secs = 3600;
secs = secs * 60;
timelapseflag == 2
}
function timelapse_start() {
secs = 10;
secs = secs * 60;
timelapseflag == 2
}
function timelapsecontrol() {
$("#v2").html(secs);
$("#v1").html(v1.length);
opop = parseInt(v1.length);
if (opop >= secs) {
v1 = v1.slice(1);
t1 = t1.slice(1);
p1 = p1.slice(1);
m1 = m1.slice(1);
m2 = m2.slice(1);
}
}
function clearrr() {
t1 = [];
p1 = [];
v1 = [];
m1 = [];
m2 = [];
}
function tune(pos,action) {
var tpwr;
if (pos == 'pmax') {
if (action == 'plus') { tpwr = parseInt($('#showmaxpower').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#showmaxpower').val()) - 1; }
if (action == 'plus' && tpwr >= pmaxH) { tpwr = pmaxH; }
if (action == 'minus' && tpwr <= pmaxL) { tpwr = pmaxL; }
$('#showmaxpower').val(tpwr);
$('[id = targetmaxpower]').html(tpwr);
$("#pminH").html($("#showmaxpower").val()-1);
}
if (pos == 'pmin') {
if (action == 'plus') { tpwr = parseInt($('#showminpower').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#showminpower').val()) - 1; }
if (action == 'plus' && tpwr >= pminH) { tpwr = pminH; }
if (action == 'minus' && tpwr <= pminL) { tpwr = pminL; }
$('#showminpower').val(tpwr);
$('[id = targetminpower]').html(tpwr);
}
if (pos == 'to') {
if (action == 'plus') { tpwr = parseInt($('#tobr').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#tobr').val()) - 1; }
if (action == 'plus' && tpwr >= 80) { tpwr = 80; }
if (action == 'minus' && tpwr <= 30) { tpwr = 30; }
$('#tobr').val(tpwr);
$('.tobr').html(tpwr);
$("#tecomax").html($("#tobr").val());
}
if (pos == 'teco') {
if (action == 'plus') { tpwr = parseInt($('#teco').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#teco').val()) - 1; }
if (action == 'plus' && tpwr >= toset) { tpwr = toset; }
if (action == 'minus' && tpwr <= 10) { tpwr = 10; }
$('#teco').val(tpwr);
$('.teco').html(tpwr);
}
if (pos == 'elkotel') {
if (action == 'plus') { tpwr = parseInt($('#timetoel').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#timetoel').val()) - 1; }
if (action == 'plus' && tpwr >= 23) { tpwr = 23; }
if (action == 'minus' && tpwr <= 0) { tpwr = 0; }
$('#timetoel').val(tpwr);
$('.timetoel').html(tpwr);
}
if (pos == 'pelkotel') {
if (action == 'plus') { tpwr = parseInt($('#timetopel').val()) + 1; }
if (action == 'minus') { tpwr = parseInt($('#timetopel').val()) - 1; }
if (action == 'plus' && tpwr >= 23) { tpwr = 23; }
if (action == 'minus' && tpwr <= 0) { tpwr = 0; }
$('#timetopel').val(tpwr);
$('.timetopel').html(tpwr);
}
}
function update_fw() {
if (connection_mode == 0) {
$("#famupderror").show();
$("#updstatuserror").append("В режиме точки доступа интернета быть не может!");
return;
}
if (confirm("Подтверждаете выполнение действий?")) { $("#famupdstatus").show(); }
else { return; }
$.get( "/d.cgi", { updfw: "1" } );
}
function showparam(p) {
param = $("#" + p).val();
$("." + p).text(param);
$('#teco').attr( {"max" : $("#tobr").val() });
$("#tecomax").html($("#tobr").val());
$('#showminpower').attr( {"max" : ($("#showmaxpower").val()-1) });
$("#pminH").html($("#showmaxpower").val()-1);
}
function wifivision(pr) {
switch(pr) {
case 'default':
$("#wifidefault").slideDown('fast');
$("#wifidhcp").slideUp('fast');
$("#wifistatic").slideUp('fast');
break;
case 'dhcp':
$("#wifidefault").hide();
$("#wifidhcp").slideDown('fast');
$("#wifistatic").hide();
break;
case 'static':
$("#wifidefault").hide();
$("#wifidhcp").hide();
$("#wifistatic").slideDown('fast');
break;
}
}
function control(puskstop) {
if (confirm("Подтверждаете выполнение действий?")) {
if (puskstop == 'pusk') { $.get( "/d.cgi", { v: "49", p: "63" } ); }
if (puskstop == 'stop') { $.get( "/d.cgi", { v: "49", p: "64" } ); }
} else { return; }
}
function refreshdata() {
$.ajax({
url: "status.xml",
cache: "false",
dataType: "xml",
success: function(xml) {
var currentDate = new Date();
var unixdate = currentDate.getTime();
var time_zone = (new Date().getTimezoneOffset()/60)*(-1);
var dateoffset = time_zone*60*60*1000;
var intval = unixdate + dateoffset;
var alarmM100 = parseInt($(xml).find('val15').text());
if(alarmM100==22) {alert("Работа невозможна! Пожалуйста проведите взвешивание пеллет.")}
var tempkotladec = parseInt($(xml).find('val6').text());
var tk = parseInt($(xml).find('val0').text()); // Получаем температуру котла
if(tk==186) {
$('#tkscaletext').html("Err"); // загоняем рядом со шкалой
$("#tkval").html("Ошибка датчика"); // загоняем на страничку
}
else {
$('#tkscaletext').html(tk + "°"); // загоняем рядом со шкалой
$("#tkval").html(tk + "." + tempkotladec); // загоняем на страничку
}
var tktext = (100 - tk) * 2;
var tmpk = 100 - tk;
$('#tklevel').height(tmpk + "%"); // animate({"height":tmpk + "%"}, 500); // загоняем в шкалу **********
$('#tkscaletext').css({"top":tktext - 10}, 500);
var tempobratdec = parseInt($(xml).find('val7').text());
var to = parseInt($(xml).find('val1').text()); // Получаем температуру обратки
if(to==186) {
$('#toscaletext').html("Err"); // загоняем рядом со шкалой
$("#toval").html("Ошибка датчика"); // загоняем на страничку
}
else {
$('#toscaletext').html(to + "°"); // загоняем рядом со шкалой
$("#toval").html(to + "." + tempobratdec); // загоняем на страничку
}
var totext = (100 - to) * 2;
var tmpo = 100 - to;
$('#tolevel').height(tmpo + "%"); // animate({"height":tmpo + "%"}, 500); // загоняем в шкалу **************
$('#toscaletext').css({"top":totext - 10}, 500);
var energydec = parseInt($(xml).find('val10').text());
var energy = parseInt($(xml).find('val2').text());
$('#energy').html(energy+"."+energydec);
var rashod = parseInt($(xml).find('val3').text()); // расход
var rashodr = rashod / 10; // расход
$("#rashod").html(rashodr); // загоняем на страничку
var flame = parseInt($(xml).find('val4').text()); // Получаем значение пламени!!
$('#flamescaletext').html(flame); // загоняем рядом со шкалой
$('#flame').html(flame); // загоняем на страничку
var flamelevel = flame / 1.8;
flamelevel = 100 - flamelevel;
var fff = flamelevel * 2;
$('#flamelevel').height(flamelevel+"%"); // animate({"height":flamelevel + "%"}, 500); // загоняем в шкалу
$('#flamescaletext').css({"top":fff - 10}, 500);
var mode = parseInt($(xml).find('val5').text());
$('#mode').html(modes[mode]);
toset = parseInt($(xml).find('val8').text());
$('#toset').html(toset); // Заданная номинальная температура
$('#toustavkatext').html(toset);
var tmoset = (100 - toset) * 2;
$('#toustavka').css({"top":tmoset}, 500); // загоняем в шкалу
$('#toustavkatext').css({"top":tmoset - 10}, 500); // загоняем в шкалу
var vozduh = parseInt($(xml).find('val11').text());
tecoset = parseInt($(xml).find('val9').text());
$('#tecoset').html(tecoset); // Заданная минимальная температура
$('#tecoustavkatext').html(tecoset); // Заданная минимальная температура рядом со шкалой
var tmecoset = (100 - tecoset) * 2;
$('#tecoustavka').css({"top":tmecoset}, 500); // загоняем в шкалу
$('#tecoustavkatext').css({"top":tmecoset - 10}, 500); // загоняем в шкалу
var pwmin = parseInt($(xml).find('val13').text());
$('[id = pwmin]').html(pwmin);
$('[id = pwmin1]').html(pwmin);
var pwmax = parseInt($(xml).find('val14').text());
$('[id = pwmax]').html(pwmax);
$('[id = pwmax1]').html(pwmax);
var timetoelkotel = parseInt($(xml).find('val45').text());
$('#timetoelkotel').html(timetoelkotel);
if (timetoelkotel == 24) { $('#timetoelkotel').html("Нет");} // время сброшено
var timetopelkotel = parseInt($(xml).find('val46').text());
$('#timetopelkotel').html(timetopelkotel);
if (timetopelkotel == 24) { $('#timetopelkotel').html("Нет");} // время сброшено
connection_mode = parseInt($(xml).find('val49').text());
$("#point_"+connection_mode).css( {"box-shadow" : "0px 0px 3px #FF000C"} );
var gsmsignal = parseInt($(xml).find('val51').text());
$('#gsmsignal').html(gsmsignal);
var pelletbalance = parseInt($(xml).find('val52').text());
$('#pelletbalance').html(pelletbalance);
if (pelletbalance == 205) { $('#pelletbalance').html("Не используется"); } // отсутствие
else { $('#scaltoplivo').show(); $('#toplivo').show();}
if (pelletbalance == 200) { $('#pelletbalance').html("Ошибка"); pelletbalance = 0; } // ошибка
$('#pelletleveltext').html(pelletbalance);
pelletbalance = (100 - pelletbalance) * 2;
$('#pelletlevel').height(pelletbalance); // animate({"height":pelletbalance}, 500); // загоняем в шкалу **************
$('#pelletleveltext').css({"top":pelletbalance - 10}, 500);
var pelletlevel_min = parseInt($(xml).find('val53').text());
$('#pelletlevel_min').html(pelletlevel_min);
$('#pelletustavkatext').html(pelletlevel_min);
pelletlevel_min = (100 - pelletlevel_min) * 2;
$('#pelletustavka').css({"top":pelletlevel_min}, 500);
$('#pelletustavkatext').css({"top":pelletlevel_min - 10}, 500);
var startstop = parseInt($(xml).find('val54').text());
if(startstop == 0) {$('#startstop').html("Нет");}
else {$('#startstop').html("Да");}
var tlotok = parseInt($(xml).find('val55').text());
if(tlotok==186) {
$('#tlotok').html("Ошибка датчика");
}
else {
if(tlotok==150) {$('#tlotok').html("Не используется");}
else {$('#tlotok').html(tlotok);}
}
var wifisignal = parseInt($(xml).find('val56').text());
$('#wifisignal').html(wifisignal);
var dns1 = $(xml).find('val57').text();
$('#dns1').html(dns1);
var myssid = $(xml).find('val58').text();
$('#myssid').html(myssid);
var mac = $(xml).find('val59').text();
$('#mac').html(mac);
var updstatus = $(xml).find('val60').text();
$('#updstatus').html(updstatus);
pmaxH = parseInt($(xml).find('val61').text());
pmaxL = parseInt($(xml).find('val62').text());
pminH = parseInt($(xml).find('val63').text());
pminL = parseInt($(xml).find('val64').text());
if (val_flag == 0) {
$('#pmaxH').html(pmaxH); $('#showmaxpower').attr( {"max" : pmaxH });
$('#pmaxL').html(pmaxL); $('#showmaxpower').attr( {"min" : pmaxL });
$('#pminH').html(pminH); $('#showminpower').attr( {"max" : pminH });
$('#pminL').html(pminL); $('#showminpower').attr( {"min" : pminL });
$("#tecomax").html(toset); // в настройках котла текст о максимальной экономичной т toset
//$('#toustavkatext').html(toset); // Заданная номинальная температура рядом со шкалой
$("#teco").attr({ "max" : toset}) // задаем предел для минимальной уставки!!!!
$('[id = targetmaxpower]').html(pwmax);
$('[name = targetmaxpower]').html(pwmax);
$('[id = targetminpower]').html(pwmin);
$('[name = targetminpower]').html(pwmin);
$('#showminpower').val(pwmin);
$('#showmaxpower').val(pwmax);
$('#tobr').val(toset);
$('.tobr').html(toset);
$('#teco').val(tecoset);
$('.teco').html(tecoset);
$('#timetoel').val(timetoelkotel);
$('#timetopel').val(timetopelkotel);
$('.timetoel').html(timetoelkotel);
if (timetoelkotel == 24) { $('.timetoel').html("Нет");} // время сброшено
$('.timetopel').html(timetopelkotel);
if (timetopelkotel == 24) { $('.timetopel').html("Нет");} // время сброшено
val_flag = 1;
}
var errorsearch = updstatus.indexOf("Error=");
if (errorsearch == 0) {
var lght = updstatus.length;
lght = lght - 1;
var er = updstatus.charAt(lght);
// alert(er);
}
$('#updstatus').html(updateerrors[er]);
if (diagram_enable == 1) {
var pushed = v1.push([intval, flame]);
var pushed2 = t1.push([intval, tk]);
var pushed3 = p1.push([intval, to]);
var pushed4 = m1.push([intval, energy]);
var pushed5 = m2.push([intval, vozduh]);
grafik();
}
}
});
}
function set_wifi(modewifi) { // получаем данные формы и формируем запрос
var regim = modewifi;
switch(modewifi) {
case 'default':
var datasend = '/d.cgi?regim=tochka';
break;
case 'dhcp':
var datasend = '/d.cgi?regim=routerdynamic&id='+$("#ssid2").val()+'&passw='+$("#passwd2").val();
break;
case 'static':
var fullip = $("#ip1").val()+'.'+$("#ip2").val()+'.'+$("#ip3").val()+'.'+$("#ip4").val();
var fullmask = $("#mask1").val()+'.'+$("#mask2").val()+'.'+$("#mask3").val()+'.'+$("#mask4").val();
var fullgw = $("#gateway1").val()+'.'+$("#gateway2").val()+'.'+$("#gateway3").val()+'.'+$("#gateway4").val();
if ($("#gateway1").val() == '' || $("#gateway2").val() == '' || $("#gateway3").val() == '' || $("#gateway4").val() == '' )
{ var req = ''; }
else {
var req = '&gateway='+fullgw;
}
var datasend = '/d.cgi?regim=routerstatic&id='+$("#ssid3").val()+'&passw='+$("#passwd3").val()+'&ip='+fullip+'&mask='+fullmask+req;
break;
}
if (confirm("Подтверждаете выполнение действий?")) {
alert("Применение параметров. Выполнение может занять до 2 минут.") } else { return; }
// alert(datasend);
$.get(datasend);
}
function settings(typeact,sets) {
var cact = 0;
var newtemp = 0;
var ctemp = 0;
if (sets == 'temp') {
if (typeact == 'max') {
cact = '56';
ctemp = parseInt($("#tobr").val());
}
if (typeact == 'min') {
cact = '57';
ctemp = parseInt($("#teco").val());
}
newtemp = ctemp + 48;
if (newtemp > 127) { newtemp = 128; }
if (newtemp < 50) { newtemp = 49; }
$.get( "/d.cgi", { p: cact, v: newtemp } );
// alert(cact+" "+newtemp);
}
if (sets == 'elkotel')
{
if (typeact == 'toelkotel') {
var time_elkotel = parseInt($('#timetoel').val());
if (time_elkotel > 24 && time_pelkotel > 24) { time_elkotel = 24; time_pelkotel = 24; }
time_elkotel = time_elkotel + 48;
$.get( "/d.cgi", { v: time_elkotel, p: "93" } ); // Время перехода на электрокотел
}
if (typeact == 'topelkotel') {
var time_pelkotel = parseInt($('#timetopel').val());
if (time_elkotel > 24 && time_pelkotel > 24) { time_elkotel = 24; time_pelkotel = 24; }
time_pelkotel = time_pelkotel + 48;
$.get( "/d.cgi", { v: time_pelkotel, p: "94" } ); // Время перехода на пеллеты
}
if (typeact == 'reset') {
$.get( "/d.cgi", { v: "72", p: "93" } );
$.get( "/d.cgi", { v: "72", p: "94" } );
}
}
if (sets == 'powerset')
{
var pwmin = parseInt($('#showminpower').val());
var pwmax = parseInt($('#showmaxpower').val());
if (typeact == 'pmin') {
var powerset = pwmin + 48;
$.get( "/d.cgi", { v: powerset, p: 61 } ); // установка минимальной мощности
//alert(pwmin);
}
if (typeact == 'pmax') {
var powerset = pwmax + 48;
$.get( "/d.cgi", { v: powerset, p: 62 } ); // установка максимальной мощности
//alert(pwmax);
}
}
setTimeout(function(){val_flag = 0;}, 2000);
}
$(function() {
if (screen < 5000) { $("#settings").hide(); }
if (screen < 5000) { $("#grafik").hide(); }
if (screen < 5000) { $("#wifi").hide(); }
if (screen < 5000) { $("#gsmwifiblock").hide(); }
if (screen < 5000) { $("#etadpuhide").hide(); }
$("#showsettings").click(function() {
$("#settings").toggle();
});
$("#showwifi").click(function() {
$("#wifi").toggle();
});
$("#showgrafik").click(function() {
$("#grafik").toggle();
});
$("#showwifistat").click(function() {
$("#gsmwifiblock").toggle();
});
$("#showpower").click(function() {
$("#powersettings").toggle();
});
$(".link-week").click(function() {
document.location.href = "week.htm";
});
$("#updatesecret").click(function() {
updsecret++;
setTimeout(function() {updsecret=0;}, 10000);
if (updsecret == 5) { $(".etadpu").show(); }
});
$("#powersecret").click(function() {
powersecret++;
setTimeout(function() {powersecret=0;}, 10000);
if (powersecret == 5) { $(".editpower").show(); }
});
$("#showetadpu").click(function() {
$("#etadpuhide").toggle();
});
setTimeout("timelapse_start()", 1000);
setInterval("timelapsecontrol()", 1000);
setInterval("refreshdata()", 1000);
});
</script>
</head>
<body>
<div class="wrapper">
<div class="mainblock"> <!-- MAINBLOCK #1 -->
<div class="mainstats">
<div class="title-block">
<h3> Состояние котла </h3>
</div>
<div class="knopki">
<div class="inblock">
<button onClick="control('pusk');"> Запустить котел </button>
<button onClick="control('stop');;"> Остановить котел </button>
</div>
</div>
<div class="inblock" style="display: flex; justify-content: space-between;">
<div>
<ul>
<li> <div class="minititle"> Режим: <span class="value" id="mode">0</span> </div> </li>
<li> <div class="minititle"> Расход: <span class="value" id="rashod">0</span> кг/ч </div></li>
<li> <div class="minititle" id="updatesecret"> Пламя: <span class="value" id="flame">0</span> </div></li>
<li> <div class="minititle"> Мощность: <span class="value" id="energy">0</span> кВт </div></li>
<li> <div class="minititle"> Т-котла: <span class="value" id="tkval">0</span> °C </div></li>
<li> <div class="minititle"> Т-обрат: <span class="value" id="toval">0</span> °C </div></li>
</ul>
</div>
<div style="margin-right: 20px;">
<ul>
<li> <div class="minititle" id="powersecret"> Мощность макс.: <span class="value" id="pwmax" >0</span> кВт </div></li>
<li> <div class="minititle"> Мощность мин.: <span class="value" id="pwmin" >0</span> кВт </div></li>
<li> <div class="minititle"> Топливо: <span class="value" id="pelletbalance">0</span> </div> </li>
<li> <div class="minititle"> Топливо/порог: <span class="value" id="pelletlevel_min">0</span> </div> </li>
<li> <div class="minititle"> Старт/Стоп <span class="value" id="startstop">0</span> </div> </li>
<li> <div class="minititle"> Т-лотка: <span class="value" id="tlotok">0</span> °C </div> </li>
</ul>
</div>
</div>
</div> <!-- mainstats -->
<div class="scalesblock" id="scaless">
<div class="title-block">
<h3> Визуальные показания </h3>
</div>
<div class="inblock" style="display: flex; justify-content: space-between; padding: 5px 10px;">
<div class="minititle"> Ткотла </div>
<div class="minititle"> Тобратка </div>
<div class="minititle"> Пламя </div>
<div class="minititle" id="toplivo"> Топливо </div>
</div>
<div class="inblock" style="display: flex; justify-content: space-between; padding: 5px 25px;">
<div class="scalevert bluescale">
<div id="tkscaletext"> </div>
<div id="tklevel" class="scaleinvert"> </div>
</div> <!-- шкала т котла -->
<div class="scalevert bluescale"> <!-- шкала т обратки -->
<div id="toustavka"> </div>
<div id="toustavkatext"> </div>
<div id="tecoustavka"> </div>
<div id="tecoustavkatext"> </div>
<div id="toscaletext"> </div>
<div id="tolevel" class="scaleinvert"> </div>
</div>
<div class="scalevert orangescale">
<div id="flamescaletext"> </div>
<div id="flamelevel" class="scaleinvert"> </div>
</div>
<div class="scalevert greyscale" id="scaltoplivo">
<div id="pelletustavka"> </div>
<div id="pelletustavkatext"> </div>
<div id="pelletleveltext"> </div>
<div id="pelletlevel" class="scaleinvert" > </div>
</div>
</div>
</div>
</div> <!-- MAINBLOCK #1 -->
<div class="mainblock"> <!-- MAINBLOCK #2 -->
<div class="etadpu" style="display: none;">
<div class="title-block" id="showetadpu">
<h3> Обновление ПО Wi-Fi </h3>
</div>
<div class="inblock" id="etadpuhide">
<p class="oncenter">
<button onClick="update_fw();"> Обновление прошивки </button>
</p>
<br>
<div>
<div class="minititle" id="famupdstatus" style="display: none;"><span class="value" id="updstatus"></span></div>
<div class="minititle" id="famupderror" style="display: none;"><span class="value" id="updstatuserror"></span></div>
</div>
</div>
</div>
<div class="editpower" style="display: none;"> <!-- настройка мощности -->
<div class="title-block" id="showpower">
<h3> Настройка мощности </h3>
</div>
<div class="inblock" id="powersettings" style="display: none;">
<div class="param">
<div> <p class="minititle"> Максимальная мощность <span class="value" id="pwmax1" ></span> кВт</p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="showmaxpower" id="targetmaxpower" > 0 </span> кВт </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('pmax','minus');"><span id="pmaxL"> 1 </span> кВт </span>
<input type="range" name="targetmaxpower" id="showmaxpower" class="range" oninput="showparam('showmaxpower')">
<span class="minititle greytitle" onclick="tune('pmax','plus');"><span id="pmaxH"> 24 </span> кВт </span>
</p>
</div>
<div class="param">
<span style="float: right;"> <button onclick="settings('pmin','powerset'); settings('pmax','powerset');"> Применить </button> </span>
<div> <p class="minititle"> Минимальная мощность <span class="value" id="pwmin1" ></span> кВт</p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="showminpower" id="targetminpower" > 0 </span> кВт </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('pmin','minus');"><span id="pminL"> 1 </span>кВт</span>
<input type="range" name="targetminpower" id="showminpower" class="range" oninput="showparam('showminpower')">
<span class="minititle greytitle" onclick="tune('pmin','plus');"><span id="pminH"> 24 </span>кВт</span>
</p>
</div>
</div>
</div> <!-- настройка мощности -->
<div class="editparams"> <!-- editparams / уставки котла-->
<div class="title-block" id="showsettings">
<h3> Настройка котла </h3>
</div>
<div class="inblock" id="settings">
<div class="param">
<div> <p class="minititle"> Т. обратки: <span class="value" id="toset"></span> °C </p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="tobr"> 0 </span> °C </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('to','minus');"> 10 °C </span>
<input type="range" min="10" max="80" id="tobr" class="range" oninput="showparam('tobr')">
<span class="minititle greytitle" onclick="tune('to','plus');"> 80 °C </span>
</p>
</div>
<div class="param">
<span style="float: right;"> <button onclick="settings('min','temp'); settings('max','temp');"> Применить </button> </span>
<div> <p class="minititle"> Т. экономичная: <span class="value" id="tecoset"></span> °C </p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="teco"> 0 </span> °C </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('teco','minus');"> 10 °C </span>
<input type="range" min="10" id="teco" class="range" oninput="showparam('teco')">
<span class="minititle greytitle" onclick="tune('teco','plus');"> <span id="tecomax">0</span>°C</span></p>
</div>
<div class="param">
<div> <p class="minititle"> Переход на электрокотел в <span class="value" id="timetoelkotel"></span> ч.</p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="timetoel"> 0 </span> ч. </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('elkotel','minus');"> 0 ч </span>
<input type="range" min="0" max="23" id="timetoel" class="range" oninput="showparam('timetoel')">
<span class="minititle greytitle" onclick="tune('elkotel','plus');"> 23 ч </span>
</p>
</div>
<div class="param">
<span style="float: right;"> <button onclick="settings('topelkotel','elkotel'); settings('toelkotel','elkotel');"> Применить </button> </span>
<div> <p class="minititle"> Переход на пеллеты в <span class="value" id="timetopelkotel"></span> ч.</p> </div>
<div style="margin-top: 2px;"> <img src="img/arrow.png" alt="Pic" style="vertical-align: middle;" >
<p class="minititle"> <span class="timetopel"> 0 </span> ч. </p> </div>
<p class="oncenter">
<span class="minititle greytitle" onclick="tune('pelkotel','minus');"> 0 ч </span>
<input type="range" min="0" max="23" id="timetopel" class="range" oninput="showparam('timetopel')">
<span class="minititle greytitle" onclick="tune('pelkotel','plus');"> 23 ч </span>
</p>
<p class="oncenter"><button onclick="settings('reset','elkotel');"> Сбросить время перехода на электрокотел </button></p>
</div>
</div>
</div> <!-- editparams / уставки котла-->
<div class="wifi">
<div class="title-block" id="showwifi">
<h3> Настройка Wi-Fi </h3>
</div>
<div class="inblock" id="wifi">
<div class="wifi-connector">
<div class="point" id="point_0" onClick="wifivision('default')">
<p class="oncenter"> <img src="img/access_point2.jpg" alt="Pic" > </p>
<p> Точка доступа </p>
</div>
<div class="point" id="point_1" onClick="wifivision('dhcp')">
<p class="oncenter"> <img src="img/access_point3.jpg" alt="Pic" > </p>
<p > Роутер (DHCP) </p>
</div>
<div class="point" id="point_2" onClick="wifivision('static')">
<p class="oncenter"> <img src="img/access_point3.jpg" alt="Pic" > </p>
<p> Роутер (STATIC) </p>
</div>
</div>
<div class="inblock" id="wifidefault">
<br>
<p> <button onClick="set_wifi('default');"> Применить </button> </p>
</div>
<div class="inblock" id="wifidhcp">
<p style='font-size: 12px;'> Идентификатор Wi-Fi сети (SSID) </p>
<p style="display: block; margin-bottom: 5px;" id="ssidr">
<input type="text" name="id" id="ssid2" class="inputs"> </p>
<p style='font-size: 12px;'> Пароль роутера (с учетом регистра) </p>
<p style="display: block; margin-bottom: 5px;" id="passwdr">
<input type="text" name="passw" id="passwd2" class="inputs"> </p>
<br>
<p> <button onClick="set_wifi('dhcp');"> Применить </button> </p>
</div>
<div class="inblock" id="wifistatic">
<p style='font-size: 12px;'> Идентификатор Wi-Fi сети (SSID) </p>
<p style="display: block; margin-bottom: 5px;" id="ssids">
<input type="text" name="id" id="ssid3" class="inputs"> </p>
<p style='font-size: 12px;'> Wi-Fi пароль роутера (с учетом регистра)</p>
<p style="display: block; margin-bottom: 5px;" id="passwds">
<input type="text" name="passw" id="passwd3" class="inputs"> </p>
<div style="text-align: left;">
<p style="display: block; margin-bottom: 5px;" id="ip">
<input type="number" min=0 max=255 style="width: 35px;" name="ip1" id="ip1"> .
<input type="number" min=0 max=255 style="width: 35px;" name="ip2" id="ip2"> .
<input type="number" min=0 max=255 style="width: 35px;" name="ip3" id="ip3"> .
<input type="number" min=0 max=255 style="width: 35px;" name="ip4" id="ip4">
IP адрес
</p>
<p style="display: block; margin-bottom: 5px;" id="mask">
<input type="number" min=0 max=255 style="width: 35px;" name="mask1" id="mask1" value='255'> .
<input type="number" min=0 max=255 style="width: 35px;" name="mask2" id="mask2" value='255'> .
<input type="number" min=0 max=255 style="width: 35px;" name="mask3" id="mask3" value='255'> .
<input type="number" min=0 max=255 style="width: 35px;" name="mask4" id="mask4" value='0'>
Маска подсети
</p>
<p style="display: block; margin-bottom: 5px;" id="gateway">
<input type="number" min=0 max=255 style="width: 35px;" name="gateway1" id="gateway1"> .
<input type="number" min=0 max=255 style="width: 35px;" name="gateway2" id="gateway2"> .
<input type="number" min=0 max=255 style="width: 35px;" name="gateway3" id="gateway3"> .
<input type="number" min=0 max=255 style="width: 35px;" name="gateway4" id="gateway4">
Шлюз
</p>
</div>
<br>
<p> <button onClick="set_wifi('static');"> Применить </button> </p>
</div>
</div>
</div> <!-- wifi -->
</div> <!-- MAINBLOCK #2 -->
<div class="mainblock"> <!-- MAINBLOCK #3 -->
<div class="weekset">
<div class="title-block">
<h3 style="background: #346B43;" class="link-week"> Недельный график ... </h3>
</div>
</div>
<!-- <div class="grafik">
<div class="title-block" id="showgrafik">
<h3> Диаграмма (настройки)</h3>
</div>
<div class="inblock" id="grafik">
<ul>
<li> Интервал для сохранения </li>
<li> Отображать пламя </li>
<li> Отображать Ткотла </li>
<li> Отображать Тобратки </li>
<li> Отображать Воздух </li>
</ul>
</div>
</div> grafik -->
<div class="wifigsm" > <!-- wifigsm / блок состояния вифи и жсм -->
<div class="title-block" id="showwifistat">
<h3> Состояние Wi-Fi / GSM </h3>
</div>
<div class="inblock" id="gsmwifiblock">
<ul>
<li>
<div class="minititle"> Уровень сигнала GSM модуля: <span class="value" id="gsmsignal">0</span>% </div>
</li>
<li>
<div class="minititle"> Уровень сигнала Wi-Fi модуля: <span class="value" id="wifisignal">0</span> </div>
</li>
<li>
<div class="minititle"> SSID: <span class="value" id="myssid"> </span> </div>
</li>
<li>
<div class="minititle"> 1DNS-Server: <span class="value" id="dns1"> </span> </div>
</li>
<li>
<div class="minititle"> MACADDR: <span class="value" id="mac"> </span> </div>
</li>
<li>
<div class="minititle"> Версия веб оболочки: 3.0 </div>
</li>
</ul>
</div>
</div> <!-- wifigsm / блок состояния вифи и жсм -->
</div>
<div class="mainblock"> <!-- MAINBLOCK #5 -->
<div class="diagram"> <!-- wifigsm / блок состояния вифи и жсм -->
<div class="title-block" onclick="diagram_enable = 1;">
<h3> Диаграмма </h3>
</div>
<div class="inblock" id="diagram" style="height: 300px;">
</div>
</div>
</div> <!-- MAINBLOCK #5 -->
</div>
</body>
</html>