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

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

                                            @tugsi

                                            mittlerweile ist es angepaßt - alles gut soweit 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            656
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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