Problem beim Erstellen eines Wochenplans in einem Modul

Hallo,

ich möchte einen Wochenplan in einem Modul erstellen.
Dieser wird aber leider nicht richtig angelegt. Es wird keine Aktion erstellt und der Aktionswert ist immer 0 (AUS) ??

hier mein Code (Code Ausschnitt):


<?php

	class TestModule extends IPSModule 
	{
		
		const setting_Zeitplan_AUS       = 0;
		const setting_Zeitplan_Nacht     = 1;
		const setting_Zeitplan_Absenkung = 2;
		const setting_Zeitplan_Tag       = 3;
		const setting_Zeitplan_TagP2     = 4;
		const setting_Zeitplan_100proz   = 5;
		
		const ident_WochenPlanerWert      = 'ModusAusZeitplanWinter';
		const ident_Zeitplan              = 'Zeitplan';
		
		// **********************************************************************************************
		public function Create()
		{
			parent::Create();

			if (@$this->GetIDForIdent(self::ident_WochenPlanerWert) == false) 
			{
				// Setting-Variable vom Wochenplan anlegen
				$zeitplanParent = $this->RegisterVariableInteger( self::ident_WochenPlanerWert,  'WertAusZeitplan',  'psHeizungZeitplan', 50);    // Modus aus Zeitplan

				// Wochenplan
				$Zeitplan = IPS_CreateEvent(2);
                IPS_SetParent($Zeitplan, $zeitplanParent);
				IPS_SetPosition($Zeitplan, 20);
				IPS_SetEventActive($Zeitplan,true);
				
				// Werte für Wochenplan erstellen
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_AUS,       'Aus', 0x000000, '');
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_Nacht,     'Nacht', 0x0000FF, '');
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_Absenkung, 'Absenkung', 0x00FFFF, '');
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_Tag,       'Tag', 0x00FF00, '');
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_TagP2,     'Tag+2', 0xFFC800, '');
				IPS_SetEventScheduleAction($Zeitplan, self::setting_Zeitplan_100proz,   '100%', 0xFF0000, '');			

				// Gruppen erstellen (1x pro Wochentag)
				IPS_SetEventScheduleGroup ($Zeitplan, 0,1);
				IPS_SetEventScheduleGroup ($Zeitplan, 1,2);
				IPS_SetEventScheduleGroup ($Zeitplan, 2,4);
				IPS_SetEventScheduleGroup ($Zeitplan, 3,8);
				IPS_SetEventScheduleGroup ($Zeitplan, 4,16);
				IPS_SetEventScheduleGroup ($Zeitplan, 5,32);
				IPS_SetEventScheduleGroup ($Zeitplan, 6,64);

				$id = 1;
				
				// Standard Zeitplan erstellen
				for ($i = 0; $i <= 3; $i++) // Mo - Do
				{
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,0,0,0,  self::setting_Zeitplan_Nacht);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,5,0,0,  self::setting_Zeitplan_Absenkung);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,15,0,0, self::setting_Zeitplan_Tag);   
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,22,0,0, self::setting_Zeitplan_Nacht);   
				}
				for ($i = 4; $i <= 4; $i++) // Fr
				{
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,0,0,0,  self::setting_Zeitplan_Nacht);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,5,0,0,  self::setting_Zeitplan_Absenkung);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,11,0,0, self::setting_Zeitplan_Tag);   
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,22,0,0, self::setting_Zeitplan_Nacht);   
				}
				for ($i = 5; $i <= 6; $i++)  // Sa + So
				{
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,0,0,0,  self::setting_Zeitplan_Nacht);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,5,0,0,  self::setting_Zeitplan_Absenkung);    
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,7,0,0,  self::setting_Zeitplan_Tag);   
					IPS_SetEventScheduleGroupPoint($Zeitplan,$i,  $id++ ,22,0,0, self::setting_Zeitplan_Nacht);   
				}

                IPS_SetName($Zeitplan, 'Zeitplan Winter');
                IPS_SetIdent($Zeitplan, self::ident_Zeitplan);
            }
		}
			

das Ergebnis ist wie folgt: (Screenshots der aktuellen Pro-Console)



bitte um eine Hilfe, wo hier der Fehler liegt.
vielen Dank

liebe Grüße
Wolfgang

Bei IPS_SetEventScheduleAction gibst du für den Skriptinhalt einen leeren String mit, daher ist auch die Aktion leer. Hier musst du ein Skript schreiben, welches die gewünscht Aktion ausführt. Da das Skript leer ist, wird beim Bearbeiten dann eine Standardaktion mit Standardparametern angeboten.

Falls du dein Modul im Module Store einreichen möchtest, beachte hier bitte die Review-Richtlinien. Ereignisse dürfen nicht erstellt werden um interne Funktionalität anzubieten. Wenn du natürlich den Wochenplan erstellst, damit der Benutzer dadurch einen Zeitplan für das Modul einrichten kann, ist das in Ordnung.

Hallo Dr. Niels,
welches Script soll ich da reinschreiben? Es soll der Wert der Aktion in die übergeordnete Variable geschrieben werden.
lg
Wolfgang
PS: das Modul ist nur für mich (keine Veröffentlichung im Store geplant).

Nachtrag: der Wochenplan soll sich genauso verhalten, als ob er manuell angelegt wurde und die übergeordnete Variable aktualisieren.
lg
Wolfgang

Du könntest die Zielvariable beispielsweise per RequestAction($_IPS[‚TARGET‘], 3); auf den entsprechenden Wert schalten. Die 3 müsstest du natürlich in jedem einzelnen Skript auf den tatsächlichen Wert anpassen.