Klar! Darfst Du gerne im Handbuch einbauen.
(Noch kein Wiki-Account? Schreib mir einfach Wunsch-Login + eMail Adresse und ich kann den anlegen)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Formatstring Info Widget
Einklappen
X
-
Hallo,
ich hole diesen Thread mal nach oben.
Sollte man diese Mapping-Art: Formeln nicht vielleicht hier mit ins Benutzerhandbuch aufnehmen?Zitat von Chris M. Beitrag anzeigenDa ich gerade beim Wünsche erfüllen bin... Revision 792 erlaubt nun eine neue Mapping-Art: Formeln.
Ein Beispielbild und Code liefere ich gleich mit, kann man vielleicht auch für das Benutzerhandbuch verwenden.
Code:<mapping name="One1000th"> <formula>y = x/1000;</formula> </mapping>Info-Widget.jpgCode:<info format="%.3f kWh" mapping="One1000th"> <label><icon name="measure_power_meter"/>Stromverbrauch</label> <address transform="DPT:13.010" mode="readwrite">1/7/76</address> </info> <info format="%.0f Wh"> <label><icon name="measure_power_meter"/>Stromverbrauch</label> <address transform="DPT:13.010" mode="readwrite">1/7/76</address> </info> <info format="%.1f °C"> <label><icon name="temp_temperature"/>Temperatur</label> <address transform="DPT:9.001" mode="read">1/7/20</address> </info> <info format="%.1f V" mapping="One1000th"> <label><icon name="measure_voltage"/>Volt</label> <address transform="DPT:9.020" mode="readwrite">1/7/17</address> </info> <info format="%.0f mV"> <label><icon name="measure_voltage"/>Volt</label> <address transform="DPT:9.020" mode="readwrite">1/7/17</address> </info>
Einen Kommentar schreiben:
-
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).
Einen Kommentar schreiben:
-
Hallo
In der visu_config.xml oben bei den mappings.@airmax
In welche Datei muss ich diese Mappings eingeben? Und wie kann ich sie dann auf einem Item zur Formatierung der Ausgabe verwenden?
Und so wird es in de visu_config.xml verwendet.
Steht doch alles in der visu_config_demo.xml.Code:<info format="%.4f" mapping="One1000th"> <label>Format "%.4f + Formel":</label> <address transform="DPT:9" mode="readwrite">12/7/9</address> </info>
Gruß NetFritz
Einen Kommentar schreiben:
-
In welche Datei muss ich diese Mappings eingeben? Und wie kann ich sie dann auf einem Item zur Formatierung der Ausgabe verwenden?Zitat von Chris M. Beitrag anzeigenDa 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>
Einen Kommentar schreiben:
-
linknx
Zitat von ctr Beitrag anzeigenNein 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
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Hoppe Fenstergriff an Cometvisu
Zitat von ctr Beitrag anzeigenWä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
Einen Kommentar schreiben:
-
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...)
Einen Kommentar schreiben:
-
Wäre es damit auch denkbar mehrere x einzuführen (x1, x2, x3) wenn man mehrere GA in einem Element hat?Zitat von Chris M. Beitrag anzeigenDa 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>
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.
Einen Kommentar schreiben:
-
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:
-> Schon steht da 45.644 kWh statt 45644476Code:<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>
(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
Einen Kommentar schreiben:
-
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>
Einen Kommentar schreiben:
-
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.Zitat von Chris M. Beitrag anzeigenWir sind hier mal wieder an der Frage: Logik oder Visu?
-> 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
Einen Kommentar schreiben:
-
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...)
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:


Einen Kommentar schreiben: