Anbindung Mediola AIO Remote und AIO Gateway zur Steuerung von IR Geräten

Bei Denon würde ich einfach das Denon Modul nutzten, da sollten sämtliche Befehle enthalten sein und Du hast dann schon Variablen, dann kannst Du Dir den umständlichen Weg mit extra Skripten sparen. Für die VU+ gibt es auch verschiedene PHP Module für Enigma, so das dort auch nicht notwendig sein sollte für jeden Befehl ein Skript zu verschicken. Für den Rest kannst Du Dir dann Variablen anlegen Bool für ein/aus, Integer wenn mehrere Befehle über einen Variable abgesetzt werden sollen (s.u.)

In so einem Fall kannst Du Dir z.B. eine Integer Variable anlegen. Du möchtest ja unterschiedliche verschiedene Befehle absetzten. Im Variablen Profil gibst Du dann jedem Befehl einen eindeutigen Namen, so kannst Du also mit einer Variable ziemlich viele Befehle nutzten. Unter IPS5 wurde das Limit von 32 für ein Variablenprofil glaube ich jetzt aufgehoben, so das da wohl fast eine Variable für ein Gerät ausreicht.

Dann hast Du ein Actionscript, hier unterscheidest Du dann nach dem Wert, auf den die Variable gesetzt wird.
Du must dann nur für jedes Befehl ein Switch Case einsetzten und das Command, das Du senden willst, wenn Die Variable den Wert annimmt, anpassen.


<?
 SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
 
 // Variablenprofil mit 1,2, 3
 
 switch ($_IPS['VALUE']) {
    case 0:
		// Command 1
		$command = "sendir,1:1,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,65,21,21,21,65,21,1425,341,85,21,3651\r";
        break;
    case 1:
		// Command 2
        $command = "sendir,1:1,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,65,21,21,21,65,21,1425,341,85,21,3651\r";
        break;
    case 2:
		// Command 3
        $command = "sendir,1:1,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,65,21,21,21,65,21,1425,341,85,21,3651\r";
        break;
	default:
		$command = false;
		
}

if($command)
{
	CSCK_SendText(53893, $command);
}
?>

Den Befehl für Case 2, 3 musst Du dann natürlich anpassen bzw. so viele Cases ergänzen wie Du benötigst.

Vielen Dank für deine Mühe.
Hab mich gleich mal ans ausprobieren gemacht und das mit der Integer Variable funktioniert soweit auch, dass ich es im IPS Webfront auch nutzen kann.

In NEO allerdings tut sich beim Ändern der Variable aber nichts. Hab ich irgendwo einen Denkfehler?
Der NEO-Button ändert zwar den Variablenwert aber das Aktionsskript löst nichts aus.





<?
 SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
 
 // Variablenprofil mit 1,2,3,4
 
 switch ($_IPS['VALUE']) {
    case 0:
        // Command 1
        $command = "sendir,4:2,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,1510,341,86,21,3653\r";
        break;
    case 1:
        // Command 2
        $command = "sendir,4:2,1,38000,1,69,342,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,65,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,1510,342,86,21,3653\r";
        break;
    case 2:
        // Command 3
        $command = "sendir,4:2,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,21,21,21,21,21,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,1595,341,85,21,3652\r";
        break;
    case 3:
        // Command 4
        $command = "sendir,4:2,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,1510,341,86,21,3652\r";
        break;
    default:
        $command = false;
        
}

if($command)
{
    CSCK_SendText(53893, $command);
}
?>


Ich hab mal versucht das Action Script mit einem Ereignis bei Variablen-Änderung auszulösen. Das funktioniert dann auch im Neo allerdings nur ein mal. Da bringt wenig wenn man den Befehl öfter nacheinender Ausführen will.
Bei Variablen-Aktualisierung kommt es irgendwie zu einer schleife (die das ganze system in die Knie Zwingt :slight_smile:

Dargestellt werden sie mir aber ohne Funktion.
Soweit ich das jetzt gelesen habe, löst das Aktions-Skript auch nur aus wenn ich die Variable über das Webfront ändere.
Wenn ich die Variable über NEO ändere tut sich nichts.

https://www.symcon.de/forum/threads/27729-Aktionsskript-wird-bei-Variablenänderung-nicht-ausgeführt?p=255397#post255397

Habes es lösen können indem ich das


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

weggelassen habe und dann das Skript bei einem Ereignis bei Variablenaktualisierung starten lasse.

Hier noch mal als Beispiel.


<?

 switch ($_IPS['VALUE']) 
 {
    case 1:
        // Power OFF
        $command = "sendir,4:1,1,38000,1,69,341,172,21,21,21,65,21,65,21,65,21,21,21,65,21,65,21,65,21,65,21,65,21,65,21,21,21,21,21,21,21,21,21,65,21,65,21,65,21,21,21,65,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,65,21,65,21,21,21,1510,341,86,21,3653\r";
        break;
    case 2:
        // Power ON
        $command = "sendir,4:1,1,38000,1,1,343,170,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,63,22,63,22,63,22,63,22,63,22,63,22,63,22,63,22,21,22,21,22,63,22,21,22,21,22,63,22,21,22,21,22,21,22,63,22,21,22,63,22,63,22,21,22,63,22,63,22,63,22,1502,343,84,22,3700\r";
        break;
    default:
        $command = false;
}

if($command)
{
    CSCK_SendText(53893, $command);
}

?>