Aktuell aktiven Wert farbig hinterlegen.

Ich habe eine ganz banale Frage, die hier garantiert schon behandelt wurde.
Finde aber aktuell dazu nicht in der Suche.

Und zwar:
Ich habe eine Auswahl, mit der ich mein Soll-Temperatur etc. einstelle.
Der aktuell angewählte Wert, soll immer farbig hinterlegt sein, wie bekomme ich das hin?

Aktuell sieht es so aus:

Am aktuellen Beispiel soll dann der Button mit den 26° z.B. blau hinterlegt sein.

so z.B

das kannst du im Profil hinterlegen

GrußJens

Hi Jens,
wenn ich keine Auswhal habe so wie bei dir sondern nur einen Wert, der je nachdem angezeigt wird, dann funktioniert das.

Wenn ich haber wie bei mir aktuell alle Werte anzeigen lasse (nicht nur den aktuell angewählten), dann muss ich das flexibel gestalten, sodass das Feld erst mit einer Farbe hinterlegt wird, wenn er ausgewählt wurde.

Ich könnte jetzt zwar den Wert wie bei dir Blau hinterlegen, aber sobald ich z.B. auf 27 klicke dann spring ich auf die 27°C, und der Wert 26°C bleibt blau hinterlegt.

Es muss quasi dynamisch die Fraben hinterlegen, nicht fest.

Hi Daniel,

dann musst du diese Variablenprofile bei Variablenänderung usw. durch ein Skript jedes Mal anpassen. Ist an sich kein Problem…funktioniert nach dem gleichen Schema wie der Entenzähler:
Entenzähler im WebFront

Dieser Befehl ist der entscheidende für dich:
IPS_SetVariableProfileAssociation — IP-Symcon :: Automatisierungssoftware

Grüße,
Chris

dann vermute ich ,dir hilft dan nur eine HTML variable ,leider kann ich dir hier nicht helfen.

oder über IPS_SetVariableProfileAssociation

IPS_SetVariableProfileAssociation — IP-Symcon :: Automatisierungssoftware

Gruß Jens

Super, vielen Dank euch beiden! :slight_smile:
Genau das habe ich gesucht.

Habe gerade rumprobiert, es funktionert.
Gibt es zufällig noch eine andere Möglichkeit oder etwas ähnliches?

Bei dieser Variante, muss ich für jeden Bereich bzw. für jede Variable, bei der ich das machen möchte, ein extra Profil anlegen.

Oder allgemein gesprochen:
Was für Möglichkeiten gibt es den aktuell ausgewählten Wert hervorzuheben?
Standardmäßig ist dieser Wert ja schon heller als die anderen, ich würde ihn aber gernen noch ein wenig mehr hervorheben.

Ist doch nicht schlimm mit den Variablenprofilen. Ich habe bei mir auch für jeden Bewegungsmelder, jedes Fenster, … ein extra Variablenprofil, damit ich dahinter Uhrzeit + Datum anzeigen lassen kann.
Ich halte das so für die beste Lösung.

Alternativ kannst du dir deine Seite aus HTML basteln und in einer HTMLBox im WebFront einbinden, dann bist du komplett frei in der Gestaltung.

Ansonsten ist mir keine weitere Möglichkeit bekannt.

-Chris-

Du kannst entweder dir ein eigenen Skin bauen. (Habe ich aber auch noch nicht versucht)
Oder ‚einfach‘ in der webfront.css anpassen.
Letzteres ist aber nicht update-fest.
So habe ich z.b. meine Slider auch grün gefärbt.
Um die Änderungen zu testen, eignen sich gut die Entwicklertools/konsolen in den Browsern.
Michael

Dann bleibe ich am besten bei der Variante mit einzelnen, verschiedenen Variablenprofilen.

@Bayaro

kannst Du mir verraten wie ich Datum und Uhrzeit bei der Variable anzeigen kann ??

Noch besser das Uhrzeit und Datum der letzten Änderung !?

LG

Jürgen

<?

 
//Event auswerten
if($_IPS['SENDER'] != "Variable")
    return;

SetValue(CreateVariableIDByName($_IPS['VARIABLE'], 'Updated', 3), date("d.m.y H:i:s"));

function CreateVariableIDByName($id, $name, $type)
{
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid===false) {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "This Variable was created by Script #".$_IPS['SELF']);
    }
    return $vid;
}

?>

bitte

Abend Jürgen!

Ich nutze dazu dieses Skript:

<?
if($_IPS['SENDER'] == "WebFront") {
    return;
}

$AlleVariablen = IPS_GetVariableList();

foreach ($AlleVariablen as $VarID) {
	$ParentName = IPS_GetName(IPS_GetParent($VarID));
	$VarName = IPS_GetName($VarID);
	if (($ParentName == "Kontakt") AND ($VarName == "STATE")) {
	   $ParentID = IPS_GetParent($VarID);
		$StateID = IPS_GetVariableIDbyName("STATE", $ParentID);
		$StateVARINFO = IPS_GetVariable($StateID);
		$varX = IPS_GetVariable(IPS_GetVariableIDbyName("STATE", $ParentID));
		$wann = date('d.m.Y'." - ".'H:i', $varX['VariableChanged']);
		$wann = $wann." Uhr";

		$ProfilName = IPS_GetName(IPS_GetParent($ParentID));  // Diese Zeile anpassen für deine Namensgebung
		preg_match('|(.*) \(.*|', $ProfilName, $match);  // Diese Zeile anpassen für deine Namensgebung
		$ProfilName = $match[1];  // Dieser Text wird dann als Name für das Variablenprofil verwendet
		$VarProfilList = IPS_GetVariableProfileList ();
		
		if (in_array($ProfilName, $VarProfilList) == false) {
		   IPS_DeleteVariableProfile($ProfilName);
			IPS_CreateVariableProfile($ProfilName, 0);
		}
		IPS_SetVariableProfileAssociation($ProfilName, 0, "Geschlossen", "Window", -1);
		IPS_SetVariableProfileAssociation($ProfilName, 1, "Offen", "Window", 0x00FF00);
		IPS_SetVariableProfileAssociation($ProfilName, 2, "$wann", "Window", -1);

		if ($varX["VariableCustomAction"] != $_IPS["SELF"])  {
			IPS_SetVariableCustomAction($StateID, $_IPS['SELF']);
		}
		if ($varX["VariableCustomProfile"] != $ProfilName) {
			IPS_SetVariableCustomProfile($StateID, $ProfilName);
		}
		
		$eid = @IPS_GetEventIDByName($ProfilName, $_IPS["SELF"]);
		if (is_numeric($eid) == false) {
		   $eid = IPS_CreateEvent(0);
			IPS_SetEventTrigger($eid, 1, $StateID);
			IPS_SetParent($eid, $_IPS["SELF"]);
			IPS_SetName($eid, $ProfilName);
			IPS_SetEventActive($eid, true);
		}
	}
}
?>

Darunter liegen bei mir die Events, welche auf Variablenänderung triggern (siehe Screenshot). Aber du kannst es vmtl. nicht 1:1 übernehmen, wegen den Profilnamen, die hole ich aus meinen DummyModulen mit spezieller Namenssyntax. Aber ich denke da kannste dir abschauen was du brauchst :slight_smile:

Grüße,
Chris

Danke !

Gibt es auch eine Lösung über VariablenProfile ?? Damit ich ohne „Hilfsvariable“ auskomme ??

Edit:
@Bayaro

Danke…Deine Post war schneller.