soef / ioBroker.tr-064

tr-64 Adapter for ioBroker
MIT License
21 stars 9 forks source link

Anruferliste und Anrufe auf dem AB #21

Closed vore closed 7 years ago

vore commented 7 years ago

Hallo Soef, wäre es möglich eine Anruferliste mit den letzten 5 Anrufen zu bekommen? Hier wären die eingegangenen und auch die ausgegangenen Anrufe interessant. Außerdem die Frage, ob es eine Anzeigemöglichkeit für die Anzahl der Nachrichten auf dem AB gibt?

Gruß Vore

soef commented 7 years ago

Hallo, es gibt für beides - Anrufliste und AB-Liste - die Möglichkeit je eine URL (mit SessionID) von der FritzBox zubekommen. Mit dieser URL bekommt man dann jeweils eine XML-Datei der jeweiligen Liste. Hierfür kannst du den Datenpunkt tr-064.0.states.command verwenden. Das Ergebnis calls steht anschließend in tr-064.0.states.commandResult.

Setze den command Datenpunkt auf: { "service": "urn:dslforum-org:service:X_AVM-DE_OnTel:1", "action": "GetCallList", "params": {}};

Der erhaltenen URL kannst du noch &max=5 übergeben.

Für die AB-Liste: { "service": "urn:dslforum-org:service:X_AVM-DE_OnTel:1", "action": "GetMessageList", "params": { NewIndex: 1 }};

Ich kann bei Gelegenheit aber auch native Datenpunkte einbauen. Wie stellst du dir die Handhabung vor?

Grüße...

vore commented 7 years ago

Hallo,

Danke für den Tip. Ich werde es mir mal ansehen.

Es würde mir schon als Datenpunkt mit Angabe eines Werts (Integer) reichen für den Anrufebeantworter. Eine kurze Liste mit Anrufen wird z.B. auch bei dem Adapter "Fritzbox" wahlweise als JSON oder HTML ausgegeben. Wenn Du eine ähliche Funktion implementieren könntest, wäre das Super. Dann könnte ich alle Funktionen mit TR64 realisieren und kann auf "Fritzbox" verzichten.

Grüße

Hallo, es gibt für beides - Anrufliste und AB-Liste - die Möglichkeit je eine URL (mit SessionID) von der FritzBox zubekommen. Mit dieser URL bekommt man dann jeweils eine XML-Datei der jeweiligen Liste. Hierfür kannst du den Datenpunkt tr-064.0.states.command verwenden. Das Ergebnis calls steht anschließend in tr-064.0.states.commandResult.

Setze den command Datenpunkt auf: { "service": "urn:dslforum-org:service:X_AVM-DE_OnTel:1", "action": "GetCallList", "params": {}};

Der erhaltenen URL kannst du noch &max=5 übergeben.

Für die AB-Liste: { "service": "urn:dslforum-org:service:X_AVM-DE_OnTel:1", "action": "GetMessageList", "params": { NewIndex: 1 }};

Ich kann bei Gelegenheit aber auch native Datenpunkte einbauen. Wie stellst du dir die Handhabung vor?

Grüße...

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/soef/ioBroker.tr-064/issues/21#issuecomment-279014450, or mute the thread https://github.com/notifications/unsubscribe-auth/AC3MDd-biALbjHhnclZJLv3xW_OT9Njcks5rbKMzgaJpZM4L8qp8.

KNXBroker commented 7 years ago

Hi,

die Funktion mit der Liste wäre super.
War heute schon am Basteln eines Scripts, bis ich diesen Eintrag gefunden habe. Der Datenpunkt sollte unbedingt mit der JSON TABLE kompatibel sein. Die Definition der maximalen Zeilenanzahl könnte dann hierüber erfolgen.

Viele Grüße

soef commented 7 years ago

Hallo, ich habe einmal das Abholen der Anrufliste von der FritzBox implementiert und als Developer-Version bei npm bereitgestellt. Installieren kannst du sie, im ioBroker-Verzeichnis stehend wie folgt:

npm install iobroker.tr-064@dev iobroker upload tr-064

Grüße

KNXBroker commented 7 years ago

Hi soef, ich bin begeistert 👍

