Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Sonoff Geräte als HTML Tabelle - Vis

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Sonoff Geräte als HTML Tabelle - Vis

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoringtemplate
632 Beiträge 34 Kommentatoren 134.2k Aufrufe 39 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL liv-in-sky

    @klaus88

    freut mich, dass du den fehler gefunden hast.

    diese tabelle ist eine der meist-genutzen tabelle bei mir im system - leider habe ich damals keinen großen wert auf die abfrage der existenz der datenpunkte gemacht - man lernt nie aus bei iobroker :-)

    K Offline
    K Offline
    klaus88
    schrieb am zuletzt editiert von klaus88
    #371

    @liv-in-sky :
    "...diese tabelle ist eine der meist-genutzen tabelle bei mir im system.." - Definitiv nicht nur bei dir! Auch bei mir - DANKE VIELMALS DAFÜR - und vor allem für deine Arbeit ! Nachdem ich auch sehr viele HomematicIP Geräte besitze, baue ich grad die Tabelle auch auf HMIP um - bin aber noch mitten drinnen!
    lg
    Klaus

    liv-in-skyL 2 Antworten Letzte Antwort
    0
    • K klaus88

      @liv-in-sky :
      "...diese tabelle ist eine der meist-genutzen tabelle bei mir im system.." - Definitiv nicht nur bei dir! Auch bei mir - DANKE VIELMALS DAFÜR - und vor allem für deine Arbeit ! Nachdem ich auch sehr viele HomematicIP Geräte besitze, baue ich grad die Tabelle auch auf HMIP um - bin aber noch mitten drinnen!
      lg
      Klaus

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #372

      @klaus88

      auch eine gute idee - wenn du fragen zum tabellenscript hast, einfach her damit - vielleicht interessiert auch andere eine tabelle für die HomematicIP - dann könntest du dies auch posten

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • K klaus88

        @liv-in-sky :
        "...diese tabelle ist eine der meist-genutzen tabelle bei mir im system.." - Definitiv nicht nur bei dir! Auch bei mir - DANKE VIELMALS DAFÜR - und vor allem für deine Arbeit ! Nachdem ich auch sehr viele HomematicIP Geräte besitze, baue ich grad die Tabelle auch auf HMIP um - bin aber noch mitten drinnen!
        lg
        Klaus

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #373

        @klaus88

        was mir noch eingefallen ist - im batterie script ist auch ein part, der die batterie von homematicip geräten anzeigt - evtl könntest du den teil gebrauchen und in deinem script integrieren.

        https://forum.iobroker.net/topic/28789/script-fürtabelle-der-batterie-zustände

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          klaus88
          schrieb am zuletzt editiert von
          #374

          @liv-in-sky Passt mache ich - brauch aber noch ein bisschen - bin nicht grad der Profi in Sachen Javascript :-) Danke für den Tipp mit dem Batteriescript!

          1 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            klaus88
            schrieb am zuletzt editiert von
            #375

            @liv-in-sky : Ist doch schneller gegangen als geglaubt ! Anbei mein Versuch einer HMIP Tabelle - wobei 90% davon von dir stammt und ich nur kleine Änderungen gemacht habe. Aber Achtung ich habe keine CCU3 nur den HMIP AccessPoint!

            /* -----------------------------------
            homematicip_uebersicht.js
            Veröffentlichungsdatum: 29.11.2020
            Quelle: sonoff-geräte-als-html-tabelle von liv-in-sky
            https://forum.iobroker.net/topic/28953/sonoff-ger%C3%A4te-als-html-tabelle-vis-iqontrol/374
            
            Danksagung: An liv-in-sky für die Programmierung der Tabelle!
            
            Config:
            Die Datenpunkte werden automatisch erzeugt - man kann sie nach eigenen Wünschen 
            benennen bzw. zuordnen unter Name[x] bzw. alle folgenden Arrays.
            
            WICHTIG!:
            HMIP reagiert nicht so schnell wie z.B. SonOff.
            Hier dauert eine Änderung sehr lange bis sie sich im iobroker niederschlägt 
            z.B. der Wechsel der Anzeige einer schaltbare Steckdose auf ON bzw. Wechsel auf OFF.
            Auch die Anzeige ob ein Device noch online ist, funktioniert fast nicht, aber dies 
            ist ähnlich wie am App.
            
            Änderungen:
            
            ------------------------------------*/
            
            // States anlegen, falls sie nicht vorhanden sind
            // HMIPTabelle
            var Beschreibung = new Array();
            var Name = new Array();
            var Art = new Array();
            var Def = new Array();
            Beschreibung[0]="0_userdata.0.HMIP.HMIP_HTML_Tabelle";
            Name[0]="HMIP HTML Tabelle"
            Art[0]="string";
            Def[0]="";
            Beschreibung[1]="0_userdata.0.HMIP.AnzahlHMIP";
            Name[1]="Anzahl HMIP"
            Art[1]="number";
            Def[1]=0;
            for (var x=0; x < Beschreibung.length; x++) { 
            	if (!existsState(Beschreibung[x])) {
            		createState(Beschreibung[x], {type: Art[x], name: Name[x], read: true, write: true, def: Def[x]});
            	}
            }
            
            //@liv-in-sky Januar 2020 Ver 12.2.02-19:22
             
            //HIER WIRD PFAD UND FILENAME DEFINIERT
            const path = "/htmlsonoff.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="0_userdata.0.HMIP.HMIP_HTML_Tabelle"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
            let dpAnzahl="0_userdata.0.HMIP.AnzahlHMIP";  //WICHTIG datenpunkt erstellen vom typ "number" - bei 0 kein alarm und größer 0 die anzahl der schlechten batterien
            let htmlColorDeviceUeberschrift="#e5e944"            //  Farbe der Geräte Marken 
            let HTMLbrandSetting="b"                              // style der geräte marken:  möglich b fett; i kursiv; span normal
            let triggerBySonoffPower=false;
             
             
            // ------------------------    hier einstellen, was man für ein device  hat - die nicht gebraucht werden auf false setzen !!!
            
            var tuerkontakt=true;
            var wandthermostat=true;
            var heizkoerperthermostat=true;
            var steckdose=true;
            var wassermelder=true;
            var rauchmelder=true;
            var rolladen=true;
            var taster=true;
            
            
            const mitSchalter=true;           // für freigabe von schaltern für POWER
            const mitYesterday=true;          // Für anzeige der yestersay werte bei energie-aufzeichnenden geräten (poe, blitzwolf, teckin, ..)
            const mitLink=true;               // link zum sonoff-web-interface
            const farbeNichtConnected="lightblue";
            const styleNichtErreichbar="i";             // möglich i=schräg, b ist fett und span ist normal - nur eines  davon !!!
            const farbeSchalterON="#e5e944"               // farbe des schalters für ON #e5e944, lightblue
            const farbeSchalterOFF="grey"               // farbe des schalters für OFF
             
             
            var symbolOK="⚪";  // auch möglich: ="✅ ⚪ "}      
            var symbolKO="⭕";     //z.b. auch "<font color=\"red\"><b>X</b>" für ein rotes kreuz ❌"  ⚪  ⚫ ⭕  🔴 🔵 ⏱ 💀 👍 👎 📑 💲 👀
            var symbolWARN="⚠️";    // ="⚠️"
            var symbolSwitch="🔄"
            var symbolLink="🌎";
            var battok="✅";
            var battnok="<font color=\"red\"><b>X</b>";
             
             
             
            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='Firmware';         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='Model';        var Feld5lAlign="left";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
            var htmlFeld6='Batterie';        var Feld6lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
            var htmlFeld7='';        var Feld7lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
            var htmlFeld8='';        var Feld8lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
            var htmlFeld9='Firmware';        	var Feld9lAlign="center";  
            //-----------------------------------
             
             
             
            //hier werden die styles für die tabelle definiert
            //ÜBERSCHRIFT ÜBER TABELLE
            let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
            let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
            const htmlFeldUeber='HMIP Geräte Übersicht';              // Überschrift und Signature
            const htmlFarbUber="white";                         // Farbe der Überschrift
            const htmlSchriftWeite="bold";                       // bold, normal - Fettschrift für Überschrift
            const htmlÜberFontGroesse="14px";                       // 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 trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
            const farbetrennungsLinie="white";
            const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
            const htmlFarbTableColorUber="white";               // Überschrift in der tabelle - der einzelnen Spalten lightblue
            
            //Ü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";          //lightblue
            const groesseUeberschrift=16;
            const UeberschriftStyle="bold"                     // möglich "bold", normal
            
            //GANZE TABELLE
            let abstandZelle="1";
            //let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
            //let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
            let farbeUngeradeZeilen="#424242";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
            let farbeGeradeZeilen="#383838";  
            let weite="95%";                                     //Weite der Tabelle auto
            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="Trebuchet MS";
            const htmlSchriftgroesse="16px";
            
            //FELDER UND RAHMEN
            let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
            const htmlFarbFelderschrift="#ffffff";                  // SchriftFarbe der Felder
            const htmlFarbFelderschrift2="#BDBDBD";                 // 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="grey";             // 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='<center>'
            const htmlStart=    "<!DOCTYPE html><html lang=\"de\"><head><title>Vorlage</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"+
                             "<style> * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                             " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                            // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                             " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                             " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:1px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                             "td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                             " </style></head><body> <div>";
                              
            const htmlTabStyle= "<table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+");\">";
            const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
            const htmlTabUeber3="</tr>";
             
             
            const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
             
             
            var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td><td  align="+Feld3lAlign+">&ensp;"+htmlFeld3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+htmlFeld4+"&ensp;</td><td  align="+Feld5lAlign+">&ensp;"+htmlFeld5+"&ensp;</td><td  align="+Feld6lAlign+">&ensp;"+htmlFeld6+"&ensp;</td><td  align="+Feld7lAlign+">&ensp;"+htmlFeld7+"&ensp;</td><td  align="+Feld8lAlign+">&ensp;"+htmlFeld8+"&ensp;</td><td  align="+Feld9lAlign+">&ensp;"+htmlFeld9+"&ensp;</td>";
            var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+
                               "&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld4+
                               "&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld5+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld6+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld7+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld8+"&ensp;</td><td align="+Feld9lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld9+"&ensp;</td>";
                                   //------------------------------------------------------
            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 val8; var val9;
            var htmlTabUeber="";
            if (mitSchalter) triggerByHMIPPower=true;
            
            
            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=""}
            	if (triggerByHMIPPower) {
            		$('hmip.devices.*.channels.1.on').each(function(id, i) {           // trigger für power datenpunkte  !!!
            			arrTrigger.push(id) });}
            	if (triggerBySonoffSwitch) {      
            		$('sonoff.*.*.Switch*').each(function(id, i) {           // trigger für power datenpunkte  !!!
            			arrTrigger.push(id) });}
            	var myColl=[];
            	var val1help;
            	var tempArr=[];var humArr=[];var illArr=[];var sw1Arr=[];var sw2Arr=[];var irArr=[];;var powArr=[];var disArr=[];
            	$('hmip.*.*.*').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("_Distance")>-1) disArr.push(id);
                                                                                 if(ida[3].indexOf("IrReceived_Data")>-1) irArr.push(id);
                                                                                 if(ida[3].match(/POWER$/)!=null) powArr.push(id);
                                                                                
                 });
             
              
            	 if (tuerkontakt){
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7=""; val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Fenster/Türkontakt</b>";} else{val0=""; }
            				val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            				if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Sabotage";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            					val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Status";
            					 counter++;tabelleBind();
            				 } 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {           
            			if (getState(id).val=="SHUTTER_CONTACT_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++; 
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=getState(id.replace("functionalChannelType","windowState")).val; 
            				batterie(id);
            				val6=translateboolean(getState(id.replace("1.functionalChannelType","0.sabotage")).val);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind();  
            			} 
            		});    
            	} //ende tuerkontakt
            
            
            	if (steckdose){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7=""; val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Steckdose</b>";} else{val0=""; }
            				val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            				if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Verstärker";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            					val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power";
            					 counter++;tabelleBind();
            				 } 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {           
            			if (getState(id).val=="SWITCH_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				// val7 definition
            				ichWillSchalten(id);
            				val6=translateboolean(getState(id.replace("1.functionalChannelType","0.routerModuleEnabled")).val);
            				val5="";
            				firmware(id);
            				inaktiv(id);
            				tabelleBind();
            			}
            		});    
            	 } //end steckdose
            
            
            
            	if (wandthermostat){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Wandthermostat</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Humidity";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Temp";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if (getState(id).val =="WALL_MOUNTED_THERMOSTAT_PRO_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=getState(id.replace("functionalChannelType","actualTemperature")).val +" °C"; 
            				val6=getState(id.replace("functionalChannelType","humidity")).val +" %"; 
            				batterie(id);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende wandthermostat
            
            	if (heizkoerperthermostat){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Heizkörperthermostat</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Soll Temp";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Temp";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if (getState(id).val =="HEATING_THERMOSTAT_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=getState(id.replace("functionalChannelType","valveActualTemperature")).val +" °C"; 
            				val6=getState(id.replace("functionalChannelType","setPointTemperature")).val +" °C"; 
            				batterie(id);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende heizkörperthermostat
            
            
            	if (rolladen){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Rolläden</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">fährt";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">geschlossen";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if ((getState(id).val =="SHUTTER_CHANNEL") || (getState(id).val =="BLIND_CHANNEL")) {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=(getState(id.replace("functionalChannelType","shutterLevel")).val *100) +" %"; 
            				//ichWillSchalten(id);
            				val6=translateboolean(getState(id.replace("functionalChannelType","processing")).val); 
            				val5="";
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende rolladen
            
            
            	if (wassermelder){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Wassermelder</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Feucht. Alarm";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Wasser Alarm";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if (getState(id).val =="WATER_SENSOR_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=translateboolean(getState(id.replace("functionalChannelType","waterlevelDetected")).val); 
            				val6=translateboolean(getState(id.replace("functionalChannelType","moistureDetected")).val); 
            				batterie(id);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende wassermelder
            
            
            	if (rauchmelder){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Rauchmelder</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Rauch Alarm";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if (getState(id).val =="SMOKE_DETECTOR_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=getState(id.replace("functionalChannelType","smokeDetectorAlarmType")).val; 
            				val6=""; 
            				batterie(id);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende rauchmelder
            
            	if (taster){
            		tabelleAusbessern()
            		counter=-1;
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
            		}
            		for(var i=0;i<mehrfachTabelle;i++ ) {
            			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Taster</b>";} else{val0=""; }
            			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
            			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">";
            			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
            			counter++;tabelleBind();
            		} 
            		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
            			if (getState(id).val =="SINGLE_KEY_CHANNEL") {
            				anzahl++;
            				var ida = id.split('.');
            				counter++;
            				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
            				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
            				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
            				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
            				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
            				val7=""; 
            				val6=""; 
            				batterie(id);
            				firmware(id);
            				inaktiv(id);
            				tabelleBind(); 
            			} 
            		});    
            	} //ende taster
            	//-------------------------------------------------------------------------------------------------------------------------------------------------
            	//--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
            	//-------------------------------------------------------------------------------------------------------------------------------------------------
            	tabelleFinish(); 
            	setState(dpAnzahl,anzahl); 
            }
             
             
            //MAIN:
             
            schedule(mySchedule,  function () {
            	writeHTML();
            	if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
            }); 
             
            writeHTML();
             
            function tabelleBind(){
            	switch (mehrfachTabelle) {  
                     case 1:  if(counter%2==0){  htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td><td align="+Feld9lAlign+">&ensp;"+val8+"&ensp;</td></tr>"; break;} else 
                                              {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td><td align="+Feld9lAlign+">&ensp;"+val8+"&ensp;</td></tr>"; break;}
             
                    case 2:  if(counter%4==0) {
                              if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                          else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;
                                   }else{  
                              if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                          else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;}
             
                    case 3: if(counter%2==0 ) {
                               if(counter%3==0)           {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                          else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                           else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                                     } break; }else{
                               if(counter%3==0)                {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                          else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                           else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                                     } break;      }
                     case 4: if(counter%8==0)  {
                               if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                              else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                           else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\>&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                                     } break;  }else{
                               if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                              else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                           else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                                     } break;       }
             
                 } //switch ende
            };
             
            function tabelleAusbessern() { 
                  switch (mehrfachTabelle) {  
                   case 1:    break;
                   case 2:    
                             if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                             break;
                   case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                             if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                             if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                             break;
                   case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                             if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                             if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                             if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                             break; }
            };
             
            function tabelleFinish() {  
            	switch (mehrfachTabelle) {
            		case 1: break;
            		case 2: if(counter%2==0) { htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');   }
                            break;
                    case 3:	if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                            if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                            if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td  style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
            				break;
                   case 4:  if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                            if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                            if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                            if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                            break; 
            	}
            	var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"&ensp;&ensp;Anzahl: "+anzahl+"</p>"; 
            	var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"&ensp;&ensp;Anzahl: "+anzahl+"</div>"
                if (!htmlSignature) htmlUnter="";
                var htmlOutVIS="";
                if (htmlUberschrift){
            			zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" + "bla bla"+htmlUnter + buttonScript;
                    } else {
            			zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>" + "blabla"+htmlUnter+ buttonScript ;
            		}
            	if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
            	var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
            	if (!htmlSignature) htmlUnter="";
            	var htmlEnd="</table>"+htmlUnter+"</div></body>";
            	htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+buttonScript+htmlEnd+buttonScript : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+buttonScript+htmlEnd+buttonScript;
            };
             
            on({id: arrTrigger, ack: false, change: "any"}, function (obj) { 
            	writeHTML();
                if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
            });
             
            function ichWillSchalten(id) {
            	let val7_1; val7_1=getState(id.replace("functionalChannelType","on")).val;
            	val7_1 ? val7=(" <font color=\""+farbeSchalterON+"\"> ")+"ON" : val7=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF";
            	if (mitSchalter){
            		let valButton=id.replace("functionalChannelType","on")
            		val7_1 ? val7="<button style\=\"border:none\; background-color\:transparent\; color\:white\; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+symbolSwitch + "</button> <font color=\""+farbeSchalterON+"\"> "+"ON&ensp;" :
                       val7="<button style\=\"border:none\; background-color\:transparent\; color\:white\; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+symbolSwitch+"</button> <font color=\""+farbeSchalterOFF+"\"> "+"OFF";
                       } else {val7_1 ? val7=(" <font color=\""+farbeSchalterON+"\"> ")+"ON" : val7=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF";}
            }
            function inaktiv(id) {
            	if (getState(id.replace("1.functionalChannelType","0.unreach")).val) {   //farbeNichtConnected
            		val1=symbolKO;
                          val4=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">&ensp;&ensp; ")+val4;
                          val2=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+val2;
                          val3=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+" 0 %";
                          val5=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                          val6=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                          val7=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                          val0=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+val0} 
                      else{
                          val1=symbolOK;
                         }
            };
            function batterie(id){
            	val5_1=getState(id.replace("1.functionalChannelType","0.lowBat")).val;
            	if (val5_1 == false) {
            			val5=battok;
            	} else {
            			val5=battnok;
            	}
            	
            };
            
            function firmware(id) {
            	val8_1=getState(id.replace("channels.1.functionalChannelType","info.updateState")).val;
            	if (val8_1 == "UP_TO_DATE") {
            		val8=battok;
            	} else {
            	val8=battnok + " <font style\=\"font\-size\ : 8px\;\"><br>" + val8_1 + "</font>";
            	}
            };
            
            function translateboolean(strinput){
            	if (strinput) {
            		return "Ja";
            	} else {
            		return "Nein";
            	}
            };
             
            

            lg
            Klaus

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • K klaus88

              @liv-in-sky : Ist doch schneller gegangen als geglaubt ! Anbei mein Versuch einer HMIP Tabelle - wobei 90% davon von dir stammt und ich nur kleine Änderungen gemacht habe. Aber Achtung ich habe keine CCU3 nur den HMIP AccessPoint!

              /* -----------------------------------
              homematicip_uebersicht.js
              Veröffentlichungsdatum: 29.11.2020
              Quelle: sonoff-geräte-als-html-tabelle von liv-in-sky
              https://forum.iobroker.net/topic/28953/sonoff-ger%C3%A4te-als-html-tabelle-vis-iqontrol/374
              
              Danksagung: An liv-in-sky für die Programmierung der Tabelle!
              
              Config:
              Die Datenpunkte werden automatisch erzeugt - man kann sie nach eigenen Wünschen 
              benennen bzw. zuordnen unter Name[x] bzw. alle folgenden Arrays.
              
              WICHTIG!:
              HMIP reagiert nicht so schnell wie z.B. SonOff.
              Hier dauert eine Änderung sehr lange bis sie sich im iobroker niederschlägt 
              z.B. der Wechsel der Anzeige einer schaltbare Steckdose auf ON bzw. Wechsel auf OFF.
              Auch die Anzeige ob ein Device noch online ist, funktioniert fast nicht, aber dies 
              ist ähnlich wie am App.
              
              Änderungen:
              
              ------------------------------------*/
              
              // States anlegen, falls sie nicht vorhanden sind
              // HMIPTabelle
              var Beschreibung = new Array();
              var Name = new Array();
              var Art = new Array();
              var Def = new Array();
              Beschreibung[0]="0_userdata.0.HMIP.HMIP_HTML_Tabelle";
              Name[0]="HMIP HTML Tabelle"
              Art[0]="string";
              Def[0]="";
              Beschreibung[1]="0_userdata.0.HMIP.AnzahlHMIP";
              Name[1]="Anzahl HMIP"
              Art[1]="number";
              Def[1]=0;
              for (var x=0; x < Beschreibung.length; x++) { 
              	if (!existsState(Beschreibung[x])) {
              		createState(Beschreibung[x], {type: Art[x], name: Name[x], read: true, write: true, def: Def[x]});
              	}
              }
              
              //@liv-in-sky Januar 2020 Ver 12.2.02-19:22
               
              //HIER WIRD PFAD UND FILENAME DEFINIERT
              const path = "/htmlsonoff.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="0_userdata.0.HMIP.HMIP_HTML_Tabelle"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
              let dpAnzahl="0_userdata.0.HMIP.AnzahlHMIP";  //WICHTIG datenpunkt erstellen vom typ "number" - bei 0 kein alarm und größer 0 die anzahl der schlechten batterien
              let htmlColorDeviceUeberschrift="#e5e944"            //  Farbe der Geräte Marken 
              let HTMLbrandSetting="b"                              // style der geräte marken:  möglich b fett; i kursiv; span normal
              let triggerBySonoffPower=false;
               
               
              // ------------------------    hier einstellen, was man für ein device  hat - die nicht gebraucht werden auf false setzen !!!
              
              var tuerkontakt=true;
              var wandthermostat=true;
              var heizkoerperthermostat=true;
              var steckdose=true;
              var wassermelder=true;
              var rauchmelder=true;
              var rolladen=true;
              var taster=true;
              
              
              const mitSchalter=true;           // für freigabe von schaltern für POWER
              const mitYesterday=true;          // Für anzeige der yestersay werte bei energie-aufzeichnenden geräten (poe, blitzwolf, teckin, ..)
              const mitLink=true;               // link zum sonoff-web-interface
              const farbeNichtConnected="lightblue";
              const styleNichtErreichbar="i";             // möglich i=schräg, b ist fett und span ist normal - nur eines  davon !!!
              const farbeSchalterON="#e5e944"               // farbe des schalters für ON #e5e944, lightblue
              const farbeSchalterOFF="grey"               // farbe des schalters für OFF
               
               
              var symbolOK="⚪";  // auch möglich: ="✅ ⚪ "}      
              var symbolKO="⭕";     //z.b. auch "<font color=\"red\"><b>X</b>" für ein rotes kreuz ❌"  ⚪  ⚫ ⭕  🔴 🔵 ⏱ 💀 👍 👎 📑 💲 👀
              var symbolWARN="⚠️";    // ="⚠️"
              var symbolSwitch="🔄"
              var symbolLink="🌎";
              var battok="✅";
              var battnok="<font color=\"red\"><b>X</b>";
               
               
               
              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='Firmware';         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='Model';        var Feld5lAlign="left";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
              var htmlFeld6='Batterie';        var Feld6lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
              var htmlFeld7='';        var Feld7lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
              var htmlFeld8='';        var Feld8lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
              var htmlFeld9='Firmware';        	var Feld9lAlign="center";  
              //-----------------------------------
               
               
               
              //hier werden die styles für die tabelle definiert
              //ÜBERSCHRIFT ÜBER TABELLE
              let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
              let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
              const htmlFeldUeber='HMIP Geräte Übersicht';              // Überschrift und Signature
              const htmlFarbUber="white";                         // Farbe der Überschrift
              const htmlSchriftWeite="bold";                       // bold, normal - Fettschrift für Überschrift
              const htmlÜberFontGroesse="14px";                       // 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 trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
              const farbetrennungsLinie="white";
              const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
              const htmlFarbTableColorUber="white";               // Überschrift in der tabelle - der einzelnen Spalten lightblue
              
              //Ü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";          //lightblue
              const groesseUeberschrift=16;
              const UeberschriftStyle="bold"                     // möglich "bold", normal
              
              //GANZE TABELLE
              let abstandZelle="1";
              //let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
              //let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
              let farbeUngeradeZeilen="#424242";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
              let farbeGeradeZeilen="#383838";  
              let weite="95%";                                     //Weite der Tabelle auto
              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="Trebuchet MS";
              const htmlSchriftgroesse="16px";
              
              //FELDER UND RAHMEN
              let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
              const htmlFarbFelderschrift="#ffffff";                  // SchriftFarbe der Felder
              const htmlFarbFelderschrift2="#BDBDBD";                 // 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="grey";             // 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='<center>'
              const htmlStart=    "<!DOCTYPE html><html lang=\"de\"><head><title>Vorlage</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"+
                               "<style> * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                               " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                              // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                               " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                               " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:1px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                               "td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                               " </style></head><body> <div>";
                                
              const htmlTabStyle= "<table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                  "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+");\">";
              const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
              const htmlTabUeber3="</tr>";
               
               
              const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
               
               
              var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td><td  align="+Feld3lAlign+">&ensp;"+htmlFeld3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+htmlFeld4+"&ensp;</td><td  align="+Feld5lAlign+">&ensp;"+htmlFeld5+"&ensp;</td><td  align="+Feld6lAlign+">&ensp;"+htmlFeld6+"&ensp;</td><td  align="+Feld7lAlign+">&ensp;"+htmlFeld7+"&ensp;</td><td  align="+Feld8lAlign+">&ensp;"+htmlFeld8+"&ensp;</td><td  align="+Feld9lAlign+">&ensp;"+htmlFeld9+"&ensp;</td>";
              var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+
                                 "&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld4+
                                 "&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld5+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld6+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld7+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld8+"&ensp;</td><td align="+Feld9lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld9+"&ensp;</td>";
                                     //------------------------------------------------------
              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 val8; var val9;
              var htmlTabUeber="";
              if (mitSchalter) triggerByHMIPPower=true;
              
              
              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=""}
              	if (triggerByHMIPPower) {
              		$('hmip.devices.*.channels.1.on').each(function(id, i) {           // trigger für power datenpunkte  !!!
              			arrTrigger.push(id) });}
              	if (triggerBySonoffSwitch) {      
              		$('sonoff.*.*.Switch*').each(function(id, i) {           // trigger für power datenpunkte  !!!
              			arrTrigger.push(id) });}
              	var myColl=[];
              	var val1help;
              	var tempArr=[];var humArr=[];var illArr=[];var sw1Arr=[];var sw2Arr=[];var irArr=[];;var powArr=[];var disArr=[];
              	$('hmip.*.*.*').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("_Distance")>-1) disArr.push(id);
                                                                                   if(ida[3].indexOf("IrReceived_Data")>-1) irArr.push(id);
                                                                                   if(ida[3].match(/POWER$/)!=null) powArr.push(id);
                                                                                  
                   });
               
                
              	 if (tuerkontakt){
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7=""; val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Fenster/Türkontakt</b>";} else{val0=""; }
              				val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              				if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Sabotage";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              					val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Status";
              					 counter++;tabelleBind();
              				 } 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {           
              			if (getState(id).val=="SHUTTER_CONTACT_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++; 
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=getState(id.replace("functionalChannelType","windowState")).val; 
              				batterie(id);
              				val6=translateboolean(getState(id.replace("1.functionalChannelType","0.sabotage")).val);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind();  
              			} 
              		});    
              	} //ende tuerkontakt
              
              
              	if (steckdose){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7=""; val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Steckdose</b>";} else{val0=""; }
              				val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              				if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Verstärker";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              					val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power";
              					 counter++;tabelleBind();
              				 } 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {           
              			if (getState(id).val=="SWITCH_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				// val7 definition
              				ichWillSchalten(id);
              				val6=translateboolean(getState(id.replace("1.functionalChannelType","0.routerModuleEnabled")).val);
              				val5="";
              				firmware(id);
              				inaktiv(id);
              				tabelleBind();
              			}
              		});    
              	 } //end steckdose
              
              
              
              	if (wandthermostat){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Wandthermostat</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Humidity";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Temp";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if (getState(id).val =="WALL_MOUNTED_THERMOSTAT_PRO_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=getState(id.replace("functionalChannelType","actualTemperature")).val +" °C"; 
              				val6=getState(id.replace("functionalChannelType","humidity")).val +" %"; 
              				batterie(id);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende wandthermostat
              
              	if (heizkoerperthermostat){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Heizkörperthermostat</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Soll Temp";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Ist Temp";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if (getState(id).val =="HEATING_THERMOSTAT_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=getState(id.replace("functionalChannelType","valveActualTemperature")).val +" °C"; 
              				val6=getState(id.replace("functionalChannelType","setPointTemperature")).val +" °C"; 
              				batterie(id);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende heizkörperthermostat
              
              
              	if (rolladen){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Rolläden</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">fährt";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">geschlossen";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if ((getState(id).val =="SHUTTER_CHANNEL") || (getState(id).val =="BLIND_CHANNEL")) {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=(getState(id.replace("functionalChannelType","shutterLevel")).val *100) +" %"; 
              				//ichWillSchalten(id);
              				val6=translateboolean(getState(id.replace("functionalChannelType","processing")).val); 
              				val5="";
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende rolladen
              
              
              	if (wassermelder){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Wassermelder</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Feucht. Alarm";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Wasser Alarm";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if (getState(id).val =="WATER_SENSOR_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=translateboolean(getState(id.replace("functionalChannelType","waterlevelDetected")).val); 
              				val6=translateboolean(getState(id.replace("functionalChannelType","moistureDetected")).val); 
              				batterie(id);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende wassermelder
              
              
              	if (rauchmelder){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Rauchmelder</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Rauch Alarm";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if (getState(id).val =="SMOKE_DETECTOR_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=getState(id.replace("functionalChannelType","smokeDetectorAlarmType")).val; 
              				val6=""; 
              				batterie(id);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende rauchmelder
              
              	if (taster){
              		tabelleAusbessern()
              		counter=-1;
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";counter++;tabelleBind();
              		}
              		for(var i=0;i<mehrfachTabelle;i++ ) {
              			if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">HMIP Taster</b>";} else{val0=""; }
              			val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			if (mitYesterday) {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";} else {val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Heute";}
              			val7="<font color=\""+htmlColorDeviceUeberschrift+"\">";
              			//val8="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";
              			counter++;tabelleBind();
              		} 
              		$('hmip.0.devices.*.channels.1.functionalChannelType').each(function(id, i) {
              			if (getState(id).val =="SINGLE_KEY_CHANNEL") {
              				anzahl++;
              				var ida = id.split('.');
              				counter++;
              				val1=getState(id.replace("1.functionalChannelType","0.unreach")).val;                              
              				val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name;
              				val4=(getState(id.replace("channels.1.functionalChannelType","info.modelType")).val)
              				val2=getState(id.replace("channels.1.functionalChannelType","info.firmwareVersion")).val;      
              				val3=getState(id.replace("1.functionalChannelType","0.rssiDeviceValue")).val.toString()+""; 
              				val7=""; 
              				val6=""; 
              				batterie(id);
              				firmware(id);
              				inaktiv(id);
              				tabelleBind(); 
              			} 
              		});    
              	} //ende taster
              	//-------------------------------------------------------------------------------------------------------------------------------------------------
              	//--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
              	//-------------------------------------------------------------------------------------------------------------------------------------------------
              	tabelleFinish(); 
              	setState(dpAnzahl,anzahl); 
              }
               
               
              //MAIN:
               
              schedule(mySchedule,  function () {
              	writeHTML();
              	if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
              }); 
               
              writeHTML();
               
              function tabelleBind(){
              	switch (mehrfachTabelle) {  
                       case 1:  if(counter%2==0){  htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td><td align="+Feld9lAlign+">&ensp;"+val8+"&ensp;</td></tr>"; break;} else 
                                                {  htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td><td align="+Feld9lAlign+">&ensp;"+val8+"&ensp;</td></tr>"; break;}
               
                      case 2:  if(counter%4==0) {
                                if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                            else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;
                                     }else{  
                                if(counter%2==0)            {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                            else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} break;}
               
                      case 3: if(counter%2==0 ) {
                                 if(counter%3==0)           {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                            else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                                       } break; }else{
                                 if(counter%3==0)                {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                            else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                             else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                                       } break;      }
                       case 4: if(counter%8==0)  {
                                 if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                                else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                             else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\>&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                                       } break;  }else{
                                 if(counter%4==0)               {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                                else {if(counter%4==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td>";} 
                                                             else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                               else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                                       } break;       }
               
                   } //switch ende
              };
               
              function tabelleAusbessern() { 
                    switch (mehrfachTabelle) {  
                     case 1:    break;
                     case 2:    
                               if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                               break;
                     case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                               if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                               if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                               break;
                     case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                               if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                               if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                               if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                               break; }
              };
               
              function tabelleFinish() {  
              	switch (mehrfachTabelle) {
              		case 1: break;
              		case 2: if(counter%2==0) { htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');   }
                              break;
                      case 3:	if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                              if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');         
                              if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td  style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
              				break;
                     case 4:  if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                              if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');  
                              if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                              if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>"); 
                              break; 
              	}
              	var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"&ensp;&ensp;Anzahl: "+anzahl+"</p>"; 
              	var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss")+"&ensp;&ensp;Anzahl: "+anzahl+"</div>"
                  if (!htmlSignature) htmlUnter="";
                  var htmlOutVIS="";
                  if (htmlUberschrift){
              			zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" + "bla bla"+htmlUnter + buttonScript;
                      } else {
              			zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>" + "blabla"+htmlUnter+ buttonScript ;
              		}
              	if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
              	var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
              	if (!htmlSignature) htmlUnter="";
              	var htmlEnd="</table>"+htmlUnter+"</div></body>";
              	htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+buttonScript+htmlEnd+buttonScript : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+buttonScript+htmlEnd+buttonScript;
              };
               
              on({id: arrTrigger, ack: false, change: "any"}, function (obj) { 
              	writeHTML();
                  if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
              });
               
              function ichWillSchalten(id) {
              	let val7_1; val7_1=getState(id.replace("functionalChannelType","on")).val;
              	val7_1 ? val7=(" <font color=\""+farbeSchalterON+"\"> ")+"ON" : val7=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF";
              	if (mitSchalter){
              		let valButton=id.replace("functionalChannelType","on")
              		val7_1 ? val7="<button style\=\"border:none\; background-color\:transparent\; color\:white\; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+symbolSwitch + "</button> <font color=\""+farbeSchalterON+"\"> "+"ON&ensp;" :
                         val7="<button style\=\"border:none\; background-color\:transparent\; color\:white\; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+symbolSwitch+"</button> <font color=\""+farbeSchalterOFF+"\"> "+"OFF";
                         } else {val7_1 ? val7=(" <font color=\""+farbeSchalterON+"\"> ")+"ON" : val7=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF";}
              }
              function inaktiv(id) {
              	if (getState(id.replace("1.functionalChannelType","0.unreach")).val) {   //farbeNichtConnected
              		val1=symbolKO;
                            val4=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">&ensp;&ensp; ")+val4;
                            val2=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+val2;
                            val3=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+" 0 %";
                            val5=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                            val6=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                            val7=("<font color=\""+farbeNichtConnected+"\">")+" --- ";
                            val0=("<font color=\""+farbeNichtConnected+"\"><"+styleNichtErreichbar+">")+val0} 
                        else{
                            val1=symbolOK;
                           }
              };
              function batterie(id){
              	val5_1=getState(id.replace("1.functionalChannelType","0.lowBat")).val;
              	if (val5_1 == false) {
              			val5=battok;
              	} else {
              			val5=battnok;
              	}
              	
              };
              
              function firmware(id) {
              	val8_1=getState(id.replace("channels.1.functionalChannelType","info.updateState")).val;
              	if (val8_1 == "UP_TO_DATE") {
              		val8=battok;
              	} else {
              	val8=battnok + " <font style\=\"font\-size\ : 8px\;\"><br>" + val8_1 + "</font>";
              	}
              };
              
              function translateboolean(strinput){
              	if (strinput) {
              		return "Ja";
              	} else {
              		return "Nein";
              	}
              };
               
              

              lg
              Klaus

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #376

              @klaus88 das war flott - da ich keine homematic habe , wäre ein bild der tabelle nett!

              wenn du das anderen zur verfügung stellen möchtest, würde ich dir empfehlen, einen eigenen thread zu öffnen - damit können homematic user das script besser finden und du könntest immer im ersten post neue updates fürs script posten

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              K 1 Antwort Letzte Antwort
              1
              • liv-in-skyL liv-in-sky

                @klaus88 das war flott - da ich keine homematic habe , wäre ein bild der tabelle nett!

                wenn du das anderen zur verfügung stellen möchtest, würde ich dir empfehlen, einen eigenen thread zu öffnen - damit können homematic user das script besser finden und du könntest immer im ersten post neue updates fürs script posten

                K Offline
                K Offline
                klaus88
                schrieb am zuletzt editiert von
                #377

                @liv-in-sky Passt mach ich!

                1 Antwort Letzte Antwort
                1
                • liv-in-skyL liv-in-sky

                  --------------------------------------------------------------------------------------------------------------------

                  NEUE VERSION DES SCRIPT's HIER: https://forum.iobroker.net/post/601855
                  --------------------------------------------------------------------------------------------------------------------


                  hier eine tabelle mit sonoff devices in html zur anzeige in iqontrol, vis oder als webseite - die tabelle kaann verschieden formatiert werden - farben, linien, abstande, schriftart, ...
                  grundlage für die einstellung der tabellenparameter ist hier : https://forum.iobroker.net/topic/28021/html-table-für-vis-oder-iqontrol-js-und-blockly/96

                  wichtig - ihr müßt euch einen eigenen datenpunkt als zeichenkette anlegen und diesen dann im script (ganz oben "dpVIS") eingeben
                  darunter werden dann die einzelnen devices freigeschalten - steht eine deviceart auf true und ist im system nicht enthalten, passiert nix außer das die überschrift in der tabelle erscheint und keine geräte da sind
                  zusätzlich wird ein datenpunkt für die anzahl benötigt - auch den selbst anlegen und im script (dpAnzahl) einfügen

                  wie legt man einen datenpunkt an: https://forum.iobroker.net/post/400338

                  das widget ist ein standard html widget und der von euch angelegte datenpunkt wird als binding angegeben -also einfach den datenpunkt unter HTML reinschreiben und in klammern setzen {}

                  ein erstes beispiel - es fehlen noch einige sonoffarten - da könnte ich hilfe brauchen, da ich nicht alle arten habe - also falls es da wünsche gibt - einfach melden

                  Image 3.png

                  wenn die geräte nicht erreichbar sind:

                  Image 2.png

                  aus platz-gründen in einer datei - beim kopieren einen editor verwenden (wegen emojis) - nicht direkt aus browser kopieren sondern datei downloaden und mit editor öffnen und dann in iobroker einfügen !!!
                  sonoff-8spalten-tabelle-15.1.21.txt

                  script mit 6 spalten - es fehlen die switch: dieses script mit 6 spalten wird nicht weitergepflegt - daher alte version

                  sonoff-6spalten-tabelle.txt

                  Image 7.png

                  bisher integriert

                  • pow
                  • generic
                  • basic
                  • th10
                  • schalter2ch
                  • schalter3ch
                  • dual
                  • schalter1ch
                  • channel4
                  • rfbridge
                  • ZbBridge
                  • stdoseS2X
                  • teckin
                  • sv
                  • blitzwolf_shp
                  • sonoffDev
                  • gosundSP1x
                  • shelly
                  • mini
                  • delock
                  K Offline
                  K Offline
                  Kuddel
                  schrieb am zuletzt editiert von
                  #378

                  @liv-in-sky welchen Sonoff-Wert verwendest du, um die Singalstärke (WLAN in %) anzuzueigen?

                  GaspodeG 1 Antwort Letzte Antwort
                  0
                  • K Kuddel

                    @liv-in-sky welchen Sonoff-Wert verwendest du, um die Singalstärke (WLAN in %) anzuzueigen?

                    GaspodeG Offline
                    GaspodeG Offline
                    Gaspode
                    schrieb am zuletzt editiert von
                    #379

                    @Kuddel
                    Ich bin zwar nicht liv-in-sky, kann dir aber sagen, dass dafür "Wifi_RSSI" verwendet wird.

                    K 1 Antwort Letzte Antwort
                    0
                    • GaspodeG Gaspode

                      @Kuddel
                      Ich bin zwar nicht liv-in-sky, kann dir aber sagen, dass dafür "Wifi_RSSI" verwendet wird.

                      K Offline
                      K Offline
                      Kuddel
                      schrieb am zuletzt editiert von
                      #380

                      @Alexi alles klar, danke

                      1 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        luft-post
                        schrieb am zuletzt editiert von
                        #381

                        Hallo,
                        wäre es möglich auch den delock 11827 mit in die Auflistung zu nehmen?

                        Unbenannt.JPG

                        gruß
                        Matthias

                        liv-in-skyL 1 Antwort Letzte Antwort
                        0
                        • L luft-post

                          Hallo,
                          wäre es möglich auch den delock 11827 mit in die Auflistung zu nehmen?

                          Unbenannt.JPG

                          gruß
                          Matthias

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #382

                          @luft-post ist eignetlich wie ein sonoff pow

                          mach ich dir morgen - sollte kein thema sein

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • liv-in-skyL liv-in-sky

                            @luft-post ist eignetlich wie ein sonoff pow

                            mach ich dir morgen - sollte kein thema sein

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #383

                            @liv-in-sky

                            teste doch mal das script im ersten post (mit 8 spalten) - im script mußt du auch delock auf true setzen.

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            L 1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @liv-in-sky

                              teste doch mal das script im ersten post (mit 8 spalten) - im script mußt du auch delock auf true setzen.

                              L Offline
                              L Offline
                              luft-post
                              schrieb am zuletzt editiert von
                              #384

                              @liv-in-sky Vielen Dank, werde ich testen und berichten :-)

                              L 1 Antwort Letzte Antwort
                              0
                              • L luft-post

                                @liv-in-sky Vielen Dank, werde ich testen und berichten :-)

                                L Offline
                                L Offline
                                luft-post
                                schrieb am zuletzt editiert von
                                #385

                                @luft-post Funktioniert, vielen Dank :-)

                                1 Antwort Letzte Antwort
                                0
                                • liv-in-skyL liv-in-sky

                                  @Meister-Mopper kannst du mal bitte auf "Dunstabzug" klicken und einen JSON Export machen und hier einstellen

                                  bei mir (mit testumgebung) übernimmt er SP111 v1.1

                                  D Online
                                  D Online
                                  Dischro
                                  schrieb am zuletzt editiert von
                                  #386

                                  @liv-in-sky Hallo, bräuchte mal deine Hilfe bei Gosund SP111 v1.1.
                                  Bekomme sie einfach nicht angezeigt. Script aus dem ersten Post. Sonoff und Script angehalten, Sonoff.0 Ordner gelöscht, neu eingelesen, Script neu gestartet, ohne Erfolg. Danke
                                  sonoff.0.Gosund1.json

                                  liv-in-skyL 2 Antworten Letzte Antwort
                                  0
                                  • D Dischro

                                    @liv-in-sky Hallo, bräuchte mal deine Hilfe bei Gosund SP111 v1.1.
                                    Bekomme sie einfach nicht angezeigt. Script aus dem ersten Post. Sonoff und Script angehalten, Sonoff.0 Ordner gelöscht, neu eingelesen, Script neu gestartet, ohne Erfolg. Danke
                                    sonoff.0.Gosund1.json

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von
                                    #387

                                    @dischro

                                    was steht den in INFO.Module genau drin - bitte mit bild

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    D 1 Antwort Letzte Antwort
                                    0
                                    • D Dischro

                                      @liv-in-sky Hallo, bräuchte mal deine Hilfe bei Gosund SP111 v1.1.
                                      Bekomme sie einfach nicht angezeigt. Script aus dem ersten Post. Sonoff und Script angehalten, Sonoff.0 Ordner gelöscht, neu eingelesen, Script neu gestartet, ohne Erfolg. Danke
                                      sonoff.0.Gosund1.json

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      schrieb am zuletzt editiert von
                                      #388

                                      @dischro sind die mit energie anzeige ?

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      1 Antwort Letzte Antwort
                                      0
                                      • liv-in-skyL liv-in-sky

                                        @dischro

                                        was steht den in INFO.Module genau drin - bitte mit bild

                                        D Online
                                        D Online
                                        Dischro
                                        schrieb am zuletzt editiert von
                                        #389

                                        @liv-in-sky gosund.png

                                        D liv-in-skyL 2 Antworten Letzte Antwort
                                        0
                                        • D Dischro

                                          @liv-in-sky gosund.png

                                          D Online
                                          D Online
                                          Dischro
                                          schrieb am zuletzt editiert von
                                          #390

                                          @dischro ja sind mit Energieanzeige

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          704

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe