Seite 1 von 1

Fritzbox (TR064) Binding - Benachrichtigung bei verpassten Anruf

Verfasst: 18. Feb 2020 12:23
von DavGre
Hallo zusammen,

ich habe das Fritzbox-Binding soweit in Betrieb und möchte nun, dass ich bei einem verpassten Anruf per Telegram benachrichtigt werde. Die Nachricht soll außerdem die Nummer des verpassten Anrufes enthalten.

fritzbox.items (nur die relevanten)

Code: Alles auswählen

Switch  fboxanruf_eingehend        "Eingehender Anruf [%s]"                    		    {fritzboxtr064="callmonitor_ringing" }
Call     fbox_eingehend_nummer   "Eingehender Anruf von: [%1$s to %2$s]"              {fritzboxtr064="callmonitor_ringing" }
fritzbox.rules

Code: Alles auswählen

rule "test"
when 
    Item fboxanruf_eingehend changed from OFF to ON 
then 
    sendTelegram("bot1", "Eingehender Anruf von: -HIER SOLL DIE NUMMER DES ANRUFERS ERSCHEINEN-")
end
Wie kann ich den Wert des Items "fbox_eingehend_nummer" dementsprechend umwandeln, dass ich nur die Nummer des Anrufers in der oben angebildeten Regel ausgegeben bekomme?
Aktuell sieht der Wert des Items nämlich noch wie folgt aus (Auszug aus dem Logfile, die fett markierte Nummer ist die Nummer des Anrufers):

2020-02-18 12:21:47.310 [vent.ItemStateChangedEvent] - fbox_eingehend_nummer changed from , to 12456,01741235

Re: Fritzbox (TR064) Binding - Benachrichtigung bei verpassten Anruf

Verfasst: 18. Feb 2020 12:41
von eiGelbGeek
Versuche es mal so, könnte so gehen ... das er sich so nur das 2te Value raus zieht.

Code: Alles auswählen

sendTelegram("bot1", "Eingehender Anruf von: " + fbox_eingehend_nummer.get(1))

Re: Fritzbox (TR064) Binding - Benachrichtigung bei verpassten Anruf

Verfasst: 18. Feb 2020 14:02
von DavGre
Du hast mich in die richtige Bahn gelenkt. Habe mir nochmal die Dokumentation des Bindings angesehen und da stand es sogar drin. Habe es nun wie folgt gelöst:

Code: Alles auswählen

rule "Benachrichtigung bei verpassten Anruf"
when
    Item fboxanruf_eingehend changed from OFF to ON 
then
    logInfo("fritzbox.rules", "Regel Benachrichtigung bei verpassten Anruf gestartet")
    
    val incCall = fboxIncomingCall.state as StringListType
    val callerNumber = incCall.getValue(1)
    val incCallResolved = fboxIncomingCallResolved.state as StringListType
    val callerName = incCallResolved.getValue(1)
    //Wenn niemand Anwesend war
    if(Anwesenheitskontrolle.state == OFF) {
    // Benachrichtigung per Telegram
    sendTelegram("bot1", "Eingehender Anruf von: " + callerName + " und niemand war zu Hause.")
    }
end