Wochenplan in eine Variable schreiben

Hallo,

ich möchte einen Wochenplan in eine Variable schreiben. Die Variable wird nur in IPS verwendet also nicht über eine Instanz zu einem Gerät gesendet.
Dazu habe ich eine Dummy Instanz mit einer Variabel „FBH-Wochenplan“ erstellt. In diese würde ich gerne je nach Plan den Wert True oder False schreiben um dies in einem weiteren Skript auswerten zu können.

Könnte mir jemand helfen.
Wenn ich direkt die Instanz schalten will kommt logischerweise das hier keine Funktion hinterlegt ist, die Variante mit PHP analog der Wochenplan-Doku führt aber auch nicht zum Erfolg :frowning:

Wenn ich das richtig verstehe möchtest du die Variable je nach Aktion setzen. Dafür kannst du die Variable als Ziel des Wochenplans wählen und diese dann per Aktion „Auf Wert setzen“ auf den entsprechenden Wert setzen. Da brauchst du gar kein Skript für. Die Antwort bezieht sich auf die webbasierte Konsole, aber in der Legacy sollte das ähnlich funktionieren.

Hallo,

das hatte ich versucht, da kam aber auch eine Fehlermeldung.
Ich werde es aber heute abend nochmal testen.

Danke

ich habe auch ein Problem mit dem Wochenplan.
Im Webfront schalte ich eine Integer Variable um meine Rollos zu steuern.
An der Variable hängt ein Akrionsscript, was über das Webfront auch ausgelößt wird.
Der Wochenplan an der Variable schreibt zwar den Wert richtig, löst aber das Script nicht aus.
Kann mir das jemand erklären?

SetValue(37855, $IPS_VALUE);

if ($_IPS['SENDER'] == $Rollo)                           // Nur wenn variable geändert wurde
    {
    switch($_IPS['VALUE'])
	    {
	    case 0://"offen"
        HM_WriteValueFloat(56255, "LEVEL", 1.0); 
	    break;

	    case 1://"beschatten"
        HM_WriteValueFloat(56255, "LEVEL", 0.30); 
	    break;

	    case 2://"geschlossen"
        HM_WriteValueFloat(56255, "LEVEL", 0.0); 
	    break;

	    }
	}

Ralph

Falls Du da oben das komplette Script zeigst, dann fehlt die Zuweisung von $Rollo.

Danke für die schnelle Antwort.

Es war nicht das ganze script.
diese beiden Zeilen sind natürlich auch dabei


$Rollo = getvalueinteger(37855);

SetValue(37855, $IPS_VALUE);

Bitte mal die Doku zu $_IPS[‚SENDER‘] lesen. Diese Variable wird niemals den Wert der Variable enthalten. Hier liegt der Fehler.

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

Das Schreiben der Variable ist der Fehler.
Du musst die Aktion der Variable ausführen, so wie auch das WebFront dies macht.
Das wäre anstatt SetValue RequestAction.
Michael

Leider stehe ich mit $_IPS[‚VARIABLE‘] auf dem Schlauch.
Ich versuche nun, in einem Script die Sender ID auszuwerten.
Folgendes Senario habe ich.

Im Webfront schalte ich eine Integer Variable die ein Aktionsscript ausfüht, was auch funktioniert.
Am der Variable hängt ein Wochenplan, sodass die Variable nach Uhrzeit gesteuert werden kann.
Die Variable triggert auch, genau wie zwei HM Taster das nachfolgende Script.
Die Taster lösen richtig aus, die Variable triggert nicht.
Ich begreife es irgendwie nicht.

$time = date("H:i"); 
$tag = getvalueboolean(57656); 
$ID = $_IPS['VARIABLE']; 

Switch($ID)
 {
     # case ($ID == 22760):  #Schalter "Beschattung runter"
     #    HM_WriteValueFloat(56255, "LEVEL", 0.3); // geschlossen
	  # break;

	   case ($ID == 39332):  #Schalter"Rollo zu"
        HM_WriteValueFloat(56255, "LEVEL", 0.0); // geschlossen
	   break;
 

	   case ($ID == 55879):  #Schalter "Rollo auf"
        HM_WriteValueFloat(56255, "LEVEL", 1.0);// offen
	   break;

        case ($ID == 37855):  #Variable setzt script
        If($tag == true)
         {
        HM_WriteValueFloat(56255, "LEVEL", 1.0);// offen
        } 
        else
        {
        HM_WriteValueFloat(56255, "LEVEL", 0.0);// geschlossen
        } 
       
	   break;

  }  

Nur kurz drüber geschaut, aber du macht doch ein switch/case - also warum im case ein Vergleich, einfach nur die Zahl stehen lassen (das $ID == weg).

Gruß