NEWS
[Vorlage] Simple Anrufer-Ansage via Alexa/tr-064
-
Anbei ein kleines Javascript für eine Ansage des Anrufers bzw. der Nummer über den Alexa2-Adapter.
Benötigt wird auch der tr-064-Adapter (aktuelle 3.x Version) für das Empfangen der Fritz!Box-Daten.//* Insert own numbers with description const numbers = { '01234512345': 'privat', '01234522222': 'Büro' }; function tellMeWhoCalls(sayattention) { let curtime = new Date(); //* not between 21pm and 7am UTC if(curtime.getHours() < 7 || curtime.getHours() > 21) { return; } let targ = getState('tr-064.0.callmonitor.inbound.callee').val; let src = getState('tr-064.0.callmonitor.inbound.caller').val; let srcName = getState('tr-064.0.callmonitor.inbound.callerName').val; let targName = numbers[targ]; if(!targName) { targName = 'unbekannt'; } let text = (sayattention ? 'Achtung! ' : '') + 'Anruf für ' + targName + ' von '; if(srcName) { text += srcName; } else if(src) { text += '<say-as interpret-as="digits">' + src + '</say-as>'; } else { text += 'unbekannter Nummer'; } text += '.'; text = '<speak>' + text + '</speak>'; //* replace XXXXX by your echo device id and add further lines for more devices setState('alexa2.0.Echo-Devices.XXXXXXX.Commands.ssml', text); if(targName === 'privat') { //* replace YYYYYY by your echo device id or delete this part if you don't need it setState('alexa2.0.Echo-Devices.YYYYYYYY.Commands.ssml', text); } } let ringInterval = null; on({id: 'tr-064.0.callmonitor.ringing', change: 'ne'}, function(obj) { if(obj.state.val !== true) { //* no longer ringing if(ringInterval) { clearInterval(ringInterval); ringInterval = null; } return; } if(ringInterval) { clearInterval(ringInterval); } //* repeat caller anouncement each 10 secs ringInterval = setInterval(function() { tellMeWhoCalls(); }, 10000); //* first time add "Achtung!" in front of the text setTimeout(function() { tellMeWhoCalls(true); }, 1000); });
-
Ich habe dein Script importiert, doch leider sagt Alexa nichts.
tr-064 und Alexa2 sind natürlich installiert.
Angepasst im Script habe ich die XXXXX für Alexa und die Nummer für privat.
Den zweiten für ein zweites Alexa Gerät habe ich gelöscht.
Was könnte ich denn verkehrt gemacht haben? -
@jensus11 sagte in [Vorlage] Simple Anrufer-Ansage via Alexa/tr-064:
Ich habe dein Script importiert, doch leider sagt Alexa nichts.
tr-064 und Alexa2 sind natürlich installiert.
Angepasst im Script habe ich die XXXXX für Alexa und die Nummer für privat.
Den zweiten für ein zweites Alexa Gerät habe ich gelöscht.
Was könnte ich denn verkehrt gemacht haben?Habe es selber hinbekommen. Lag am alten tr-064. Mit der 3.1.4 läuft das.
-
Hat auch 3 Jahre später noch gut funktioniert!
Vielen Dank