Darstellung von Variablen durch Script beeinflussen

Hallo,

ich würde gerne ab und an den Inhalt von Variablen anders darstellen als es mit VariablenProfilen möglich ist.

2 Beispiele:

  1. ich habe eine Dauer in Sekunden, möchte die aber nicht nur als Sekunden ausgeben, sondern aufbereiten: 73 Sekunden als „1m13s“

  2. ein Timestamp kann man formatiert ausgeben, manchmal ist aber eine relative Angabe anschaulicher: „vor 7m“, „in 5h“

Bisher behelfe ich mich, indem ich eine weitere Variable herstelle, die den individuell formierten Inhalt hat. Das ist zwar machbar, aber sicherlich nicht optimal. Es sind ja - so gesehen - keinen eigenen Daten und besonders die relative Angabe muss eigentlich immer neu berechnet werden.

Ich würde mir wünschen, das man optional zur Variable ein Script angeben kann, das die Formatierung vornimmt (so ähnlich wie ein Aktions-Script); alternativ könnte ich mir die Angabe auch in einem Variablenprofil vorstellen.

Das Script stelle ich mir so vor:

  • es bekommt in geeigneter Weise die Variable übergeben
  • gibt als Ergebnis die Formatierung zurück, hierfür kann ich mir zwei Varianten vorstellen
    a) es wird nur der darzustellende String geliefert
    b) es wird ein Array geliefert, das den Text zur Darstellung, optional eine Farbe und ein Icon enthält (das wäre flexibler)

Würde mich freuen, wenn ich mit einem solchen Wunsch nicht völlig daneben liege.

Christian

@paresy: darf ich mal nachfragen, ob ihr so etwas in Erwägung ziehen könntet?
es wäre schon wirklich schick, wenn man Ausgaben von Variablen beeinflussen könnte.

danke
demel

Aktuell haben wir es nicht geplant, da es über eine String Variable genauso gut geht und ich aktuell den „Vorteil“ für einen Laien noch nicht erkenne. Am Ende muss ja jemand trotzdem Quellcode produzieren um die Formatierung umzusetzen.

paresy

Hallo,

natürlich kann man für viele der Wünsche auch Hilfsvariablen machen kann - finde ich zwar persönlich unschön, aber ok.
Der Code ist in beiden Fällen in etwa der gleiche, man hat nur keine zusätzlich Variable.

Aber in manchen Fällen hilft das auch nicht wirklich. Wenn, wie in meinem Beispiel, eine Dauer (in Sekunden) lesbarer dargestellt werden soll (also als 5m23s statt 323s) müsste man die Variable ständig zyklisch neu berechnen / setzen

Oder um ein Timestamp anders als im vorgegeben Fornat auszugeben (also für heutige Werte nur HH:MM:SS) muss man extra eine String-Variable machen, die man auch wieder zyklisch anpasst (ohne das der eigentlich Timestamp sich geändert hat).

Aber verstehe ich natürlich, ihr habt viele ToDos auf der Liste.

gruß
demel

Ich habe dazu direkt zwei Gründe:

  1. Den gleichen Sachverhalt zweimal zu speichern ist kein guter Stil

  2. Meinen Gasverbrauch messe ich per Magnetschalter am Balgenzähler. Per Homematic CCU bekomme ich in Symcon den Verbrauchswert geliefert. Da wir Flüssiggas verwenden muss ich das Ergebnis mit dem Faktor 3,7 multiplizieren. Es kommt bei dem Sensor immer wieder zu Abweichungen. Ich vergleiche daher immer wieder mal den Zählerwert mit der Anzeige am Balgen. Mit dem umgerechneten Wert macht es bei einem Faktor von 3,7 nicht viel Sinn. Ich zeichne also sowohl den Originalwert als auch den umgerechnten Wert auf. Bei einem Fehler muss ich also beide Werte korrigieren. Das macht doppelte Arbeit und damit wären wir wieder bei Punkt 1… :mad: