erkennen, wer Schalter betätigt

Hallo,

nach langer Suche frage ich nun doch.

Ich möchte im Script abfragen, ob der Homematic Schalter gedrückt wurde (manuell) oder dies von einem Script aus passiert.

Meine Idee war nun dies über §_IPS[‚SENDER‘] zu machen. Das Script wird ausgelöst,wenn die LEVEL Variabele der Lampe sich ändert.
Somit bekomme ich als Sender immer nur die LEVEL Variabele abgezeigt.
Die $_IPS [‚TRIGGER‘] Variabele liefert nur den Wert „Trigger“.

Wo ist da mein Denkfehler. Ich hatte das früher schon mal hin bekommen, aber weiß nicht mehr wie.

Ich benutze die Raspberry Version und bin mir auch nicht sicher, ob die Trigger Variabele nicht einen falschen Wert liefert.

Danke schon mal
andyfis

Moin…

… da warst Du doch schon gar nicht so verkehrt.

Du kannst es so machen:


<?

switch ($_IPS['SENDER'])
			{
					
				case 'Variable':
	     		// HIER DAS REIN WAS PASSIEREN SOLL, WENN DAS SKRIPT DURCH EINE VARIABLE AUSGEFÜHRT WIRD!
		  		break;
		  		
		  		case 'TimerEvent':
	     		// HIER DAS REIN WAS PASSIEREN SOLL, WENN DAS SKRIPT DURCH EIN TIMEREVENT AUSGEFÜHRT WIRD!
		  		break;
		  		
		  		case 'Execute':
	     		// HIER DAS REIN WAS PASSIEREN SOLL, WENN DAS SKRIPT MANUELL DURCH DEN AUSFÜHREN-BUTTON GESTARTET WIRD!
		  		break;

				//MÖCHTEST DU ES NOCH WEITER RUNTER BRECHEN, OB EIN BESTIMMTES EREIGNIS DAS SKRIPT AUSGEFÜHRT HAT
				//ODER EINE VARIABLE MUSST DU ES SO MACHEN.
				
				case ($_IPS['EVENT']==12345): // EIN BESTIMMTES EVENT (TIMER ETC.) WELCHES DAS SKRIPT TRIGGERT!
				// HIER DAS REIN WAS PASSIEREN SOLL, WENN DAS SKRIPT MANUELL DURCH DEN AUSFÜHREN-BUTTON GESTARTET WIRD!
		  		break;
		  		
		  		case ($_IPS['VARIABLE']==12345): // EINE BESTIMMTE VARIABLE AUSWERTEN WELCHE DAS SKRIPT TRIGGERT HAT!
				// HIER DAS REIN WAS PASSIEREN SOLL, WENN DAS SKRIPT MANUELL DURCH DEN AUSFÜHREN-BUTTON GESTARTET WIRD!
		  		break;
		  		
		  		}
		  		
		  		

?>

Google mal nach PHP Switch und schau Dir die Erklärung zu dem PHP Switch Befehl an.

Bei case ‚Variable‘ kannst Du nicht unterscheiden welche Variable das Skript ausgelöst hat, wenn es mehrere gewesen sein könnten.
Wenn Du wissen willst welche es war fragst Du es mit case ($_IPS[‚VARIABLE‘]==12345) ab.
Das Gleiche beim TimerEvent.

Gruß,
Peter

Hallo Peter.
Das Problem ist nur, dass es keinen Unterschied gibt, ob ich den Schalter von Hand betätige, oder es per Android App mache oder ein Script ausführe.

Mir wird immer angezeigt, dass die variabel die LEVEL Variabele ist.
Ich finde keinen Unterschied zwischen Schalter oder der Ausführung per Script.