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.
    • 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
                                        • JB_Sullivan
                                          JB_Sullivan last edited by JB_Sullivan

                                          GOOD MORNING - ioBroker ( in Anlehnung an Vietnam ; ) )

                                          Ich wollte gerade Heute damit beginnen meine ganzen Energieströme mal ein bisschen zu sortieren. Gut das ich vorher (die nun besser funktionierende) Foren Suche benutzt habe.

                                          Da letztes Jahr, im Rahmen meiner PV Anlagen Installation, auch ein neuer Verteilerschrank (3-Reihig) montiert wurde, war ich die letzten Wochen damit beschäftigt diesen ein wenig mit Smart Home Komponenten zu bestücken.

                                          Damit bin ich jetzt soweit durch und habe .....

                                          • 4 x Shelly 3EM (Jeder Shelly detektiert eine Unterverteilung im Haus [Garten, Küche, Keller, Restliches Gebäude])

                                          • 6 x Sonoff POW für einzelne Geräte die über den Adapter Device-Reminder auch auf den Betriebszustand überwacht werden (Trockner, Waschmaschine, Geschirrspüler, 3 x TV Wände mit dem ganzen Multimedia Equipment & Beleuchtung)

                                          • Sowie die die üblichen Verdächtigen zur Erfassung der PV Daten (Fronius Adapter) und der Zähler Daten für`s EVU (Discovergy Adapter)

                                          • Demnächst wird noch openWB für die Erfassung der Energieströme zum e-Auto montiert.

                                          Natürlich ist auch Sourceanalytix im Einsatz.

                                          Lange Rede kurzer Sinn:

                                          Dieser Thread und alle Teil- und Vorgänger Threads sind ja nun doch sehr umfangreich und verschachtelt.

                                          Was ist denn jetzt der aktuelle Stand bezgl. Script und VIS Bild? Hier auf der Seite Beitrag #1?
                                          .... oder wie ist der Stand der Dinge?

                                          Freue mich schon darauf mit Eurer Vorlage loslegen zu können 😉

                                          So, habe mir mal das Script aus Beitrag #1 importiert. Allerdings unterstreicht der Script Editor jede Menge Zeilen und/oder Begriffe ROT, was ja meist der Hinweis auf ein Fehler ist.

                                          JavaScript Engine Adapter ist in der Version 5.1.3 installiert.

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

                                            @jb_sullivan

                                            auch dir ein good morning - seit der source-analy. adapter wieder gepflegt wird, mache ich eigentlich nix mehr an diesem script - ich bin davon ausgegangen, das der adapter das alles kann

                                            mein script wird deinen fall nicht abdecken - es wurde entwickelt um einzelne devices zu überwachen, den verbrauch zu notieren und anzuzeigen - bei deinem beispiel die sonoff pows - aber nur, wenn nicht die neue baumstriktur des sonoff adapters genutzt wird

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

                                            sowie die die üblichen Verdächtigen zur Erfassung der PV Daten (Fronius Adapter) und der Zähler Daten für`s EVU (Discovergy Adapter)

                                            • damit kann das script nix anfangen

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

                                            4 x Shelly 3EM (Jeder Shelly detektiert eine Unterverteilung im Haus [Garten, Küche, Keller, Restliches Gebäude])

                                            • da bin ich mir garnicht mehr sicher - müßten mit aufgenommen werden können

                                            am besten, du installierst das script und setzt mal pow und shelly auf true und schaust dann mal in der vis, was alles angezeigt wird
                                            zur not können wir auch gerne eine anydesk session machen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            902
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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