könntest Du noch eine zusätzliche Liste für alle Anrufe mit anlegen?

Über Javascript habe ich mir den Type in entsprechende Symbole umgewandelt (eingegangener Anruf, ausgegangener Anruf, verpasster Anruf). Die Krönung wäre, wenn das als zusätzliche Spalte gleich mit in den Tabellen wäre :-)

Wer es noch möglich ein State für ein klingelndes Telefon zu erzeugen?

Viele Grüße

soef commented 7 years ago

Hallo, einen Status für ein klingendes Telefon haben ich angelegt. Er ist: tr-064.0.callmonitor.ringing.

In welcher Form sollte das Symbol gleich mit in der Tabelle sein? Meinst du eine Grafik oder ein Zeichen aus einer Code-Tabelle?

Grüße...

PS.: ist wieder vorerst über

npm install iobroker.tr-064@dev

zu installieren.

KNXBroker commented 7 years ago

Hi, diese mal hat das Update leider nicht geklappt. Wegen den Symbolen, zuerst dachte ich an die schönen bunten Symbole der Fritzbox Oberfläche. Dies macht es aber wieder schwierig was Hintergründe, Größe, etc. angeht. Deshalb denke ich dass Symbole aus dem UniCode besser sind. Z.B. ⯈ für eingehende Anrufe (in blau) ⯁ für verpasste Anrufe (in rot) ⯇ für ausgehende Anrufe (in grün)

soef commented 7 years ago

Hallo, was ist denn beim Update schiefgegangen?

Ich habe deine Symbole einmal mit in das JSON aufgenommen. Sie sind allerdings nur schwarz. Wenn du andere hast, kann ich sie tauschen. Oder du setzte die Farbe in HTML.

KNXBroker commented 7 years ago

