HUE Szenen via Z2M nachstellen

Ist ja auch kein Problem das Array der Farben auf 12 zu erweitern - ist ja nur eine Vorlage und ich hatte nur max 4 Lampen in einer Gruppe!

Gruß Heiko

Meinst du bei Aufbau Array. Da habe ich auf 12 Lampen erweitert.

Ich meine das $ACTIONS Array!

Das $LIGHTS ist ja schon flexibel und dynamisch!

Gruß HEiko

Ok, ich dachte das wären nur die einzelnen Farben die du definiert hast. Bei den Szenen mit mehreren Farben würden dann somit die definierten Farben auf die Anzahl der Lampen aufgeteilt, was ja auch eigentlich funktioniert. Von 12 Lampen sind ja 11 richtig oder ich habe einen Denkfehler. Aber möchte dich nicht weiter nerven. Nochmals Danke dafür.

Ist ja richtig, aber wenn Du mehr Lampen als 4 hast und diese individuelle Farben zuweisen möchtest, dann muss man das Array erweitern. Weil sonst die Lampen 5 bis x (bei Dir 12) alle die letzte Farbe im Array bekommen!

Gruß HEiko

Gut, das war mir klar. Wie ich oben schon Mal geschrieben habe war bei mir die Nordlichter mehrere Farben und die muss ich dann dort einfügen. Aber bei z.b. Tropendämmerung müssten ja alle leuchten die definierten Farben haben, aber eine ist davon weiß und die ist ja im Skript nicht definiert bei der Szene. Ich gehe einfach mal hin und erweitere dann mal das Farben Array und sehe ja dann was passiert.

1 „Gefällt mir“

Moin Heiko,
wenn ich eine Szene aus einem Skript raus schalten möchte, wie wäre dann der Befehl dafür? RequestAction geht nicht.

@HarmonyFan meinte eventuell so:

SetScene($LIGHTS[$_IPS[‚VARIABLE‘]], $ACTIONS[$_IPS[‚VALUE‘]]);

Naja, ich würde das Script dann um paar Zeilen erweitern …

// AKTION VIA RUNSCRIPT
if ($_IPS['SENDER'] == 'RunScript') {
    // Speichern (Wert übernehmen)
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
    // Szene ausführen
    SetScene($LIGHTS[$_IPS['VARIABLE']], $ACTIONS[$_IPS['VALUE']]);
}

und dann mit folgendem Aufruf schalten …

IPS_RunScriptEx($actionScript, array("VARIABLE" => $targetVariable, "VALUE" => $targetValue));  

$targetVariable & $targetValue musst Du dann entsprechend setzen bzw. übergeben!!!

Gruß Heiko

Ich würde gerne eine Szene schalten über einen Homematic 6-fach Taster. Bei Taste 6 Long und Short. Vorher mit dem HUE Modul ging das über PHUE_SceneSet(17246, ‚Nordlichter‘);

Hier mal das Skript:

//Wohnzimmer Decke

//Taster Links und Rechts / Tastfeld 1 / Kurz

switch ($_IPS['EVENT']) {
    case 24763: //Ereignis Taste 1 SHORT (Schalter 1 Links)
    case 33609: //Ereignis Taste 1 SHORT (Schalter 2 Rechts)
        //Wohnzimmer Decke An/Aus in Kaltweiß und 20%
        if (GetValueBoolean('38990') == false) { //Status Variable der Gruppe Wohnzimmer Decke
            RequestAction('39327', 50); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 153); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        } else {
            RequestAction('38990', false); //Status Variable der Gruppe Wohnzimmer Decke
        }
        break;

//Taster Links und Rechts / Tastfeld 1 / Lang        

    case 38157: //Ereignis Taste 1 LONG (Schalter 1 Links)
    case 35985: //Ereignis Taste 1 LONG (Schalter 2 Rechts)
        //Wohnzimmer Decke in Warmweiß und 20%
            RequestAction('39327', 50); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 350); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;

//Taster Links und Rechts / Tastfeld 3 / Kurz   

    case 56226: //Ereignis Taste 3 SHORT (Schalter 1 Links)
    case 18199: //Ereignis Taste 3 SHORT (Schalter 2 Rechts)	
        //Wohnzimmer Decke in Kaltweiß und 50%
            RequestAction('39327', 127); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 153); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break; 

//Taster Links und Rechts / Tastfeld 3 / Lang    

    case 27790: //Ereignis Taste 3 LONG (Schalter 1 Links)
    case 24435: //Ereignis Taste 3 LONG (Schalter 2 Rechts)	
        //Wohnzimmer Decke in Warmweiß und 50%
            RequestAction('39327', 127); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 350); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;  

//Taster Links und Rechts / Tastfeld 5 / Kurz       

    case 26528: //Ereignis Taste 5 SHORT (Schalter 1 Links)
    case 36706: //Ereignis Taste 5 SHORT (Schalter 2 Rechts)	
        //Wohnzimmer Decke in Kaltweiß und 100%
            RequestAction('39327', 254); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 153); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;  

//Taster Links und Rechts / Tastfeld 5 / Lang          

    case 24542: //Ereignis Taste 5 LONG (Schalter 1 Links)
    case 39495: //Ereignis Taste 5 LONG (Schalter 2 Rechts)	
        //Wohnzimmer Decke in Warmweiß und 100%
            RequestAction('39327', 254); //Variable Helligkeit Wohnzimmer Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('35311', 350); //Variable Farb Temperatur KaltWeiß (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;


