Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Energieanzeige (kWh) über HTML Tabelle - vis

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Energieanzeige (kWh) über HTML Tabelle - vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Nordischerjung last edited by

      @nordischerjung deshalb

      Image 2.png

      N 1 Reply Last reply Reply Quote 1
      • N
        Nordischerjung @liv-in-sky last edited by

        @liv-in-sky alles klar, danke schön

        N 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @Nordischerjung last edited by

          @nordischerjung

          wenn du im widget einstellst, dass du nur 4 nebeneiander haben willst, sollte es schöner aussehen - anzahl der maximalen listenelemente pro zeile

          Image 3.png

          1 Reply Last reply Reply Quote 0
          • N
            Nordischerjung @Nordischerjung last edited by Nordischerjung

            @liv-in-sky das sieht nur so blöd aus, da es auf meinem 32" Monitor ist, auf dem Tablet sieht es gut aus

            I 1 Reply Last reply Reply Quote 1
            • I
              Idefix01 @Nordischerjung last edited by

              Hallöchen,
              lassen sich die Werte auch begrenzen auf 2 Stellen nach dem Komma?

              Screenshot_20210304-082756_Fully Kiosk Browser.jpg

              Screenshot_20210304-082730_Fully Kiosk Browser.jpg

              liv-in-sky 3 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @Idefix01 last edited by

                @idefix01 muss ich kucken - das sind die material design widgets - die nutze ich selber bei diesem script nicht

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Idefix01 last edited by

                  @idefix01 teste mal mit der änderung: einfach austauschen - vorher jetztiges script sichern

                     myJsonWidget.push({
                         Device : vax1,
                         marke :vaxMarke,
                         status: vax2,
                         Strom : Number(vax3).toFixed(2),
                         Spannung : vax4,
                         Power : vax5,
                         Schalter : vax6,
                         kWhNow : Number(vax7).toFixed(2),
                         kWhMonat  : Number(vax8).toFixed(2),
                         MonatZuvor : vaxMBefore,
                         PreisNow : vax9,
                         PreisMonat : vax10,
                         KostenMonatZuvor: vaxKostenBefore,
                           }
                   
                     );}
                  

                  ist ganz weit unten im Keller vom script 🙂

                  Image 3.png

                  das andere widget ist etwas komplizierter

                  1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Idefix01 last edited by

                    @idefix01 wenn's beim ersten klappt, dann hier das andere widget - auch im script ersetzen

                    mysubText =     `<div>Strom: ${Number(vax3).toFixed(2)} A</div> 
                                      <div>Spannung: ${vax4} V</div> 
                                      <div>Leistung: ${vax5} W</div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${Number(vax7).toFixed(2)} kWh</div> 
                                      <div>Monat: ${Number(vax8).toFixed(2)} kWh</div>
                                      <div>Vormonat: ${vaxMBefore} kWh</div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${vax9} €</div> 
                                      <div>Monat: ${vax10} €</div>
                                      <div>Vormonat: ${vaxKostenBefore} €</div>
                                      <div style="display: flex; flex: 1; text-align: left; align-items: center; position: relative;">
                                      ${vax6}</font></div>`;
                    } else {
                    
                    mysubText =     `     <div style="color: ${farbeMDEinspeisung};  ">EINSPEISUNG Leistung: ${vax5} W</div>
                                        <div>&ensp; </div>  
                                        <div>Heute: ${Number(vax7).toFixed(2)} kWh</div> 
                                        <div>Monat: ${Number(vax8).toFixed(2)} kWh</div>
                                        <div>Vormonat: ${vaxMBefore} kWh</div>
                                        <div>&ensp; </div>
                                        <div>Heute: ${vax9} €</div> 
                                        <div>Monat: ${vax10} €</div>
                                        <div>Vormonat: ${vaxKostenBefore} €</div>
                                        <div>Schalter: ${vax6}</font></div>`;
                                        vaxBckGround="#8A4B08";
                    //  // <div>Strom:${vax3}A Spannung: ${vax4}V Leistung: ${vax5}W</div>    //font-size: 80% ;
                    }
                    
                    if (vax1.indexOf("GESAMT VirtualPower")>-1) {
                    mysubText =     ` <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${Number(vax7).toFixed(2)} kWh</div>
                                      <div>Monat: ${Number(vax8).toFixed(2)} kWh</div>
                                      <div>Vormonat: ${vaxMBefore} kWh</div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${vax9} € </div>
                                      <div>Monat: ${vax10} €</div>
                                      <div>Vormonat: ${vaxKostenBefore} €</div>
                                      <div>&ensp; </div>`;
                    
                    }
                    if (vax1.indexOf("GESAMT")>-1) {
                    mysubText =     ` <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${Number(vax7).toFixed(2)} kWh</div>
                                      <div>Monat: ${Number(vax8).toFixed(2)} kWh</div>
                                      <div>Vormonat: ${vaxMBefore} kWh</div>
                                      <div>&ensp; </div>
                                      <div>Heute: ${vax9} € </div>
                                      <div>Monat: ${vax10} €</div>
                                      <div>Vormonat: ${vaxKostenBefore} €</div>
                                      <div>&ensp; </div>`; 
                    }
                    

                    von hier:

                    Image 4.png
                    bis hier:

                    Image 6.png

                    1 Reply Last reply Reply Quote 0
                    • Holger Etzel
                      Holger Etzel last edited by

                      Hallo,
                      bekomme nach Start vom Script folgende Fehlermeldungen:

                      javascript.0	2021-03-14 14:06:00.021	error	(2844967) at processTimers (internal/timers.js:497:7)
                      javascript.0	2021-03-14 14:06:00.021	error	(2844967) at listOnTimeout (internal/timers.js:554:17)
                      javascript.0	2021-03-14 14:06:00.021	error	(2844967) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:510:7)
                      javascript.0	2021-03-14 14:06:00.021	error	(2844967) at /opt/iobroker/node_modules/node-schedule/lib/schedule.js:552:11
                      javascript.0	2021-03-14 14:06:00.021	error	(2844967) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:173:10)
                      javascript.0	2021-03-14 14:06:00.020	error	(2844967) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1296:34)
                      javascript.0	2021-03-14 14:06:00.020	error	(2844967) at Object.<anonymous> (script.js.System.Status_Geräte_Stromverbrauch:1272:2)
                      javascript.0	2021-03-14 14:06:00.014	error	(2844967) at writeHTML (script.js.System.Status_Geräte_Stromverbrauch:662:26)
                      javascript.0	2021-03-14 14:06:00.013	error	(2844967) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:800:29)
                      javascript.0	2021-03-14 14:06:00.013	error	(2844967) at script.js.System.Status_Geräte_Stromverbrauch:678:77
                      javascript.0	2021-03-14 14:06:00.012	error	(2844967) Error in callback: TypeError: Cannot read property 'toString' of null
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at Script.runInContext (vm.js:130:18)
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at script.js.System.Status_Geräte_Stromverbrauch:1696:3
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at script.js.System.Status_Geräte_Stromverbrauch:1275:2
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at writeHTML (script.js.System.Status_Geräte_Stromverbrauch:662:26)
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:800:29)
                      javascript.0	2021-03-14 14:05:20.390	error	(2844967) at script.js.System.Status_Geräte_Stromverbrauch:678:77
                      javascript.0	2021-03-14 14:05:20.389	error	(2844967) script.js.System.Status_Geräte_Stromverbrauch: TypeError: Cannot read property 'toString' of null
                      javascript.0	2021-03-14 14:05:20.388	info	(2844967) script.js.System.Status_Geräte_Stromverbrauch: registered 0 subscriptions and 1 schedule
                      javascript.0	2021-03-14 14:05:20.365	info	(2844967) Start javascript script.js.System.Status_Geräte_Stromverbrauch
                      

                      Hat jemand eine Idee was das sein könnte?

                      Danke schon mal im voraus.

                      Gruß
                      Holger

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Holger Etzel last edited by

                        @holger-etzel

                        es scheint mir auf den ersten blick, dass du geräte hast, die keinen state haben ( fritzdect und shelly)
                        kann das sein

                        beim shelly energy_current oder energy_voltage

                        beim fritzdect entweder fehlt power oder voltage

                        ich hoffe, du hast das script nicht mit firefox aus dem forum kopiert - den dann stimmen die zeilennummer nicht mehr - da muss man chrome nehmen

                        Holger Etzel 1 Reply Last reply Reply Quote 0
                        • Holger Etzel
                          Holger Etzel @liv-in-sky last edited by

                          @liv-in-sky

                          ich habe nur shelly-Geräte:
                          Plugs, shelly1PM, shelly 2.5 und shelly3EM.
                          Wobei der 3EM nicht so wichtig für die Tabelle ist

                          Habe das script gespeichert und mit editor geöffnet.

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @Holger Etzel last edited by

                            @holger-etzel

                            wieviele zeilen hat das script im javascript editor ?

                            Holger Etzel 1 Reply Last reply Reply Quote 0
                            • Holger Etzel
                              Holger Etzel @liv-in-sky last edited by

                              @liv-in-sky

                              bei 1691 ist die letzte Klammer

                              liv-in-sky 2 Replies Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @Holger Etzel last edited by

                                @holger-etzel

                                das paßt

                                dann mußt du die shelly datenpunkte prüfen ob die states beschrieben sind - viellicht gibt es shelly's, die nicht mehr genutzt werden, oder unbenannt wurden ....

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @Holger Etzel last edited by

                                  @holger-etzel

                                  siehe chat nachricht

                                  1 Reply Last reply Reply Quote 0
                                  • Holger Etzel
                                    Holger Etzel last edited by

                                    @liv-in-sky
                                    bin im Raum

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @Holger Etzel last edited by

                                      @holger-etzel

                                      kannst du mir bite den geänderten code im shelly block posten - hab vergessen zu koieren

                                      Holger Etzel 1 Reply Last reply Reply Quote 0
                                      • Holger Etzel
                                        Holger Etzel @liv-in-sky last edited by

                                        @liv-in-sky

                                        $('shelly.*.*.*.Power').each(function(id, i) {           
                                           
                                                if(existsState(id) && getState(id).val != null ) { 
                                                
                                                 anzahl++;
                                                var ida = id.split('.');
                                                  
                                                  counter++; 
                                                  
                                                    
                                                  val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ; // log(val0+"---" +lastID)
                                                  if (val0 == lastID) {lastID=val0; shellyNumber++; val0=val0+"("+shellyNumber.toString()+")"} else{lastID=val0; shellyNumber=1}
                                                  
                                                  
                                        
                                                  val1=getState(ida[0]+"."+ida[1]+"."+ida[2]+".online").val
                                                  val2=" - "; val3=" - ";
                                                  if(existsState(id.replace("Power","Energy_Current"))) {     val2=((getState(id.replace("Power","Energy_Current")).val)).toString()+ " A"; }
                                                   if(existsState(id.replace("Power","Energy_Voltage"))) { val3=getState(id.replace("Power","Energy_Voltage")).val.toString()+" V"; }
                                        
                                                  val4=getState(id).val.toString()+" W";
                                                  var val5_1;
                                                  if (existsState(id.replace("Power","Switch"))) {val5_1= getState(id.replace("Power","Switch")).val;  } else {val5_1= getState(ida[0]+"."+ida[1]+"."+ida[2]+".Relay0.Switch").val;  }
                                                  val5_1 ? val5=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val5=(" <font color=\""+farbeSchalterON+"\"> ")+"OFF</font>";
                                         
                                                   val6=" - "; val7=" - "; val8=" - "; val9=" - "; 
                                                   
                                                   valMarkeDevice="shellyk"
                                        

                                        sorry war gestern nicht im Forum.
                                        Das sollte der code sein.

                                        Nochmal vielen, vielen dank für die umfangreiche Hilfe.

                                        Gruß
                                        Holger

                                        tugsi 1 Reply Last reply Reply Quote 1
                                        • tugsi
                                          tugsi @Holger Etzel last edited by

                                          @holger-etzel sagte in Energieanzeige (kWh) über HTML Tabelle - vis:

                                          Das sollte der code sein.

                                          Es fehlt am Ende dann eine geschweifte Klammer durch :

                                             if(existsState(id) && getState(id).val != null ) { 
                                          

                                          Muss ganz am Ende des Shelly-Abschnittes (hast Du nicht mit angefügt) noch das Ende gesetzt werden:

                                            } }); 
                                          } //ende fritzdect
                                          
                                          

                                          Gesamter Shelly-Abschnitt also:

                                           if (shelly){
                                          counter=0
                                                       
                                               
                                                counter++//=0;
                                                val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";val8="";val9="";
                                                tabelleBind();  
                                                tabelleAusbessern();
                                                counter++//=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">Shelly</"+HTMLbrandSetting+"></font>"; val1=""; val2="";val3="";val4="";
                                                val5="<font color=\""+htmlColorDeviceUeberschrift+"\"></font>";
                                                val6="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">kWh Now<"+HTMLbrandSetting+"></font>";
                                                val7="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">kWh Monat<"+HTMLbrandSetting+"></font>";
                                                val8="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">Preis Now<"+HTMLbrandSetting+"></font>";
                                                val9="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">Preis Monat<"+HTMLbrandSetting+"></font>";
                                                tabelleBind();  
                                               
                                               
                                          lastID="";
                                           
                                          
                                          $('shelly.*.*.*.Power').each(function(id, i) {           
                                             
                                                  if(existsState(id) && getState(id).val != null ) { 
                                                  
                                                   anzahl++;
                                                  var ida = id.split('.');
                                                    
                                                    counter++; 
                                                    
                                                      
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ; // log(val0+"---" +lastID)
                                                     if (val0 == lastID) {lastID=val0; shellyNumber++; val0=val0+"("+shellyNumber.toString()+")"} else{lastID=val0; shellyNumber=1}
                                                     
                                                     
                                            
                                                     val1=getState(ida[0]+"."+ida[1]+"."+ida[2]+".online").val
                                                     val2=" - "; val3=" - ";
                                                     if(existsState(id.replace("Power","Energy_Current"))) {     val2=((getState(id.replace("Power","Energy_Current")).val)).toString()+ " A"; }
                                                      if(existsState(id.replace("Power","Energy_Voltage"))) { val3=getState(id.replace("Power","Energy_Voltage")).val.toString()+" V"; }
                                            
                                                     val4=getState(id).val.toString()+" W";
                                                     var val5_1;
                                                     if (existsState(id.replace("Power","Switch"))) {val5_1= getState(id.replace("Power","Switch")).val;  } else {val5_1= getState(ida[0]+"."+ida[1]+"."+ida[2]+".Relay0.Switch").val;  }
                                                     val5_1 ? val5=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val5=(" <font color=\""+farbeSchalterON+"\"> ")+"OFF</font>";
                                            
                                                      val6=" - "; val7=" - "; val8=" - "; val9=" - "; 
                                                      
                                                      valMarkeDevice="shellyk"
                                                    if (sourceAnalyShelly) {brechneEnergy(val0,getState(id).val)
                                                   
                                                       if (rootCounter){
                                                           sammleDaten();
                                                      berechneGesamt()
                                                       } }
                                                  
                                                zeigeVal1();
                                                if (!filterArrAusnahme.includes(val0)) {
                                                   tabelleBind();  
                                                  } else{let help=[val0,val1,val2,val3,val4,val5,val6,val7,val8,val9]; filterArrAusnahmeHelp.push(help);}
                                          
                                            } }); 
                                          } //ende fritzdect
                                          
                                          

                                          Gruß
                                          Thomas

                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @tugsi last edited by

                                            @tugsi danke, da hast du recht - aber der codeausschnit war mehr für mich gedacht - zum einbinden ins script im ersten post

                                            natrürlich kann man aber deinen "schnippsel" auch selbst ins eigene script kopieren

                                            tugsi 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            484
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            37
                                            696
                                            130085
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo