Auswahl-Schalter

hallo,

brauche als script/php-Beginner mal ne nen Anstoß wie ich einen Auswahlschalter mit dem ich über die Visualisierung (Webfront) eine Variable (z.B. integer) drei verschiebe Werte zuordnen kann. Wie es in der DOku unter Objekt-Darstellung beispielhaft gezeigt ist. (Möchte bei GoogleChart in Webfront die x-Achse umscalierten: 24h-Monat-Jahr). Dann muß ich vermutlich ja auch as Konfigurationscript nicht nur ändern sondern auch neu starten, wie mache ich das (automatisch)?

Danke

IPS_Auswahl.jpg

Nimm eine Integervariable und lege dir ein neues Profil an. In dem Profil kannst du unter Editieren die verschiedenen Auswahl-Möglichkeiten mit Wert und Anzeigetext anlegen. Das wars auch schon.


Bei mir sinds nur 2, aber wenn du 3 anlegst bekommst du auch eine 3-fach-Auswahl

mmm,

danke, aber ich glaube wir habens uns falsch verstanden. Ich will nicht drei unterschiedliche Variablenzustände anzeigen, sondern aus drei möglichkeiten auswählen („3-fachschalter“) und eine definierten Wert in eine Variable schreiben um damit in einen script eine veränderung zu bewirken.

Was anderes ist es doch nicht. Du hast nur den Zusammenhang nicht verstanden. :slight_smile:

@hardlog: aber das hatter doch erklärt (nur das er 2 Zustände im Screenshot hat statt drei) ?! :confused:

diese Variable kannst du mit einem beliebigen Action-Script verknüpfen…

hat sich überschnitten mit Rainers Post…

sorry,

jetzt verstehe ich nur noch bahnhof? Bitte nochmal für bemühte Einsteiger!

Wenn ich eine Variable wie von Hagbard235 beschrieben anlege, dann wird im Webfront in Abhängigkeit von dessen wert eine zugeordnete Textausgabe erwirkt.
Aber wie bekomme ich z.B. 3 unterschiedliche Auswahlmöglichkeiten: z.B: „1 Tag“, „1 Monat“, „1 Jahr“ in einer Zeile untergebracht und kann per Klick der dahinter stehenden Variable den entsprechenden Wert zuordnen?

Bevor jetzt 10 Mann sich die Arbeit machen, wer macht die Shots mit Script. :smiley:

er hats wirklich nicht verstanden;)

du bekommst keine Textausgabe angezeigt! in der Variable werden 3 Integer-Werte gespeichert. Zu jedem dieser Integer-Werte kannst du beliebige Assoziationen im Variablenprofil hinterlegen. Genau die werden im WFE angezeigt.

OK, das wichtige Detail hab ich vergessen: Du musst unten ein Actionscript eintragen, dann wird aus der Anzeige ein Aktion. Allerdings musst du in dem Script die Reaktion auf die verschiedenen Werte selber Scripten.

Ok dann ich.:smiley: Bilder kommen gleich.

switch($IPS_SENDER)
{
    case "WebFront":
        SetValue($IPS_VARIABLE, $IPS_VALUE);
    switch($IPS_VALUE)
    {
       case 0:
          //mach was
       break;
       case 1:
       // mach was
       break;
       case 2:
            // mach was
        break;
    }
    break;
}

Fetisch.

Ich war schon dabei, aber mein Server hat sich gerade erhängt… :mad:
Naja, jetzt machst du ja schon.

Super, DANKE

so solls sein, vielen Dank. Läuft!!! :loveips:
Mußte zwischenzeitlich manuell meinen frisch gesäaten Rasen sprengen.

Gruß
hardlog

So jetzt hab ichs fertig.

Den Inhalt des Scripts hab ich unverändert gelassen, da ich ja nur den über die Assoziation zugeordneten Wert brauchte. Den hab ich dann im Konfiguration-Script des Multigraph-Scripts im daten-Array der Variable „Zeitspanne“ zugeordnet und kann nun nett die X-Achse interaktiv anpassen.

Je „tiefer“ ich in IPS vordringe desto faszinierter bin ich!!!

Nochmals vielen Dank

Hallo, man soll ja immer suchen, ob es sein Thema schon gibt - ich bin fündig geworden und grabe den alten Thread wieder aus :stuck_out_tongue:

Ich möchte meine Lüftungsanlage über das Webfront steuern, in dem ich einen Schalter mit den Optionen 1, 2, 3 und 4 habe.

Drücke ich 1, sollen 3 Homematic-Aktoren geschaltet werden.
Drücke ich 2, sollen diese 3 Aktoren in anderer Kombination geschaltet werden usw.

Mein Skript sieht wie folgt aus:

<?
//Homematic-Kanäle
 //Kanal 1: 54682
 //Kanal 2: 56203
 //Kanal 3: 23379

switch($IPS_SENDER)
{
    case "WebFront":
        SetValue($IPS_VARIABLE, $IPS_VALUE);
    switch($IPS_VALUE)
    {
       case 1:
        HM_WriteValueBoolean(54682,"STATE",false);
	    HM_WriteValueBoolean(56203,"STATE",false);
	    HM_WriteValueBoolean(23379,"STATE",false);
       break;
       case 2:
	    HM_WriteValueBoolean(54682,"STATE",true);
	    HM_WriteValueBoolean(56203,"STATE",false);
	    HM_WriteValueBoolean(23379,"STATE",false);
       break;
       case 3:
	    HM_WriteValueBoolean(54682,"STATE",true);
	    HM_WriteValueBoolean(56203,"STATE",true);
	    HM_WriteValueBoolean(23379,"STATE",false);
        break;
        case 4:
	    HM_WriteValueBoolean(54682,"STATE",true);
	    HM_WriteValueBoolean(56203,"STATE",true);
	    HM_WriteValueBoolean(23379,"STATE",true);
        break;
    }
    break;
}  
?>

Wie bekomme ich jetzt den Schalter grafisch dargestellt und funktionsfähig? Ich dachte erst, ich muss ein Profil erstellen, aber hier komme ich nicht weiter. Hat das schon mal jemand in der Art realisiert, oder bin ich auf dem Holzweg?

Danke!

Profil erstellen mit den Assoziationen, der Variable dieses Profil zuordnen, dein Script als Aktions-Skript in der Variable eintragen.
Michael

Danke soweit - habe ich gemacht.

Ich erhalte jetzt einen Format Error: Invalid profil assiciation. Edit: Das habe ich gefunden, der Wert war 0 - trage ich 1 ein ist der Fehler weg und im Webfront Stufe 1 ausgewählt.

Die Variable ist im Integer-Format, das Skript steht oben.
Das Profil ist auch Integer mit Werten und Text 1, 2, 3 und 4.

Im Webfront bekomme ich "Undefined Variable: IPS_SENDER im Script.

Bitte um Hilfe. Danke :slight_smile:

Das ganze ist schon etwas älter und der Syntax hat sich geändert.

Einfach anpassen.

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

Die anderen auch entsprechend.

https://www.symcon.de/service/dokumentation/konzepte/skripte/systemvariablen/

Hallelulja, es funktioniert!

Danke! Hatte noch einen Fehler drin, die Homematic-Kanäle waren falsch…

Hier nochmal das fertige Script, falls es jemand verwenden möchte.

<?
//Homematic-Kanäle 
//Kanal 1: 16286 
//Kanal 2: 37400 
//Kanal 3: 26325 

switch($_IPS['SENDER'])
{
    case "WebFront":
        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
    switch($_IPS['VALUE'])
    {
       case 1:
        HM_WriteValueBoolean(16286,"STATE",false);
	    HM_WriteValueBoolean(37400,"STATE",false);
	    HM_WriteValueBoolean(26325,"STATE",false);
       break;
       case 2:
	    HM_WriteValueBoolean(16286,"STATE",true);
	    HM_WriteValueBoolean(37400,"STATE",false);
	    HM_WriteValueBoolean(26325,"STATE",false);
       break;
       case 3:
	    HM_WriteValueBoolean(16286,"STATE",true);
	    HM_WriteValueBoolean(37400,"STATE",true);
	    HM_WriteValueBoolean(26325,"STATE",false);
        break;
        case 4:
	    HM_WriteValueBoolean(16286,"STATE",true);
	    HM_WriteValueBoolean(37400,"STATE",true);
	    HM_WriteValueBoolean(26325,"STATE",true);
        break;
    }
    break;
}  
?>