In unserer Sauna gab es diverse Schalter, Knöpfe, Drehregler, Fernbedienungen usw. - da konnte man schon mal den Überblick verlieren.
Alle Funktionen habe ich nun in einem Menü des „FD 868“ zusammen gefasst.
Der „Sauna-Gänger“ kann nun per Dialog die gewünschte Temperatur und Luftfeuchtigkeit einstellen - natürlich mit passender „New-Age-Musik“. Selbstverständlich lassen sich auch die Lichtszenarien (RGB-Farbwechsel) frei wählen oder die Belüftung regulieren.
Als Anlage ein Skript- Beispiel - es soll lediglich als Anregung dienen.
Es wird getriggert durch Variablenänderung der Tasten: Up, Down und Enter
Der jeweilige Menüpunkt kann mit ‚Up/ Down‘ durchgeblättert werden und wird in einer Variablen gespeichert.
Bei ‚Enter‘ gelangt man den den ‚Edit-Modus‘ - dieser wird ebenfalls in einer Variablen gespeichert.
Änderungen werden mit Up/ Down vorgenommen und mit ‚Enter‘ abgeschlossen.
Demo-Video
MST
$id_lcd = 49408 /*[Sauna\FD 868\ViewJet #6]*/;
$id_ev_up = 59810 /*[Sauna\FD 868\LCD\]*/;
$id_ev_down = 11923 /*[Sauna\FD 868\LCD\]*/;
$id_ev_enter = 33039 /*[Sauna\FD 868\LCD\]*/;
$id_var_pos = 42863 /*[Sauna\FD 868\ViewJet #6\Menüposition]*/;
$id_var_eaq = 38869 /*[Sauna\FD 868\ViewJet #6\Ein Aus Quitt]*/;
$id_event = $IPS_EVENT;
$auseinquitt = GetValue($id_var_eaq);
$menue = GetValue($id_var_pos );
// User-Variablen
$id_var_vol = 19718 /*[Sauna\FD 868\ViewJet #6\Volume]*/;
$id_var_sau = 45679 /*[Sauna\Soll-Betriebsart]*/;
$id_var_akt = 47214 /*[Hof Garten\Birnen Baum\Status]*/;
// Up & Down im Menü > Auswahl
// Ausgabe - Modus
if (($auseinquitt == 0) and ($id_event <> $id_ev_enter)){
if ($id_event == $id_ev_up ){
$menue = $menue +1;
//PJ_Beep($id_pj,2);
if ($menue > 4) $menue = 1;
}
if ($id_event == $id_ev_down){
$menue = $menue -1;
if ($menue < 1) $menue = 4;
}
// Positiom im Menü speichern
SetValue($id_var_pos , $menue);
switch($menue){
case 1:
PJ_LCDText($id_lcd, 1,"Sauna Betrieb");
$txt_z2 = GetValueFormatted($id_var_sau);
PJ_LCDText($id_lcd, 2, $txt_z2);
return;
case 2:
PJ_LCDText($id_lcd, 1,"SONOS Musik");
PJ_LCDText($id_lcd, 2,"Volume: ".GetValue($id_var_vol));
return;
case 3:
PJ_LCDText($id_lcd, 1,"Aussen Beleucht.");
$txt_z2 = GetValueFormatted($id_var_akt );
PJ_LCDText($id_lcd, 2, $txt_z2);
return;
case 4:
PJ_LCDText($id_lcd, 1,"Belueftung");
PJ_LCDText($id_lcd, 2,"Automatik");
return;
}
}
// Eingabe - Modus
if (($auseinquitt == 0) and ($id_event == $id_ev_enter)){
SetValue($id_var_eaq, 1);
switch($menue){
case 1:
PJ_LCDText($id_lcd, 1,"Sauna: Ein/Aus:");
$txt_z2 = GetValueFormatted($id_var_sau);
PJ_LCDText($id_lcd, 2, $txt_z2);
return;
Case 2:
$setpoint = GetValue($id_var_vol );
PJ_LCDText($id_lcd, 1,"Neuer Wert:");
PJ_LCDText($id_lcd, 2,"Volume: ". $setpoint);
return;
Case 3:
PJ_LCDText($id_lcd, 1,"Aussen Beleucht.");
// Delay > 2-Funksysteme !
IPS_Sleep(100);
IPS_RunScript(27878 /*[Hof Garten\Birnen Toggle]*/ );
IPS_Sleep(100);
$txt_z2 = "Toggle>neu: ".GetValueFormatted($id_var_akt );
PJ_LCDText($id_lcd, 2, $txt_z2);
SetValue($id_var_eaq, 0);
}
return;
}
// Edit - Modus
if (($auseinquitt == 1) and ($id_event <> $id_ev_enter)){
if ($id_event == $id_ev_up){
switch($menue){
case 1:
$setpoint = GetValue($id_var_sau );
$setpoint = $setpoint +1;
if ($setpoint >5) $setpoint = 5;
SetValue($id_var_sau, $setpoint);
PJ_LCDText($id_lcd, 2,GetValueFormatted($id_var_sau));
return;
case 2:
$setpoint = GetValue($id_var_vol );
$setpoint = $setpoint +10;
if ($setpoint >100) $setpoint = 100;
SetValue($id_var_vol, $setpoint);
PJ_LCDText($id_lcd, 2,"Volume: ".$setpoint);
return;
}
}
if ($id_event == $id_ev_down){
switch($menue){
case 1:
$setpoint = GetValue($id_var_sau );
$setpoint = $setpoint -1;
if ($setpoint < 0 ) $setpoint = 0;
SetValue($id_var_sau, $setpoint);
PJ_LCDText($id_lcd, 2,GetValueFormatted($id_var_sau));
return;
case 2:
$setpoint = GetValue($id_var_vol );
$setpoint = $setpoint -10;
if ($setpoint < 0) $setpoint = 0;
SetValue($id_var_vol, $setpoint);
PJ_LCDText($id_lcd, 2,"Volume: ". $setpoint);
return;
}
}
}
// Quitt - Modus
if (($auseinquitt == 1) and ($id_event == $id_ev_enter)){
SetValue($id_var_eaq, 0);
switch($menue){
case 1:
PJ_LCDText($id_lcd, 1,"neuer Modus:");
$txt_z2 = GetValueFormatted($id_var_sau);
PJ_LCDText($id_lcd, 2, $txt_z2);
return;
case 2:
$setpoint = GetValue($id_var_vol );
PJ_LCDText($id_lcd, 1,"neuer Wert:");
PJ_LCDText($id_lcd, 2,"Volume: ".$setpoint);
return;
}
}