Farben z.B. bei Türkontakten

Hallo,

nachdem ich nun wieder viel gelesen habe, hier meine Frage:

Ich habe einen homematic-Türkontakt. Dieser funktioniert. Nun möchte ich ihn im Webfrontend anzeigen lassen. Dazu ist der Variablen STATE das Standard-Profil ~switch zugewiesen. Nun wurde hier http://www.ip-symcon.de/forum/f56/webfront-tuerkontakt-rot-gruen-11220/ vom Profil ~Alert.Reversed gesprochen, welche meinen Wunsch erfüllen sollte. Leider aber nicht. Es ändert sich wohl der Text, nicht aber die Farbe. Ziel ist es, im geschlossenen Zustand das Wort „Geschlossen“ auf grünem Hintergrund erscheinen zu lassen. Ist die Tür offen: „Offen“ auf rotem Hintergrund.

Wo verstelle ich die Farben für diese boolschen Variablen? Gilt das (mit den Profilen und den Farben) auch für Bool-Variablen, die nicht durch ein Gerät erstellt werden, sondern manuell durch mich. Ich möchte nämlich meine Netzwerkgeräte wie PC und Notebooks (und auch die Wii) per Ping überwachen und den aktuellen Zustand im WFE entsprechen darstellen: An (grün); Aus (rot)

Was mache ich da falsch bzw. wo muss ich drehen?

Nehme eine Hilfsvariable und setze diese invertiert zu dem Originalstatus des Aktors.

Die Originalvariable versteckst Du und der Hilfsvariable weist Du ein leeres DummyScript zu.

Das wars.

Gruss
B71

Nicht so schön, aber als Workaround gut, da ich nun für sämtliche Booleans eine zweite, invertierte Variable anlegen muss. Das macht die Sache mehr und mehr unübersichtlich. Kann man die Farben nicht manuell irgendwo ändern?

Leider geht es wohl wirklich nur über Hilfsvariablen und Invertierungen. Dabei bekommt man dabei aber schnell einen Knoten in die Gedanken …

Wirklich hilfreich wäre eine Option im Webkonfigurator, die Farben zu invertieren.
Das würde das Ganze simpel konfigurierbar machen, ohne zu verwirren.

Vielleicht werden unsere Wünsche in dieser Richtung ja einmal erfüllt.

Ich würde mich sehr freuen.

Viele Grüße

Burkhard

Bei Homematic lässt sich doch der Zustand in der HM software konfigurieren.
Sprich man kann dort sagen was der Aktor bei einem bestimmten Zustand melden soll und damit hätte man das doch dann im Griff…wenn man das mit d Hilfsvariable nicht mag.

Gruss
B71

Stimmt genau. Die Farbe passt dann, nur der Text nicht. :stuck_out_tongue:

Eine invertierte Darstellung ist an vielen Stellen sinnvoll:

  • Rauchmelder (grün = ok, rot = Alarm)
  • Lampen (grün = aus, rot = an)
  • Aktoren (grün = aus, rot = an)

Innerhalb von Homematic lässt sich der Zustand nur bei wenigen Geräten (meines Wissens nur bei den Tür-/Fensterkontakten) invertieren. Das bringt aber ebenfalls die Logik durcheinander und macht es nicht einfacher.

Im Prinzip sollte es jedem überlassen sein wie er einen Zustand bewertet. Ich bin schon dafür, die Farben rot/grün beizubehalten, nur die Zuordnung sollte wählbar sein.

Viele Grüße

Burkhard

Volle Zustimmung

Hallo,

schade eigentlich. Aber wie Burkhard es schon sagte, vielleicht wird der Wunsch ja demnächst erfüllt. Es ist doch bald Weihnachten, oder?:wink:

Ich habe auch mal versucht, die Sache in der CCU zu verstellen, aber wegen des Überblicks wieder retour und Hilfsvariable invertiert zur STATE-Variable („vor dem Webfrontend versteckt“). Damit geht es erstmal.

Danke.

Hallo B71,

sorry für die bescheidene Anfänger-Frage:
Wie mache ich das mit der Hilfsvariable?
Ist das eine „normale“ Variable?
Und wie invertiere ich diese zum Originalstatus - per Script, oder gibt es da einen Trick?

besten Dank
LOG-IN

Hi,

Du legst eine normale BOOLEAN Variable an.

Diese lässt Du dann durch ein Script umschalten welches if Abfragen der Originalvariable macht und über bei der Änderung der Originalvariablen getriggert wird.

Sprich in der Form

getvalueboolean (Originalvariable), zum holen des Status

if (Originalvariable == True); Vergleich des Istwertes
setvalueboolean (Hilfsvariable, False), Setzen der Hilfsvariablen
else
setvalueboolean (Hilfsvariable, True), Setzen der Hilfsvariablen mit invertiertem Status.

So in der Art… ansonsten such mal nach dem Wort TOGGLE.

Gruss
B71

<?

$toggle = GetValue(20628);
if($toggle)
{
    SetValue(20628, false);
}
else
{
   SetValue(20628, true);
}
?>

Und so macht es der Fachmann :cool:

oder:

<?

SetValue(12345, !GetValue(98765));

?>

12345 ist die Hilfsvariable
98765 ist die Originalvariable

Das ist die Kurzform, leider können da Anfänger meist gar nichts mit anfangen. Deswegen bemühe ich mich den Code einigermaßen verständlich zu schreiben, was natürlich auch nicht immer gelingt.:wink:

Aber immer öfter…:smiley:

War auch nur als Ergänzung gedacht. Wenn man dein Beispiel hat und sich dann meins anschaut kann man als Anfänger vielleicht ja noch was dazulernen :rolleyes:

passt schon. :slight_smile:

Danke B71, Danke Rainer!
Thats it!
Funktioniert nun einwandfrei.
Habe das ganze sogar als Schalter hinbekommen
mit der Übergabe des invertierten Wertes in die andere Richtung :smiley:

Viele Grüsse
LOG-IN

:loveips:

Ich mal als Anfänger: den Code von RWN hab ich verstanden, den Code von Smokey hätte ich nie verstanden. Dennoch bin ich schwer beeindruckt wie effizient man Scripte gestalten kann wenn man PHP freihändig beherrscht. Daher sind die Beispiele (beide in Kombination) sehr, sehr hilfreich für mich!

Macht gern weiter so :slight_smile: