Mal wieder "nur" ein Schalter....

Frohe Weihnachten, liebe IPS User,

anhand der Frage ist denke ich mein „Status“ als IPS Anfänger schon einmal deutlich zu erkennen. Ich möchte gerne einen einfachen Schalter in das WebFront einbinden. Im Forum fand ich dazu neben vielen anderen den folgenden Beitrag:
Schalter und Buttons im Webfront

Das vom User mr_cg gepostete Vorgehen inklusive des Skripts hat mir dabei sehr geholfen und auch zum Erfolg geführt :-). @mr_cg: Solltest du das lesen - vielen Dank!!!

Ich wollte dann gerne auf eine „schönere“ Lösung umsteigen und habe das lt. User kronos „am meisten gepostete Skript“ verwendet:
<?
if($IPS_SENDER == „WebFront“)
{
SetValue($IPS_VARIABLE, $IPS_VALUE);
}
?>

Und dann nahm das Unglück seinen Lauf :-):
Das Skript 1:1 kopiert, als Actionskript an die Boolean Variable angebunden brachte nicht den gewünschten Erfolg (Fehlermeldung: $IPS_SENDER ist nicht definiert). Surprise…
Meine banalen Fragen:
Der Nomenklatur nach zu urteilen hätte ich mit den Variablen IPS_SENDER auf Systemvariablen getippt, die Doku kennt ja auch die Systemvariable, aber eben in einer anderen Nomenklatur. Gleiches gilt für die beiden anderen Variablen.
Systemvariablen — IP-Symcon :: Automatisierungssoftware

Kann mir jemand das Skript für „Dummies“ erklären? Ich komme an der Stelle nicht weiter…

Danke für eure Unterstützung als „verspätetes Weihnachtsgeschenk“.

VG Olaf

Das ist „Old School“ :loveips:
Neue Nomenklatura:


switch ($_IPS['SENDER']) :      // woher aufgerufen ??

// ---- X. Skriptauslöser Beim Aufruf eines Skriptes
    case "WebFront":            /*  Wenn das Skript durch das WebFront ausgeführt wurde
          Systemvariable          Bedeutung
          $_IPS['INSTANCE']       ID der auslösenden WebServer Instanz
          $_IPS['CONFIGURATOR']   ID des aktuell genutzten Konfigurators
          $_IPS['VALUE']          Neuer Wert der Variable
          $_IPS['VARIABLE']       ID der zu ändernden Variable
*/

SetValue($_IPS['VARIABLE'] , $_IPS['VALUE']);

// .....

endswitch;      // switch ($_IPS['SENDER']) 

Viele Grüsse
Harald

Hallo
Das war 2011. Probier mal dieses hier :

if ( $_IPS['SENDER'] == 'WebFront')
	{	
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
	}

Und immer schön dran denken, für den WebFront „Links“ zu verwenden. Damit ist man deutlich flexibler. Zudem Rechtsklick den Menüpunkt „sortieren“ nicht vergessen.

@T30 Die Variante mit der Switch-Anweisung finde ich auch deutlich übersichtiger.

Gesendet von iPad mit Tapatalk

Ich möchte aber einen Bool-Toggle über die Symcon App machen.
Variable: Bool, Profil: Switch, Eigene Aktion: nachstehendes Script.

Über das Webfront schalten klappt damit:
if ($_IPS[„SENDER“] === „WebFront“)
{
SetValue($_IPS[„VARIABLE“], !$_IPS[„VALUE“]); // ! = not = toggle auf den anderen Wert.
}

Aber über die App funktioniert das nicht.
Ganz ohne Sender-Abfrage klappt auch nicht.

SetValue($_IPS["VARIABLE"], !$_IPS["VALUE"]);

[QUOTE=juergen852;345834]
{
SetValue($_IPS[„VARIABLE“], !$_IPS[„VALUE“]); // ! = not = toggle auf den anderen Wert.
}

Das es mit dem Webfront klappt kann ich garnicht glauben.
Das mit dem " ! = not" macht ja aus dem neuen Wert den der Switch haben soll
wieder den alten Zustand. :confused:

