Rückwärtssuche bei Anruf
Mach dein Zuhause schlau! Finde heraus, wer dich anruft, bevor du abhebst.
Ich habe bereits mein kleines Infodisplay vorgestellt. Es zeigt normalerweise Statusinformationen zum Haus an. Dazu zählen Daten der PV-Anlage, der Solarthermie oder die Wettererwartungen.
Neue Aufgabe für das Infodisplay
Wenn ein Anruf eingeht, soll ioBroker
im Internet nach der Herkunft der Nummer suchen. Diese Information wird dann auf den Infodisplays im Haus angezeigt. Gleichzeitig wird sie an meinen Push-Server gesendet, sodass sie auf meinen Telefonen, Tablets und der SmartWatch angezeigt wird. Bevor man das Gespräch entgegennimmt, hat man in der Regel bereits gesehen, wer anruft, und kann entscheiden, wie man auf den Anrufer reagieren möchte.
Informationsbeschaffung
Um den Anrufer zu ermitteln, ziehe ich ein Script heran, das ich bereits zu Zeiten von freetz und Asterisk genutzt habe:
invers_suche() {
# JSON-Daten von "Das Örtliche" abrufen und handlerData extrahieren
JSON=$(wget -qO- "http://www.dasoertliche.de/Controller?form_name=search_inv&ph=$1" |
sed -n -e 's/.*handlerData =\(.*\)..$/\1/p')
# Überprüfung, ob die JSON-Daten leer oder ungültig sind
if [[ -z "$JSON" || "$JSON" == "null" ]]; then
echo "Keine Daten für die Telefonnummer gefunden."
return 1
fi
# Direkt alle relevanten Felder extrahieren
NAME=$(echo "$JSON" | jq -r '.[0][14] // "Unbekannt"')
STRASSE=$(echo "$JSON" | jq -r '.[0][9] // "Unbekannt"')
HAUSNUMMER=$(echo "$JSON" | jq -r '.[0][10] // ""')
ORT=$(echo "$JSON" | jq -r '.[0][8] // "Unbekannt"')
PLZ=$(echo "$JSON" | jq -r '.[0][4] // ""')
# Score von Tellows abrufen und extrahieren
SCORE=$(wget -qO- "https://www.tellows.de/num/$1" |
sed -n -e 's/.* : Score \(.*\)".*/\1/p')
# Standardwert für den Score setzen, falls nicht verfügbar
SCORE=${SCORE:-"Nicht verfügbar"}
# Die extrahierten Informationen ausgeben
echo "Name : $NAME"
echo "Strasse : $STRASSE $HAUSNUMMER"
echo "Ort : $ORT $PLZ"
echo "Score : $SCORE"
}
Übergibt man eine Telefonnummer so erhält man den Besitzer, sofern er einen Telefonbucheintrag hat:
$ invers-suche 0615122222
Name : Sitte Restaurant
Strasse : Karlstr. 15
Ort : 64283 Darmstadt
Score : 5
Darüber hinaus erhält man Informationen darüber, ob die Nummer mit Spam-Anrufen in Verbindung steht. Liegt der Spam-Score bei über 5, deutet dies auf lästige Werbeanrufe oder ähnliches hin. Ein Wert unter 5 bedeutet, dass die Nummer in der Regel für legitime Anrufe verwendet wird. Der Wert 5 selbst weist darauf hin, dass bisher keine Beschwerden über diese Nummer eingegangen sind.
Diese Informationen sind also durchaus nützlich.
Integration in die Hausautomation
Um Informationen über einen Anrufer auf das Smartphone oder die Smartwatch zu senden, empfehle ich, meinen Artikel über die Einrichtung eines eigenen Push-Servers noch einmal zu lesen. Alternativ gibt es auch andere Ansätze, die möglicherweise bereits in ioBroker verwendet werden.
Ich habe mich dafür entschieden, die Aktionen in Blockly nachzubauen. Dabei kam dieser Aufbau heraus:
Ausgelöst wird dieser Block durch eine Veränderung dieses Datenpunktes:
Eine Veränderung ist dabei bereits die Uhrzeit. Somit wird also bei jedem Anruf der Block durchlaufen.
Fazit
Dies ist erneut ein äußerst unkompliziertes Projekt. Selbst wenn ich nicht zu Hause bin, werde ich darüber informiert, wer versucht hat, mich zu erreichen, und kann bei Bedarf zurückrufen.
Falls ich jedoch erkenne, dass es sich lediglich um einen Werbeanruf handelt, kann ich mir den Ärger ersparen und den Anruf einfach ignorieren.