Variable im Script einfügen

Hallo,

bin leider was scripten angeht totaler Anfänger, weshalb ich hier nachfragen muss. Ich möchte mir ein Natürliches Aufwachen mit Hue realisieren, was ich per Webfront steuern kann. Aktivieren/Deaktivieren und Zeit setzen ist kein Problem, auch die Variable anlegen für die Einschaltdauer und maximale Helligkeit sind noch einfach, nur leider weiß ich nicht, wie ich sie jetzt richtig in mein Script einfügen muss, Ich hoffe daher auf etwas Hilfe.

<?php
$interval = 900; // 900 Sekunden
if($_IPS['SENDER'] == "TimerEvent")
{
    //Aus Befehl

      $InstanzID= 55287;
      $color = '#ececec';
      $opt = ['on' => true, 'bri' => 100,  'transitiontime' => 10];
      PHUE_ColorSetOpt($InstanzID, $color, $opt);
      RequestAction(18743, false); // Hue Lampe mit Objekt ID 12345 ausschalten
      
      IPS_SetScriptTimer($_IPS['SELF'], 0); // Der Timer schaltet sich aus

} else {
    //An Befehl

     $InstanzID= 55287;
     $color = '#ececec';
     $opt = ['on' => true, 'bri' => 40,  'transitiontime' => 900];
     PHUE_ColorSetOpt($InstanzID, $color, $opt);
     RequestAction(55287, true); // Hue Lampe mit Objekt ID 12345 einschalten

     IPS_SetScriptTimer($_IPS['SELF'], $interval); // Hier wird der Timer eingeschaltet der dann die Lampe nach dem Intervall wieder ausschalten

}

Sozsagen sollte bei „bri’ => 40“, „transitiontime’ => 900“ die Variablen rein.

Ersetze die 40 bzw 100 durch GetValue(12345).
Das 12345 durch die richtige ID deiner Variablen ersetzen.
Michael

<?php
$interval = 900; // 900 Sekunden
if($_IPS['SENDER'] == "TimerEvent")
{
    //Aus Befehl

      $InstanzID= 55287;
      $color = '#ececec';
      $opt = ['on' => true, 'bri' => 100,  'transitiontime' => 10];
      PHUE_ColorSetOpt($InstanzID, $color, $opt);
      RequestAction(18743, false); // Hue Lampe mit Objekt ID 12345 ausschalten
      
      IPS_SetScriptTimer($_IPS['SELF'], 0); // Der Timer schaltet sich aus

} else {
    //An Befehl

     $InstanzID= 55287;
     $color = '#ececec';
     $opt = ['on' => true, 'bri' => GetValue(35267),  'transitiontime' => GetValue(19066)];
     PHUE_ColorSetOpt($InstanzID, $color, $opt);
     RequestAction(55287, true); // Hue Lampe mit Objekt ID 12345 einschalten

     IPS_SetScriptTimer($_IPS['SELF'], $interval); // Hier wird der Timer eingeschaltet der dann die Lampe nach dem Intervall wieder ausschalten

}

Das so richtig?

Zu dem Variablen hab ich doch noch eine Frage. Die von Homematic erstellten Variablen lassen sich alle im Webfront schalten, die im Symcon erstellten jedoch nicht. Hab gelesen, man muss sie auf Switch umstellen, jedoch finde ich den Punkt nicht.

Ich benötige 2 Variablen

1-100% für Helligkeit (wenn geht in Prozent, da Wert für Helligeit 0-254 normal ist?)
Dauer in Minuten

Switch ist ein Variablenprofile für bool Variablen.
Du willst deinen Variablen ein Aktions-Skript zuweisen.
Michael
PS: Grundlagen Variablen
https://www.symcon.de/service/dokumentation/konzepte/variablen/variablenaktionen/

Also ich muss zum Wert setzen in der Variable ein Script anlegen und diese als Aktion ausführen, um diese im Webfront ausführbar zu machen?

Nur leider weiß ich nicht, wie ich richtig SetValue setzen muss.

Für die Variable Helligkeit habe ich es hinbekommen

//Start writing your code here

if ($_IPS['SENDER'] == "WebFront") {
     SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
}
$Variable = 51734;  

für Dauer in einem extra Script

if ($_IPS['SENDER'] == "WebFront") {
     SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
}

$Variable = 19066;

Zusammen in einem Script

if ($_IPS['SENDER'] == "WebFront") {
     SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
}

$Variable = 19066;   
$Variable = 51734;   

Es lässt sich zumindest in Webfront jetzt die Werte ändern. Danke dir für deine Hilfe.

Stimmt das ausführende Script soweit?

$interval = 180; // 180 Sekunden

$helligkeit = 51734;
$dauer =19066;


if($_IPS['SENDER'] == "TimerEvent")
{
    //Aus Befehl

      $InstanzID= 55287;
      $color = '#ececec';
      $opt = ['on' => true, 'bri' => 100,  'transitiontime' => 10];
      PHUE_ColorSetOpt($InstanzID, $color, $opt);
      RequestAction(45383, false); // Hue Lampe mit Objekt ID 12345 ausschalten
      
      IPS_SetScriptTimer($_IPS['SELF'], 0); // Der Timer schaltet sich aus

} else {
    //An Befehl

     $InstanzID= 55287;
     $color = '#ececec';
     $opt = ['on' => true, 'bri' => GetValue($helligkeit),  'transitiontime' => GetValue($dauer)];
     PHUE_ColorSetOpt($InstanzID, $color, $opt);
     RequestAction(45383, true); // Hue Lampe mit Objekt ID 12345 einschalten

     IPS_SetScriptTimer($_IPS['SELF'], $interval); // Hier wird der Timer eingeschaltet der dann die Lampe nach dem Intervall wieder ausschalten

}

Bringt mir immer den Fehler

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /var/lib/symcon/modules/.store/info.schnittcher.ips.philipshue/HUEDevice/module.php on line 397

Hallo,

transitiontime = 1 sind immer 1 Sekunde oder 0.1 Sekunden? Kann man im Script dies auch in Minuten angeben, so dass ich im Webfront dann in Minuten auswählen kann?

Eigenes Profil anlegen mit Wert

600 = 1 Minute
1200 = 2 Minuten

?

Oder gibt es das bereits fertig?

Du hättest nichts machen müssen, außer das Aktions-Skript zu erzeugen.
Fertig.

Fehler oder Probleme mit einem PHP-Modul im dazugehörigen Thema fragen:

Auch kein neues Thema aufmachen, wenn es doch sinnvollerweise zu deiner Frage hier gehört.

Wenn du einen Faktor haben willst, in einem Script, dann benutze * oder /.
Wenn GetValue(12345) dir Minuten gibt, dann:

..... 'transitiontime' => GetValue($dauer) * 600.....

Michael

1 „Gefällt mir“

Danke dir für deine Antwort, wieder etwas gelernt. Mit dem Fehler frag ich Kai nochmal.