Für meine Automatisierungen benötige ich die Anzahl der gerade laufenden Gespräche als Reading. Die einzige Lösung, die mir das ermöglicht hat, ist die Erweiterung des aktuellen Moduls hinter Zeile 554 um:
readingsSingleUpdate ($hash, 'call_cnt', (grep { /^\d+/ } keys %{$hash->{helper}{TEMP}}), 0);
Das funktioniert soweit. Oder weiß jemand eine Lösung, wie man das auch mit "Bordmitteln" lösen kann, ohne den Code anzutasten?
Habe meine Erweiterungen (zusätzliche Readings mit der Anzahl der ein- und ausgehenden Gespräche ) erfolgreich in der 99_Utils.pm implementieren können. Thema somit geschlossen.
Hallo Raymund,
ich habe soeben eine neue Version von FB_CALLMONITOR eingecheckt mit einem neuen Reading "calls_count". Dieses gibt die Anzahl aller aktiven Gespräche an.
Gibts ab morgen via update.
Viele Grüße
Markus
Hallo Markus,
vielen Dank für Dein Osterei ;-) Nur noch zum Hintergrund meines Wunsches: mein Ziel war, bei Anrufen meine Audiogeräte auf MUTE zu stellen und beim Auflegen entsprechend auf UNMUTE. Leider verfügen einige meiner Geräte nur über eine Toggle-Funktion dazu. Wenn jetzt also mehrere Anrufe gleichzeitig kommen, klappt das natürlich nicht mehr. Dann gehen die Geräte beim zweiten Anruf wieder auf "laut".
Um das "sauber" hinzubekommen benötige ich jetzt also eigentlich zwei Readings zum Zählen einkommender UND ausgehender Calls. Ich habe dazu meine 99_Utils um diese Funktion erweitert:
sub GetMoreCallReadings {
my ($dev) = @_; my $hash = $defs{$dev};
my $count_incoming = 0; my $count_outgoing = 0; my $dirtype;
foreach my $key (keys %{$hash->{helper}{TEMP}}) {
$dirtype = $hash->{helper}{TEMP}{$key}{'direction'};
$count_incoming ++ if ($dirtype && $dirtype eq 'incoming');
$count_outgoing ++ if ($dirtype && $dirtype eq 'outgoing');
}
readingsBeginUpdate($hash);
readingsBulkUpdate ($hash, 'call_count_incoming', $count_incoming);
readingsBulkUpdate ($hash, 'call_count_outgoing', $count_outgoing);
readingsEndUpdate ($hash, 1);
return undef;
}
Allerdings muss diese Funktion immer etwas zeitverzögert ausgeführt werden (1 Sek.), bis FB_CALLMONITOR das Hash aktualisiert hat. Funktioniert soweit.
Ideal wären also zwei neue Readings oder einen zusätzlichen Trigger ganz am Ende von FB_CALLMONITOR_Read(), wenn alles erledigt ist.
Soweit mal mein Stand.
Noch einen schönen Ostermontag
Raymund
... ich überlege gerade: den Trigger hätte ich ja jetzt mit Deinem neuen Reading "calls_count". Den Rest kann ich mir ja dann zurecht basteln. Ist ja super, wenn ich damit das "sleep" nicht mehr brauche. Also, alles OK für mich so. Vielen Dank.
Zitat von: Markus Bloch am 13 April 2020, 11:10:46
ich habe soeben eine neue Version von FB_CALLMONITOR eingecheckt mit einem neuen Reading "calls_count". Dieses gibt die Anzahl aller aktiven Gespräche an.
Gibts ab morgen via update.
Viele Grüße
Markus
Hallo Markus,
wäre es möglich bestimmte eigene Rufnummern von der Überwachung durch FB_CALLMONITOR auszuklammern?
Zitat von: Raymund am 13 April 2020, 11:25:12
Allerdings muss diese Funktion immer etwas zeitverzögert ausgeführt werden (1 Sek.), bis FB_CALLMONITOR das Hash aktualisiert hat. Funktioniert soweit.
Ideal wären also zwei neue Readings oder einen zusätzlichen Trigger ganz am Ende von FB_CALLMONITOR_Read(), wenn alles erledigt ist.
Zitat von: Raymund am 13 April 2020, 11:33:27
... ich überlege gerade: den Trigger hätte ich ja jetzt mit Deinem neuen Reading "calls_count".
Der Trigger hat sich ja jetzt dahingehend verschoben, dass alle Events getriggert werden NACHDEM $hash->{helper}{TEMP} entsprechend gelöscht wurde. Der Aufruf von readingsEndUpdate() erfolgt ja nun ganz zum Schluss. Damit passt auch der Trigger für deine Logik nun direkt, ohne sleep().
Gruß
Markus
Zitatohne sleep()
Hab's schon ausprobiert. Klappt wunderbar ... :D Nochmals danke.
Zitat von: det. am 13 April 2020, 11:47:21
Hallo Markus,
wäre es möglich bestimmte eigene Rufnummern von der Überwachung durch FB_CALLMONITOR auszuklammern?
Ja klar, das sollte kein Thema sein. Ich mach erstmal Mittag, dann schau ich mir das an.
Gruß
Markus
Die Mittagspause hat zwar etwas länger gedauert, aber jetzt ist es fertig.
Gibts ab morgen via update.
Viele Grüße
Markus
Hallo Markus,
Vielen Dank, funktioniert perfekt!