Ankündigung

Einklappen
Keine Ankündigung bisher.

Mathematische Funktionen

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

    Mathematische Funktionen

    Ich möchte gerne größere Werte z.B. durch 1000 dividieren. Benötige ich dazu eine Rule oder würde das direkt mit der Item auch gehen?

    #2
    Ein klares "Das kommt darauf an"

    Wenn Du einen Wert über ein Binding bekommst, welches in der Bindingdefinition Transformations gestattet (z.B. http Binding), dann kannst Du es direkt darüber erledigen. Wenn es nur um die Anzeige des Wertes geht, kannst Du es eventuell auch über eine Transformation (Java Script) erledigen, hab ich aber noch nicht ausprobiert.
    Wenn Du Wert auf "korrekte" Werte legst und das Binding keine Transformation beherrscht, musst Du ein Proxy Item verwenden, also den Wert auf einem Item empfangen, bei Update eine Rule triggern, in der Rule den echten Wert berechnen, und am Ende der Rule den Wert in ein anderes Item schreiben (das nutzt Du dann zur Anzeige oder für weitere Zwecke. Dieses Item ist dann ohne Binding, es sei denn, Du willst den umgerechneten Wert wieder irgendwohin schicken.
    Merken
    Merken

    Kommentar


      #3
      Hi

      sendCommand(FertiggerechnetesItem, (((ItemWasBerechnetWerdenWill.state as DecimalType).intValue) * (100%Item.state as DecimalType).intValue) / 100)

      MfG

      Kommentar


        #4
        Diese Zeile wird so vermutlich nicht funktionieren da die Action sendCommand(Item,Value) Strings erwartet. Der berechnete Wert ist aber vom Typ float. Da er auch nicht explizit als Objekt definiert ist, handelt es sich um ein Primitive. Primitives bringen keine Funktion .toString mit.
        Abgesehen davon ging es ja nicht um eine konkrete Befehlszeile

        Kommentar


          #5
          Die Items sind bei mir als Number Items definiert,
          Sorry das hätte ich dazuschreiben sollen.

          Die Zeile geht, damit berechne ich aus einer Prozentzahl eine Zeit.

          Ich finde es in ein Beispiel angenehmer

          Kommentar


            #6
            Naja, aber nur eine Codezeile ohne die geringste Erklärung, was denn da passiert? Jemand ohne das Hintergrundwissen kann mit der Zeile vermutlich eher nichts anfangen.
            Du berechnest in der Zeile auch keine Zeit, sondern eher eine Dauer...

            Kommentar


              #7
              Konkret geht es mir um einen Leistungszähler, der zB von W in kW oder MW umgerechnet werden soll:
              Code:
              Number    AvpmPT        "(Wirk)Leistung gesamt [%.1f W]"    (ChartPowervpm)    { http="<[http://192.168.1.2)]"}
              Ich möchte diesen nur für den Chart umrechnen lassen, damit dieser die höheren Werte lesbar darstellt

              Kommentar


                #8
                Da hast du 2 Möglichkeiten
                1. Sie direkt in der Sitemap umrechnen ( da hört es bei mir auf)
                2. Ein Umgerechnettes Item Erstellen um es dann zu berechnen
                Code:
                AvpmPTumgerechnet.sendCommand((AvpmPT.state as Number) / (oder *) 1000)
                das Item sollte halt nen Number Item sein was auch erstellt worden ist.

                MfG

                Kommentar

                Lädt...
                X