Ankündigung

Einklappen
Keine Ankündigung bisher.

eval: "Grundlagen" ---> avg runden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    eval: "Grundlagen" ---> avg runden

    Hallo zusammen,

    mittels eval werden mir ein Mittelwert der Raumtemperaturen ausgeben.

    Code:
    eval: avg
    daraus ergeben sich in der DB manchmal solch tolle Zahlen 21,637500000000003
    Ist es möglich diese gleich zu runden
    Code:
    eval: round(value, 2)
    funktioniert alleine prima... nur in Kombination mit avg bekomme ich das nicht hin.


    was ich bereits versucht habe...

    Code:
    eval: avg(value, 2)
    eval: avg(value * 1, 2)
    
    eval: round((avg)value * 1, 2)
    eval: round(avg,2)
    eval: round(avg(value, 2))
    eval: round((avg), 2)
    natürlich jeweils jede Zeile einzeln


    Code:
    eval: avg
    eval: round(value, 2)
    diese beiden Zeilen in Kombination wollten auch nicht


    P.S. ich weiß das ich die Kommastellen in der Visu anpassen kann - mir wäre es jedoch lieber wenn gleich in der DB schon "saubere" Zahlen stehen.


    Danke euch

    #2
    Wie sieht Dein eval_trigger: denn aus?

    Das Schlüsselwort avg kann nur alleine stehen. Wenn Du den Durchschnitt von avg simulieren willst, musst Du im eval Statement die Werte aller am Trigger beteiligten Items summieren, durch deren Anzahl teilen und das dann runden.

    Alternative Du baust Dir ein Hilfsitem was das avg übernimmt und im Hauptitem nimmst Du dann den gerundeten Wert des Hilfsitems.

    Kommentar


      #3
      bmx

      Code:
      temperatur:
          mittelwert:
              type: num
              
              eval: avg
              
              eval_trigger:
                  - eg.essen.temperatur
                  - eg.kueche.temperatur
                          
                  - og.ankleide.temperatur          
                  - og.bad.temperatur
                  - og.buero.temperatur
                  - og.kind_nord.temperatur
                  - og.kind_sued.temperatur
                  - og.schlafen.temperatur
                  
                           
                 
              database: init

      Kommentar


        #4
        Meinst Du so? bmx

        Code:
        temp:
        	mittel: #Durchschnitt
        		type: num
        		eval: avg
        		eval: trigger:
        			- eg.essen.temperatur
        			- eg.kueche.temperatur
        			- usw....
        			
        		mittelwert:
        			type: num
        			eval: round(value, 2)

        immer diese Einrückungen

        Kommentar


          #5
          Nachdem ich es jetzt nochmals gelesen habe. Habe ich dein
          Zitat von bmx Beitrag anzeigen
          avg simulieren willst
          verstanden.

          Code:
          eval: round((eg.essen.temperatur()+eg.kueche.temperatur()+usw.)/Anzahl), 2)
          ob das jetzt 100% passt - aber in diese Richtung wird es gehen müssen.

          Auf jeden Fall
          Zitat von bmx Beitrag anzeigen
          Schlüsselwort avg kann nur alleine
          hat mir das geholfen, dass es meine Weg nicht funktionieren konnte.

          Danke

          Kommentar


            #6
            So klappt es nun...

            Code:
            temperatur:
                mittelwert:
                    type: num      
                    eval: avg        
                    eval_trigger:
                        - ITEM_Temp_1
                        - ITEM_Temp_2
                        - ITEM_Temp_...      
                                    
                    database: init ### je nach Belieben ob ungerundet gespeichert werden soll oder nicht
                        
                    mittelwert_rund:
                        type: num
                        eval: round(sh.temperatur.mittelwert(), 2)
                        eval_trigger: temperatur.mittelwert
                        database: init

            Kommentar

            Lädt...
            X