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“.
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'])
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.
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.
[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.
…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…).
…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:
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.
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
!! Stimmt !! Du hast recht. Ohne den ! (Not) funktioniert es wie erwartet. Danke !!
Den Bereich hatten die „Experten “ von Hewlett Packard ca. 1985 mit einer HP3000 bei uns intern eingeführt… So viele Rechner/IP’s braucht die Menschheit nie…
Seither Aufwand/Nutzen für die Umstellung zu hoch, auch wenn es die 3000er schon lange nicht mehr gibt…