Der Ordner callmonitor erscheint bei mir nicht mehr in der Liste :-( Ich habe das Update wieder wie folgt gemacht: npm install iobroker.tr-064@dev iobroker upload tr-064 Er zeigt mir auch Version 2.4 an, allerdings ohne den Ordner callmonitor und ohne die Symbole.

soef commented 7 years ago

Hallo, der "Ordner" callmonitor wird nur dann angelegt, wenn der Adapter auch eine Verbindung über Port 1012 aufbauen kann. Diese Verbindung kann nur einmal vorhanden sein. Solltest du noch weitere Module oder Dienste verwenden, die auch den Port 1012 zur Fritzbbox nutzen, ist er belegt und die nachfolgenden Dienste bekommen keine Verbindung mehr. Schaust Du mal, ob das bei dir der Fall ist?

soef commented 7 years ago

Ach so, und es muss natürlich einen Anruf gegeben haben. Ansonsten werden die States auch nicht angelegt.

KNXBroker commented 7 years ago

Hi Soef, läuft 1A! Vielen Dank! Hatte fälschlicherweise 2 Instanzen am Laufen und habe keine Anrufe getätigt..! Kannst Du noch eine Liste mit allen Anrufen erzeugen? Viele Grüße

KNXBroker commented 7 years ago

noch ein kleiner Nachtrag, Android scheint Probleme mit den nativen Sonderzeichen zu haben. Kannst Du die Symbole als HTML Code hinterlegen? Diese scheinen zu funktionieren. Vielen dank nochmal

soef commented 7 years ago

Hallo, hab' auf die schnelle einmal eine Liste für alle Anrufe aufgenommen, Zudem habe ich die Konfiguration etwas umgestellt, Auch habe ich ein html-symbol (.escapedSym) in die JSON Liste aufgenommen. Zu installieren wieder über:

npm install iobroker.tr-064@dev iobroker upload tr-064

Das upload-Kommando ist für das Update der Konfiguration. Grüße.

KNXBroker commented 7 years ago

Hi soef, das Konfimenü schaut gut aus. Wollte das Update installieren, bekomme aber immer nachfolgende Fehlermeldung (egal welche Haken ich setzte). Die Verbindungsampel geht zudem immer kurz auf grün und dann gleich wieder zurück auf rot.

raspberrypi 2017-02-27 21:17:10.885 info    host.raspberrypi Restart adapter system.adapter.tr-064.0 because enabled
raspberrypi 2017-02-27 21:17:10.884 error   host.raspberrypi instance system.adapter.tr-064.0 terminated with code 0 (OK)
tr-064.0    2017-02-27 21:17:10.840 error   uncaught exception: Calllist is not defined
tr-064.0    2017-02-27 21:17:10.599 info    starting. Version 0.2.6 in /opt/iobroker/node_modules/iobroker.tr-064, node: v4.7.3
raspberrypi 2017-02-27 21:17:06.038 info    host.raspberrypi instance system.adapter.tr-064.0 started with pid 947
host.raspberrypi    2017-02-27 20:17:03.535 info    instance system.adapter.tr-064.0 terminated with code null ()
host.raspberrypi    2017-02-27 20:17:03.534 warn    instance system.adapter.tr-064.0 terminated due to SIGTERM
host.raspberrypi    2017-02-27 20:17:03.510 info    stopInstance system.adapter.tr-064.0 killing pid 941
host.raspberrypi    2017-02-27 20:17:03.509 info    stopInstance system.adapter.tr-064.0
host.raspberrypi    2017-02-27 20:17:03.504 info    object change system.adapter.tr-064.0
soef commented 7 years ago

Oh, mis.., Tippfehler. Sollte nun gehen.

KNXBroker commented 7 years ago

Hi soef, V3.2 heute installiert, läuft super. Habe nur noch ein Problem mit den Symbolen. Auch die ESCAPE SYMBOLE werden unter Android nicht dargestellt. Ich vermute, dass das Widget JSON TABLE die ESCAPE SYMBOLE wieder in native SYMBOLE konvertiert. Ich hatte es vorher mit dem widget STRING UNESCAPED ausprobiert, damit hat es unter Android funktioniert. Schade... vielleicht hast Du noch eine andere Idee? Zurück zum Standard ASCII Satz...?

KNXBroker commented 7 years ago

Hi soef,

Macht gerade richtig Spaß deinen Entwicklungen zu folgen!

Habe heute nochmal mit den Symbolen rumgespielt, komme aber auf keinen grünen Zweig. Ich denke folgende Zeichen sollten auch den Zweck erfüllen, wenn auch nicht ganz so schick:

x für verpasste Anrufe, > für eingehende Anrufe und < für ausgehende Anrufe

Noch eine kleine Zusatzfunktion, die ich mir sehr gut vorstellen könnte und mir schon länger durch den Kopf geht: Es wäre toll, wenn der Adapter eine JSON Tabelle liefern könnte, mit den aktiven Heimnetzverbindungen. (ähnlich zu der Übersicht in der FritzBox). Wenn irgendwas mal wieder nicht funktioniert, stehe ich öfters vor der Frage, welches Gerät ist gerade aktiv (mit welcher IP etc.) . Im Endeffekt ähnlich zu den device states, nur mit dem Unterschied, dass neue Geräte nicht manuell hinzugefügt werden müssen.

soef commented 7 years ago

Hallo, habe die normalen Zeichen einmal eingesetzt. Ein DP mit einer Json Liste der Geräte wird nun auch angelegt. Allerdings nur für die Liste der konfigurierten Geräte.

Grüße

KNXBroker commented 7 years ago

Hi soef, kurze Rückmeldung:

Anrufliste ist fast perfekt, war noch ein bisschen unzufrieden mit der externen Rufnummerzuordnung der Fritzbox (teilweise steht die externe Rufnummer bei caller, teilweise bei called) und auch die interne Rufnummer interessiert eigentlich wenig. Deshalb hab ich einen zusätzlichen Parameter extNumber eingeführt, der wie folgt definiert wird:

for (i = 0; i < xy.length; i++) { 
    if (xy[i].type==1){
    xy[i].extNumber=xy[i].caller;
    } else if (xy[i].type==2) {   
    xy[i].extNumber=xy[i].caller;    
    } else if (xy[i].type==3) {   
    xy[i].extNumber=xy[i].called;    
    }
}

Damit bekomme ich eine sehr schöne Tabelle mit allen wichtigen Infos:

image

Kannst Du das dem Code hinzufügen?

soef commented 7 years ago

Ok, hab' ich mal gemacht. Das Feld heißt external.