Zurück   IP-Symcon Community Forum > IP-Symcon Technik > Audio & Video, TK-Anlagen, ISDN

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
  #1 (permalink)  
Alt 23.04.10, 19:31
Senior Member
 
Registriert seit: Sep 2007
Ort: Daisendorf - Bodensee
Beiträge: 542
Standard Fritz!Card + AB unter IPS V2.2

Hallo zusammen,

da mir das Auslesen der FritzboxFon so sehr gefallen hat, ich aber nur eine Fritz!Card PCI im Server stecken hab, hab ich ein Tool geschrieben, welches dieselbe Funktionalität ermöglicht. Zusätzlich kann man noch den AB integrieren. Löschen etc. funktioniert alles.
Wenn Interesse besteht, werde ich das Tool, wie schon bei iTunesCtl, konfigurierbar machen und euch zur Verfügung stellen.
Das Tool läuft im Hintergrund und sendet bei Änderungen an der Fritz!-Datenbank Infos an IPS. Diese werden dann weiterverarbeitet. Im Gegenzug kriegt das Tool Änderungen mit, wenn ein Anruf auf dem AB gelöscht werden soll. Der Eintrag wird dann aus der Datenbank als "gelesen" markiert.
Anbei ein Screenshot.
Miniaturansicht angehängter Grafiken
fritzfonctl.png  
Mit Zitat antworten
  #2 (permalink)  
Alt 23.04.10, 21:10
Senior Member
 
Registriert seit: Jul 2005
Ort: Schwanewede/Niedersachsen
Beiträge: 920
Standard

Hallo dfhome,

hätte schon interesse. Da ich immer noch eine externe Lösung nutze, könnte ich so etwas gut gebrauchen
__________________
Gruss
Horst



IP-Symcon 2.3
IPS-868, FS20, HM
Mit Zitat antworten
  #3 (permalink)  
Alt 23.04.10, 22:55
Member
 
Registriert seit: Nov 2007
Ort: Hannover
Beiträge: 98
Standard

Das sieht ja richtig gut aus.
Ich würde mich auch sehr freuen, wenn Du das posten würdest!
Grüße
Matthias
__________________
----------------------------------------
FHZ1300 - 3*FHTs - 1*Funk-Dimmer - 3*Funk-Schalter
DMX4ALL - 2*4-Kanal-Dimmer - 1*RGB-LED-Controller BABY - 1*RGB-LED PAR56
Vellemann - Board, Wetterstation WMRS 200
IPS, Dashboard, DUGtool
Mit Zitat antworten
  #4 (permalink)  
Alt 24.04.10, 08:50
Senior Member
 
Registriert seit: Sep 2007
Ort: Daisendorf - Bodensee
Beiträge: 542
Standard

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):
PHP-Code:
<?
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":
PHP-Code:
<?
// 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":
PHP-Code:
<?
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
Miniaturansicht angehängter Grafiken
ips_objekte.png  
__________________
HM per LAN-Adapter | FS20 | 1-Wire | WMRS200 | 2xELO-Touch 15"| IPSV2.3 | iTunesCtl | FritzFonCtl