//Flur Decke        

//Taster Links und Rechts / Tastfeld 2 / Kurz  

    case 58468: //Ereignis Taste 2 SHORT (Schalter 1 Links)
	case 15355: //Ereignis Taste 2 SHORT (Schalter 2 Rechts)
        //Flur Decke An/Aus in Kaltweiß und 20%
        if (GetValueBoolean(26677) == false) { //Status Variable der Gruppe Flur Decke
            RequestAction('13658', 50); //Variable Helligkeit Flur Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('42691', 153); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        } else {
            RequestAction('26677', false);  //Status Variable der Gruppe Flur Decke
        }
        break;

//Taster Links und Rechts / Tastfeld 2 / Lang        

    case 49601: //Ereignis Taste 2 LONG (Schalter 1 Links)
    case 20478: //Ereignis Taste 2 LONG (Schalter 2 Rechts)	
        //Flur Decke in Warmweiß und 20%
            RequestAction('13658', 15); //Variable Helligkeit Flur Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('42691', 350); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;

//Taster Links und Rechts / Tastfeld 4 / Kurz       

    case 18705: //Ereignis Taste 4 SHORT (Schalter 1 Links)
    case 39819: //Ereignis Taste 4 SHORT (Schalter 2 Rechts)	
        //Flur Decke in Kaltweiß und 100%
            RequestAction('13658', 254); //Variable Helligkeit Flur Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('42691', 153); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break; 

//Taster Links und Rechts / Tastfeld 4 / Lang     

    case 11715: //Ereignis Taste 4 LONG (Schalter 1 Links)
    case 49764: //Ereignis Taste 4 LONG (Schalter 2 Rechts)	
        //Flur Decke in Warmweiß und 100%
            RequestAction('13658', 254); //Variable Helligkeit Flur Decke (Helligkeit Wert 0-254) (Prozentzahl x 2,54)
            RequestAction('42691', 350); //Variable Farb Temperatur (Temperatur Wert 153-500 Mired) (Kaltweiß bis Warmweiß)
        break;   

//Taster Links und Rechts / Tastfeld 6 / Kurz      

    case 24960: //Ereignis Taste 6 SHORT (Schalter 1 Links)
    case 53435: //Ereignis Taste 6 SHORT (Schalter 2 Rechts)	
        //Flur Decke Szene „Nordlichter“ an
            PHUE_SceneSet(31806, 'Nordlichter'); //Instanz des Raumes Flur
        break;   

//Taster Links und Rechts / Tastfeld 6 / Lang        

    case 56203: //Ereignis Taste 6 LONG (Schalter 1 Links)
    case 24809: //Ereignis Taste 6 LONG (Schalter 2 Rechts)	
        //Wohnzimmer Decke Szene „Nordlichter“ an
            PHUE_SceneSet(17246, 'Nordlichter'); //Instanz der Zone Essbereich
        break;



    default:
        trigger_error('Unerwartetes Event: ' . $_IPS['EVENT']);
}

Naja, du erweiterst wie geschrieben das Scene-Script mit dem oberen Teil und das

IPS_RunScriptEx($actionScript, array("VARIABLE" => $targetVariable, "VALUE" => $targetValue));  

kopierst an die Stelle wo PHUE_SceneSet steht.

Das sollte es gewesen sein.

Heiko

1 „Gefällt mir“

Version 3.0.20231220

Dank @Stefan71 gibt es jetzt vieeeeeeel mehr Szenen zum genießen :slight_smile:

Update im ersten Post!

Gruß Heiko

Hallo Heiko,
was hat es mit der Warnmeldung auf sich, wenn ich das Skript ausführe?

Warning: Cannot auto-convert value for parameter Digits (Type does not match) in /var/lib/symcon/scripts/System.Functions.ips.php on line 296

Das Profil Z2M.LightScene bleibt bei mir jetzt auch leer.

Ups, bei mir nicht - ich schau mal!

Ich hatte das „alte“ Profil gelöscht und seitdem wird es nicht mehr befüllt. Hast du die Szenen mal probiert? Ich habe das Gefühl das die All4HUE App die Farbcodes nicht korrekt ausgibt. Aber konnte es ja noch nicht richtig testen wegen dem fehlendem Profil.

Bei mir wird das Profil schön neu angelegt/überschrieben!

Hast Du die neuste Version von Systems.Function.ips.php im Einsatz? Da hatte ich einen Fehler in der Profilfunktion drin :frowning:

War wohl nicht so ne dolle Idee mit der Scriptbibo für alle - schwer Änderungen und Abhängigkeiten zu tracken :frowning:

Gruß Heiko

Ne, habe da schon lange nichts mehr aktualisiert. Mache es gleich mal. Habe noch die Version 2.1.20230121

Da war ja in dem Systems.Function.ips.php Skript nichts anzupassen/ergänzen?

Irgendwas mache ich schon wieder falsch. Wenn ich das Skript aktualisieren möchte bekomme ich eine Fehlermeldung:

Das hat aber nix mit meinem Script zu tun! Console nochmal neu starten bzw. Pro nutzen!?

Ne klar. Habe jetzt neu gestartet und die Neue Version des Skriptes per Copy&Paste einfügen wollen und bekomme wieder die gleiche Meldung.

Wie bist Du genau vorgegangen?

(?) Github copy RAW → paste Console

Geh doch mal den Umweg über einen lokalen Texteditor - nur zum Test!