Zurück   IP-Symcon Community Forum > IP-Symcon 1.0 > Archiv > Anleitungen / Nützliche PHP Scripte

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
  #1 (permalink)  
Alt 16.01.07, 18:16
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
Standard Eieruhr

... hier ein kleines Beispiel für ein "Kurz-Zeit-Timer"

Im Designer startet ein Button per "OnClick" nachfolgendes Skript.
Da es keinen Doppelklick gibt, wird die aktuelle Zeit gespeichert: SetValueInteger("EierClick_Time", time());
und bei Click-Intervallen kleiner als eine Sekunde wird dadurch die "Eieruhr" gestoppt.
Andernfalls wird der "Count-Down-Zeit" jeweils 60 Sekunden hinzuaddiert: SetValueInteger("Eieruhr_Time", GetValueInteger("Eieruhr_Time") + 60);
Der "Count-Down" erfolgt im 10-Sekunden-Intervall: IPS_SetScriptTimer($IPS_SELF, 10);
Der aktuelle Zustand "EierUhr_Anzeige" wird über die "Caption" vom Button angezeigt: SetValueString("EierUhr_Anzeige", "xxxxxx");
Nach Ablauf des Timers gibt es Alarm.
Sinn und Zweck von diesem Beispiel ist es die "Pizza im Ofen" oder einen "Rückruf" nicht zu vergessen.

MST

PS: füe andere Anwendungen interessant:
Restlaufzeit des Timers ermitteln: $rest = IPS_GetScriptTimer($IPS_SELF) - (time()- IPS_GetLastRun($IPS_SELF));
PHP-Code:
<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : EierUhr.ips.php
Trigger  : SELF
Interval : 
*/

if ($IPS_SENDER == "Designer"){
    if ((
time() - GetValueInteger("EierClick_Time") <= 0) or (GetValueBoolean("Eier_Alarm") == True)) { // entspricht einem Doppelklick
      
IPS_SetScriptTimer($IPS_SELF0);
      
SetValueInteger("Eieruhr_Time"0);
      
SetValueString("Eieruhr_Anzeige""STOP");
      
SetValueBoolean("Eier_Alarm"False);
      return;
   }
   
SetValueInteger("EierClick_Time"time());
   
SetValueInteger("Eieruhr_Time"GetValueInteger("Eieruhr_Time") + 60);
   
SetValueString("Eieruhr_Anzeige""Start: " date("i:s"GetValueInteger("Eieruhr_Time") ." min."));
   
IPS_SetScriptTimer($IPS_SELF10);
   
SetValueBoolean("Eier_Alarm"False);
  }

if (
$IPS_SENDER == "TimerEvent"){
   
SetValueString("Eieruhr_Anzeige""Rest: " date("i:s"GetValueInteger("Eieruhr_Time") - (time() - GetValueInteger("EierClick_Time"))) . " min.");
   if (
time() >= GetValueInteger("EierClick_Time") +  GetValueInteger("Eieruhr_Time")) {
      
SetValueString("Eieruhr_Anzeige""ALARM");
      
IPS_SetScriptTimer($IPS_SELF0);
      
SetValueInteger("Eieruhr_Time"0);
      
SetValueBoolean("Eier_Alarm"True);
     
/*  Beispiel - Sound - Ausgabe
     DXMedia_Open(62704, IPS_GetKernelDir()."\\media\\wtermin.wav");
     DXMedia_SetVolume(62704, 50);
     DXMedia_Play(62704);
   */
   
}
}
?>

