TR-064 Binding und OH3
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
TR-064 Binding und OH3
Hallo,
inzwischen habe ich dieses Binding nahezu perfekt konfiguriert, so dass mir ausgehende wie eingehende Telefonate mit Namen, Rufnummern, Datum und Uhrzeit in OH3 anzeigt werden.
Komplett wäre diese Konstellation für mich allerdings erst, wenn auch noch die Gesprächsdauer ausgelesen oder anderswie errechnet werden kann. Daher würde mich interessieren ob es Anwender gibt, die sich schon einmal damit auseinander gesetzt oder vielleicht sogar einen Lösungsvorschlag haben.
Vielen Dank im Voraus.
inzwischen habe ich dieses Binding nahezu perfekt konfiguriert, so dass mir ausgehende wie eingehende Telefonate mit Namen, Rufnummern, Datum und Uhrzeit in OH3 anzeigt werden.
Komplett wäre diese Konstellation für mich allerdings erst, wenn auch noch die Gesprächsdauer ausgelesen oder anderswie errechnet werden kann. Daher würde mich interessieren ob es Anwender gibt, die sich schon einmal damit auseinander gesetzt oder vielleicht sogar einen Lösungsvorschlag haben.
Vielen Dank im Voraus.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's
- udo1toni
- Beiträge: 15242
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: TR-064 Binding und OH3
Wird denn das Ende des Gesprächs signalisiert?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: TR-064 Binding und OH3
Das ist eine gute Frage und ehrlich gesagt, da bin ich überfragt. Wir telefonieren über eine Fritz!Box 6591C und meine Recherchen sind diesbezüglich erfolglos.
Es ist nur so eine Idee, aber lässt sich vielleicht etwas über diese Log-Einträge bauen (natürlich nur mit deiner Unterstützung)?
Es ist nur so eine Idee, aber lässt sich vielleicht etwas über diese Log-Einträge bauen (natürlich nur mit deiner Unterstützung)?
Code: Alles auswählen
...
2022-10-14 01:50:41.439 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'fritzCallRinging' changed from DIALING to ACTIVE
...
2022-10-14 01:53:49.941 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'fritzCallRinging' changed from ACTIVE to IDLE
...
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's
- udo1toni
- Beiträge: 15242
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: TR-064 Binding und OH3
Ja, da hast Du ja die Signalisierung. ACTIVE wird eine bestehende Verbindung sein, IDLE dann der Zustand bei aufgelegt.
Die einfachste Variante wäre dann so:
Wenn der Status nach ACTIVE wechselt, merkt sich die Rule den aktuellen Zeitpunkt in der globalen Variablen lPhoneStart.
Wenn der Status von ACTIVE nach IDLE wechselt, speichert die Rule die Differenz des aktuellen Zeitpunkts zum gemerkten Zeitpunkt.
Natürlich wird die Gesprächsdauer auf diese Weise erst nach Ende des Gesprächs angezeigt.
Ich gehe davon aus, dass IDLE und ACTIVE "echte" Status sind. Ist das nicht der Fall, muss man halt jeweils .toString dran hängen und "" drum herum machen.
Die einfachste Variante wäre dann so:
Code: Alles auswählen
var Long lPhoneStart = 0
rule "Gesprächsdauer messen"
when
Item fritzCallRinging changed
then
var Integer iSeconds = 0
if(newState == ACTIVE) {
iPhoneStart = now.getEpochSecond
} else if(previousState == ACTIVE && newState == IDLE) {
iSeconds = (now.getEpochSecond - iPhoneStart).intValue
}
Gespraechsdauer.postUpdate(iSeconds)
end
Wenn der Status von ACTIVE nach IDLE wechselt, speichert die Rule die Differenz des aktuellen Zeitpunkts zum gemerkten Zeitpunkt.
Natürlich wird die Gesprächsdauer auf diese Weise erst nach Ende des Gesprächs angezeigt.
Ich gehe davon aus, dass IDLE und ACTIVE "echte" Status sind. Ist das nicht der Fall, muss man halt jeweils .toString dran hängen und "" drum herum machen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: TR-064 Binding und OH3
Das klappt momentan noch nicht. Ich verwende derzeit diesen Code:
und bekomme die Fehlermeldung:
Die Variable callDauer wird im weiteren Verlauf noch an ein Dummy-Item übergeben:
Ist das korrekt angelegt?
Außerdem, ohne den Zusatz .toString und die "" drum herum gab es noch weitere Fehlermeldungen.
Hast du noch eine Idee, wie die ERROR Meldung behoben werden kann?
Code: Alles auswählen
var Long lPhoneStart = 0
rule "Gesprächsdauer messen"
when
Item fritzCallRinging changed
then
var Integer iSeconds = 0
if(newState == "ACTIVE.toString") {
iPhoneStart = now.getEpochSecond
} else if(previousState == "ACTIVE.toString" && newState == "IDLE.toString") {
iSeconds = (now.getEpochSecond - iPhoneStart).intValue
}
var String callDauer = "-"
callDauer.postUpdate(iSeconds)
end
Code: Alles auswählen
2022-10-15 03:55:57.140 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'fritzbox_94-1' failed: An error occurred during the script execution: Could not invoke method: org.openhab.core.model.script.actions.BusEvent.postUpdate(java.lang.String,java.lang.String) on instance: null in fritzbox_94
Code: Alles auswählen
Flag_ADauer_00.postUpdate(callDauer)
Außerdem, ohne den Zusatz .toString und die "" drum herum gab es noch weitere Fehlermeldungen.
Hast du noch eine Idee, wie die ERROR Meldung behoben werden kann?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's
- udo1toni
- Beiträge: 15242
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: TR-064 Binding und OH3
Da habe ich vielleicht etwas missverständlich formuliert... Ich meinte es so:
State: ACTIVE
String: "ACTIVE"
previousState -> State
previousState.toString -> String
Es könnte auch sein, dass now.getEpochSecond nicht funktioniert, dann wäre meine Vermutung, dass es ZonedDateTime.now.getEpochSecond ist.
Code: Alles auswählen
var Long lPhoneStart = 0
rule "Gesprächsdauer messen"
when
Item fritzCallRinging changed
then
var Integer iSeconds = 0
if(newState.toString == "ACTIVE") {
iPhoneStart = now.getEpochSecond
} else if(previousState.toString == "ACTIVE" && newState.toString == "IDLE") {
iSeconds = (now.getEpochSecond - iPhoneStart).intValue
}
Gespraechsdauer.postUpdate(iSeconds)
end
String: "ACTIVE"
previousState -> State
previousState.toString -> String
Es könnte auch sein, dass now.getEpochSecond nicht funktioniert, dann wäre meine Vermutung, dass es ZonedDateTime.now.getEpochSecond ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: TR-064 Binding und OH3
Ich komme leider erst später dazu, deine Korrektur zu testen. Aber eine Frage noch zwischendurch: ist die Variable callDauer richtig erstellt bzw. kann das Ergebnis, wie beschrieben, anschließend von dem Dummy-Item "Flag_ADauer_00" so übernommen werden?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: TR-064 Binding und OH3
Auch der nächste Test brachte kein positives Ergebnis. Mit diesem Code...
ergaben sich folgende Fehlermeldungen...
Leider komme ich ohne deine Hilfe nicht weiter, deshalb: hast du noch weitere Tipps?
Code: Alles auswählen
var Long lPhoneStart = 0
rule "Gesprächsdauer messen"
when
Item fritzCallRinging changed
then
var Integer iSeconds = 0
if(newState.toString == "ACTIVE") {
iPhoneStart = ZonedDateTime.now.getEpochSecond
} else if(previousState.toString == "ACTIVE" && newState.toString == "IDLE") {
iSeconds = (ZonedDateTime.now.getEpochSecond - iPhoneStart).intValue
}
var String callDauer = "-"
callDauer.postUpdate(iSeconds)
end
Code: Alles auswählen
2022-10-15 18:15:57.921 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'fritzbox_94-1' failed: An error occurred during the script execution: Could not invoke method: org.openhab.core.model.script.actions.BusEvent.postUpdate(java.lang.String,java.lang.String) on instance: null in fritzbox_94
2022-10-15 18:15:58.586 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'fritzbox_94-1' failed: 'getEpochSecond' is not a member of 'java.time.ZonedDateTime'; line 9, column 23, length 32 in fritzbox_94
2022-10-15 18:16:03.592 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'fritzbox_94-1' failed: 'getEpochSecond' is not a member of 'java.time.ZonedDateTime'; line 11, column 22, length 32 in fritzbox_94
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's
- udo1toni
- Beiträge: 15242
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: TR-064 Binding und OH3
ok, in einem anderen Thread sind wir auf .toEpochSecond gekommen. Sorry, ist auch für mich etwas Stochern im Nebel, da ich selbst bisher noch auf OH2.5 arbeite...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: TR-064 Binding und OH3
Schade, auch dein letzter Hinweis hat nicht zum Erfolg geführt. Trotzdem noch einmal: Danke für die Unterstützung.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's