HUE Dimmschalter: über eine Taste mehrere HUE Szenen schalten

Hallo,
habe umgestellt von der HUE Bridge auf Z2M und möchte gerne über den HUE Dimmschalter (HUE Taste) wie vorher im HUE System mehrere Szenen schalten können. Da aber die Taste ja nur einen Befehl sendet weiß ich nicht wie ich das angehen soll. Nutze für die Szenen das Skript von Pitti:

Dann würde ich noch gerne eine Szene über einen Homematic 6 Fach Taster schalten können. Wäre das dann dort:

RequestAction(‚ID der Szenen Integer‘), „Szenen Name“;

Das ist das gesamte Skript über das Schalten mit dem 6-fach Taster:

//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']);
}                    

Es geht dabei um diese beiden Zeilen (die sind noch vom HUE Modul):
PHUE_SceneSet(31806, ‚Nordlichter‘);
PHUE_SceneSet(17246, ‚Nordlichter‘); //Instanz der Zone Essbereich

Frage? Feststellung?
Ja, so wäre das. Nur nicht den Namen, sondern den (Index)Wert der Szene übergeben. Siehe im dazugehörigen Thema im Script bei Scene Profil, z.b. 0 für Sonnenuntergang.

Wäre die Frage nicht im Thema zum Z2M Modul besser aufgehoben?

Ein generisches Script was bei Ereignis x Variablen y schaltet hast du ja fertig.
Keine Ahnung was die Hue Dimmschalter per Z2M liefern (Screenshot wäre hilfreich gewesen).
Was aber immer geht, einfach bei jedem Tastendruck die Szene +1 zählen.
RequestAction(Scene Variablen, GetValue(Scene Variable)+1)!
Michael

Hallo Michael,

Ja, haste recht, wäre da besser gewesen. Kannst du es verschieben?

Bei der HUE Taste vom Dimmschalter gibt es „Aus losgelassen, Aus gedrückt, Aus halten“.

image

Vorher beim HUE Modul/System schaltete ich das Licht über die AN Taste An/Aus und über die HUE Taste wurden die Szenen durchgeschaltet.

Verschieben vom Beitrag bringt ja nicht viel, bei dem Misch Masch an fragen.
Stell doch ein zielgerichtet die Frage wie man die einzelnen Tasten in Symcon auswerten kann.
Da noch immer kein Screenshot vom Objektbaum mit den Variablen vorhanden ist, wäre jetzt alles raten.
Michael

Es gibt dabei nur die Variable „Aktion“

Edit: Habe die Z2M Frage im Z2M Modul neu gestellt.

Hab es selber noch nicht verwirklicht. Tendenziell müsste es so laufe das man auf „Taste x halten“ quasi ein Script starten welches über einen eine timer startet und sich dann in Intervallen selber aufruft und die helligkeitsvariable um x erhöht oder runter setzt. Wenn dann „Taste x loslassen“ oder man bei Helligkeit 0 angekommen ist deaktiviert man den timer und das Script kommt zum ende.

Bin noch nicht so mit den php scripten das ich dir hier in guter manier etwas einschmeißen könnte :blush:

Gruß Dennis

Die Lösung hat der Drache doch schon geschrieben.

so in etwa müsste das Script aussehen. Überlauf muss beachtet werden.

switch ($Aktion){
     case 'Aus gedrückt,':
         $szene = GetValue(ID der Szenenvariablen) + 1;
         if ($szene > Max_Szenen) $szene=0;
         RequestAction(‚ID der Szenen Integer‘), $szene);
         break;
}

Man könnte es auch im X-Sekunden Takt durchschalten bis man die Taste losläßt so wie ich das bei der Helligkeit mit dem Dimmer-Schalter gemacht habe.

btw. es heißt in Z2M aus weil das die jetzige Hue-Taste war also nicht verwirren lassen.

Ralf

Hallo Ralf,
ich hatte es nur versucht mit dem Einzeiler „RequestAction…“. Versuche das mal gleich aus. Das Skript kommt dann in das Ereignis und nicht als selbstständiges Skript? Das mit dem Dimmen würde mich auch interessieren. Weiß nicht wie man das anlegt als Skript.

Was ich gestern auch versucht habe die Szenen durchzuschalten mit dem Befehl, das ging auch nicht, habe da auch einen Fehler drin:

