FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Raymund am 31 März 2020, 21:22:05

Titel: FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Raymund am 31 März 2020, 21:22:05
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?
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Raymund am 01 April 2020, 13:28:12
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.
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Markus Bloch am 13 April 2020, 11:10:46
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
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Raymund am 13 April 2020, 11:25:12
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
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag 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". 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.
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: det. am 13 April 2020, 11:47:21
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?
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Markus Bloch am 13 April 2020, 13:01:24
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
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Raymund am 13 April 2020, 13:06:41
Zitatohne sleep()

Hab's schon ausprobiert. Klappt wunderbar ...  :D Nochmals danke.
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Markus Bloch am 13 April 2020, 13:07:37
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
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: Markus Bloch am 15 April 2020, 09:45:28
Die Mittagspause hat zwar etwas länger gedauert, aber jetzt ist es fertig.

Gibts ab morgen via update.

Viele Grüße

Markus
Titel: Antw:FB_CALLMONITOR, neues Reading mit Anzahl der laufenden Gespräche
Beitrag von: det. am 16 April 2020, 10:50:03
Hallo Markus,
Vielen Dank, funktioniert perfekt!