Ok, dann fang ich mal an, die Objekte in IPS und die Skripte zu posten.
Die Variablen bitte wie im ersten Bild anlegen.
Das Event bei „Neue Nachrichten“ ist nicht zwingend erforderlich. Das hab ich nur, um in einer Variable auf der Home-Seite anzuzeigen, dass neue Nachrichten vorhanden sind. Ich poste das Skript aber trotzdem mal.
Skript „Hinweis“ (Trigger siehe Screenshot):
<?
SetValue(22902 /*[Info\Anrufbeantworter]*/, false); //Boolean-Variable auf dem Home-Screen
if (GetValue(20837 /*[Telefon\Neue_Nachrichten]*/) > 0) {
$text = strval(GetValue(20837 /*[Telefon\Neue_Nachrichten]*/))." neue Nachricht(en)";
IPS_SetVariableProfileAssociation("Status_AB", 1, $text, "New_AB"); //Hierfür ein neues Variablenprofil "Status_AB" anlegen (Boolean)
//Der Text für "False" ist immer "Keine neuen Nachrichten".
SetValue(22902 /*[Info\Anrufbeantworter]*/, true);
}
?>
Skript „Trigger_Steuerung“:
<?
// Arrays erzeugen
$date = explode("|", GetValue(50567 /*[Telefon\Array_Datum]*/));
$number = explode("|", GetValue(12208 /*[Telefon\Array_Nummer]*/));
$fname = explode("|", GetValue(37900 /*[Telefon\Array_Pfad]*/));
switch ($IPS_VALUE) {
case 0:
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 0);
// Vorherige Nachricht
if (GetValue(24133 /*[Telefon\Index_Nachricht]*/) > 1) {
SetValue(24133 /*[Telefon\Index_Nachricht]*/, GetValue(24133 /*[Telefon\Index_Nachricht]*/) - 1);
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
// Anzeige aktualisieren
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
} elseif (GetValue(24133 /*[Telefon\Index_Nachricht]*/) == 1) {
SetValue(24133 /*[Telefon\Index_Nachricht]*/, GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
// Anzeige aktualisieren
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
}
break;
case 1:
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 1);
// Nachricht abspielen
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
SetValue(12569 /*[Telefon\Index_Abgehört]*/, $index-1);
$file = $fname[$index-1];
if (GetValue(29255 /*[Telefon\Player\Status]*/) != 2) {
WAC_PlayFile(46694 /*[Telefon\Player]*/, $file);
}
break;
case 2:
if (GetValue(29255 /*[Telefon\Player\Status]*/) == 1) {
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 2);
WAC_Stop(46694 /*[Telefon\Player]*/);
}
break;
case 3:
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 3);
// Nachricht löschen
if (GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/) > 0) {
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
SetValue(54907 /*[Telefon\Index_Löschen]*/, $index-1);
if ($index == GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)) {
SetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/, GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)-1);
SetValue(24133 /*[Telefon\Index_Nachricht]*/, GetValue(24133 /*[Telefon\Index_Nachricht]*/)-1);
// Eintrag aus Array löschen und String neu setzen
unset($date[$index-1]);
$date = array_values($date);
unset($number[$index-1]);
$number = array_values($number);
unset($fname[$index-1]);
$fname = array_values($fname);
if (GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/) > 0) {
$tmp = implode("|", $date);
SetValue(50567 /*[Telefon\Array_Datum]*/, $tmp);
$tmp = implode("|", $number);
SetValue(12208 /*[Telefon\Array_Nummer]*/, $tmp);
$tmp = implode("|", $fname);
SetValue(37900 /*[Telefon\Array_Pfad]*/, $tmp);
// Anzeige aktualisieren
$index -= 1;
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
} else {
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, "0/0");
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, "-");
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, "-");
}
} elseif ($index < GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)) {
SetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/, GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)-1);
// Eintrag aus Array löschen und String neu setzen
unset($date[$index-1]);
$date = array_values($date);
unset($number[$index-1]);
$number = array_values($number);
unset($fname[$index-1]);
$fname = array_values($fname);
if (GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/) > 0) {
$tmp = implode("|", $date);
SetValue(50567 /*[Telefon\Array_Datum]*/, $tmp);
$tmp = implode("|", $number);
SetValue(12208 /*[Telefon\Array_Nummer]*/, $tmp);
$tmp = implode("|", $fname);
SetValue(37900 /*[Telefon\Array_Pfad]*/, $tmp);
// Anzeige aktualisieren
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
} else {
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, "-");
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, "-");
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, "0/0");
}
}
}
break;
case 4:
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 4);
// Nächste Nachricht
if (GetValue(24133 /*[Telefon\Index_Nachricht]*/) < GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)) {
SetValue(24133 /*[Telefon\Index_Nachricht]*/, GetValue(24133 /*[Telefon\Index_Nachricht]*/)+1);
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
// Anzeige aktualisieren
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
} elseif (GetValue(24133 /*[Telefon\Index_Nachricht]*/) == GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/)) {
SetValue(24133 /*[Telefon\Index_Nachricht]*/, 1);
$index = GetValue(24133 /*[Telefon\Index_Nachricht]*/);
// Anzeige aktualisieren
SetValue(12130 /*[Telefon\Anrufbeantworter\Nachricht]*/, strval($index)."/".GetValue(15183 /*[Telefon\Anzahl_Nachrichten]*/));
SetValue(38492 /*[Telefon\Anrufbeantworter\Datum]*/, $date[$index-1]);
SetValue(48843 /*[Telefon\Anrufbeantworter\Rufnummer]*/, $number[$index-1]);
// Pfad aktualisieren
SetValue(12188 /*[Telefon\Pfad_Nachricht]*/, $fname[$index-1]);
}
break;
}
?>
Ich hab mir leider nicht die Mühe gemacht, die Variablen oben zu definieren. Also am besten mit nem Texteditor die ID´s ersetzen lassen…
Skript „Trigger_Status“:
<?
switch ($IPS_VALUE) {
case 3:
SetValue(43762 /*[Telefon\Anrufbeantworter\Steuerung]*/, 2);
break;
}
?>
Das Tool werd ich nachher ändern und dann auch noch posten.
Gruß
dfhome