IPS-RGBW-868 über Homematic-Taster steuern

Ich möchte mit einem Tastendruck (lang) meiner HM-Komponente meinen LED Stripe steuern.


$id_Taster = 20561 /*[Schlafen\Lichtschalter Yvonne\PRESS_LONG]*/  ;
$id_LED_TREPPE = 35921 /*[Flur\LED - Treppe]*/  ;


if ($id_Taster == true and $id_LED_TREPPE == false)

     PJ_DimRGBW($id_LED_TREPPE,150,150,150,150,150,150,150,150);


elseif ($id_Taster == true and $id_LED_TREPPE == true)

     PJ_DimRGBW($id_LED_TREPPE,0,0,0,0,0,0,0,0);

Aber da geht nichts …:confused:

$id_Taster == true

Du überprüfst die ID´s auf true, nicht deren Inhalt. Also vorher ein GetValue($id) machen.

Jo … habe es geändert … Geht aber nur wenn ich es in IPS ausführe aber nicht wenn ich den Taster drücke …


<?

$id_Taster = GetValue (11118  /*[Zimmer Yvonne\Taster Licht Zimmer Yvonne\PRESS_LONG]*/) ;
$id_LED_TREPPE = GetValue (38145  /*[Flur\LED - Treppe\Color]*/) ;
$id_LED = 35921  /*[Flur\LED - Treppe]*/ ;


if ($id_Taster == true and $id_LED_TREPPE == false)

PJ_DimRGBW($id_LED,150,150,150,150,150,150,150,150);


elseif ($id_Taster == true and $id_LED_TREPPE == True)

PJ_DimRGBW($id_LED,0,0,0,0,0,0,0,0);

?>

Hast Du denn ein auslösendes Ereignisauf den Taster gelegt?

Jo grade eben …:smiley:

jetzt läuft es … danke für die Hilfe …

Holli …

Ich muss mal motzen…
Solche Themen „Irgendwie klappt das nicht“ und dazu im falschem Forum finde ich ich egoistisch für die, die nach einer Problemlösung die Boardsuche anstrengen und deshalb nicht fündig werden. Deshalb haben es Neueinsteiger nicht gerade leicht und es erscheinen immer wieder Fragen zu Themen, die schon zigmal beantwortet wurden.
Kann man nicht sinnvollere Themen wählen?

@superuser002
Du hast bestimmt auch schon nach Problemlösungen mit Stichwörtern gesucht.
Würdest du für die Suche diese Wortwahl verwenden?

Hast recht … so findet man nie was …
Ich bin ja nun selber Neueinsteiger und und suche hier nach so manchen Sachen und finde nicht das Richtige.
Aber es liegt ja nicht nur immer an der Themen Bezeichnung sondern auch daran das man nicht immer genau weißt was man sucht (genaue Bezeichnung).
Manchmal ist es für mich auch so wenn manche IPS Profis was schreiben und ich verstehe nur Bahnhof …

So ist es als Anfänger …

Aber …es kommt nicht wieder vor …

Gruß Holli

Hallo …
Das mit dem schalten geht echt super. Habe noch die Taster id rausgeworfen damit ich das Script auch mit anderen Tastern nutzen kann.

Nun möchte ich auch noch dimmen. HM Taster kurzer Tastendruck an und aus (geht ja bereits) und langer Tastendruck Dimmen (IPS-RGBW 868 Controller und HM - Funk Taster). Alles mit nur einem Taster Kanal. Einmal langer Tastendruck hoch dimmen beim Zweiten mal langer Tastendruck runter dimmen …

Ist das möglich ?? Und wenn ja wie ??

Gruss Holli .

Auf welche(s) Event/Variablenaktualisierung trigerst du denn momentan dein Skript? Werden die Variablen PRESS_SHORT bzw. PRESS_LONG aktualisiert, wenn du die entsprechende Variante ausführst?

Also wenn PRESS_SHORT dann auslösendes Ereignis bei Variablenaktualisierung das Skript ausführen.

In IPS stehen die Variablen immer auf true.

Holli

Das Problem ist, das du nur feste Dimmschritte per Script festlegen kannst. PRESS LONG funktioniert genau so wie SHORT. Das Script wird auf Aktualisierung der Variable getriggert. Eine Art auslesen wie lange der Button gedrückt wurde gibt es nicht … also wäre nur die Möglichkeit Dimmschritte in % festzulegen.

Code ausm Kopf geht gerade nicht … du brauchst quasi ne Variable für den Dimmstatus in % und theoretisch 2 Button. 1 Button zum Dimm_up und einen Dimm_down. Überprüfen ob Status >=0 und <=100 und dann eben den Wert hoch oder runter setzen.
So würde ich das lösen … bzw. so werde ich das lösen :smiley:

Gruß
Jens

Hallo …

Kann ich denn abfragen ob der Taster immer noch gedrückt ist ??

Ich dachte denn so …

Hochdimmen:
Taster Lang skript startet.
Dimmwert abfragen, Dimmwert+5, dann Dimmwert schreiben, abfragen ob Taster noch gedrückt wird, wenn ja eine Schleife zum Anfang, wenn nein oder Dimmwert Maximal dann Skript Ende.

Holli

Das geht, aber du musst das Script auf Aktualisierung beider Variablen triggern (PRESS_LONG u. PRESS_SHORT).
Ich habe das mal anhand einer Integer-Variable getestet, wegen Mangel an IPS-RGBW868.:smiley:
Alles mit einer Taste der Fernbedienung!
Dabei wird aber entweder aus/eingeschalten oder komplett rauf o. runter gedimmt. Für Zwischenwerte müsste man das Script noch weiter anpassen.

