";
}
if (LesActions[iAct].Actif<=1 && iAct>0){
LesActions[iAct].Periodes[i].Vmax=Math.max(LesActions[iAct].Periodes[i].Vmin,LesActions[iAct].Periodes[i].Vmax);
var TexteMinMax="
Off si Pw>"+LesActions[iAct].Periodes[i].Vmax+"W
On si Pw<"+LesActions[iAct].Periodes[i].Vmin+"W
"+temperature + TxtTarif;
} else {
LesActions[iAct].Periodes[i].Vmax=Math.max(0,LesActions[iAct].Periodes[i].Vmax);
LesActions[iAct].Periodes[i].Vmax=Math.min(100,LesActions[iAct].Periodes[i].Vmax);
var TexteMinMax="
Seuil Pw : "+LesActions[iAct].Periodes[i].Vmin+"W
"+ temperature + "
Ouvre Max : "+LesActions[iAct].Periodes[i].Vmax+"%
" + TxtTarif;
}
var TexteTriac="
Seuil Pw : "+LesActions[iAct].Periodes[i].Vmin+"W
"+temperature + "
Ouvre Max : "+LesActions[iAct].Periodes[i].Vmax+"%
"+TxtTarif;
var paras = ["Pas de contrôle", "OFF", "ON" + temperature + TxtTarif, TexteMinMax, TexteTriac];
var para = paras[Type];
S += "
";
}
GH("curseurs" + iAct, S);
GH("infoAction" + iAct, Sinfo);
}
function touchMove(t, ev, iAct) {
var leftPos = ev.touches[0].clientX - GID(t.id).getBoundingClientRect().left;
NewPosition(t, leftPos, iAct);
}
function mouseMove(t, ev, iAct) {
if (mouseClick) {
var leftPos = ev.clientX - GID(t.id).getBoundingClientRect().left;
NewPosition(t, leftPos, iAct);
}
}
function NewPosition(t, leftPos, iAct) {
var G = GID(t.id).style.left;
//+ window.scrollX;
var width = GID(t.id).getBoundingClientRect().width;
var HeureMouse = leftPos * 2420 / width;
var idxClick = 0;
var deltaX = 999999;
for (var i = 0; i < LesActions[iAct].Periodes.length - 1; i++) {
var dist = Math.abs(HeureMouse - LesActions[iAct].Periodes[i].Hfin)
if (dist < deltaX) {
idxClick = i;
deltaX = dist;
}
}
var NewHfin = Math.max(0, Math.min(HeureMouse, 2400));
if (idxClick == LesActions[iAct].Periodes.length - 1) NewHfin=2400;
if (idxClick < LesActions[iAct].Periodes.length - 1)
NewHfin = Math.min(NewHfin, LesActions[iAct].Periodes[idxClick + 1].Hfin);
if (idxClick > 0)
NewHfin = Math.max(NewHfin, LesActions[iAct].Periodes[idxClick - 1].Hfin);
LesActions[iAct].Periodes[idxClick].Hfin = Math.floor(NewHfin);
TracePeriodes(iAct);
}
function AddSub(v, iAct) {
if (v == 1) {
if (LesActions[iAct].Periodes.length<8){
LesActions[iAct].Periodes.push({
Hfin: 2400,
Type: 1,
Vmin:0,
Vmax:100,
Tinf:150,
Tsup:150,
Tarif:31
}); //Tarif codé en bits
var Hbas = 0;
if (LesActions[iAct].Periodes.length > 2){
Hbas = parseInt(LesActions[iAct].Periodes[LesActions[iAct].Periodes.length - 3].Hfin);
}
if (LesActions[iAct].Periodes.length > 1) {
LesActions[iAct].Periodes[LesActions[iAct].Periodes.length - 2].Hfin = Math.floor((Hbas + 2400) / 2);
}
}
} else {
if (LesActions[iAct].Periodes.length>1){
LesActions[iAct].Periodes.pop();
if (LesActions[iAct].Periodes.length > 0)
LesActions[iAct].Periodes[LesActions[iAct].Periodes.length - 1].Hfin = 2400;
}
}
TracePeriodes(iAct);
}
function infoZclicK(i, iAct) {
if (!blockEvent) {
blockEvent = true;
var Type = LesActions[iAct].Periodes[i].Type;
var idZ = "info" + iAct + "Z" + i;
var S = "
Sélection Action
X
";
//On ne traite plus depuis version8 le cas "Pas de Contrôle". Inutile
c = (Type == 1) ? "bInset" : "bOutset";
S += "
OFF
";
S += "
";
c = (Type == 2) ? "bInset" : "bOutset";
S += "
ON
";
c = (Type > 2) ? "bInset" : "bOutset";
var Vmin=LesActions[iAct].Periodes[i].Vmin;
var Vmax=LesActions[iAct].Periodes[i].Vmax;
var Tinf=LesActions[iAct].Periodes[i].Tinf;
var Tsup=LesActions[iAct].Periodes[i].Tsup;
if (Tinf>100 || Tinf<0) Tinf=""; //Temperature entre 0 et 100
if (Tsup>100 || Tsup<0) Tsup=""; //Temperature entre 0 et 100
if (iAct > 0) {
var Routage=["","Routage ON/Off","Routage Multi-sinus","Routage Train de Sinus"];
S += "
" +Routage[LesActions[iAct].Actif] + "
";
if (LesActions[iAct].Actif<=1) {
S += "
On : Pw <W
";
S += "
Off : Pw >W
";
S += "
Puissance active en entrée de maison
";
} else {
S += "
Seuil Pw : W
";
S += "
Puissance active en entrée de maison
";
S += "
Ouvre Max : %
";
}
} else {
var Routage=["","Routage Découpe Sinus","Routage Multi-sinus","Routage Train de Sinus"];
S += "
" +Routage[LesActions[iAct].Actif] + "
";
S += "
Seuil Pw W
";
S += "
Puissance active en entrée de maison
";
S += "
Ouvre Max %
";
}
S += "
";
S += "
";
if (temperatureDS>-100) {
S += "
";
S += "
Actif si température :
";
S += "
T ≥°
";
S += "
T ≤°
";
S += "
T en degré (0 à 100) ou laisser vide
";
S += "
";
}
if (LTARFbin>0) {
S += "
";
S += "
Actif si tarif :
";
if (LTARFbin<=3) {
S += "
Heure PleineHeure Creuse
";
} else {
S += "
Tempo Bleu Blanc Rouge
";
}
S += "
";
}
S += "
";
S += "";
GH(idZ, S);
var Tarif_=LesActions[iAct].Periodes[i].Tarif;
if (LTARFbin>0) {
if (LTARFbin<=3) {
GID("TarifPl_" + idZ).checked = (Tarif_ & 1) ? 1:0 ; // H Pleine
GID("TarifCr_" + idZ).checked = (Tarif_ & 2) ? 1:0 ;
} else {
GID("TarifBe_" + idZ).checked = (Tarif_ & 4) ? 1:0 ;
GID("TarifBa_" + idZ).checked = (Tarif_ & 8) ? 1:0 ;
GID("TarifRo_" + idZ).checked = (Tarif_ & 16) ? 1:0 ; //Rouge
}
}
GID(idZ).style.display = "block";
}
}
function infoZclose(idx) {
var champs=idx.split("info");
var idx=champs[1].split("Z");
S="TracePeriodes("+idx[0]+");"
setTimeout(S, 100);
}
function selectZ(T, i, iAct) {
if (LesActions[iAct].Periodes[i].Type != T) {
LesActions[iAct].Periodes[i].Type = T;
var idZ = "info" + iAct + "Z" + i;
if (T <= 2)
infoZclose(idZ);
TracePeriodes(iAct);
}
}
function NewVal(t){
var champs=t.id.split("info");
var idx=champs[1].split("Z"); //Num Action, Num période
if (champs[0].indexOf("min")>0){
LesActions[idx[0]].Periodes[idx[1]].Vmin=Math.floor(GID(t.id).value);
}
if (champs[0].indexOf("max")>0){
LesActions[idx[0]].Periodes[idx[1]].Vmax=Math.floor(GID(t.id).value);
if (idx[0]==0){
LesActions[idx[0]].Periodes[idx[1]].Vmax=Math.max(LesActions[idx[0]].Periodes[idx[1]].Vmax,5);
LesActions[idx[0]].Periodes[idx[1]].Vmax=Math.min(LesActions[idx[0]].Periodes[idx[1]].Vmax,100);
}
}
if (champs[0].indexOf("inf")>0){
var V= GID(t.id).value;
if (V=="") V=128;
LesActions[idx[0]].Periodes[idx[1]].Tinf=Math.floor(V);
}
if (champs[0].indexOf("sup")>0){
var V= GID(t.id).value;
if (V=="") V=128;
LesActions[idx[0]].Periodes[idx[1]].Tsup=Math.floor(V);
}
if (champs[0].indexOf("Tarif")>=0){
var idZ = "info" + champs[1];
var Tarif_ = 0;
if (LTARFbin<=3) {
Tarif_ += GID("TarifPl_" + idZ).checked ? 1:0; //H pleine
Tarif_ += GID("TarifCr_" + idZ).checked ? 2:0;
} else {
Tarif_ += GID("TarifBe_" + idZ).checked ? 4:0; //Bleu
Tarif_ += GID("TarifBa_" + idZ).checked ? 8:0;
Tarif_ += GID("TarifRo_" + idZ).checked ? 16:0; //Rouge
}
LesActions[idx[0]].Periodes[idx[1]].Tarif=Tarif_;
}
}
function editTitre(iAct) {
if (GID("titre" + iAct).innerHTML.indexOf("");
GID("Etitre" + iAct).focus();
}
}
function TitreValid(iAct) {
LesActions[iAct].Titre = GID("Etitre" + iAct).value.trim();
GH("titre" + iAct, LesActions[iAct].Titre);
}
function checkDisabled(){
for (var iAct = 0; iAct < LesActions.length; iAct++) {
for (var i=0;i<=3;i++){
if( GID("radio" + iAct +"-"+ i).checked ) { LesActions[iAct].Actif =i;}
}
TracePeriodes(iAct);
GID("planning0").style.display = (ITmode>0) ? "block" : "none"; // Pas de Triac si pas de synchro Zc
GID("TitrTriac").style.display = (ITmode>0) ? "block" : "none";
GID("blocPlanning"+iAct).style.display = (LesActions[iAct].Actif>0) ? "block" : "none";
var visible = ( LesActions[iAct].Actif== 1) ? "visible" : "hidden";
GID("Host"+iAct).style.visibility =visible;
GID("host"+iAct).style.visibility =visible;
GID("Tempo"+iAct).style.visibility =visible;
GID("tempo"+iAct).style.visibility =visible;
LesActions[iAct].Host = GID("host" + iAct).value.trim();
if (LesActions[iAct].Host =="") visible="hidden";
GID("ordreoff"+iAct).style.visibility =visible;
GID("ordreOff"+iAct).style.visibility =visible;
GID("Port"+iAct).style.visibility =visible;
GID("port"+iAct).style.visibility =visible;
GID("Repet"+iAct).style.visibility =visible;
GID("repet"+iAct).style.visibility =visible;
GID("ligne_bas"+iAct).style.display =( LesActions[iAct].Actif> 1) ? "none" :"table-row";
GID("fen_slide"+iAct).style.visibility = (LesActions[iAct].Actif== 1 && iAct>0 ) ? "hidden" : "visible";
}
}
function LoadActions() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var LeRetour = this.responseText;
var Les_ACTIONS = LeRetour.split(GS);
var LesParas = Les_ACTIONS[0].split(RS);
temperatureDS=LesParas[0];
LTARFbin = parseInt(LesParas[1]);
ITmode = parseInt(LesParas[2]);
LesActions.splice(0,LesActions.length);
for (var iAct=1;iAct";
}
GH("plannings", S);
for (var iAct = 0; iAct < LesActions.length; iAct++) {
TracePlanning(iAct);
GID("radio" + iAct +"-" +LesActions[iAct].Actif).checked = true;
GH("titre" + iAct,LesActions[iAct].Titre);
GV("host" + iAct,LesActions[iAct].Host);
GV("port" + iAct,LesActions[iAct].Port);
GV("ordreOn" + iAct,LesActions[iAct].OrdreOn);
GV("ordreOff" + iAct,LesActions[iAct].OrdreOff);
GV("repet" + iAct,LesActions[iAct].Repet);
GV("tempo" + iAct,LesActions[iAct].Tempo);
GV("slider" + iAct ,LesActions[iAct].Reactivite);
GH("sensi" + iAct ,LesActions[iAct].Reactivite)
}
checkDisabled();
}
};
xhttp.open('GET', 'ActionsAjax', true);
xhttp.send();
}
function SendValues() {
for (var iAct = 0; iAct < LesActions.length; iAct++) {
for (var i=0;i<=3;i++){
if( GID("radio" + iAct +"-"+ i).checked ) { LesActions[iAct].Actif =i;}
}
LesActions[iAct].Titre = GID("titre" + iAct).innerHTML.trim();
LesActions[iAct].Host = GID("host" + iAct).value.trim();
LesActions[iAct].Port = GID("port" + iAct).value;
LesActions[iAct].OrdreOn = GID("ordreOn" + iAct).value.trim();
LesActions[iAct].OrdreOff = GID("ordreOff" + iAct).value.trim();
LesActions[iAct].Repet = GID("repet" + iAct).value;
LesActions[iAct].Tempo = GID("tempo" + iAct).value;
LesActions[iAct].Reactivite = GID("slider" + iAct).value;
if (LesActions[iAct].OrdreOn=="" && iAct>0) LesActions[iAct].Actif=0;
}
var S="";
for (var iAct = 0; iAct < LesActions.length; iAct++) {
if ((iAct==0)||LesActions[iAct].Actif>0){
S +=LesActions[iAct].Actif+RS+LesActions[iAct].Titre+RS;
S +=LesActions[iAct].Host+RS+LesActions[iAct].Port+RS;
S +=LesActions[iAct].OrdreOn+RS+LesActions[iAct].OrdreOff+RS+LesActions[iAct].Repet+RS+LesActions[iAct].Tempo+RS;
S +=LesActions[iAct].Reactivite + RS + LesActions[iAct].Periodes.length+RS;
for (var i=0;igpio=5&out=1 mettre le GPIO 5 à 1. "
m += "Ex. pour une machine sur le réseau : /commande?idx=23&position=on. Se référer à la documentation constructeur. "
m += "Ne rien mettre dans les champs Ordre On et (Ordre Off) pour supprimer l'action. "
break;
case "repe":
var m = "Période en s de répétition/rafraîchissement de la commande. Uniquement pour les commandes vers l'extérieur. ";
m += "0= pas de répétition.";
break;
case "temp":
var m = "Temporisation entre chaque changement d'état pour éviter des oscillations quand un appareil dans la maison consomme en dent de scie (Ex: un four)."
break;
case "adds":
var m = "Ajout ou retrait d'une période horaire."
break;
case "Pw":
var m = "Seuil inférieur de puissance mesurée Pw < pour démarrer le routage et seuil supérieur de puissance > pour l'arrêter. ";
m +="Attention, la différence, seuil supérieur moins seuil inférieur doit être supérieure à la consommation du dipositif pour éviter l'oscillation du relais de commande."
break;
case "pwTr":
var m = "Seuil en W de régulation par le Triac de la puissance mesurée Pw en entrée de la maison. Valeur typique : 0.";
break;
case "mxTr":
var m = "Ouverture maximum du triac entre 5 et 100%. Valeur typique : 100%";
break;
case "zNo":
var m = "Pas d'action On ou Off de routage";
break;
case "zOff":
var m = "Off forcé";
break;
case "zOn":
var m = "On forcé (si règle température valide)";
break;
case "tmpr":
var m = "Définir la ou les températures qui permettent l'activation de la fonction On ou Routage. Sinon ordre Off envoyé ou Triac se ferme. Ne rien mettre si pas d'activation en fonction de la température.";
break;
case "tarif":
var m = "Condition d'activation suivant la tarification. Sinon ordre Off envoyé ou Triac se ferme.";
break;
}
GH("message", m);
GID("message").style = "display:inline-block;";
Timer = 10;
}
var Timer = 0;
function DispTimer() {
Timer = Timer - 1;
if (Timer < 0) {
GID('message').style = 'display:none;';
}
setTimeout("DispTimer();", 1000);
}
function AdaptationSource(){
}