fhemApp icon indicating copy to clipboard operation
fhemApp copied to clipboard

Ausgabe eines anderen Readings als das, in der Bedingung verwendete.

Open benni1972 opened this issue 1 year ago • 2 comments

Ich hatte jetzt schon ein paar mal den Fall, wo ich gerne, statt des Readings aus der Bedingung, den Wert ein anderes Anzeigen würde.

Ganz einfaches Beispiel Info-Text auf einem Panel:

"text": [
	"device-state:off:aus",
	"device-state:on:an"
],

Ich prüfe hier auf den state des Device (on oder off) und gebe entsprechend Text aus. Handelt es sich aber hier um einen Dimmer und ich möchte die aktuelle Dim-Einstellung (dim [%]) des Device anzeigen, muss ich entweder alles auf dem Reading dim aufbauen, (was aber nur funktionieren kann, wenn im Falle "aus" dim gleichzeitig auch auf 0% geht). Alternativ muss ich mir eine Bedingungsreihenfolge ausdenken mit der das dann wie gewünscht funktionier (im o.g. Beispiel sehr einfach, in anderen Situationen beliebig komplex)

Praktisch wäre jetzt sowas:

"text": [
	"device-state:off:aus",
	"device-state:on:%r(device-dim)"
],

%r ist jetzt eine von mir willkürlich gewählte Ersetzung für die Referenz auf einen anderen Device-Wert.

Wenn ich hier Reading schreibe meine ich übrigens immer auch die Internals (i-) und Attribute (a-) von den, mit dem Panel verknüpften Devices.

Also auch sowas hier:

"text": [
	"device-state:off:%r(device-a-OffState"),
	"device-state:on:%r(dim-dim)"
],

Die Königsklasse hier wäre jetzt die Schachtelung von Ersetzungen, denn evtl. soll der anzuzeigende Wert noch (bspw. numerisch) formatiert werden %n(%r(<ref>),0,2) oder auf Basis des Wertes ein Sprachtext angezeigt werden %t(%r(<ref>)))

Auch zu bedenken: Was passiert, wenn die angegebene Referenz gar nicht da ist? Ist dann die gesamte Bedingung fehlerhaft und wird nicht ausgewertet oder wird stattdessen ein Fehlerwert angezeigt?

benni1972 avatar Mar 03 '24 08:03 benni1972

Diesen Wunsch unterstütze ich sehr. Ich löse das aktuell über diverse Dummys, da ich mein FHEM aber eigentlich schlank halten möchte (ich habe gerade erst ausgemistet), würde ich es bevorzugen, wenn es direkt im Frontend lösbar wäre.

marvin78 avatar Aug 16 '24 06:08 marvin78

@benni1972 Hierzu gibt es Neuigkeiten. Schau bitte mal in den Thread Forum.

jemu75 avatar Nov 17 '24 13:11 jemu75