…vielen herzlichen Dank! Jetzt klappt es natürlich…

An der Stelle möchte ich nicht müde werden und mein Feedback an das IPS Team loswerden: Solche Beispiele im Manual wären gerade für Anfänger sehr hilfreich und ersparen viele Stunden Try and Error (gut ,auch dabei lernt man was…).

Euch allen noch ein schönes Weihnachtsfest…

VG aus dem Allgäu, Olaf

…jetzt muss ich leider noch einmal kurz nachfragen: Ich kann jetzt den Schalter ansteuern und sehe im Meldungsfenster bzw. auch im Objektbaum den aktuellen Status --> Passt.

Wenn ich jetzt darauf basierend eine Aktion ausführen möchte würde ich eine einfache Abfrage der Variablen $IPS[‚VALUE‘] vornehmen. Das klappt aber so leider nicht:


if ( $_IPS['SENDER'] == 'WebFront') 
    {         SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); 	if ( $_IPS['VALUE'] == 'TRUE')		{		 $this->SendDebug("Status Schalter","TRUE",0);		}	else		{		 $this->SendDebug("Status Schalter","FALSE",0);		}    }  

Kann mir noch einmal jemand einen Tipp geben? Danke für die Hilfe!!!

VG Olaf



if ( $_IPS['SENDER'] == 'WebFront') 

    {     
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); 
	if ( $_IPS['VALUE'] == 'TRUE')
		{
		 $this->SendDebug("Status Schalter","TRUE",0);
		}
	else
		{
		 $this->SendDebug("Status Schalter","FALSE",0);
		}
    }  

if ( $_IPS[‚SENDER‘] == ‚WebFront‘)

{     
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); 
if ( $_IPS['VALUE'] == 'TRUE')
	{
	 $this-&gt;SendDebug("Status Schalter","TRUE",0);
	}
else
	{
	 $this-&gt;SendDebug("Status Schalter","FALSE",0);
	}
}

Der Vergleich ist nicht richtig. Der Wert ist vom Typ Boolean. Daher:

… == true )

Kurzes Demo-Video zum Bool-Toggle mit !=Not hier:
Credits an Bayaro

Mit dem Webfront klappt es, mit der Symcon-APP leider nicht.
Ich kann zwar auf die Bool-Variable klicken, man sieht dann kurz den „Programmausführungs-Kringel“ aber die Variable ändert sich nicht…

Hat da einer ne Idee?

Frohes Weihnachten noch. :slight_smile:

Hinweis:
Die 192.22.76.25 braucht ihr nicht zu testen. Ist rein intern.

Nimm endlich das Ausrufezeichen da raus.
‚Value‘ enthält den neuen Wert.
Und in deinem Video ist die Bedienung im Webfront genau falsch herum.
Auf Ein klicken um Auszuschalten?!

Darum geht es in der App auch nicht.
In der App kein Haken (Wert ist aktuell false).
Du klickst, die App sendet dann True und mit deinem Ausrufezeichen schreibst du somit wieder false in die Variable. Also keine Änderung.
Michael
PS: 192.22.0.0 ist kein privater Adressbereich, deine IP gehört öffentlich nach Michigan USA

2 Stunden, einen Ehekrach und eine „Eingebung“ später musste ich feststellen, dass wie meistens der Fehler vor dem Gerät sitzt…:eek:

Eine falsche Verlinkung - jetzt klappt alles. Vielen Dank noch mal an „euch“.

VG Olaf

!! Stimmt !! Du hast recht. Ohne den ! (Not) funktioniert es wie erwartet. Danke !!

Den Bereich hatten die „Experten :banghead:“ von Hewlett Packard ca. 1985 mit einer HP3000 bei uns intern eingeführt… So viele Rechner/IP’s braucht die Menschheit nie…:wink:
Seither Aufwand/Nutzen für die Umstellung zu hoch, auch wenn es die 3000er schon lange nicht mehr gibt…

Hi, wieviel Aufwand soll das sein, das man 32 Jahren einen Bogen darum macht ein ordentlich konfiguriertes Netzwerk zu haben?

Gesendet von iPhone mit Tapatalk