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.
    • 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
                                          • tugsi
                                            tugsi @liv-in-sky last edited by

                                            @liv-in-sky
                                            ich war mir da etwas unsicher, da der Beitrag schon ein paar Tage alt war und ich gerade wegen den Shelly´s daran arbeitete und das in deinem Script noch nicht angepasst war.
                                            Nicht bevor nachher den Schnipsel einfach nimmt und sich wundert, warum es nicht läuft 😉

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            731
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            37
                                            696
                                            130074
                                            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