Ankündigung

Einklappen
Keine Ankündigung bisher.

Formatstring Info Widget

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

    Formatstring Info Widget

    Hi

    Ich bekomme von meinem Zähler einen 4 Byte Wert (DPT 12.001 wenn ich mich nicht irre). Das ganze in Wh. Also z.B. 21554330 Wh.
    Das hätte ich gerne in kWh angezeigt.
    Kann man das in der CV bei einem Info Widget per Formatstring so einstellen, dass ich 21554 kWh oder wenigstens 21554,330 kWh angezeigt bekomme? Oder geht das nicht so einfach? Gibt's ne andere Lösung ohne gleich ein Plugin zu schreiben?

    Gruß, Martin

    #2
    Hmm, ich fürchte Format bzw. der (nachgerüstete) interne sprintf gibt das nicht her.
    Eine spontane Idee: dem sprintf ' beibringen? (ist in C für Ausgabe mit locale; also %'8.2f, 475454.89 wird zu 475.454,89 bei DE)
    Und erstmal in für die locale DE implementieren, könnte man ja später dann immernoch internationalisieren..

    Ich schreibe das weil zur Ausgabe mit tausender-Trennzeichen hatte ich mir just gestern folgende RE (Perl aber..) ergurgelt:
    Code:
    $zaehler =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1./g;
    Das Thema "Formel" hatten wir auch schonmal, ging wohl eher nie auf die Top10, finde ich spricht auch mehr dafür als dagegen..

    -> Wobei, finally, man sich wohl regelmässig eher den Verbrauch/aktuelle Leistung o.ä. auf der Visu ansieht statt den horrend hohen Zählerstand -> ab in ein RRD damit, Diagram, fertig

    Makki
    Angehängte Dateien
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      Danke Makki

      Ist kein "Killerfeature" was morgen gleich implementiert sein müsste. Der Wert stimmt ja, sieht nur etwas unhandlich aus. Bei meinem MicroVis hatte ich auch schon das selbe Problem und hatte gehofft, dass es bei der CV evtl. ganz einfach geht.

      Beim MOMENTANverbrauch hast Du natürlich recht, wenn ich die RRD's mal kapiere, werde ich das auch so machen.
      Beim Gesamtverbrauch bringt ein RRD ja nix, der steigt ja kontinuierlich. Den bräucht ich eigentlich - zugegeben - nur ein oder zweimal im Jahr, bei der Abrechnung.

      Gruß, Martin

      Kommentar


        #4
        Wir sind hier mal wieder an der Frage: Logik oder Visu?

        Eigentlich würde ich zu Logik tendieren. Aber es ist tatsächlich etwas unschön dafür ein eigenes Plugin zu schreiben - auch wenn es trivialst wäre...

        Wenn man das stand jetzt in der Visu machen möchte, dann wäre der Pfad der Wahl ein eigenes Widget zu schreiben. Konkret: Du nimmst den Code des Info-Widgets (da ich annehme dass Du dort den geänderten Wert anzeigen möchtest...) und bringst den nach structure_custom.js. Dort baust Du einfach die kleine Formel mit ein...

        Langfristig müsstest Du das mal als einen Feature-Request in den Bug-Tracker einstellen, sonst geht's sicher verloren. Das nächste Release wird aber noch etwas brauchen (so es in dem implementiert wird...)
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Zitat von Chris M. Beitrag anzeigen
          Wir sind hier mal wieder an der Frage: Logik oder Visu?
          Du kennst meine ziemlich strikte Meinung hierzu, beides (Formel /=1000 oder Anzeige in Landes-spezifischer-Form) ist aber für mich ok - und eher Visu als Logik.

          -> Das gehört in Standard IMHO, ein "guter" KNX-Binäreingang sendet nunmal 47123456 (Wh in als Basisgrösse, ist ja auch richtig so!), lesen will man aber doch eher 47.123 kWh; bin da just die Woche beim Visualisieren einer PV-Anlage drübergestolpert und obwohl es mich persönlich nicht stört, wäre der Dezimaltrenner in unseren Landen nunmal ein Komma

          Makki
          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
          -> Bitte KEINE PNs!

          Kommentar


            #6
            Da ich gerade beim Wünsche erfüllen bin... Revision 792 erlaubt nun eine neue Mapping-Art: Formeln.

            Einfach in normaler JavaScript-Syntax die Formel hinschreiben. "x" ist der Eingangswert, den die Formel passend modifiziert auf den Wert "y" zuweisen muss.

            In der Demo sieht das z.B. so aus:
            Code:
                  <mapping name="One1000th">
                    <formula>y = x/1000;</formula>
                  </mapping>
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #7
              Hmm, jetzt wollte ich mir mit dem mapping gleich den zweiten Wunsch selbst erfüllen aber bei mir kommt da nur "NaN" raus(?)
              Edit: Und als ich submit drückte wars mir klar, erst wird format (sprintf) gemacht und dann das mapping, da macht sich so ein Suffix nicht so gut beim Rechnen

              Edit2: Nachdem ich ohne diesen Wunsch nicht ins Bett konnte:
              Code:
                    <mapping name="WhTokWh">
                      <formula>
                          y = parseInt(x/1000) + ''; //calculate, truncate to int, make it a string
                          while (y.match(/^\d\d{3}/)){ //add thousand-sep. 
                             y = y.replace(/(\d)(\d{3}(\.|,|$))/, '$1.$2');
                          }
                          y += ' kWh'; //and my units
                      </formula>
                    </mapping>
              -> Schon steht da 45.644 kWh statt 45644476
              (das hat noch ein paar flaws, funktioniert nicht mit negativen Zahlen und so; es darf auch kein Format [mit float] angegeben sein!)
              Ich hatts auch schon 3 Zeilen kürzer, als ich dann nach dem austreten die RE selber schon nicht mehr verstanden habe, lieber in lang

              P.S.: geniale Idee, das in die Mappings einzubauen, das gibt maximale Flexibilität für Sonderfälle (wie dieses ja einer ist)

              Makki
              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
              -> Bitte KEINE PNs!

              Kommentar


                #8
                Zitat von Chris M. Beitrag anzeigen
                Da ich gerade beim Wünsche erfüllen bin... Revision 792 erlaubt nun eine neue Mapping-Art: Formeln.

                Einfach in normaler JavaScript-Syntax die Formel hinschreiben. "x" ist der Eingangswert, den die Formel passend modifiziert auf den Wert "y" zuweisen muss.

                In der Demo sieht das z.B. so aus:
                Code:
                      <mapping name="One1000th">
                        <formula>y = x/1000;</formula>
                      </mapping>
                Wäre es damit auch denkbar mehrere x einzuführen (x1, x2, x3) wenn man mehrere GA in einem Element hat?

                Ich weiß dass geht schon tendenziell in Richtung Logik, aber mit geht es hier wirklich um die reine Anzeige. Zwei Beispiele:

                Fensterstatus1: Ich habe Magnetkontakte in allen Fenstern, die aber nur eine Schließerkennung durchführen, gekippt und offen ist also beides offen.
                Zusätzlich habe ich an einigen Fenster Hoppe-EnoCean-Griffe die mir (via Gateway) zusätzlich den Status des Griffes geben. Damit (beides multipliziert) kann man nun eine Vielzahl Stati erkennen, die aber primär nur für die Visualisierung interessant sind, einzeln sind die Werte ja schon auf dem Bus:
                verriegelt/geschlossen/gekippt/offen

                Fensterstatus2: Sammel-Status aller Fenster, man könnte einfach die Werte addieren/multiplizieren um ganz einfach eine Übersicht zu erhalten.

                Kommentar


                  #9
                  Nö, das ist wirklich eine Frage der Logik.

                  Die Regel zur Ausnahme:
                  In der Datei structure_custom.js kannst Du eingene Widgets erstellen und nutzen (bleiben auch über einen Release-Wechsel hinaus bestehen). Mit diesem Widget darfst Du natürlich beliebig Schindluder treiben (aber sag's uns nicht. Auch nicht wenn dann Fehler kommen...)
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #10
                    Hoppe Fenstergriff an Cometvisu

                    Zitat von ctr Beitrag anzeigen
                    Wäre es damit auch denkbar mehrere x einzuführen (x1, x2, x3) wenn man mehrere GA in einem Element hat?

                    Ich weiß dass geht schon tendenziell in Richtung Logik, aber mit geht es hier wirklich um die reine Anzeige. Zwei Beispiele:

                    Fensterstatus1: Ich habe Magnetkontakte in allen Fenstern, die aber nur eine Schließerkennung durchführen, gekippt und offen ist also beides offen.
                    Zusätzlich habe ich an einigen Fenster Hoppe-EnoCean-Griffe die mir (via Gateway) zusätzlich den Status des Griffes geben. Damit (beides multipliziert) kann man nun eine Vielzahl Stati erkennen, die aber primär nur für die Visualisierung interessant sind, einzeln sind die Werte ja schon auf dem Bus:
                    verriegelt/geschlossen/gekippt/offen

                    Fensterstatus2: Sammel-Status aller Fenster, man könnte einfach die Werte addieren/multiplizieren um ganz einfach eine Übersicht zu erhalten.

                    Hallo ctr,

                    bist Du da weitergekommen? ich hänge genau an der Stelle.

                    Gruss
                    docjey

                    Kommentar


                      #11
                      Nein leider nicht. Im Moment wäre wohl eine externe Logik das einfachste, aber so richtig elegant finde ich das nicht und da stehen erstmal noch 10 anderen Logiken vorher auf der Liste

                      Kommentar


                        #12
                        linknx

                        Zitat von ctr Beitrag anzeigen
                        Nein leider nicht. Im Moment wäre wohl eine externe Logik das einfachste, aber so richtig elegant finde ich das nicht und da stehen erstmal noch 10 anderen Logiken vorher auf der Liste

                        Hallo ctr,

                        ich denke, über linknx müsste es gehen. falls ich es schaffe, sage ich Bescheid.

                        Gruss
                        docjey

                        Kommentar


                          #13
                          Zitat von Chris M. Beitrag anzeigen
                          Da ich gerade beim Wünsche erfüllen bin... Revision 792 erlaubt nun eine neue Mapping-Art: Formeln.

                          Einfach in normaler JavaScript-Syntax die Formel hinschreiben. "x" ist der Eingangswert, den die Formel passend modifiziert auf den Wert "y" zuweisen muss.

                          In der Demo sieht das z.B. so aus:
                          Code:
                                <mapping name="One1000th">
                                  <formula>y = x/1000;</formula>
                                </mapping>
                          In welche Datei muss ich diese Mappings eingeben? Und wie kann ich sie dann auf einem Item zur Formatierung der Ausgabe verwenden?

                          Kommentar


                            #14
                            Hallo
                            @airmax
                            In welche Datei muss ich diese Mappings eingeben? Und wie kann ich sie dann auf einem Item zur Formatierung der Ausgabe verwenden?
                            In der visu_config.xml oben bei den mappings.

                            Und so wird es in de visu_config.xml verwendet.
                            Code:
                                  <info format="%.4f" mapping="One1000th">
                                    <label>Format "%.4f + Formel":</label>
                                    <address transform="DPT:9" mode="readwrite">12/7/9</address>
                                  </info>
                            Steht doch alles in der visu_config_demo.xml.

                            Gruß NetFritz
                            KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                            WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                            PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                            Kommentar


                              #15
                              Danke, bin über die Suche hier gelandet. Hatte nicht gesehen, dass es sich um das CometVisu Forum handelt. Verwende diese nicht (sondern nur GreenT und die Android App).

                              Kommentar

                              Lädt...
                              X