<?
$long = VAR-ID; // ID Variable PRESS_LONG
$short = VAR-ID; // ID Varaible PRESS_SHORT

$var = GetValue(25762  /*[Test\Test-Integer 1]*/); // Dimmer-Zustand (1 = down / 2 = up)

// "SetValue" mit passenden Befehlen "PJ_DimRGBW" ersetzen

if ($IPS_VARIABLE == $long)   //DIMMEN
{
	if ($var == 1)
	{
	SetValue(25762  /*[Test\Test-Integer 1]*/, 2);  // Befehl DIMMEN UP
		}else{
		SetValue(25762  /*[Test\Test-Integer 1]*/, 1);  // Befehl DIMMEN DOWN
		}
}else{   // SCHALTEN
   if ($var == 1)
	{
	SetValue(25762  /*[Test\Test-Integer 1]*/, 2);  // Befehl SWITCH ON
		}else{
		SetValue(25762  /*[Test\Test-Integer 1]*/, 1); // Befehl SWITCH OFF
		}
}
?>

Hallo …

Werde ich am Freitag gleich mal testen, bin dann erst wieder zu hause.

Wahrscheinlich reicht das skript auch so …

Holli …

Kommst du zurecht?

Hallo . .

Konnte es noch nicht testen. Warte noch auf bestelltes E-Material .
Sollte eigentlich am Freitag da sein. Der Weihnachtsmann hatte wohl Vorrang :slight_smile: .
Habe am Donnerstag erst wieder Wochenende (Na ja was heißt erst) und bin dann wieder zu Hause.

Dann geht es los …

Holli . .

Der Sinn obiger Code-Zeilen erschließt sich mir nicht.
Ob nun komplett rauf-runter gedimmt wird oder ein/ausgeschaltet wird…. Macht imho keinen Unterschied.
„Normale“ Wandeinbau Dimmer mit Touch funktionieren wie folgt:
2 Hilfsvariablen: raufrunter(bool) und helligkeit(byte) o.ä.
Bei PressShort:

  • wenn helligkeit 0 dann helligkeit 25 und raufrunter=wahr
  • Wenn helligkeit 25 dann
    • wenn raufrunter dann helligkeit=50 sonst helligkeit=0
  • wenn helligkeit 50 dann
    • wenn raufrunter dann helligkeit=75 sonst helligkeit=50
  • wenn helligkeit 75 dann
    • wenn raufrunter dann helligkeit=100 sonst helligkeit=50
  • wenn helligkeit 100 dann helligkeit 75 und raufrunter=falsch
    Bei PressLong:
  • Wenn helligkeit > 0 dann helligkeit = 0 sonst helligkeit = 100

So leider ist mit PHP noch nicht so geläufig (ich kann nur Delphi) dass ich das mal schnell in PHP Codiere. Aber so hast Du zumindest schon mal ein Programm, was Deinem Wunsch am nächsten kommt…. Natürlich lassen sich die Schritte beliebig anpassen. Z.b. 15er oder 10er Schritte. Mehr als Sequentiell wirst Du aber mit den einfachen Tasten nicht hinbekommen. Bei den Funktasten verbietet das Protokoll das bereits (PressLong wird erst NACH loslassen der Taste gesendet bei Wired noch während die Taste gedrückt wird). Ein Billiges Android Tablett für ca. 75€ ist da vielleicht der bessere Schalter.
LG
//Sven

…besteht darin, dass man mit einer Taste einer HM-Fernbedienung o.ä. durch Auswerten von PRESS-LONG u. PRESS_SHORT 4 Bedienungsmöglichkeiten hat.

Es geht ja hier um den Befehl PJ_DimRGBW, den man zum Schalten bzw. Dimmen benutzen kann indem man eine Zeit für die jeweilige Ausführung vorgibt.
Das muss man im jeweiligen Block des Scripts einsetzen.
Da ich die dazu nötige Hardware nicht besitze, habe ich es anhand einer Hilfsvariable (Integer) getestet. Das muss man beachten, sonst versteht man den Code evtl nicht :wink:

Hallo …
Irgendwie geht da was nicht …


<?
$long = 57958 /*[KEY\PRESS_LONG]*/ ; // ID Variable PRESS_LONG
$short = 12128 /*[KEY\PRESS_SHORT]*/ ; // ID Varaible PRESS_SHORT

$var = GetValue(38145  /*[Flur\LED - Treppe\Color]*/ ); // Dimmer-Zustand (1 = down / 2 = up)


// "SetValue" mit passenden Befehlen "PJ_DimRGBW" ersetzen

if ($IPS_VARIABLE == $long)   //DIMMEN
{
    if ($var == 1)
    {
    PJ_DimRGBW(35921  /*[Flur\LED - Treppe]*/, 2);  // Befehl DIMMEN UP
        }else{
        PJ_DimRGBW(35921  /*[Flur\LED - Treppe]*/ , 1);  // Befehl DIMMEN DOWN
        }
}else{   // SCHALTEN
   if ($var == 1)
    {
    PJ_DimRGBW(35921  /*[Flur\LED - Treppe]*/ , 2);  // Befehl SWITCH ON
        }else{
        PJ_DimRGBW(35921  /*[Flur\LED - Treppe]*/ , 1); // Befehl SWITCH OFF
        }
}
?>

Folgende Meldung kommt da …

Notice: Undefined variable: IPS_VARIABLE in C:\IP-Symcon\scripts\10363.ips.php on line 10

Warning: Wrong parameter count for pj_dimrgbw() in C:\IP-Symcon\scripts\10363.ips.php on line 23

Hast Du „Ausführen“ gedrückt.

Falls ja, daß Skript läßt sich nur durch eine der beiden Variablen triggern.