Timer / Countdown für Küchenzwecke

Wir haben ein 10"-Tablett in der Küche hängen auf IPS permanent läuft. Ich würde gerne einen Timer/Countdown dort anbieten… schön groß und am Ende natürlich eine aktustische/optische Signalisierung.

Hat jemand sowas simples schon mal gemacht?

Suche mal unter Eieruhr. Vielleicht reicht dir das.

Genau, Eieruhr ist das richtige Suchwort :wink: Habe vor ein paar Wochen dazu ein Update im Thread gepostet.

Das ganze geht auch mit Audio Notification …

function on($id, $text, $wav) {
	#IPS_LogMessage("Eieruhr", "Aktiviert!");
	WFC_AudioNotification($id, $text, $wav); 
}
function off($id, $text, $wav) {
	#IPS_LogMessage("Eieruhr", "Abgelaufen...");
	WFC_AudioNotification($id, $text, $wav); 
}

So sieht es bei mir aus, muss man dann halt noch die richtigen Dinge übergeben. Wenn Du das auch so haben willst und Hilfe brauchst - einfach melden!

Ciao Pitti

Das war genaus das was ich gesucht habe…

… ich habe es auf 3 Zeiten ausgedehnt und noch eine „Großanzeige ergänzt“…fehlt nur noch die Audio-Warnung


<?
################################################################################
# Scriptbezeichnung: System.Timer.ips.php
# Version:    1.0.20170902
# Author:    @Pitti (base on @paresy)
#
# Timmer ala Eieruhr
#
#
# Anleitung:
# - Zuerst Konfigurationswerte auf eigene Bedürfnisse anpassen (max, step usw.)
# - In Konsole einfach ausführen um alles korrekt zu installieren.
#
# ------------------------------ Konfiguration ---------------------------------
#
$min = 0;
$max = 120;
$step = 1; // kleine Schrittweite
$jump = 5; // große Schrittweite
$bigjump= 10; //sehr große Schrittweite
$suffix = "min";
#
# ------------------------------ Funktionen ------------------------------------
#
function on() {
    IPS_LogMessage("Eieruhr", "Aktiviert!");

}
function off() {
    IPS_LogMessage("Eieruhr", "Abgelaufen...");
}
#
################################################################################

// Name Variablenprofil
$vpn = "Timer.".$max.".".$jump;