Geändert von dfhome (25.04.10 um 08:51 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 25.04.10, 13:43
Senior Member
 
Registriert seit: Sep 2007
Ort: Daisendorf - Bodensee
Beiträge: 542
Standard

So, hier das Tool. Konfig über die config.xml.
Viel Spaß!

Achso: die Anrufer-Icons bitte in "user/fritz/" ablegen.
Angehängte Dateien
Dateityp: zip FritzFonCtl.zip (53.8 KB, 72x aufgerufen)
__________________
HM per LAN-Adapter | FS20 | 1-Wire | WMRS200 | 2xELO-Touch 15"| IPSV2.3 | iTunesCtl | FritzFonCtl

Geändert von dfhome (17.05.10 um 16:17 Uhr) Grund: Neue Version hochgeladen
Mit Zitat antworten
  #6 (permalink)  
Alt 05.05.10, 21:27
Senior Member
 
Registriert seit: Apr 2007
Beiträge: 515
Standard

Hallo dfhome,

die AB-Abfrage sieht ja super aus!
Funktioniert das ganze auch mit der Fritz!Box?

Joachim
__________________
IP-Symcon - mein Weihnachtsgeschenk 2009 - iPhoneApp seit Januar 2011!
1xCUNO, 1xFS20 SU-2 - 1xFritz!Box 7270, 1xFritz!Box 7170
1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408
1xFHT8i mit USB von Helmut, 4xFHT8V (geplant: 2x Neuentwicklung von Helmut für jeweils 8 FHT8V-Antriebe)
Mit Zitat antworten
  #7 (permalink)  
Alt 05.05.10, 23:58
Senior Member
 
Registriert seit: Sep 2007
Ort: Daisendorf - Bodensee
Beiträge: 542
Standard

Hallo Joachim,

ich kenne leider nicht den Aufbau der FritzBox, aber ich bezweifel es stark... FritzCard läuft über ne dbase-Datenbank und die FritzBox wird das sicher anders gelöst haben.
__________________
HM per LAN-Adapter | FS20 | 1-Wire | WMRS200 | 2xELO-Touch 15"| IPSV2.3 | iTunesCtl | FritzFonCtl
Mit Zitat antworten
  #8 (permalink)  
Alt 06.05.10, 19:24
Senior Member
 
Registriert seit: Apr 2007
Beiträge: 515
Standard

Hallo dfhome,

vielen Dank für Deine Antwort. Irgendwie finde ich aber den Ansatz sehr gut (bin ja auch eher so ein Datenbank-"Fan" )

Vielleicht kann man die Dateien vom Stick der Fritz!Box ja auch in eine Datenbank kopieren, und sie dann hören, löschen usw.?

Mal schauen was mir dazu noch so einfällt...

Joachim
__________________
IP-Symcon - mein Weihnachtsgeschenk 2009 - iPhoneApp seit Januar 2011!
1xCUNO, 1xFS20 SU-2 - 1xFritz!Box 7270, 1xFritz!Box 7170
1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408
1xFHT8i mit USB von Helmut, 4xFHT8V (geplant: 2x Neuentwicklung von Helmut für jeweils 8 FHT8V-Antriebe)
Mit Zitat antworten
  #9 (permalink)  
Alt 16.05.10, 02:45
Senior Member
 
Registriert seit: Feb 2006
Ort: Waterloo - BE
Beiträge: 176
Thumbs up

Zitat:
Zitat von dfhome Beitrag anzeigen
So, hier das Tool. Konfig über die config.xml.
Hallo dfhome,

Vielen Dank für das Tool. Da ich meine alten Anrufbeantworterskripte aus der V1 nicht mehr einsetzen kann wegen dem noch immer vorhandenem "Disconnect" Problem im ISDN Modul, suche ich schon seit langem an einer Alternative. Ein Lesen der dbase Datenbank hatte ich schon versucht aber direkt von IPS aus über PHP ist es sehr langsam.

Mich würde auch sehr interessieren, den Anrufbeantworter von IPS aus ein und ausschalten zu können, oder die Zeit zur Antwort zu ändern. Wäre das möglich?

Gruss,

Zapp
Mit Zitat antworten
  #10 (permalink)  
Alt 16.05.10, 10:46
Senior Member
 
Registriert seit: Sep 2007
Ort: Daisendorf - Bodensee
Beiträge: 542
Standard

Puh, da müsste man die API einbinden (wenn es denn da eine gibt...). Kann ich mal bei Gelegenheit schauen.
__________________
HM per LAN-Adapter | FS20 | 1-Wire | WMRS200 | 2xELO-Touch 15"| IPSV2.3 | iTunesCtl | FritzFonCtl
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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Newbie hat eine Frage! Mail per IPS? Xanon Allgemeine Diskussion 7 14.10.10 19:40
FritzBox 7270 an IPS V2.2 computerpap Audio & Video, TK-Anlagen, ISDN 25 13.04.10 21:12
ELV Bussystem HS485 für IPS ab V2.2 RWN Anleitungen / Nützliche PHP Scripte 3 27.03.10 14:03
IPS hängt sich auf nach SSL aktivieren pleibling Allgemeine Diskussion 2 26.10.08 20:18


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.


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