NEWS
[gelöst] TR-064 FritzBox Anrufmonitor filtern
-
Hallo
besteht die möglichkeit den Anrufmonitor (json-table) zu filtern, so da nur Anrufe angezeigt werden, die nur an eine gewisse nummer gegangen sind.
Mein gedanke dahinter:
3 Familienhaus jede Familie eigne Rufnummer
1 FritzBox
jede Familie bekommt ein Tablet mit spezifischen Anrufmonitor in dem Natürlich nur Anrufe angezeigt werden, die nur Ihre Rufnummer betreffen.
sollte ja die callednumber oder called sein. Nur wie gebe ich in der Json-Table einen Filter ein, geht das überhaupt
-
Habs jetzt manuell gelöst über scripte
lese das JSON-Objekt aus, suche nach der spezifischen Callednumber und kopiere mir dieses dann zu einem neuen Json zusammen, welches ich dann in der JSON-Table anzeigen lasse
-
Kannst du mal zeigen wie du es gelöst hast würde mich interessieren.
Danke
-
Servus
mein Script dazu sieht so aus
`var anruferliste ="tr-064.0.calllists.inbound.json"; var verpassteanruferliste ="tr-064.0.calllists.missed.json"; var anruf ="tr-064.0.callmonitor.inbound.json"; var pfad ="javascript.0.Daten.FritzBox."; var pfad_anrufliste =pfad+"Anrufliste"; var pfad_verpasste_anrufliste =pfad+"verpasste_Anrufliste"; var pfad_aktueller_anruf =pfad+"aktueller_Anruf"; var msn = new Array( 'Rufnummer-1' //1.Rufnummer eingeben (mit Vorwahl) ,'Rufnummer-2' //2.Rufnummer eingeben ,'Rufnummer-3' //3.Rufnummer eingeben //,'Rufnummer-4' //4.Rufnummer eingeben //,'Rufnummer-5' //5.Rufnummer eingeben //,'Rufnummer-6' //6.Rufnummer eingeben //,'Rufnummer-7' //7.Rufnummer eingeben //,'Rufnummer-8' //8.Rufnummer eingeben ); function anrufe(dp,pfad_anrufliste,msn) { var dp_pfad=pfad_anrufliste+'.'+msn; createState(dp_pfad,{name: dp_pfad, unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); for(var i = 0; i < anrufdaten.length; i++) { if(anrufdaten[i].callednumber == msn) { if (liste!=='')liste=liste+','; liste = liste+'{"date":"'+anrufdaten[i].date+'","caller":"'+anrufdaten[i].caller+'","name":"'+anrufdaten[i].name+'","callednumber":"'+anrufdaten[i].callednumber+'","device":"'+anrufdaten[i].device+'"}'; } } if (liste==='')'{"date":"keine","caller":"Daten","name":"vorhanden","callednumber":"","device":""}' liste='['+liste+']'; //log ('dp_pfad:'+dp_pfad); //log ('liste:'+liste); setState(dp_pfad,liste); } function verpassteanrufe(dp,pfad_verpasste_anrufliste,msn) { var dp_pfad=pfad_verpasste_anrufliste+'.'+msn; createState(dp_pfad,{name: dp_pfad, unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); for(var i = 0; i < anrufdaten.length; i++) { if(anrufdaten[i].callednumber == msn) { if (liste!=='')liste=liste+','; liste = liste+'{"date":"'+anrufdaten[i].date+'","caller":"'+anrufdaten[i].caller+'","name":"'+anrufdaten[i].name+'","callednumber":"'+anrufdaten[i].callednumber+'"}'; } } if (liste===''){'{"date":"keine","caller":"Daten","name":"vorhanden","callednumber":""}';} liste='['+liste+']'; //log ('----------------------------------verpasste Anrufe-------------------------------------------'); //log ('DP: '+datenpunkt); //log ('dp_pfad:'+dp_pfad); //log ('liste:'+liste); //log ('----------------------------------verpasste Anrufe ende---------------------------------------'); setState(dp_pfad,liste); } function aktuelle_anrufe(dp,pfad_aktueller_anruf,msn) { log('******* aktueller Anruf : '+pfad+' ,'+pfad_aktueller_anruf+' , '+msn); var dp_pfad = pfad_aktueller_anruf+'.'+msn; var dp_pfad_name = dp_pfad+'.name'; var dp_pfad_rufnummer = dp_pfad+'.rufnummer'; var dp_pfad_angerufen = dp_pfad+'.angerufen'; var dp_pfad_timestamp = dp_pfad+'.timestamp'; var dp_pfad_ringing = dp_pfad+'.ringing'; createState( dp_pfad_name, {name: 'Name', unit: ""}); createState( dp_pfad_rufnummer,{name: 'Rufnummer', unit: ""}); createState( dp_pfad_angerufen, {name: 'Angerufen', unit: ""}); createState( dp_pfad_timestamp,{name: 'Zeitstempel', unit: ""}); createState( dp_pfad_ringing, {name: 'Klingelt', unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); if(anrufdaten.callee == msn) { log('-----------------if'); var angerufen =anrufdaten.callee; var rufnummer =anrufdaten.caller; var name =anrufdaten.callerName; var zeitpunkt =anrufdaten.timestamp; setState(dp_pfad_name,name); setState(dp_pfad_rufnummer,rufnummer); setState(dp_pfad_angerufen,angerufen); setState(dp_pfad_timestamp,zeitpunkt); setState(dp_pfad_ringing,getState("tr-064.0.callmonitor.ringing").val); } //} liste='['+liste+']'; //log ('----------------------------------aktueller Anruf-------------------------------------------'); //log ('DP: '+datenpunkt); //log ('liste:'+liste); //log ('----------------------------------aktueller Anruf ende--------------------------------------'); //setState(dp_pfad,liste); } function anrufliste() { for(var nr = 0; nr < msn.length; nr++) { anrufe(anruferliste,pfad_anrufliste,msn[nr]); verpassteanrufe(verpassteanruferliste,pfad_verpasste_anrufliste,msn[nr]); } } on({id:"tr-064.0.callmonitor.ringing", val: true}, function (obj) { //log('########### aktueller Anruf #############'); var anruf="tr-064.0.callmonitor.inbound.json"; for(var nr = 0; nr < msn.length; nr++) { log('+++++++++++++++++++ aktueller Anruf '+msn[nr]+' ++++++++++++++++++++++'); aktuelle_anrufe(anruf,pfad_aktueller_anruf,msn[nr]); } }); on({id:"tr-064.0.callmonitor.ringing", val: false}, function (obj) { //log('########### aktueller Anruf löschen #############'); var anruf="tr-064.0.callmonitor.inbound.json"; for(var nr = 0; nr < msn.length; nr++) { log('+++++++++++++++++++++ ringing löschen '+msn[nr]+' ++++++++++++++++++++'); setState(pfad_aktueller_anruf+'.'+msn[nr]+'.ringing',false); } anrufliste(); });` [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
-
Danke werde ich mal testen
-
Bräuchte mal Hilfe zu dem Skript irgendwie wird bei mir unter den angelegten Ordnern und der jeweiligen Rufnummer nur [] angezeigt.
Servus
mein Script dazu sieht so aus
`var anruferliste ="tr-064.0.calllists.inbound.json"; var verpassteanruferliste ="tr-064.0.calllists.missed.json"; var anruf ="tr-064.0.callmonitor.inbound.json"; var pfad ="javascript.0.Daten.FritzBox."; var pfad_anrufliste =pfad+"Anrufliste"; var pfad_verpasste_anrufliste =pfad+"verpasste_Anrufliste"; var pfad_aktueller_anruf =pfad+"aktueller_Anruf"; var msn = new Array( 'Rufnummer-1' //1.Rufnummer eingeben (mit Vorwahl) ,'Rufnummer-2' //2.Rufnummer eingeben ,'Rufnummer-3' //3.Rufnummer eingeben //,'Rufnummer-4' //4.Rufnummer eingeben //,'Rufnummer-5' //5.Rufnummer eingeben //,'Rufnummer-6' //6.Rufnummer eingeben //,'Rufnummer-7' //7.Rufnummer eingeben //,'Rufnummer-8' //8.Rufnummer eingeben ); function anrufe(dp,pfad_anrufliste,msn) { var dp_pfad=pfad_anrufliste+'.'+msn; createState(dp_pfad,{name: dp_pfad, unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); for(var i = 0; i < anrufdaten.length; i++) { if(anrufdaten[i].callednumber == msn) { if (liste!=='')liste=liste+','; liste = liste+'{"date":"'+anrufdaten[i].date+'","caller":"'+anrufdaten[i].caller+'","name":"'+anrufdaten[i].name+'","callednumber":"'+anrufdaten[i].callednumber+'","device":"'+anrufdaten[i].device+'"}'; } } if (liste==='')'{"date":"keine","caller":"Daten","name":"vorhanden","callednumber":"","device":""}' liste='['+liste+']'; //log ('dp_pfad:'+dp_pfad); //log ('liste:'+liste); setState(dp_pfad,liste); } function verpassteanrufe(dp,pfad_verpasste_anrufliste,msn) { var dp_pfad=pfad_verpasste_anrufliste+'.'+msn; createState(dp_pfad,{name: dp_pfad, unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); for(var i = 0; i < anrufdaten.length; i++) { if(anrufdaten[i].callednumber == msn) { if (liste!=='')liste=liste+','; liste = liste+'{"date":"'+anrufdaten[i].date+'","caller":"'+anrufdaten[i].caller+'","name":"'+anrufdaten[i].name+'","callednumber":"'+anrufdaten[i].callednumber+'"}'; } } if (liste===''){'{"date":"keine","caller":"Daten","name":"vorhanden","callednumber":""}';} liste='['+liste+']'; //log ('----------------------------------verpasste Anrufe-------------------------------------------'); //log ('DP: '+datenpunkt); //log ('dp_pfad:'+dp_pfad); //log ('liste:'+liste); //log ('----------------------------------verpasste Anrufe ende---------------------------------------'); setState(dp_pfad,liste); } function aktuelle_anrufe(dp,pfad_aktueller_anruf,msn) { log('******* aktueller Anruf : '+pfad+' ,'+pfad_aktueller_anruf+' , '+msn); var dp_pfad = pfad_aktueller_anruf+'.'+msn; var dp_pfad_name = dp_pfad+'.name'; var dp_pfad_rufnummer = dp_pfad+'.rufnummer'; var dp_pfad_angerufen = dp_pfad+'.angerufen'; var dp_pfad_timestamp = dp_pfad+'.timestamp'; var dp_pfad_ringing = dp_pfad+'.ringing'; createState( dp_pfad_name, {name: 'Name', unit: ""}); createState( dp_pfad_rufnummer,{name: 'Rufnummer', unit: ""}); createState( dp_pfad_angerufen, {name: 'Angerufen', unit: ""}); createState( dp_pfad_timestamp,{name: 'Zeitstempel', unit: ""}); createState( dp_pfad_ringing, {name: 'Klingelt', unit: ""}); var datenpunkt=getState(dp).val; var anrufdaten; var liste=''; anrufdaten = JSON.parse(datenpunkt); if(anrufdaten.callee == msn) { log('-----------------if'); var angerufen =anrufdaten.callee; var rufnummer =anrufdaten.caller; var name =anrufdaten.callerName; var zeitpunkt =anrufdaten.timestamp; setState(dp_pfad_name,name); setState(dp_pfad_rufnummer,rufnummer); setState(dp_pfad_angerufen,angerufen); setState(dp_pfad_timestamp,zeitpunkt); setState(dp_pfad_ringing,getState("tr-064.0.callmonitor.ringing").val); } //} liste='['+liste+']'; //log ('----------------------------------aktueller Anruf-------------------------------------------'); //log ('DP: '+datenpunkt); //log ('liste:'+liste); //log ('----------------------------------aktueller Anruf ende--------------------------------------'); //setState(dp_pfad,liste); } function anrufliste() { for(var nr = 0; nr < msn.length; nr++) { anrufe(anruferliste,pfad_anrufliste,msn[nr]); verpassteanrufe(verpassteanruferliste,pfad_verpasste_anrufliste,msn[nr]); } } on({id:"tr-064.0.callmonitor.ringing", val: true}, function (obj) { //log('########### aktueller Anruf #############'); var anruf="tr-064.0.callmonitor.inbound.json"; for(var nr = 0; nr < msn.length; nr++) { log('+++++++++++++++++++ aktueller Anruf '+msn[nr]+' ++++++++++++++++++++++'); aktuelle_anrufe(anruf,pfad_aktueller_anruf,msn[nr]); } }); on({id:"tr-064.0.callmonitor.ringing", val: false}, function (obj) { //log('########### aktueller Anruf löschen #############'); var anruf="tr-064.0.callmonitor.inbound.json"; for(var nr = 0; nr < msn.length; nr++) { log('+++++++++++++++++++++ ringing löschen '+msn[nr]+' ++++++++++++++++++++'); setState(pfad_aktueller_anruf+'.'+msn[nr]+'.ringing',false); } anrufliste(); });` [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i] ``` `