// INSTALLATION
if($_IPS['SENDER'] == "Execute") {
    if(IPS_VariableProfileExists($vpn)) {
        IPS_DeleteVariableProfile($vpn);
    }
    IPS_CreateVariableProfile($vpn, 1);
    IPS_SetVariableProfileValues($vpn, $min, $max, 0);
    IPS_SetVariableProfileIcon($vpn, "Hourglass");
    IPS_SetVariableProfileAssociation($vpn, $min-4, "Aus", "", 0xFF0000);
	IPS_SetVariableProfileAssociation($vpn, $min-3, "-".$bigjump, "", -1);
    IPS_SetVariableProfileAssociation($vpn, $min-2, "-".$jump, "", -1);
    IPS_SetVariableProfileAssociation($vpn, $min-1, "-".$step, "", -1);
    IPS_SetVariableProfileAssociation($vpn, $min, "%d ".$suffix, "", 0x00FF00);
    IPS_SetVariableProfileAssociation($vpn, $max+1, "+".$step, "", -1);
    IPS_SetVariableProfileAssociation($vpn, $max+2, "+".$jump, "", -1);
	IPS_SetVariableProfileAssociation($vpn, $max+3, "+".$bigjump, "", -1);
    $vid = CreateVariableByName($_IPS['SELF'], "Timer", 1);
    IPS_SetVariableCustomProfile($vid, $vpn);
    IPS_SetVariableCustomAction($vid, $_IPS['SELF']);
    SetValue($vid, $min-4);
}
// AKTION VIA WEBFRONT
else if($_IPS['SENDER'] == "WebFront") {
    switch($_IPS['VALUE']) {
        case $min-4:
            SetValue($_IPS['VARIABLE'], 0); 
            doOff();
            break;
		case $min-3:
              $_IPS['VALUE'] = GetValue($_IPS['VARIABLE']) - $bigjump;
              if($_IPS['VALUE'] <= 0) {
            $_IPS['VALUE'] = -4;
                SetValue($_IPS['VARIABLE'], 0); 
                doOff();
              }
              break;
        case $min-2:
              $_IPS['VALUE'] = GetValue($_IPS['VARIABLE']) - $jump;
              if($_IPS['VALUE'] <= 0) {
            $_IPS['VALUE'] = -4;
                SetValue($_IPS['VARIABLE'], 0); 
                doOff();
              }
              break;
        case $min-1:
              $_IPS['VALUE'] = GetValue($_IPS['VARIABLE']) - $step;
              if($_IPS['VALUE'] <= 0) {
            $_IPS['VALUE'] = -4;
                SetValue($_IPS['VARIABLE'], 0); 
                doOff();
              }
              break;
           case $max+1:
              $_IPS['VALUE'] = min($max, max(0, GetValue($_IPS['VARIABLE'])) + $step);
             doOn();
             break;
           case $max+2:
              $_IPS['VALUE'] = min($max, max(0, GetValue($_IPS['VARIABLE'])) + $jump);
             doOn();
             break;
		   case $max+3:
              $_IPS['VALUE'] = min($max, max(0, GetValue($_IPS['VARIABLE'])) + $bigjump);
             doOn();
             break;
        default:
            return;
    }
      SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
// TIMER EVENT
else if($_IPS['SENDER'] == "TimerEvent") {
    $vid = CreateVariableByName($_IPS['SELF'], "Timer", 1);
    $v = GetValue($vid);
    $v--;
    if($v <= 0) {
        SetValue($vid, 0); // sonst bleibt immer 1 Minute stehen und nicht 0
           doOff();
        IPS_SetScriptTimer($_IPS['SELF'], 0);
        $v = $min-4;
    }
    SetValue($vid, $v);
}

function doOn()
{
    if(IPS_GetScriptTimer($_IPS['SELF']) == 0) {
        IPS_SetScriptTimer($_IPS['SELF'], 60);
        on();
    }
}

function doOff()
{
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    off();
}

# ------------------------------ Funktionen ------------------------------------

function CreateVariableByName($id, $name, $type) 
{ 
   $vid = @IPS_GetVariableIDByName($name, $id); 
   if($vid===false) { 
      $vid = IPS_CreateVariable($type); 
      IPS_SetParent($vid, $id); 
      IPS_SetName($vid, $name); 
   } 
   return $vid; 
} 

?>


<?
define ("ID_RESTZEIT", 42184 /*[Visu\Timer\Restzeit]*/);
define ("T1", 51339 /*[Visu\Timer\Timer\Eieruhr\Timer]*/ /*[Visu\Timer\Restzeit]*/);
define ("T2", 58774 /*[Visu\Timer\Timer 2\Eieruhr\Timer]*/ /*[Visu\Timer\Restzeit]*/);
define ("T3", 43854 /*[Visu\Timer\Timer 3\Eieruhr\Timer]*/ /*[Visu\Timer\Restzeit]*/);

$T1=getvalue(T1);
$T2=getvalue(T2);
$T3=getvalue(T3);


if ($T1>0 or $T2>0 or $T3>0) 
	{
		IPS_SetHidden(ID_RESTZEIT, false);
		$T1f=GetValueFormatted(T1);
		$T2f=GetValueFormatted(T2);
		$T3f=GetValueFormatted(T3);
		
		if ($T1f=="Aus") {$FarbeT1="red";} else {$FarbeT1="green";}
		if ($T2f=="Aus") {$FarbeT2="red";} else {$FarbeT2="green";}
		if ($T3f=="Aus") {$FarbeT3="red";} else {$FarbeT3="green";}
		
		
		$HTML='
		<!DOCTYPE html>
		<html>
		  <head>
		    <style>
		      	p1 { font-size: 100px;font-family:Verdana;}
			</style>
		  </head>
		  <body>
			  <table border=1 width=100%>
			  	<tr>
			  		<th><p1><font color= "'.$FarbeT1.'">'.$T1f.'</font></p1></th>
					<th><p1><font color= "'.$FarbeT2.'">'.$T2f.'</font></p1></th>
					<th><p1><font color= "'.$FarbeT3.'">'.$T3f.'</font></p1></th>
			  	</tr>
			  </table>
		  </body>
		</html>
		';
		SetValue(ID_RESTZEIT, $HTML );
	} 
	else {IPS_SetHidden(ID_RESTZEIT, true);
			}


 //Start writing your scripts between the brackets



?>

Mein Tablett (Andriod) spielt die Audiowarnung nicht ab (mp3). - Kann man das noch einstellen oder fällt das unter die EInschränkung das nur Windows sauber Audioausgaben macht?

Ich hatte auch diese Probleme und habe es mit dem Full Kiosk Browser gelöst. Der spielt auch die Audio-Sachen ab!

Oh, cool. Den habe und schätze ich auch. - Bei mir tut er das im Augenblick noch nicht… weisst du noch welche Einstellung dazu nötig waren/sind?

Ich brauchte glaube nichts an den Einstellungen machen, kann aber heute Abend mal nachschauen.

Poste doch mal wie Dein Code fürs Abspielen von MP3 genau aussieht. Ich verwende WAV-Dateien.

Ciao Pitti

PS: Hast Du die MP3 Dinger in Dein Visualisierungsbereich gehängt bzw. verlinkt? Sonnst geht das nicht, schau mal in diesen Thread (#16, #17)

https://www.symcon.de/forum/threads/35611-WFC_AudioNotification

Ciao Pitti

Dein Hinweis könnte die Lösung sein… kann das von hier aus nicht testen. Allerdings spielen die Windows-Rechner (mit Firefox) den Sound ab… nur das Android-Tablett (mir Browser „Fully“) nicht.

Okay, danke für die Screenshots.

Wenn ich es richtig interpretiere ist der „Visu“ Ordner Dein Visualisierungsbereich fürs Webfront. Ich habe dann einfach ein Link auf die Medien-Datei in diesen Bereich gelegt und diesen „hidden“ gesetzt :wink:

ich habe sowohl eine WAV-Datei als auch eine MP3-Datei programmiert und verlinkt… leider will mein Galaxy Tab mit Fully Browser noch immer nichts abspielen. Erst wird „…laden…“ angezeigt (was ich als gutes Zeichen ansehe)… aber dann abspielen. Trotz voller Lautstärke ist aber nichts zu hören.

Der Firefox auf demselben Gerät spielt den Sound ab… der Fully leider nicht.