Darstellung 2.4 Device Status

Hallo Zusammen,

der Status von Devices lässt sich schön verändern, aber muß ich wirklich einen Workaround bauen, damit ich wieder eine einzeilige Anzeige bekomme?

Bildschirmfoto 2011-06-13 um 16.30.43.png

Schöne Sache, einfach mit Links arbeiten und schon klappt’s :loveips:

Genau U.d.o.,

Dummy-Module und Links sind der beste Freund im neuen Webfront von IPS 2.4.

Wenn man mal alles sauber konfiguriert hat dann ist das Webfront mit dem iFront schön konform.

Könntet ihr vielleicht 2-3 Screenshots posten? Also von der Ansicht, wie es im WF aussieht und den dazugehörigen Dummy-Modulen und Links in der Konsole?

Danke!

Bei der Heizung bzw. den Raumthermostaten habe ich nur die Fenstergriffe per Link hinzugefügt.

Wo man das Prinzip der Dummy-Module mit verlinkten Werten verschiedener Sensoren besser sehen kann ist z.B. bei meinen Stockwerksübersichten. Würdest Du hier die Devices einzeln reinlegen wäre jeder Sensor eine eigene Zeile mit getrennten Rahmen.

Super, vielen Dank!

Hallo Werner,

wie hast du in deinem Screenshot die Variable „Target Mode“ (Integer) so hinbekommen, dass du die ganzen Modes zur Auswahl angezeigt bekommst ?
Wenn ich mir so eine Variable erstelle für meine Lüftung (Sommerbetrieb und Winterbetrieb sollen beide Mode´s ausgewählt werden können) sehe ich immer nur eine von beiden.
Irgendwo gibts da nen Trick den ich übersehe ^^

Momentan habe ich das nämlich etwas „unschön“ gelöst.
Ich habe 2 Variablen. Jeweils eine für Sommer bzw. Winterbetrieb mit einem Script dahinter. Wenn ich Sommerbetrieb aktiviere deaktiviert sich der Status Winterbetrieb und umgekehrt… wie gesagt… sehr unelegant.

Würde es lieber über eine Variable schalten wo ich dann meine Schaltstände zur Auswahl habe wie bei deinem „Target Mode“ für die Heizung.

Danke schonmal…
Gruß Christian

Hallo Christian,

bei Werner ist das ein FHT, dieser hat das automatisch mit drinnen. Du kannst dir aber eine Integervariable mit verschiedenen Assoziationen anlegen, dass ist dann das selbe. Abfragen kannst Du z.B. über case.

Hallo Rainer,
entweder bin ich zu blöd oder ich hab mich falsch ausgedrückt… ^^
Genau das mit der Integrervariable mit verschiedenen Assoziationen habe ich ausprobiert… Habe Testweise 2 eingetragen. Sommer und Winter. Er zeigt mir aber nur eine an. Ich möchte beide eingetragenen angezeigt bekommen um diese dann als „Schalter“ für Sommer / Winterbetrieb nutzen zu können. Ein einfachen Switch kann ich nicht nehmen, da ich ja auch eventuell eine 3 Assozination hinzufügen möchte für einen AUS Schalter… Also 3 verschiedene Modi die ich schalten möchte.

Anliegen ein Screenshot wie es aussieht aber nicht aussehen soll ^^

Da hat Rainer natürlich recht. Das ist ein voreingestelltes Profil für ein FHT.

In deinem Fall benötigst Du, wie auch von Rainer erwähnt, eine Integer-Variable mit 2 Assoziationen wo Du im Textfeld für z.B. den Wert 0 -> Aus und für den Wert 1 -> An machst.

Und jetzt kommt der Zaubertrick :rolleyes:. Du gibst der Variable ein Aktionskript in dem Du bei Klick auf 0 oder 1 mit z.B. switch/case den übergebenen Wert der Variable eine Aktion auslöst. Erst dann kommt die Mehrfachauswahl im Webfront

Ich habe Dir mal mein Beispiel mit meiner Squeezesteuerung angehängt.

Hier das Skript mit case.


if($IPS_SENDER == "WebFront")
{
   SetValue($IPS_VARIABLE, $IPS_VALUE);
}
 
switch($IPS_VALUE) {
 
  case 0:
       SqueezeButton(Wohnzimmer, 'stop');
  break;
  case 1:
     SqueezeButton(Wohnzimmer, 'pause');
  break;
  case 2:
     SqueezeButton(Wohnzimmer, 'play');
  break;
  case 3:
     SqueezeButton(Wohnzimmer, 'jump_fwd');
  break;
  case 4:
     SqueezeButton(Wohnzimmer, 'jump_rew');
  break;
 }
}

Du musst es als eigene Aktion dem Script zuweisen, dann siehst Du auch deine Schalter.

Sofern Du das Profil nicht auf eine ab Werk schaltbare Statusvariable anwendest, musst Du schon ein eigenes Aktionsskript definieren (Auswahl ist direkt unterhalb des Variablenprofils), damit das WebFront weiß, was es denn bei einem Klick machen soll. Eine einfache Variante, die nur den Variablenwert verändert, sieht so aus:

<?php
if ($IPS_SENDER == "WebFront")
{
    SetValue($IPS_VARIABLE, $IPS_VALUE);
}
?>

:smiley:

Jetzt hast Du 3 Antworten die alle auf das selbe Zielen :loveips:

Hallo zusammen,

ich war gerade in den Weiten meine IPS Verwaltungsconsole unterwegs, um zu Antworten, aber ich war zu langsam.

