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? -
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.
-
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); });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
