Jalousien nebeneinander im Webfront darstellen

Hallo Leute,

hier mal Skript:

If ($_IPS['EVENT'] == 22830  /*[Garage\Tor 1\Tor 1\RolladenViso Tor 1\Unbenanntes Objekt (ID: 22830)]*/)
	// Wird ausgelöst, wenn der Endschalter für "zu" auf false geht
	{
	// Tor 1 geht auf (ca. 15 sek)
	for($i=65; $i >= 0; $i--)
	{
		IPS_Sleep(200);
		Visualisierung((int)($i/65*100), "Undefiniert", "#0000FF"); //Blau
		if (GetValueBoolean(21187  /*[Garage\LOGO Steuerung\LOGO Merker 01 Tor 1 Auf\Value]*/) == true)
    		{
         break;
         Visualisierung(0, "Offen", "#00FF00"); //Grün
    		}
	}
	}
elseIf ($_IPS['EVENT'] == 48011  /*[Garage\Tor 1\Tor 1\RolladenViso Tor 1\Unbenanntes Objekt (ID: 48011)]*/)
	// Wird ausgelöst, wenn der Endschalter für "auf" auf false geht

	{
	// Tor 1 geht zu (ca. 24 sek)
	for($i=0; $i <= 115; $i++)
	{
		IPS_Sleep(200);
		Visualisierung((int)($i/115*100), "Undefiniert", "#0000FF"); //Blau
		if (GetValueBoolean(56272 /*[Garage\LOGO Steuerung\LOGO Merker 02 Tor 1 Zu\Value]*/) == true)
    		{
         break;
         Visualisierung(100, "Geschlossen", "#FF0000"); //Rot
    		}
	}
	}
elseif ($_IPS['EVENT'] == 43010  /*[Garage\Tor 1\Tor 1\RolladenViso Tor 1\Unbenanntes Objekt (ID: 43010)]*/)
	// Wird ausgelöst, wenn der Endschalter für "zu" auf true geht
	{
	// Tor 1 schließt
	Visualisierung(100, "Geschlossen", "#FF0000"); //Rot
	}
elseif ($_IPS['EVENT'] == 10407  /*[Garage\Tor 1\Tor 1\RolladenViso Tor 1\Unbenanntes Objekt (ID: 10407)]*/)
	// Wird ausgelöst, wenn der Endschalter für "auf" auf false geht
	{
	// Tor 1 geöffnet
	Visualisierung(0, "Offen", "#00FF00"); //Grün
	}

Return;

function Visualisierung($position, $text, $color)
	{
	$htmlBoxContent = '<div style="width:150px;height:102px;border:1px solid #cccccc;text-align:center;position:relative;">
	                        <div style="width:100%;height:'.$position.'%;background-color:#CCCCCC;background-image:linear-gradient(0deg, rgba(255, 255, 255, 0.9) 90%, rgba(0, 0, 0, 0) 10%);background-size: 6px 6px;z-index:-1"></div>
	                        <div style="color:'.$color.';width:150px;height:102px;position:absolute;top:0px;line-height:102px;text-align:center;vertical-align:middle; display:table-cell;z-index:2">'.$text.'</div>
	                        </div>';

	SetValueString(32472 /*[Garage\Tor 1\Tor 1]*/ , $htmlBoxContent);
   Return;
   }

So ganz gelungen scheint mir das nicht zu sein, obwohl die Funktion wohl gegeben ist.

Gegeben:
2 Endschalter
Zeit zum Herunterfahren ca. 24 Sek.
Zeit zum Öffnen ca. 15 Sek.
Beide Schalter offen: Tor in Bewegung, Status daher undefiniert
Endschalter geschlossen: Endposition erreicht

Vielleicht hat jemand ja noch einen Tipp, wie ich es besser strukturieren kann…

Joachim

hallo ich brauche schnell ne kurze Starthilfe da ich noch nicht gross php und html gemacht habe

zum Verständnis:
du hast 2 variablen je Jalousie
die eine ‚ID_WOHNZIMMER_VITRUAL_SHUTTER‘ ist ne stringvariable die den html code beinhaltet
und die 2te ‚ID_WOHNZIMMER_POSITION‘ ist die Position der Jalousie (ist das ne int?)
dann hast du ein Skript das die string variable versorgt (wenn mehrere Jalousien handelst du alles im gleichen skript ab im Beispiel sind es ja 3 oder?
Fragen:

  • ins webfont einbinden tust du dann die string ja?
  • das Skript löst du aus sobald irgend ein positionswert sich ändert oder machst du das zyklisch
  • was heisst : //if ($_IPS[‚SENDER‘] == „Variable“) { // zu Testzwecken auskommentiert
    habe versucht das bei mir einzubinden komme aber nicht so ganz weiter weder auskommentiert oder nicht
    aber denke das ich da grundlegend ein Fehler mache oder das noch nicht ganz verstanden habe

ich wäre froh wenn mir einer schnell Starthilfe gibt
PS ich hole oder habe die Positionen von Wago als int

gruss Roman

Hallo rkoster.

Zu deinen Fragen:

Frage: ins webfont einbinden tust du dann die string ja?
Antwort: Ja, jedoch muss du der Variable das Profil HtmlBox zuweisen.

Frage: das Skript löst du aus sobald irgend ein positionswert sich ändert oder machst du das zyklisch
Antwort: Es wird ausgelöst, sobald sich ein Wert ändert. Hierzu muss du für jede Jalousie ein Ereignis anlegen.

Frage: was heisst : //if ($_IPS[‚SENDER‘] == „Variable“) { // zu Testzwecken auskommentiert
Antwort: Der Code in der if Schleife wird nur ausgeführt, wenn das Script durch ein Ereignis aufgerufen wurde bei Änderung einer Variable. Möchtest du das Script von Hand starten um dir das Resultat anzusehen, muss die if-Bedingung auskommentiert werden.

Grüße

jevico

super funktioniert gut
und das beste nun versteh ich das ganze

nur auf dem Iphone da wird’s super klein dargestellt
und da sieht es schlechter aus als auf dem android phone vom vorherigen Post, schade
und das nebeneinander scheint auch nur dem Webfont vorbehalten
aber im webfont ist’s super

gruss Roman