//@liv-in-sky Januar 2020
//HIER WIRD PFAD UND FILENAME DEFINIERT
const path = "/htmlakku.html"; //FIlenamen definieren
const home ='vis.0' //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
let braucheEinFile=false; // bei true wird ein file geschrieben
let braucheEinVISWidget=true; // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
let dpVIS="vis.0.TABELLEN.SONOFF" //WICHTIG wenn braucheEinVISWidget auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget
let dpAnzahl="vis.0.TABELLEN.AnzahlSonoff"; //WICHTIG datenpunkt erstellen vom typ "number" - bei 0 kein alarm und größer 0 die anzahl der schlechten batterien
let htmlColorDeviceUeberschrift="white"
let triggerBySonoffPower=true;
// ------------------------ hier einstellen, was man für ein device hat - die nicht gebraucht werden auf false setzen !!!
var pow=false;
var generic=true; var genericMitDiv=true; // anzeige mit DIVersen Sensoren
var basic=true; var basicMitTemp=true;
var th10=false;
var externalMitInfo=false; //noch nicht integriert
var externalOhneInfo=false; //noch nicht integriert
var schalter2ch=false;
var schalter3ch=false;
var dual=false;
var schalter1ch=true;
var channel4=false; //Sonoff 4CH
var rfbridge=false;
var stdoseS2X=false;
var teckin=false;
var sv=true;
var blitzwolf_shp=true;
var sonoffDev=true;
var gosundSP1x=false;
var shelly=false;
var ohneInfo=false; // bei manchen fehlt der INFO ordner - diese werden hier erfasst
//Sonderfall
var linganSteckdose =false;
var symbolOK="?"; // auch möglich: ="??"}
var symbolKO="?"; //z.b. auch "X" für ein rotes kreuz oder : ="??" ? ? ? ?? ?? ? ?? ?? ?? ?? ?? ??
var symbolWARN="??"; // ="??"
let mySchedule=" * * * * * ";
//HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 5
var htmlFeld1='Device'; var Feld1lAlign="left"; // überschrift Tabellen Spalte1 und Ausrichtung left,right or center
var htmlFeld2='Status'; var Feld2lAlign="center"; // überschrift Tabellen Spalte2 und Ausrichtung left,right or center
var htmlFeld3='Version'; var Feld3lAlign="center"; // überschrift Tabellen Spalte3 und Ausrichtung left,right or center
var htmlFeld4='WLAN'; var Feld4lAlign="right"; // überschrift Tabellen Spalte4 und Ausrichtung left,right or center
var htmlFeld5='IP'; var Feld5lAlign="left"; // überschrift Tabellen Spalte5 und Ausrichtung left,right or center
var htmlFeld6=''; var Feld6lAlign="center"; // überschrift Tabellen Spalte5 und Ausrichtung left,right or center
//-----------------------------------
//hier werden die styles für die tabelle definiert
//ÜBERSCHRIFT ÜBER TABELLE
let htmlUberschrift=true; // mit Überschrift über der tabelle
let htmlSignature=true; // anstatt der Überscghrift eine signature: - kleiner - anliegend
const htmlFeldUeber='Tasmota Geräte'; // Überschrift und Signature
const htmlFarbUber="white"; // Farbe der Überschrift
const htmlSchriftWeite="normal"; // bold, normal - Fettschrift für Überschrift
const htmlÜberFontGroesse="18px"; // schriftgröße überschrift
//MEHRERE TABELLEN NEBENEINANDER
let mehrfachTabelle=1; // bis zu 4 Tabellen werden nebeneinander geschrieben- verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
const htmlFarbZweiteTabelle="white"; // Farbe der Überschrift bei jeder 2.ten Tabelle
const htmlFarbTableColorUber="#BDBDBD"; // Überschrift in der tabelle - der einzelnen Spalten
//ÜBERSCHRIFT SPALTEN
const UeberSchriftHöhe="35"; //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
const LinieUnterUeberschrift="2"; // Linie nur unter Spaltenüberschrift -
const farbeLinieUnterUeberschrift="white";
const groesseUeberschrift=16;
const UeberschriftStyle="normal" // möglich "bold"
//GANZE TABELLE
let abstandZelle="1";
let weite="auto"; //Weite der Tabelle
let zentriert=true; //ganze tabelle zentriert
const backgroundAll="#000000"; //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
const htmlSchriftart="Helvetica";
const htmlSchriftgroesse="14px";
//FELDER UND RAHMEN
let UeberschriftSpalten=true; // ein- oder ausblenden der spatlen-überschriften
const htmlFarbFelderschrift="#BDBDBD"; // SchriftFarbe der Felder
const htmlFarbFelderschrift2="#D8D8D8"; // SchriftFarbe der Felder für jede 2te Tabelle
const htmlFarbTableColorGradient1="#424242"; // Gradient - Hintergrund der Tabelle - Verlauffarbe
const htmlFarbTableColorGradient2="#424242"; // Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
const htmlFarbTableBorderColor="gray"; // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
let htmlRahmenLinien="cols"; // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
const htmlSpalte1Weite="auto"; // Weite der ersten beiden Spalten oder z.b. 115px
// HIER NICHTS ÄNDERN
let borderHelpBottum;
let borderHelpRight;
let htmlcenterHelp;
let htmlcenterHelp2;
if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
if(htmlRahmenLinien=="all") {borderHelpBottum=1;borderHelpRight=1;}
zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
const htmlZentriert='
'
const htmlStart= "Vorlage"+
" ";
//const htmlUeber= "
"+htmlFeldUeber+"
";
const htmlTabStyle= "
";
const htmlTabUeber1="";
const htmlTabUeber3="
";
//NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 5
var htmlTabUeber2=" "+htmlFeld1+" | "+htmlFeld2+" | "+htmlFeld3+" | "+htmlFeld4+" | "+htmlFeld5+" | "+htmlFeld6+" | ";
var htmlTabUeber2_1=" "+htmlFeld1+" | "+htmlFeld3+
" | "+htmlFeld3+" | "+htmlFeld4+
" | "+htmlFeld5+" | "+htmlFeld6+" | ";
//------------------------------------------------------
let triggerBySonoffSwitch=false;
var anzahl;
var AkkuAlarm=[];
var htmlOut="";
var mix;
var counter;
var arrTrigger=[];
var val1; var val2; var val0; var val3; var val4; var val5; var val6; var val7;
var htmlTabUeber="";
function writeHTML(){
anzahl=0;
htmlOut="";
counter=-1;
htmlTabUeber="";
switch (mehrfachTabelle) {
case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3; break;
case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2+htmlTabUeber2+htmlTabUeber3; break;
case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
};
if (!UeberschriftSpalten) {htmlTabUeber=""}
//--------------------------------------------------------------------------------------------------------------------------------------------------
//---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
//---------alle valx werte müssen von euch bestimmt werden - val0,val1,val2,val3,val4!!!------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------
var myColl=[];
var val1help;
if (triggerBySonoffPower) {
$('sonoff.*.*.POWER*').each(function(id, i) { // trigger für power datenpunkte !!!
//log(id)
arrTrigger.push(id) });}
if (triggerBySonoffSwitch) {
$('sonoff.*.*.Switch*').each(function(id, i) { // trigger für power datenpunkte !!!
//log(id)
arrTrigger.push(id) });}
var tempArr=[];var humArr=[];var illArr=[];var sw1Arr=[];var sw2Arr=[];var irArr=[];;var powArr=[];
$('sonoff.*.*.*').each(function(id, i) { var ida = id.split('.'); if(ida[3].indexOf("_Temperature")>-1) tempArr.push(id);
if(ida[3].indexOf("_Humidity")>-1) humArr.push(id);
if(ida[3].indexOf("_Illuminance")>-1) illArr.push(id);
if(ida[3].indexOf("POWER1")>-1) sw1Arr.push(id);
if(ida[3].indexOf("POWER2")>-1) sw2Arr.push(id);
if(ida[3].indexOf("IrReceived_Data")>-1) irArr.push(id);
if(ida[3].match(/POWER$/)!=null) powArr.push(id);
});
//log(arrTrigger.toString())
var myColl=[];
var val1help;
var tempArr=[];var humArr=[];
$('sonoff.*.*.*_Temperature').each(function(id, i) { var ida = id.split('.'); tempArr.push(id); });
$('sonoff.*.*.*_Humidity').each(function(id, i) { var ida = id.split('.'); humArr.push(id); });
log(tempArr.toString())
if (pow){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Pow (R2)"; val1=""; val2="";val3="";val4="";val5="kWh Gesamt";val6="kWh Heute";val7="Power"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff Pow" || getState(id).val=="Sonoff Pow R2") {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=getState(id.replace("INFO.Module","ENERGY_Today")).val.toString();
val5=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
} }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende fritzdect
if (gosundSP1x){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Gosund"; val1=""; val2="";val3="";val4="";val5="kWh Gesamt";val6="kWh Heute";val7="Power"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val.includes("Gosund SP1")) {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=getState(id.replace("INFO.Module","ENERGY_Today")).val.toString();
val5=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
} }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende fritzdect
if (teckin){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Teckin"; val1=""; val2="";val3="";val4="";val5="kWh Gesamt";val6="kWh Heute";val7="Power"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Teckin") {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=getState(id.replace("INFO.Module","ENERGY_Today")).val.toString();
val5=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
} }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende fritzdect
if (blitzwolf_shp){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="BlitzWolf SHP"; val1=""; val2="";val3="";val4="";val5="kWh Gesamt";val6="kWh Heute";val7="kWh Gestern"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="BlitzWolf SHP") {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","ENERGY_Yesterday")).val.toString();
// val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=getState(id.replace("INFO.Module","ENERGY_Today")).val.toString();
val5=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
} }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende fritzdect
if (generic){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Generic"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="";val7=""
if (genericMitDiv) {val0="Generic"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Div";val7="Power"}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Generic") {
//log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
val7=" - "; var val7_1="finde"
for (var i=0;i-1) {val7_1=getState(id.replace("INFO.Module","POWER")).val.toString();} }
// let val7_1=getState(id.replace("INFO.Module","POWER")).val;
if (val7_1!="finde") getState(id.replace("INFO.Module","POWER")).val ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=" ";
if (genericMitDiv) { var val6_1="";var val6_2="";
//-----------------------------TEMP
var val6help="xxx";
for (var i=0;i-1) val6help=tempArr[i]}
// log(val6help)
if (val6help != "xxx") {val6_1=getState(val6help).val+" °C"} else {val6_1=""}
//-----------------------------HUM
var val6help1="xxx";
for (var i=0;i-1) val6help1=humArr[i]}
//log(val6help1)
if (val6help1 != "xxx") {val6_2=(getState(val6help1).val)+" %"} else {val6_2=""}
val6=val6_1+" / "+val6_2; if (val6 == " / ") val6=" - ";
// log (val6 +" id: "+ id)
//-----------------------------ILLuminance
var val6help="xxx";
for (var i=0;i-1) val6help=illArr[i]}
if (val6help != "xxx") {val6=getState(val6help).val+" lux"}
//-----------------------------ILLuminance
var val6_1="";var val6_2="";
//-----------------------------POWER1
var val6help="xxx";
for (var i=0;i-1) val6help=sw1Arr[i]}
if (val6help != "xxx") {if (getState(val6help).val){val6_1="ON"} else {val6_1="OFF"}}
//-----------------------------POWER2
var val6help1="xxx";
for (var i=0;i-1) val6help1=sw2Arr[i]}
//log(val6help1)
if (val6help1 != "xxx") {if (getState(val6help1).val) {val6_2="ON"} else {val6_2="OFF"}
val6=val6_1+" / "+val6_2; if (val6 == " / ") val6=" - ";}
// log("2er: "+val6)
//-----------------------------IR EMPFANG
var val6help="xxx";
for (var i=0;i-1) val6help=irArr[i]}
if (val6help != "xxx") {val6=getState(val6help).val}
}
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (basic){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Basic"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="";val7="Power"
if (basicMitTemp) {val0="Basic"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Div";val7="Power"}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff Basic") {
// log (id)
var ida = id.split('.');
anzahl++;
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6=" ";
if (basicMitTemp) {var val6_1="";var val6_2="";
//-----------------------------TEMP
var val6help="xxx";
for (var i=0;i-1) val6help=tempArr[i]}
// log(val6help)
if (val6help != "xxx") {val6_1=getState(val6help).val+" °C"} else {val6_1=""}
//-----------------------------HUM
var val6help1="xxx";
for (var i=0;i-1) val6help1=humArr[i]}
// log(val6help1)
if (val6help1 != "xxx") {val6_2=(getState(val6help1).val)+" %"} else {val6_2=""}
val6=val6_1+" / "+val6_2; if (val6 == " / ") val6=" - ";
// log (val6 +" id: "+ id)
//-----------------------------ILLuminance
var val6help="xxx";
for (var i=0;i-1) val6help=illArr[i]}
if (val6help != "xxx") {val6=getState(val6help).val+" lux"}
//-----------------------------ILLuminance
var val6_1="";var val6_2="";
//-----------------------------POWER1
var val6help="xxx";
for (var i=0;i-1) val6help=sw1Arr[i]}
if (val6help != "xxx") {if (getState(val6help).val){val6_1="ON"} else {val6_1="OFF"}}
//-----------------------------POWER2
var val6help1="xxx";
for (var i=0;i-1) val6help1=sw2Arr[i]}
//log(val6help1)
if (val6help1 != "xxx") {if (getState(val6help1).val) {val6_2="ON"} else {val6_2="OFF"}
val6=val6_1+" / "+val6_2; if (val6 == " / ") val6=" - ";}
// log("2er: "+val6)
//-----------------------------IR EMPFANG
var val6help="xxx";
for (var i=0;i-1) val6help=irArr[i]}
if (val6help != "xxx") {val6=getState(val6help).val}
}
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (th10){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="TH10/16"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Temp/Hum";val7="Power"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff TH") {
// log (id)
var ida = id.split('.');
anzahl++;
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
var val6_1="";var val6_2="";
var val6help="xxx";
for (var i=0;i-1) val6help=tempArr[i]}
if (val6help != "xxx") {val6_1=getState(val6help).val+" °C"} else {val6_1=""}
//log (val6)
var val6help1="xxx";
for (var i=0;i-1) val6help1=humArr[i]}
if (val6help1 != "xxx") {val6_2=(getState(val6help1).val)+" %"} else {val6_2=""}
val6=val6_1+" / "+val6_2; if (val6 == "") val6=" - ";
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (shelly){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Shelly"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="";val7="Power"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Shelly 1" || getState(id).val=="Shelly 1PM" || getState(id).val=="Shelly 2.5" || getState(id).val=="Shelly 2") {
// log (id)
var ida = id.split('.');
anzahl++;
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
let val7_1=getState(id.replace("INFO.Module","POWER")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
// let val6_1=getState(id.replace("INFO.Module","Switch1")).val;
// val6_1 ? val6=(" ")+"ON" : val6=(" ")+"OFF";
// let val7_1=getState(id.replace("INFO.Module","Switch1")).val;
// val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
// val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
//val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
val6=""
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (schalter1ch){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Schalter T1 1CH"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Power";val7=""
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff T1 1CH" || getState(id).val=="1 Channel" ) {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
let val6_1=getState(id.replace("INFO.Module","POWER")).val;
val6_1 ? val6=(" ")+"ON" : val6=(" ")+"OFF";
// let val7_1=getState(id.replace("INFO.Module","POWER2")).val;
// val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val7="";
// let val7_1=getState(id.replace("INFO.Module","Switch1")).val;
// val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
// val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
//val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
// val6=""
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (schalter2ch){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
val0="Schalter T1 2CH"; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Power 1";val7="Power 2"
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff T1 2CH") {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
let val6_1=getState(id.replace("INFO.Module","POWER1")).val;
val6_1 ? val6=(" ")+"ON" : val6=(" ")+"OFF";
let val7_1=getState(id.replace("INFO.Module","POWER2")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
// let val7_1=getState(id.replace("INFO.Module","Switch1")).val;
// val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
// val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
//val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
// val6=""
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} //ende xiaomi
if (schalter3ch){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
// val0="Schalter CH4 "; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Switch 1";val7="Switch 2"
val0="Schalter T1 3CH "; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Power 1/2";val7="Power 3";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val=="Sonoff 3CH" ) {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
let val50;
let val50_1=getState(id.replace("INFO.Module","POWER3")).val;
val50_1 ? val50=(" ")+"ON" : val50=(" ")+"OFF";
let val6_1=getState(id.replace("INFO.Module","POWER2")).val;
val6_1 ? val6=(" ")+"ON" : val6=(" ")+"OFF";
let val7_1=getState(id.replace("INFO.Module","POWER4")).val;
val7_1 ? val7=(" ")+"ON" : val7=(" ")+"OFF";
val6= val50+" "+val6;
if (!getState(id.replace("INFO.Module","alive")).val) {
val1=symbolKO;
val4=(" ")+" "+val4;
val2=(" ")+val2;
val3=(" ")+" 0 %";
val5=(" ")+" --- ";
val6=(" ")+" --- ";
val7=(" ")+" --- ";
val0=(" ")+val0}
else{
val1=symbolOK;
// val1=(" ")+val1
// val2=(" ")+val2
// val3=(" ")+val3
// val0=(" ")+val0
}
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
}
}); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
} // ende ch4
if (channel4){
// UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
tabelleAusbessern();
counter=0;
val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=0;
// val0="Schalter CH4 "; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Switch 1";val7="Switch 2"
val0="Schalter 4CH "; val1=""; val2="";val3="";val4="";val5="Uptime";val6="Power 1/2";val7="Power 3/4";
tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - diese function muss als letztes in der eigenen schleife aufgerufen werden
tabelleAusbessern();
counter=-1
//sonoff.0.SonoffPow1.INFO.Module
$('sonoff.*.*.INFO.Module').each(function(id, i) { // hier eigene schleife definieren und den wert counter++ nicht vergessen !!!
if (getState(id).val.includes("Sonoff 4CH") ) {
// log (id)
anzahl++;
var ida = id.split('.');
counter++;
//log("dad "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
val1=getState(id.replace("INFO.Module","alive")).val; //sonoff.0.SonoffPow1.alive sonoff.0.SonoffPow1.INFO.Module
val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
val4=getState(id.replace("Module","IPAddress")).val
val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %";
val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
let val40;let val50;
let val40_1=getState(id.replace("INFO.Module","POWER1")).val;
val40_1 ? val40=(" ")+"ON" : val40=("