Geändert von steiner (19.01.07 um 16:18 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 20.01.07, 12:35
Member
 
Registriert seit: Oct 2006
Ort: Betzenstein / OFR / Bayern
Beiträge: 81
Standard

Hallo Steiner,
ich weis aller Anfang ist Schwer aber ich hätte da mal noch zwei Fragen

Zitat:
/* Beispiel - Sound - Ausgabe
DXMedia_Open(62704, IPS_GetKernelDir()."\\media\\wtermin.wav");
DXMedia_SetVolume(62704, 50);
DXMedia_Play(62704);
*/
IPS_GetKernelDir() <- wowerden diese Variable angelegt sind das Global Var. und Du hast in deiner Hallo Welt auch unter Settings ein Script mit dem Namen GlobalDefines die selbe Variable mit dem "_myhome" wie muß ich das Interpretieren und was gehört alles in die Globalvars bzw. wann müssen die angelegt werden.
Muß ich eigentlich für jede Soundausgabe einen neuen Mediarecorder instalieren reicht eine oder zwei einer für MP3 und der andere für kurze Sounddateien

besten dank im Vorraus

Grüße Ralf
Mit Zitat antworten
  #3 (permalink)  
Alt 20.01.07, 13:23
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
Standard

Hallo Ralf,

kann man nicht anlegen: IPS GetKernelDir > http://www.ipsymcon.de/wiki/index.php/IPS_GetKernelDir

PHP-Code:
//GlobalDefines lesen
include_once(IPS_GetKernelDir() . "scripts\GlobalDefines.ips.php");

echo 
__myhome
ergibt "c:\Programme\IP-SYMCON\"

wennn:
PHP-Code:
<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : GlobalDefines.ips.php
Funktion : enthält alle Globalen Definitionen/Konstanten
*/

// FS20 Empfänger
define("FS20_Dimmer_1"64414);
define("FS20_TestLampe"29865);
define("FS20_PIRILampe"37891);

// FS20 Sender
define("FS20_PIRI"40069);
define("FS20_Taster_1"45626);
define("FS20_Taster_2"53316);

// Media
define("USB_Sound"40069);


//System
define("__myhome"IPS_GetKernelDir());

?>
DXMedia_Open(USB_Sound, __myhome . "\\media\\wtermin.wav");

ist gleich: DXMedia_Open(USB_Sound, IPS_GetKernelDir() . "\\media\\wtermin.wav");

Für jedes "Sound-Gerät" muss ein "DXMedia" Modul angelegt werden.

MST
Mit Zitat antworten
  #4 (permalink)  
Alt 20.01.07, 14:08
Member
 
Registriert seit: Oct 2006
Ort: Betzenstein / OFR / Bayern
Beiträge: 81
Standard

Hallo Steiner,

solangsam fallen die Groschen (Papierzehnerla)

Zitat:
DXMedia_Open(USB_Sound, __myhome . "\\media\\wtermin.wav");

ist gleich: DXMedia_Open(USB_Sound, IPS_GetKernelDir() . "\\media\\wtermin.wav");

Für jedes "Sound-Gerät" muss ein "DXMedia" Modul angelegt werden.

MST
Also das bedeutet das ich für nen mediaplayer ne Eieruhr und eine Zeitansage je einen winamp Controler in der Instanz anlegen muß
und wie verhölt sich das mit den Globalvars was sollte da unbedingt rein, also wie ich das verstehe sind das Standarts welche immer den Selben Wert haben.

Grüße Ralf
Mit Zitat antworten
  #5 (permalink)  
Alt 20.01.07, 15:05
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
Standard

Hallo Ralf,

der Zweck von globalen Variablen ist es, dass Änderungen nur an einer Stelle gemacht werden müssen:
z.B. ID's von FS20 Geräten, Pfade, Soll-Werte (Temperaturen) oder andere Zustände wie Urlaub, Jahreszeit ect.
Außerdem können hier auch Funktionen "abgelegt" werden.

MST
Mit Zitat antworten
  #6 (permalink)  
Alt 20.01.07, 15:10
Member
 
Registriert seit: Oct 2006
Ort: Betzenstein / OFR / Bayern
Beiträge: 81
Thumbs up

OK Super Danke erst mal

Super sache Euer Forum

Gruß Ralf
Mit Zitat antworten
  #7 (permalink)  
Alt 02.08.09, 19:34
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
Standard

... für die V2 ...
PHP-Code:
if ($IPS_SENDER == "Designer"){
    if ((
time() - GetValue(39038 /*[Termine Wecker\Eieruhr\EieruhrClick_Time]*/) <= 0) or (GetValueBoolean("Eier_Alarm") == True)) { // entspricht einem Doppelklick
      
IPS_SetScriptTimer($IPS_SELF0);
      
SetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/0);
      
SetValue(38310 /*[Termine Wecker\Eieruhr\Eieruhr_Anzeige]*/"STOP");
      
SetValue(56537 /*[Termine Wecker\Eieruhr\Eier_Alarm]*/False);
      return;
   }
   
SetValue    (39038 /*[Termine Wecker\Eieruhr\EieruhrClick_Time]*/time());
   
SetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/GetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/) + 60);
    
$time date("i:s"GetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/));
    
SetValue(38310 /*[Termine Wecker\Eieruhr\Eieruhr_Anzeige]*/"Start: " $time ." min.");
   
IPS_SetScriptTimer($IPS_SELF10);
   
SetValue(56537 /*[Termine Wecker\Eieruhr\Eier_Alarm]*/False);
  }

if (
$IPS_SENDER == "TimerEvent"){
   
SetValue(38310 /*[Termine Wecker\Eieruhr\Eieruhr_Anzeige]*/"Rest: " date("i:s"GetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/) - (time() - GetValue(39038 /*[Termine Wecker\Eieruhr\EieruhrClick_Time]*/))) . " min.");
   if (
time() >= GetValue(39038 /*[Termine Wecker\Eieruhr\EieruhrClick_Time]*/) +  GetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/)) {
      
SetValue(38310 /*[Termine Wecker\Eieruhr\Eieruhr_Anzeige]*/"ALARM");
      
IPS_SetScriptTimer($IPS_SELF0);
      
SetValue(21533 /*[Termine Wecker\Eieruhr\Eieruhr_Time]*/0);
      
SetValue(56537 /*[Termine Wecker\Eieruhr\Eier_Alarm]*/True);
      
$id_sound 35352 /*[8 Audio Video IR\Media Player Teufel]*/;
        
WAC_SetVolume($id_sound50);
        
WAC_PlayFile($id_soundIPS_GetKernelDir()."sounds\\eieruhr.wav");
   }

Miniaturansicht angehängter Grafiken
eieruhr_tree.png  
Angehängte Dateien
Dateityp: zip eieruhr.zip (33.1 KB, 73x aufgerufen)

Geändert von steiner (02.08.09 um 21:45 Uhr)
Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0