Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Json für SourceAnalytics

    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

    Json für SourceAnalytics

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

      hi @Nordischerjung

      wie zugesagt ein json-erzeugungs-script für sourceanalytics

      schaut dann so aus:

      Image 175.png

      hier das script:

      wird in dp gespeichert : 0_userdata.0.StromJson.StromJson (wird vom script erstellt)

      
      
      
      let myArrSourcA=[];
      let myBlacklist=[];
      // Beispiel Blacklist: ['sourceanalytix.0.sonoff__0__SonoffPow3__ENERGY_Total','sourceanalytix.0.sonoff__3__Nous1__ENERGY_Total']
      async function calcJson(){
      myArrSourcA=[];  
      $('sourceanalytix.0.*.currentYear.consumed.01_currentDay').each( function( id4, i){ 
          let idy = id4.split('.'); 
          if (getObject(id4).common.unit=="kWh" && !myBlacklist.toString().includes(idy[2])){
           
      
            
      
           let helper=idy[2].split('__');
           let helper2=helper[helper.length-2]; 
           let theName=getObject(idy[0]+'.'+idy[1]+'.'+idy[2]).common.name   //idy[2].split('__');
           if(theName == undefined)  theName="no Name" ; 
           //log( getObject(idy[0]+'.'+idy[1]+'.'+idy[2]).common.name )
      
           
                             myArrSourcA.push({
                                 "Name": theName,
                                 "Gestern":getState(id4.replace("01_currentDay","01_previousDay")).val.toFixed(2),
                                 "Heute": getState(id4).val,
                                 "Monat":getState(id4.replace("01_currentDay","03_currentMonth")).val.toFixed(2),
                                 "Jahr": getState(id4.replace("01_currentDay","05_currentYear")).val.toFixed(2),
                                 "Gestern Kosten":getState(id4.replace("consumed.01_currentDay","costs.01_previousDay")).val.toFixed(2),
                                 "Heute Kosten": getState(id4.replace("consumed.01_currentDay","costs.01_currentDay")).val.toFixed(2),
                                 "Monats Kosten":getState(id4.replace("consumed.01_currentDay","costs.03_currentMonth")).val.toFixed(2),
                                 "Jahres Kosten": getState(id4.replace("consumed.01_currentDay","costs.05_currentYear")).val.toFixed(2)
                                 
                                 
                             })
                             } // ende unit abfrage
                           });  
      
      
      //log(JSON.stringify(myArrSourcA)) 
      return myArrSourcA;
      }
      
      async function writeDatapoint(){
      
      if (!(await existsStateAsync('0_userdata.0.StromJson.StromJson'))) {
             await createStateAsync('0_userdata.0.StromJson.StromJson', "",{type: "string", name: "JSON SourcAnalytics", role: "value", read: true, write: true, } ); } 
      // log(JSON.stringify(await calcJson())) 
      
      setState('0_userdata.0.StromJson.StromJson',JSON.stringify(await calcJson()));
             }
      
      writeDatapoint();
      schedule(' * * * * *',  function () { writeDatapoint();
       });
      
      
      
      

      hier das widget: inventwo widgets müssen installiert sein

      [{"tpl":"i-vis-jsontable","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","iTblRowLimit":"20","iTableRefreshRate":"0","iTblSortOrder":"asc","iColCount":"9","iColShow1":"true","iTblHeadTextAlign1":"left","iTblTextAlign1":"left","iTblCellFormat1":"normal","iTblCellImageSize1":"200","iTblCellBooleanCheckbox1":"false","iTblCellBooleanColorFalse1":"#ff0000","iTblCellBooleanColorTrue1":"#00ff00","iTblCellNumberDecimals1":"2","iTblCellNumberDecimalSeperator1":".","iTblCellNumberThousandSeperator1":",","iTblCellThresholdsDp1":"","iTblCellThresholdsText1":"","iOpacityAll":"1","iTblRowEvenColor":"#479de6","iTblRowUnevenColor":"#8dadb9","iTblHeaderColor":"#204565","iRowSpacing":"2.8","iTblRowEvenTextColor":"#ffffff","iTblRowUnevenTextColor":"#ffffff","iTblHeaderTextColor":"#ffffff","iBorderSize":"0","iBorderStyleLeft":"none","iBorderStyleRight":"none","iBorderStyleUp":"none","iBorderStyleDown":"none","iBorderColor":"#ffffff","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"oid":"0_userdata.0.StromJson.StromJson","iTblShowHead":true,"iColShow2":"true","iTblHeadTextAlign2":"center","iTblTextAlign2":"center","iTblCellFormat2":"normal","iTblCellImageSize2":"200","iTblCellBooleanCheckbox2":"false","iTblCellBooleanColorFalse2":"#ff0000","iTblCellBooleanColorTrue2":"#00ff00","iTblCellNumberDecimals2":"2","iTblCellNumberDecimalSeperator2":".","iTblCellNumberThousandSeperator2":",","iTblCellThresholdsDp2":"","iTblCellThresholdsText2":"","iColShow3":"true","iTblHeadTextAlign3":"center","iTblTextAlign3":"center","iTblCellFormat3":"normal","iTblCellImageSize3":"200","iTblCellBooleanCheckbox3":"false","iTblCellBooleanColorFalse3":"#ff0000","iTblCellBooleanColorTrue3":"#00ff00","iTblCellNumberDecimals3":"2","iTblCellNumberDecimalSeperator3":".","iTblCellNumberThousandSeperator3":",","iTblCellThresholdsDp3":"","iTblCellThresholdsText3":"","iColShow4":"true","iTblHeadTextAlign4":"center","iTblTextAlign4":"center","iTblCellFormat4":"normal","iTblCellImageSize4":"200","iTblCellBooleanCheckbox4":"false","iTblCellBooleanColorFalse4":"#ff0000","iTblCellBooleanColorTrue4":"#00ff00","iTblCellNumberDecimals4":"2","iTblCellNumberDecimalSeperator4":".","iTblCellNumberThousandSeperator4":",","iTblCellThresholdsDp4":"","iTblCellThresholdsText4":"","iColShow5":"true","iTblHeadTextAlign5":"center","iTblTextAlign5":"center","iTblCellFormat5":"normal","iTblCellImageSize5":"200","iTblCellBooleanCheckbox5":"false","iTblCellBooleanColorFalse5":"#ff0000","iTblCellBooleanColorTrue5":"#00ff00","iTblCellNumberDecimals5":"2","iTblCellNumberDecimalSeperator5":".","iTblCellNumberThousandSeperator5":",","iTblCellThresholdsDp5":"","iTblCellThresholdsText5":"","iColShow6":"true","iTblHeadTextAlign6":"center","iTblTextAlign6":"center","iTblCellFormat6":"normal","iTblCellImageSize6":"200","iTblCellBooleanCheckbox6":"false","iTblCellBooleanColorFalse6":"#ff0000","iTblCellBooleanColorTrue6":"#00ff00","iTblCellNumberDecimals6":"2","iTblCellNumberDecimalSeperator6":".","iTblCellNumberThousandSeperator6":",","iTblCellThresholdsDp6":"","iTblCellThresholdsText6":"","iColShow7":"true","iTblHeadTextAlign7":"center","iTblTextAlign7":"center","iTblCellFormat7":"normal","iTblCellImageSize7":"200","iTblCellBooleanCheckbox7":"false","iTblCellBooleanColorFalse7":"#ff0000","iTblCellBooleanColorTrue7":"#00ff00","iTblCellNumberDecimals7":"2","iTblCellNumberDecimalSeperator7":".","iTblCellNumberThousandSeperator7":",","iTblCellThresholdsDp7":"","iTblCellThresholdsText7":"","iColShow8":"true","iTblHeadTextAlign8":"center","iTblTextAlign8":"center","iTblCellFormat8":"normal","iTblCellImageSize8":"200","iTblCellBooleanCheckbox8":"false","iTblCellBooleanColorFalse8":"#ff0000","iTblCellBooleanColorTrue8":"#00ff00","iTblCellNumberDecimals8":"2","iTblCellNumberDecimalSeperator8":".","iTblCellNumberThousandSeperator8":",","iTblCellThresholdsDp8":"","iTblCellThresholdsText8":"","iColShow9":"true","iTblHeadTextAlign9":"center","iTblTextAlign9":"center","iTblCellFormat9":"normal","iTblCellImageSize9":"200","iTblCellBooleanCheckbox9":"false","iTblCellBooleanColorFalse9":"#ff0000","iTblCellBooleanColorTrue9":"#00ff00","iTblCellNumberDecimals9":"2","iTblCellNumberDecimalSeperator9":".","iTblCellNumberThousandSeperator9":",","iTblCellThresholdsDp9":"","iTblCellThresholdsText9":"","iTblFixedHead":true,"iTblSortAttr":"","iColAfterText1":"","iColName2":"","iColAfterText2":" kWh","iColAfterText3":" kWh","iColAfterText4":" kWh","iColAfterText5":" kWh","iColAfterText6":" €","iColAfterText7":" €","iColAfterText8":" €","iColAfterText9":" €"},"style":{"left":"46px","top":"539px","width":"1069px","height":"259px","font-size":"small","overflow-y":"scroll"},"widgetSet":"vis-inventwo"}]
      

      crunchip N 3 Replies Last reply Reply Quote 4
      • crunchip
        crunchip Forum Testing Most Active @liv-in-sky last edited by

        @liv-in-sky sieht ja sehr schön aus, mal sehen ob ich das bei mir auch mit rein pack, hab das ja bisher alles über Grafana laufen.
        (allerdings würde ich bei dem Stromverbrauch ein paar Echo`s abschalten😂 )

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

          @crunchip sourcanalytics läuft garnicht - das sind alte daten, da ich den adapter nur stillgelegt habe

          die erste zeile war irgendein versuch daten zusammenzufassen - hat zum glück keine richtigen werte 🙂

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

            @crunchip sagte in Json für SourceAnalytics:

            ein paar Echo`s abschalten

            niemals - lieber schalte ich die heizung aus 🙂 ich steh total auf die echo show's

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

              nur zur info - das script liest nur einmal beim start die dp - es gibt noch keinen zeit-trigger oder einen trigger bei änderung der dp !!

              wer eher blockly mag, könnte das script als function block in ein blockly einbinden und dort einen z.b. cron trigger nehmen

              möglich wäre noch:

              • sortierung - über script oder über widget
              • andere werte können im script dazugefügt werden
              • unnötige werte können im widget ausgeblendet werden

              evtl problem:

              • die namen der devices funtionieren hier bei meinen sonoff geräten - mit zb. hm-rpc müßte die namensgebung wahrscheinlich nochmal gecheckt werden
              crunchip N 2 Replies Last reply Reply Quote 0
              • N
                Nordischerjung @liv-in-sky last edited by

                @liv-in-sky moin,
                Super vielen Dank erst einmal. Ich probier es mal aus und melde mich.

                1 Reply Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @liv-in-sky last edited by crunchip

                  @liv-in-sky sagte in Json für SourceAnalytics:

                  möglich wäre noch

                  nicht nur Ausgaben und Verbrauch, sondern auch Einnahmen😜
                  3d126c23-d34a-4545-b6fa-ea3b56ef4bff-image.png

                  @liv-in-sky sagte in Json für SourceAnalytics:

                  evtl problem:

                  ja mit dem Namen
                  6a522c91-dad0-45eb-9e2c-46b8dbe89b64-image.png 17545e31-2f69-4bc5-b606-97c058869ef8-image.png

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

                    @liv-in-sky sagte in Json für SourceAnalytics:

                    evtl problem:

                    • die namen der devices funtionieren hier bei meinen sonoff geräten - mit zb. hm-rpc müßte die namensgebung wahrscheinlich nochmal gecheckt werden

                    Moin, mit den Namen habe ich auch Probleme.

                    7a7a7a89-a9e4-4174-bccf-069a857d01ea-grafik.png

                    das ist im Adapter

                    b028247d-a100-43f1-af61-d72b130ba7c4-grafik.png

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

                      @nordischerjung das dachte ich mit schon - ich kuck mal

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

                        @nordischerjung

                        bitte mal das hier testen

                        
                        
                        let myArrSourcA=[];
                        
                        async function calcJson(){
                        
                        $('sourceanalytix.0.*.currentYear.consumed.01_currentDay').each( function( id4, i){  
                        
                             let idy = id4.split('.');
                             let theName=getObject(idy[0]+'.'+idy[1]+'.'+idy[2]).common.name//idy[2].split('__');
                             if(theName == undefined)  theName="no Name" ; 
                             //log( getObject(idy[0]+'.'+idy[1]+'.'+idy[2]).common.name )
                            
                                               myArrSourcA.push({
                                                   "Name": theName,
                                                   "Gestern":getState(id4.replace("01_currentDay","01_previousDay")).val+" kWh",
                                                   "Heute": getState(id4).val+" kWh",
                                                   "Monat":getState(id4.replace("01_currentDay","03_currentMonth")).val+" kWh",
                                                   "Jahr": getState(id4.replace("01_currentDay","05_currentYear")).val+" kWh",
                                                   "Gestern Kosten":getState(id4.replace("consumed.01_currentDay","costs.01_previousDay")).val+" €",
                                                   "Heute Kosten": getState(id4.replace("consumed.01_currentDay","costs.01_currentDay")).val+" €",
                                                   "Monats Kosten":getState(id4.replace("consumed.01_currentDay","costs.03_currentMonth")).val+" €",
                                                   "Jahres Kosten": getState(id4.replace("consumed.01_currentDay","costs.05_currentYear")).val+" €"
                                                   
                                                   
                                               })
                                             });  
                        
                        //log(JSON.stringify(myArrSourcA)) 
                        return myArrSourcA;
                        }
                        
                        async function writeDatapoint(){
                        
                        if (!(await existsStateAsync('0_userdata.0.StromJson.StromJson'))) {
                               await createStateAsync('0_userdata.0.StromJson.StromJson', "",{type: "string", name: "JSON SourcAnalytics", role: "value", read: true, write: true, } ); } 
                        // log(JSON.stringify(await calcJson()))   
                        setState('0_userdata.0.StromJson.StromJson',JSON.stringify(await calcJson()));
                               }
                        
                        writeDatapoint();
                        
                               
                        
                        

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

                          @liv-in-sky Jetzt so

                          f00b7283-5416-4ca7-a312-c0e898ccabb6-grafik.png

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • crunchip
                            crunchip Forum Testing Most Active @liv-in-sky last edited by

                            @liv-in-sky kann man nicht "common name" abrufen anstatt der ID?

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

                              @crunchip

                              Image 179.png

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

                                @nordischerjung ich glaube, ich habe was gesehen - ich mach nochmal

                                1 Reply Last reply Reply Quote 0
                                • crunchip
                                  crunchip Forum Testing Most Active @liv-in-sky last edited by

                                  @liv-in-sky ah ok, hatte ich nicht weiter geguckt, bin grad aufn Sprung

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

                                    @crunchip kein problem - die zusammenstellung der id ist wohl falsch um den common.name zu bekommen

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

                                      @nordischerjung

                                      bin verwirrt - sollte eigentlich so funktionieren - bei mir tut es das

                                      kannst du mal bitte den inhalt des datenpunktes posten 0_userdata.0.StromJson.StromJson

                                      siehe chat !

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

                                        @liv-in-sky So schnell nochmal Probiert, Sorry war mein Fehler. Funktioniert doch. Und dabei sehe ich, das Schlafzimmer wohl bei mir falsch geschrieben ist 😀

                                        058934a0-18a1-447b-a947-55abf653ad87-grafik.png

                                        Ich habe das schon geändert, habe 2 getrennte Widges einmal für Verbrauch und einmal Kosten. Das Ganze auch noch gleich gerundet, da der Adapter zB 0,002343524515 € ausspuckt

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

                                          @nordischerjung

                                          dann paßt ja alles (hab schon an meinen coderfähigkeiten gezweifelt 🙂 )- brauchst du noch einen trigger - wir könnten einen schedule alle 10 min einfügen ?

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

                                            @nordischerjung sagte in Json für SourceAnalytics:

                                            Schlafzimmer wohl bei mir falsch geschrieben ist

                                            solange du da drin nix falsches machst 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            628
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            78
                                            4341
                                            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