RequestAction('ID der Szenen Integer‘), 0;

Danke dir.

VG
Stefan

Hier mal ein Script das die Szenen-Variable im 2 Sekunden-Takt erhöht solange Du die Hue-Taste drückst:

<?php
if($_IPS['SENDER'] == "TimerEvent"){
    if (IPS_GetName($_IPS['EVENT']) == 'ScriptTimer'){
// Szenenvariable erhöhen
        $Szene = GetValue(53761) + 1;
// Szenenvariable überlauf verhindern
        if ($Szene > 10) $Szene = 0;
        SetValue(53761, $Szene);
// Hier Szene setzen        
        return;
    }
}
// Aktion vom Dimmer
$aktion = GetValue(33211);
switch ($aktion){
    case 'on_press':
        break;
    case 'off_press':
        IPS_SetScriptTimer($_IPS['SELF'], 2);
        break;
    case 'on_hold':
        break;
    case 'on_hold_release':
        break;
    case 'off_hold':
        break;
    case 'off_hold_release':
        IPS_SetScriptTimer($_IPS['SELF'], 0);
        break;
    case 'up_press':
        break;
    case 'up_hold':
        break;
    case 'up_hold_release':
        break;
    case 'down_press':
        break;
    case 'down_hold':
        break;
    case 'down_hold_release':
        break;
}
?>

Du musst ein Ereignis mit Aktion vom Dimmer und eine Integervariable anlegen.

Ralf

1 „Gefällt mir“

Ich habe jetzt mal diese Variante probiert, Szenen werden nicht geschaltet.

<?php

switch ($Aktion){
     case 'Aus gedrückt':
         $szene = GetValue(58001) + 1;
         if ($szene > Max_Szenen) $szene=0;
         RequestAction('58001'), $szene);
         break;
}

ID58001 ist die Integer mit den Szenen:

Das ist das Ereignis dazu:

##########################################

Bei deinem 2ten Skript habe ich mir noch eine zusätzliche Integer angelegt (ID47701), was aber so denke ich falsch ist und dort muss die Aktion Variable vom Dimmschalter rein (ID30607) und ein Ereignis erstellt:

<?php

if($_IPS['SENDER'] == "TimerEvent"){
    if (IPS_GetName($_IPS['EVENT']) == 'ScriptTimer'){
// Szenenvariable erhöhen
        $Szene = GetValue(58001) + 1;
// Szenenvariable überlauf verhindern
        if ($Szene > 10) $Szene = 0;
        SetValue(58001, $Szene);
// Hier Szene setzen        
        return;
    }
}
// Aktion vom Dimmer
$aktion = GetValue(47701);
switch ($aktion){
    case 'on_press':
        break;
    case 'off_press':
        IPS_SetScriptTimer($_IPS['SELF'], 2);
        break;
    case 'on_hold':
        break;
    case 'on_hold_release':
        break;
    case 'off_hold':
        break;
    case 'off_hold_release':
        IPS_SetScriptTimer($_IPS['SELF'], 0);
        break;
    case 'up_press':
        break;
    case 'up_hold':
        break;
    case 'up_hold_release':
        break;
    case 'down_press':
        break;
    case 'down_hold':
        break;
    case 'down_hold_release':
        break;
}

Variablen des Dimmschalters:

Mit Anführungszeichen? Das kann nicht gehen.

Ralf Biedermann

Meinst du bei der Zeile die ID.

RequestAction(‚58001‘), $szene);

Will irgendwie nicht.

<?php

switch ($Aktion){
     case 'Aus gedrückt':
         $szene = GetValue(58001) + 1;
         if ($szene > Max_Szenen) $szene=0;
         RequestAction(58001), $szene);
         break;
}

Das ist ja auch bestimmt falsch.
Du musst schon den echten Wert und nicht den angezeigten vom Profil benutzen.
Also so etwas wie z.B.:

Michael

RequestAction(58001), $szene);
Da schließt du doch gleich hinter der ID die klammer?!

1 „Gefällt mir“

Sorry, aber es geht nicht mit dem echten Wert und auch nicht wenn die Klammer weg ist.

Hi,
wie hast Du denn bis jetzt die Scene geschaltet? Ich meine Du konntest das schon benutzen. Das ist das einzige was in meinem Script nicht drin war der Rest ist so gelaufen.

Ralf

Wo füllst du denn die $aktion?

Moin Ralf,
vorher beim HUE System konnte ich mit der HUE Taste die hinterlegten Szenen durchschalten.
Jetzt mit Z2M schalte ich bis jetzt nur die Szenen über das Webfront, mit dem Skript von Pitti.

Das ist doch die Aktions Variable als Auslöser im Ereignis.