Mir ist dabei folgendes aufgefallen:

Ich habe hier ein Problem, welches in die gleiche Richtung zielt. Da man in 2.4 ja nun schön mit den Farben spielen kann, wollte ich das soeben tun und stelle fest, dass die Farben nicht übernommen werden. Müssten „Abwesend“, „Normal“ … nicht farblich hinterlegt sein?

Also prinzipiell funktioniert das draufklicken nach dem Update von 2.3 auf 2.4, aber die Farben werden irgendwie nicht angezeigt.

EDIT: Nehme ich die eigene Aktion aus der Variable raus, dann stimmt die Farbe, aber ich kann die anderen Möglichkeiten nicht auswählen!

Gibt es dafür auch einen Zaubertrick?

Gruß,
Christoph

Heizungsprofil_02.jpg

Du hast im Profil eine Schrittweite eingegeben.

Rainer, vielen Dank! Das war es. Ich stelle fest, Deine Glaskugel funktioniert zumindest bis 60km Entfernung :smiley:

Hab beim Anlegen des Variablenprofils damals wohl geschlafen.

Nun sieht alles so aus, wie es soll!

Jetzt hast Du 3 Antworten die alle auf das selbe Zielen

Ja so ist das hier im Forum: hier wird man noch mehrfach betreut :smiley:

In diesem Sinne

Tilo

Wow… das ging schnell mit euren Antworten und ich Danke für eure Hilfe… Das optische hab ich nun hinbekommen… aber ich komme nicht weiter. Ich bin totaler Anfänger was PHP angeht… :confused: Der Begriff Case sagt mir auch nicht viel…

Folgender Codeauszug mit dem ich zumindest das optische schonmal hinbekommen habe dank eurer Hilfe:

<?

 if($IPS_SENDER == "WebFront")
{
   SetValue($IPS_VARIABLE, $IPS_VALUE);
}

switch($IPS_VALUE) {

  case 0:
       SqueezeButton(Lueftung, 'Sommerbetrieb');
  break;
  case 1:
     SqueezeButton(Lueftung, 'Winterbetrieb');
  break;
  case 2:
     SqueezeButton(Lueftung, 'AUS');
  break;

 }
)

?>

Wenn ich nun mit dem ersten Schalter (Sommerbetrieb) ein Script ausführen möchte und mit dem 2. Schalter Winterbetrieb ein anderes Script und mit dem AUS Button eine Statusvariable schalten möchte… mache ich das wie ?

Oder kann / muss ich direkt in diesem Script die anderen Scripte integrieren ?

Ich verstehe nämlich nicht wie ich nun mit den 3 Buttons die ich habe verschiedene Dinge bzw. Scripte schalten kann…

Ich möchte mit dem Button Sommerbetrieb folgendes Script schalten:

IPS_SetEventActive(23822 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(24031 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(27254 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(35777 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(46967 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(59675 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(35368 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/  , true);  // Aktivert Ereignis
IPS_SetEventActive(33657 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/  , true);  // Aktivert Ereignis

und mit dem Button Winterbetrieb folgendes Script:

IPS_SetEventActive(35368 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // deaktiviert Ereignis
IPS_SetEventActive(33657 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // deaktiviert Ereignis
IPS_SetEventActive(23822 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(24031 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(27254 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(35777 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(46967 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(59675 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis

und mit dem AUS Button möchte ich die Statusvariable der Lüftung schalten (AN/AUS)

Hmmmmm… Fragen über Fragen… da ich mit CASE nichts anfangen kann hab ich einfach mal SWITCH genommen… klingt irgendwie logisch für mich.

Habs dann mal so aufgebaut… aber gibt nur Fehler ^^

<?

 if($IPS_SENDER == "WebFront")
{
   SetValue($IPS_VARIABLE, $IPS_VALUE);
}

switch($IPS_VALUE) {

  case 0:
IPS_SetEventActive(23822 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(24031 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(27254 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(35777 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(46967 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(59675 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // Aktivert Ereignis
IPS_SetEventActive(35368 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/  , true);  // Aktivert Ereignis
IPS_SetEventActive(33657 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/  , true);  // Aktivert Ereignis
  break;
  case 1:
IPS_SetEventActive(35368 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // deaktiviert Ereignis
IPS_SetEventActive(33657 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , false);  // deaktiviert Ereignis
IPS_SetEventActive(23822 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(24031 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(27254 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(35777 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(46967 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
IPS_SetEventActive(59675 /*[Erdgeschoss\HW Raum\Lüftungsanlage\]*/ , true);  // Aktivert Ereignis
  break;
  case 2:
     SetValue(53225, false);
  break;

 }


?>

Ist das total falsch gedacht ??? Wie gesagt… ich habe null Ahnung von Programmierung… was ich zu tiefst bereue :mad::confused::confused:

Ich kanns gut verstehen wenn ihr Eure Hände vors Gesicht schlagt ^^

Hab dir das letzte Script in deinem Post mal abgeändert.

Ich versuche es mal:

Grundsätzlich war die erste Konstruktion richtig. Also

switch($IPS_VALUE) {

  case 0:
       
  break;
  case 1:
     
  break;
  case 2:
     
  break;

 }

Aber:

Wenn Du mit 0 eine Variable setzen willst, mach es so:

 
case 0:
       SetValue(ID-der-Variablen, FALSE);
  break;

Wenn Du mit 1 oder 2 irgendwas anderes machen willst:


case 1:
     IPS_RunScript(ID-vom-Script)
  break;

Hoffe, das war verständlich?

Gruß,
Christoph