Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Werte formatieren

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

    - √ - Werte formatieren

    Hallo,

    wie kann ich Werte, z.B. im basic.value formatieren?
    Ich möchte die Anzahl der Nachkommastellen einstellen und ggf. mit 100 multiplizieren/teilen.

    Geht das?

    Gruß,
    Hendrik

    #2
    Werte formatieren

    Nein, geht nicht. Aber du kannst das Widget in deinen Orojektordner kopieren (und umbennenen) aus der widget/basic.html, lokal einbinden mit {% import ... %} und im Projektordner eine visu.js nach dem Vorbild der widget/widget.js und da das Verhalten für dein neues/kopiertes Widget implementieren. Siehe auch mein QC Design.
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Das wäre mal ein wichtiges Feature request

      Kommentar


        #4
        Werte formatieren

        Mit basic.value zeigt den Wert einfach an. basic.float formatiert einige Werte anhand der eingestellten Einheit... z.B. bei '%'. Das Teilen durch 100 sollte eher im Backend passieren. Für die Quad Visu habe ich ein Widget visu.percent geschrieben (glaub aus ähnlichem Grund). Kannst dir ja mal im Git Repo des QC Designs anschauen.
        Mit freundlichen Grüßen
        Niko Will

        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

        Kommentar


          #5
          Stimmt nicht ganz: Die Darstellung aller Werte kann über die Text-Datei (lang/lang_de.txt) beeinflusst werden. Dort ist definiert, wie die Global aussehn.

          Wenn man dem basic.float ne "unit" mitgibt, wird versucht diese gegen die Text-Datei zu mappen und mit der Formatierung dann dargestellt:
          ° -> temp (als Temperatur)
          % -> percent (als Prozentzahl)
          -> currency (als Währung)

          Gruss
          Join smartVISU on facebook. Web: smartvisu.de.
          Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

          Kommentar


            #6
            Werte formatieren

            Hallo Martin,

            Danke für die Info. Aber das gilt nur für die Formatierung und nur für bekannte Einheiten, richtig? Also teilen durch hundert geht damit nicht, oder?
            Mit freundlichen Grüßen
            Niko Will

            Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
            - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

            Kommentar


              #7
              Richtig. Es ist aber so gebaut, das man sehr leicht weitere Einheiten hinzufügen könnte.

              Werte richtig anliefern sehe ich auch eher im Backend.

              Gruss
              Join smartVISU on facebook. Web: smartvisu.de.
              Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

              Kommentar


                #8
                Hi Martin,

                Zitat von Apollo Beitrag anzeigen
                Werte richtig anliefern sehe ich auch eher im Backend.
                was ist richtig? Der Wert wird ja - mathematisch - richtig angeliefert.
                Ich sehe hier drei Optionen:
                1. Das Backend liefert 98
                2. Das Widget kann mit der unit %% mit 0.98 umgehen und multipliziert selbst.
                3. Das Widget multipliziert den Wert mit 100, wenn der Wert < 1 ist.


                Ich würde die zweite Variante bevorzugen. Und mich um die anderen Aufgaben im Backend kümmern ;-)

                Bis bald

                Marcus

                Kommentar


                  #9
                  Zitat von mknx Beitrag anzeigen
                  Das Widget multipliziert den Wert mit 100, wenn der Wert < 1 ist.
                  Bitte nicht so versteckte "Features"... Irgendwann sendet einer einen berechneten Prozentwert (als float) und wundert sich, warum bei 0.4711 nicht "0%" sondern "47%" angezeigt wird.

                  Dank "eval"/"eval_trigger" ist es doch kein Problem, ein zweites skaliertes Item anzulegen...

                  Kommentar


                    #10
                    Werte formatieren

                    Schaut mal hier --> https://knx-user-forum.de/showthread.php?t=28999
                    Mit freundlichen Grüßen
                    Niko Will

                    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                    Kommentar


                      #11
                      @Apollo:
                      Wo genau bzw. wie wären denn Erweiterungen überall zu implementieren?
                      Ich will bei mir 4 Byte Werte (kWh, DPT 14) eines Smartmeters darstellen. Als basic.value sehen die Werte nicht wirklich leserlich aus und bei basic.float (ohne Einheit) wird aktuell immer 0.00 angezeigt.

                      Auf den ersten Blick (lang_de.txt und widget.js) müsste erst Code implementiert werden, um die 4 Byte Werte richtig dazustellen, oder?

                      Gruss
                      Jochen.

                      Kommentar


                        #12
                        Werden Deine Werte vom Zähler direkt auf den Bus gesendet?
                        Dann sollte es auch ohne Erweiterung schon gehen. Oder verstehe ich Dich falsch?

                        Beispiel (Wirkleistung Gesamt) aus meinem items + html

                        Code:
                        [Allgemein]
                            [[Zaehler]]
                                [[[LeistungGesamt]]]
                                    name = WirkleistungGesamt
                                    type = num
                                    visu = yes
                                        knx_dpt = 14
                                        knx_listen = 5/2/1
                        Code:
                         {{ basic.float('LesitungGesamt', 'Allgemein.Zaehler.LeistungGesamt', '&nbsp;W') }}
                        Angehängte Dateien

                        Kommentar


                          #13
                          Sehr seltsam- bei mir sieht das Ergebnis anders aus, aber im Grunde mach' ich nichts anderes...

                          Auszug aus der Items.conf:
                          Code:
                              [[energy]]
                                  [[[meter_og]]]
                                      name = Stromverbrauch OG
                                      [[[[counter]]]]
                                          name = Zaehlerstaende
                                          sv_widget = "{{ basic.float('item.absolut', 'item.absolut') }}<br>{{ basic.value('item.absolut2', 'item.absolut') }}"
                                          [[[[[absolut]]]]]
                                              type = num
                                              knx_dpt = 14
                                              knx_listen = 0/7/218
                                              knx_init = 0/7/218
                                              visu = yes
                          Wobei ich langsam den Verdacht habe, dass DPT 14 falsch ist. Hab' gerade gesehen die KOs sind als EIS11 definiert- werd's mal mit DPT 13 versuchen.

                          Gruss
                          Jochen.
                          Angehängte Dateien

                          Kommentar


                            #14
                            ansonsten stell mal in der ETS den Datentyp entsprechend um (14.056)
                            Angehängte Dateien

                            Kommentar


                              #15
                              Es lag am DPT, mit 13 oder 12 kommen vernünftige Werte raus. Danke für die Hilfe

                              Gruss
                              Jochen.

                              Kommentar

                              Lädt...
                              X