Befehle im Designer durch Tab auslösen?

Nabend!

Ich habe jetzt schon mehrfach gelesen, das es scheinbar möglich ist durch den Aufruf eines Tabsheets im Designer auch Aktionen auszulösen … also z.B. beim Verlassen eines Tabs in dem ein Browserelement drin ist, dieses Tab zu „leeren“, so das das Browserelement leer ist. Oder umgekehrt beim Auswählen eines Tabs erst in diesem auch etwas aktives anzuzeigen wie z.B. den Auschnitt einer Webseite (Wetter).
Leider habe ich aber nirgends eine Anleitung dazu gefunden … auch nicht in der Doku!

Interessant wäre auch, ob ich durch das Auslösen eines „Knopfdrucks“ das Bild meiner Webcam (oder allgemein den Browserinhalt) für eine einstellbare Zeit anzeigen kann und danach wird automatisch wieder eine leere Seite angezeigt (um Netzwerktraffic zu reduzieren).

Grüße
Jens

Nichts leichter als das :wink:

Mein Code als Beispiel:


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : VIS_Flur_SetTabIndex.ips.php
Trigger  : 
Interval : 
*/

//GlobalDefines lesen
include_once(IPS_GetKernelDir() . "scripts\GlobalDefines.ips.php");

$debug = true; 

// schalte auf Kamera Seite wenn Bewegung
if ($IPS_SENDER == "Variable") {
  SetValueInteger("VIS_Flur_TabIndex", 4);
  IPS_SetScriptTimer($IPS_SELF, 60);
  SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/webcam.html');

} else {

// Schalte zurück auf Überblick
if ($IPS_SENDER == "TimerEvent") {
  SetValueInteger("VIS_Flur_TabIndex", 0);
  IPS_SetScriptTimer($IPS_SELF, 0);
  SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/leer.html');
} else {
 if ($IPS_SENDER == "Designer")
  switch($IPS_COMPONENT) {
    case "Uebersicht" :
      SetValueInteger("VIS_Flur_TabIndex", 0);
      SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/leer.html');
      break;
    case "Grundriss" :
      SetValueInteger("VIS_Flur_TabIndex", 1);
      SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/leer.html');
      break;
    case "Nachrichten" :
      SetValueInteger("VIS_Flur_TabIndex", 2);
      SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/leer.html');
      break;
    case "Wetter" :
      SetValueInteger("VIS_Flur_TabIndex", 3);
      SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/leer.html');
      break;
    case "Kamera" :
      SetValueInteger("VIS_Flur_TabIndex", 4);
      SetValueString("VIS_Flur_CAM_URL", 'http://172.16.100.250/webcam.html');
      break;
   }
   // Timer setzen, für Rücksprung auf Übersichtsseite 
   IPS_SetScriptTimer($IPS_SELF, 60);
}
}
?>

Und im Designer im TabObject bei TabIndex habe ich VIS_Flur_TabIndex und beim BrowserObject VIS_Flur_CAM_URL eingetragen (fast selbsterklärend bei den Variablennamen :)).

Etwas unglücklich ist, wenn man sich länger als 60 Sekunden eine Seite ansieht. Dann setzt das Script den Designer wieder auf die Übersichtsseite.

Hallo Ralf,

danke für das Script … genau so etwas habe ich gesucht :slight_smile: , dachte mir schon das es über ein Script laufen muss, nur wußte ich nicht wie das zu lösen sein könnte :confused:

Jens

Hallo Ralf,

ich habe jetzt versucht das Script einzubauen, komme damit aber nicht ganz klar, da bei mir die Voraussetzungen etwas anders sind … und ich die Möglichkeiten zum Scriptgesteuerten Verhalten im Designer auch nicht ganz verstehe :frowning:
Ich habe eine Übersichtsseite (Tab), die in 4 Teile aufgeteilt ist … unter anderem eben ein Browserobjekt, in dem die Kamera dargestellt wird.
Es soll nachher so sein, das entweder auf das Auslösen einer Variable das Kamreabild für eine gewisse Zeit sichtbar wird oder aber durch das Antippen des Bereichs der Kamera … d.h. ich habe keine Übersichtsseite, zu der ich zurück springen kann. Theoretisch müßte ich ja nur die URL zeitlich aktivieren und dann wieder deaktivieren … aber irgendwie sehe ich wohl den Wald vor lauter Bäumen nicht :frowning:

Wäre klasse wenn du mir da noch mal unter die Arme greifen könntest.

Gruß
Jens