Neues Modul Telefonmonitor (TM)

Begonnen von Elektrolurch, 20 September 2014, 14:17:38

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

jetzt habe ich aus dem 99_myUtilsTelefon ein Modul gemacht.
Was ist neu?

- es lassen sich bezüglich des FB_CallMonitors der Fritzbox nun beliebig viele Objekte des TMs erzeugen, die etwas unterschiedliches darstellen können, z.B. eine Instanz für alle Anrufe und nur eine für verpassste Anrufe

Das Modul sollte beliebig viele Anrufe, die gleichzeitig geführt werden, verarbeiten können.
- Die Anzeige wird schon beim event "ring" aktualisiert.
- Für "ring" und "disconnect" lassen sich per Attribut sowohl Aufrufe an fhem, als auch Aufrufe von perl-Code starten.
- Die Anzeigesymbole sind per Attribut einstellbar.
- ein seperates Notify für den Telefonmonitor ist nicht mehr notwendig

define myTM TM <Fritzbox>
<Fritzbox> ist vom Typ type FB_CALLMONITOR

Attribute:
disable:0,1
maxlines # Zahl der anzuzeigenden Zeilen - 1 !!! (4 zeigt 5 Zeilen an)
monitor-type:all,incoming,outgoing,missed-call,all-after-disconnect  # default: all
symbol-incoming# default "=>"
symbol-incoming-noconnect # default: "0>"
symbol-outgoing # default "<="
symbol-outgoing-noconnect # default: "<0"
symbol-answering-machine # default: "AB", "AB2"...
symbol-connected # default "<->, during call
update:0,1,2
# 0 uses readingsBulkUpdate für alle Zeilen
# 1 die erste Zeile wird per readingsSingleUpdate aktualisiert
# 2 alle Zeilen werden per readingsSingleUpdate aktualisiert

Das ist derzeit experimentell, da leider per readingsBulkUpdate keine sofoortige Aktualisierung der benutzten readingsGroup auf dem Screen erfolgt.
Nachteil von readingsSingleUpdate ist, dass hier für jede Zelle der Anzeigengroupe events durch fhem laufen und eine Menge Zeit "verschwendet" wird.
Wer also keine "sofortige Aktualisierung" der Anzeige benötigt, setzt update auf 0
An dem Problem wird noch gearbeitet!!!!

verbose:0,1,2,3,4,5,6 method-ring method-disconnect";

method-ring method-disconnect

Beispiel
Sobald das Telefon klingelt, geht das Licht an, wenn der Anruf beendet ist, gehts wieder aus.

attr myTM method-ring set Lampe1 ein
attr myTM method-disconnect set Lampe1 aus

attr myTM1 method-ring {TelefonAktion($EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER);;;;}

Bitte die ";;;;" beachten!

Für FHEM werden die internen Variablen
%EXTERNAL_NAME, %EXTERNAL_NUMBER und %INTERNAL_NUMBER mit den aktuellen Werten belegt
Für perl-Aufrufe, die entsprechenden mit einem "$" stattt "%".

Anzeige des Anrufers auf einem Samsung TV:

attr myTM2 method-ring set mySTV call Anruf von %EXTERNAL_NAME %EXTERNAL_NUMBER

Beispiel für die Anzeige per readingsGroup

define TM TM meineFB


define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> TM:A0,B0,C0,D0,E0 TM:A1,B1,C1,D1,E1 TM:A2,B2,C2,D2,E2 TM:A3,B3,C3,D3,E3 TM:A4,B4,C4,D4,E4
attr Anrufliste mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufliste noheading 0
attr Anrufliste nolinks 1
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon

Version 1.5
Bugfix: bei AB
Ergänzung: Standardattribute werden unterstützt
Neu:
set TM clear
löscht die Anzeige (F5 notwendig)
set TM monitor-type <mtype>
setzt das Attribut. Dies wurde in den set-Befehl mit aufgenommen, so dass man in einer readingsGroup als letzte Zeile eine Auswahl des monitor-types einblenden lassen kann und diese von der GUI aus veränderbar ist.

Version 1.52 30.9.2014
BugFix: TM_SetValue -> readingsSingleUpdate $update replaced b<y 1

Version 1.53
room,alias added.
'missed-calls' probably fixed
problems with 'callID' on some installations, added additional loging for verbose 6.

Version 1.54
Bugfix: missed_call replaced by missed-call

# Version 1.6
# added:  attr line-filter accepts a list of ',' seperated incoming calling line numbers for filtering incoming or outgoing calls by calling line
# or a hash for mapping lines to text
# example
# attr myTM line-filter 304050,304060
# or
# attr myTM line-filter {'304050' => 'geschftl.', '304060' => 'priv'}
# line-information is stored in G0...G4
#
# added:
# $INTERNAL_CONNECTION / %INTERNAL_CONNECTION as variables for calling methods
# added: method-connect



# version 1.61 (06.12.2014)
# Bug fix: internal_connection not valid during ring ->  replaced by 'ring'
# Bug fix: correct setting of call-duration, depending on monitor-type
# Bug fix: TM_Store: Log with undef, if filter not set
# added to Attrlist: icon,group, method-call 


Elektrolurch
configDB und Windows befreite Zone!

l3skon3

Hallo,

ich bekomme die Meldung

define myTM myTM TM 192.168.10.1: TM_Define: 192.168.10.1 does not exists or ist not of type FB_CALLMONITOR

Der normale Callmonitor lief bis jetzt


Elektrolurch

Hallo,

Zitat:
define myTM myTM TM 192.168.10.1: TM_Define: 192.168.10.1 does not exists or ist not of type FB_CALLMONITOR

192.... ist ja auch kein Objekt vom type FB_CallMonitor!!!!
Einfach lesen, was da steht...
Ich hatte es oben ausdrücklich beschrieben.

Du hast doch:

define meineFritzBox FB_CALLMONITOR 192.168.10.1

und dann muss es natürlich lauten:

define myTM TM meineFritzBox

Elektrolurch




configDB und Windows befreite Zone!

l3skon3

Hallo,

danke für die Hilfe! Das hab auch ich jetzt hin bekommen  :-[ ;)

Nur die Icons fehlen mir jetzt noch und im Feld Pos ist auch was verkehrt.

Sorry bin total anfänger  :-[ :-[ :-[

Danke

(http://abload.de/img/unbenanntkjx84.png)

Elektrolurch

Unter dem Thema "Calmonitor für Anfänger" gibt es eine Reihe Beispiele, wie man in der readingsGrup per Attribut Mapping den Text für die "Anrufrichtung" in ein Icon umwandelt
configDB und Windows befreite Zone!

Roaster

#5
Servus Eletrolurch,

Ich habe das neue Modul bereits im Einsatz, soweit scheint es super zu laufen - nochmals vielen Dank für die Überarbeitung! Ich habe allerdings noch keine Gelegenheit gehabt die Aktualisierung (aller fünf) Einträge in der readingsGroup zu beobachten. Ich hatten schlichtweg den PC während der letzten Anrufe nicht am Laufen.

Was ich noch gerne getestet hätte ist die Verwendung von Symbolen anstatt von Zeichen zur Anzeige der Art der Anrufe. Ich habe dies bis jetzt probiert:
attr CallMon symbol-incoming 'phone_ring_in@green' # default "=>"
attr CallMon symbol-incoming-noconnect 'phone_ring_in@red' # default: "0>"
attr CallMon symbol-outgoing 'phone_ring_out@green' # default "<="
attr CallMon symbol-outgoing-noconnect 'phone_ring_out@red' # default: "<0"
attr CallMon symbol-answering-machine 'audio_volume_mid@lightgreen' # default: "AB", "AB2"...
attr CallMon symbol-connected 'phone_ring_out@yellow' # default "<->, during call


Also entweder ich muss noch ein Prozentzeichen (oder dergleichen) vor den Symbolnamen einfügen, oder das Modul ist für Symbole nicht vorbereitet. OK, mit Hilfe eines Mappings in der readingsGroup sollte auch dies lösbar sein.

Es wäre wohl aber schicker, wenn man es gleich in der Definition lösen könnte.

Noch eine Frage, es ist eventuelle auch eine mögliche Erweiterung: wenn ein Anruf auf dem AB der FritzBox aufgezeichnet ist. Wäre es denkbar mit Hilfe eines Commands in der readingsGroup, also eines ausführbaren Buttons, den Anrufbeantworter gleich abzuhören. Das wäre die Krönung des ganzen Moduls  ;)

Ich stelle mir vor, dass ich innerhalb der fhem Oberfläche die Wave-Datei oder was auch immer in der FritzBox gespeichert wird, herunterladen kann und auf dem PC oder (Android-)Tablet anhören kann.

Noch eine Frage zu deinen Beispielen: Was macht eigentlich die folgende Zeile innerhalb der readingsGroup genau?
attr Anrufliste mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}

Es wird wohl irgendetwas gemappt. Muss ich das TM durch den Namen meiner Gerätedefinition ersetzen? Also beispielsweise CallMon?

Edit: ich habe soeben die FritzBox Oberfläche aufgerufen. Dort kann man bereits im Einstiegsbild die aufgezeichneten Anrufe abrufen. Ein Link dazu lautet beispielsweise
Zitathttp://fritz.box/lua/photo.lua?sid=d7e86737b6c05c3d&myabfile=%2Fdata%2Ftam%2Frec%2Frec.0.003
Es erscheint dann ein Downloaddialog, der zum Speichern oder Öffnen einer Wave-Datei auffordert. Wäre prima, wenn man dies auch innerhalb von fhem mit dem neuen Callmonitor realisieren könnte.

Grüße,
Michael

l3skon3

Hallo,

ich versuch die Icons nun seit gestern durch Mapping in die readingsGroup einzubinden bekomme es aber nicht hin kann jemand den tipp geben wie es gehen soll bitte?

Danke im Vorraus.

carlos

Hallo,
Ich kriegs auch nicht hin.
Ich mach mal ein Beispiel. Die 1. Anrufliste ist über den callmonitor definiert, die 2. über den Telefonmonitor:

# Anzeige der Anrufliste generieren:
define Anrufliste readingsGroup <Art>,<Datum>,<Name>,<Nummer>,<Dauer> my_callmonitor:A0,B0,C0,D0,E0 my_callmonitor:A1,B1,C1,D1,E1 my_callmonitor:A2,B2,C2,D2,E2 my_callmonitor:A3,B3,C3,D3,E3 my_callmonitor:A4,B4,C4,D4,E4
attr Anrufliste group Anrufuebersicht
attr Anrufliste mapping &nbsp
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste nolinks 1
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon
attr Anrufliste style style="font-size:14px"
attr Anrufliste valueIcon {'A0.out_connected' => 'phone_call_out@lightgreen', 'A0.out_notconnected' => 'phone_call_out@red','A0.in_connected' => 'phone_call_in@lightgreen','A0.in_notconnected' => 'phone_call_in@red', 'A0.AB' => 'audio_volume_mid@lightgreen', 'A1.out_connected' => 'phone_call_out@lightgreen', 'A1.out_notconnected' => 'phone_call_out@red','A1.in_connected' => 'phone_call_in@lightgreen','A1.in_notconnected' => 'phone_call_in@red', 'A1.AB' => 'audio_volume_mid@lightgreen','A2.out_connected' => 'phone_call_out@lightgreen', 'A2.out_notconnected' => 'phone_call_out@red','A2.in_connected' => 'phone_call_in@lightgreen','A2.in_notconnected' => 'phone_call_in@red', 'A2.AB' => 'audio_volume_mid@lightgreen','A3.out_connected' => 'phone_call_out@lightgreen', 'A3.out_notconnected' => 'phone_call_out@red','A3.in_connected' => 'phone_call_in@lightgreen','A3.in_notconnected' => 'phone_call_in@red', 'A3.AB' => 'audio_volume_mid@lightgreen','A4.out_connected' => 'phone_call_out@lightgreen', 'A4.out_notconnected' => 'phone_call_out@red','A4.in_connected' => 'phone_call_in@lightgreen','A4.in_notconnected' => 'phone_call_in@red', 'A4.AB' => 'audio_volume_mid@lightgreen'}
#attr Anrufliste fp_9_Telefon 370,206,0,Anrufliste

define TM TM my_callmonitor

define Anrufliste1 readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> TM:A0,B0,C0,D0,E0 TM:A1,B1,C1,D1,E1 TM:A2,B2,C2,D2,E2 TM:A3,B3,C3,D3,E3 TM:A4,B4,C4,D4,E4
attr Anrufliste1 group Anrufuebersicht
attr Anrufliste1 mapping &nbsp1
attr Anrufliste1 nameStyle style="font-weight:bold"
attr Anrufliste1 noheading 0
attr Anrufliste1 nolinks 1
attr Anrufliste1 nostate 1
attr Anrufliste1 notime 1
attr Anrufliste1 room Telefon
attr Anrufliste1 style style="font-size:14px"
attr Anrufliste1 valueIcon {'A0.out_connected' => 'phone_call_out@lightgreen', 'A0.out_notconnected' => 'phone_call_out@red','A0.in_connected' => 'phone_call_in@lightgreen','A0.in_notconnected' => 'phone_call_in@red', 'A0.AB' => 'audio_volume_mid@lightgreen', 'A1.out_connected' => 'phone_call_out@lightgreen', 'A1.out_notconnected' => 'phone_call_out@red','A1.in_connected' => 'phone_call_in@lightgreen','A1.in_notconnected' => 'phone_call_in@red', 'A1.AB' => 'audio_volume_mid@lightgreen','A2.out_connected' => 'phone_call_out@lightgreen', 'A2.out_notconnected' => 'phone_call_out@red','A2.in_connected' => 'phone_call_in@lightgreen','A2.in_notconnected' => 'phone_call_in@red', 'A2.AB' => 'audio_volume_mid@lightgreen','A3.out_connected' => 'phone_call_out@lightgreen', 'A3.out_notconnected' => 'phone_call_out@red','A3.in_connected' => 'phone_call_in@lightgreen','A3.in_notconnected' => 'phone_call_in@red', 'A3.AB' => 'audio_volume_mid@lightgreen','A4.out_connected' => 'phone_call_out@lightgreen', 'A4.out_notconnected' => 'phone_call_out@red','A4.in_connected' => 'phone_call_in@lightgreen','A4.in_notconnected' => 'phone_call_in@red', 'A4.AB' => 'audio_volume_mid@lightgreen'}

Vielleicht hat einer ne Idee.
Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Elektrolurch

Hallo,

da ich keine Icons verwende, kann ich hier nur mutmassen:

Im TM kann man für die einzelenen Anrufarten Textsymbole setzen, z.B. fßür "symbol-incoming" ist das default "=>".
Ein mapping in der readingsGroup auf ein Icon geschieht immer vom value (hier also das "=>" auf das Icon).

Zitat:
Noch eine Frage, es ist eventuelle auch eine mögliche Erweiterung: wenn ein Anruf auf dem AB der FritzBox aufgezeichnet ist. Wäre es denkbar mit Hilfe eines Commands in der readingsGroup, also eines ausführbaren Buttons, den Anrufbeantworter gleich abzuhören. Das wäre die Krönung des ganzen

Muss ich mal darüber nachdenken, vermutlich ist es etwas kompliziert, eine Regel für die Links zu finden, die eindeutig ist.

AkuAktualisierung des screens:
attr CallMon update 0
setzen und beobachten, ob es dann immer noch sofort (ohne Drücken von F5) bei einem eingehenden Anruf zur Aktualisierung des Screens kommt.

Habe mal den Aktualisierungsprozess ausgebaut und seperat getestet und da hat es auch mit update = 0 funktioniert und es kostet deutlich weniger an Rechenzeit.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Roaster

Hi,
Zitat von: Elektrolurch am 20 September 2014, 14:17:38
symbol-incoming# default "=>"
symbol-incoming-noconnect # default: "0>"
symbol-outgoing # default "<="
symbol-outgoing-noconnect # default: "<0"
symbol-answering-machine # default: "AB", "AB2"...
symbol-connected # default "<->, during call
Ich habe mir das Coding Mal angesehen, da ich auf der Suche nach den Standard Texten für die Verbindungsarten war. Kann es sein, dass der Default für Incoming nicht "=>" ist sondern "->", also das Gleichheitszeichen ein Minuszeichen? Gleiches gilt für möglicherweise auch für das Outgoing. Dann, denke ich, ist der Text für Connected, so wie es scheint nicht "<->" sondern "con".

Was ich nicht auf Anhieb finden konnte, ich aber möglicherweise für das ValueIcon benötige, ist der Text für den Anrufbeantworter. Ist der Text hier tasächlich "AB" dann "AB2" und so weiter? Fehlt dann "AB1"? Wie weit gehen die Texte? bis "AB4" beziehungsweise noch weitere Nummern, je nach Anzahl der angezeigten Einträge?

Zitat von: Elektrolurch am 22 September 2014, 10:20:33
im TM kann man für die einzelenen Anrufarten Textsymbole setzen, z.B. fßür "symbol-incoming" ist das default "=>".
Ein mapping in der readingsGroup auf ein Icon geschieht immer vom value (hier also das "=>" auf das Icon).

Ich habe versucht die Anzeige der Symbole mit
attr Anrufliste2 valueFormat {($VALUE eq '->')?"phone_ring_in@green"}
attr Anrufliste2 valueIcon {'->' => 'phone_ring_in@green', '0>' => 'phone_missed_in@red'}

zu erreichen. War jedoch nicht erfolgreich.

Egal, ob ich das valueFormat entferne oder nicht. Es wird mir kein Symbol angezeigt.
Soweit ich das mit dem Attribut valueIcon verstanden habe, müsste ich ohnehin {'A0.->' => 'phone_ring_in@green'} schreiben. Dies wiederum würde bedeuten, dass ich für jedes mögliche A, also A0, A1, A2, A3, A4 diese Definition einstellen muss. Bei fünf A-Variablen und insgesamt sechs Zuständen sind dies 30 Definition. Das ist mir schon ein wenig zuviel, vor allem wenn ich nachträglich daran was ändern muss.
Diese Diskussion hatte ich aber schon Mal mit dem alten Callmonitor. Da habe ich gefragt, ob man nicht irgendetwas mit A* verwenden könnte, also etwas generischer.

Ich denke das würde man alles nicht benötigen, wenn man dem Callmonitor als Text für die jeweiligen Anrufarten, bereits das entsprechende Symbol mitgeben könnte. Aber daran bin ich ja bereits mit meinen Möglichkeiten gescheitert. Ich weiß, dass du, Elektrolurch, keine Symbole verwenden kannst, es wäre aber prima, wenn hier der ein oder andere User vielleicht noch den entscheidenden Tipp geben könnte.

Grüße,
Michael



Roaster

Ach ja, noch eins. Im Beispiel oben ist in der readingsGroup die Nummer des Anrufs zu sehen. Das will bei mir aber nicht klappen:
define CallMon TM FritzBox
attr CallMon disable 0
attr CallMon maxlines 4
attr CallMon monitor-type all

attr CallMon update 0

define Anrufliste2 readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> CallMon:A0,B0,C0,D0,E0 CallMon:A1,B1,C1,D1,E1 CallMon:A2,B2,C2,D2,E2 CallMon:A3,B3,C3,D3,E3 CallMon:A4,B4,C4,D4,E4
attr Anrufliste2 mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}


Egal, was ich in der letzten Zeile statt dem 'TM' schreibe, also beispielsweise 'CallMon', ich erhalte keinen Positionszähler. Verwende ich 'TM', dann wird in der readingsGroup 'CallMon' ausgegeben. Verwende ich 'CallMon', dann steht dort der Rest der Definition:
Zitat{sprintf("%d.",$ROW-1);;}'

Weiß hier jemand warum dies so ist?

Gruß,
Michael

Elektrolurch

Hallo,

es muss natürlich CallMon und nicht TM heißen.
Aber es kann sein, dass Deine Version der readingsGroup im mapping noch keinen perl-Ausdruck versteht, ich hatte das als Ergänzung dem Autor vorgeschlagen, möglicherweise hat er es noch nicht in die offizielle Version übernommen.

mach doch mal zur Probe das mapping auf => '%ROW'
also ohne perl-Ausdruck zwischen den ''.

Ansonsten kannst Du auch die erste Spalte in der rg, in der der device-Name steht, ausblenden, in dem Du:

attr Anrufliste2 nonames 1
setzt.
Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

ups da war noch was.

die perl ausdrücke beim mapping hatte ich noch nicht eingecheckt.

kannst du mir bitte noch mal nur diesen teil so wie er bei dir funktioniert als diff schicken.

danke
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Elektrolurch

Hallo Andre,

klar.
Eigentlich ist es auch nur die Zeilen hinter:
# Der Hash kann auch einen perl-Ausdruck enthalten.
Als ich das mit dem eval gesehen habe, hat das wahre Begeisterungsstürme bei mir ausgelöst. Du hattest das ja schon in der Lookup2 implementiert und ich hatte mich gewundert, warum nicht auch für das mapping. Damit tuen sich ja unendliche Möglichkeiten auf....

Hier die sub, wie sie bei mir läuft

sub
lookup($$$$$$$$$)
{
  my($mapping,$name,$alias,$reading,$value,$room,$group,$row,$default) = @_;


  if( $mapping ) {
    if( ref($mapping) eq 'HASH' ) {
      $default = $mapping->{$name} if( defined($mapping->{$name}) );
      $default = $mapping->{$reading} if( defined($mapping->{$reading}) );
      $default = $mapping->{$name.".".$reading} if(
defined($mapping->{$name.".".$reading}) );
      $default = $mapping->{$reading.".".$value} if(
defined($mapping->{$reading.".".$value}) );
    #} elsif( $mapping =~ m/^{.*}$/) {
    #  my $DEVICE = $name;
    #  my $READING = $reading;
    #  my $VALUE = $value;
    #  $mapping = eval $mapping;
    #  $default = $mapping if( $mapping );
    } else {
      $default = $mapping;
    }

    return $default if( !defined($default) );

    $default =~ s/\%ALIAS/$alias/g;
    $default =~ s/\%DEVICE/$name/g;
    $default =~ s/\%READING/$reading/g;
    $default =~ s/\%VALUE/$value/g;
    $default =~ s/\%ROOM/$room/g;
    $default =~ s/\%GROUP/$group/g;
# Elektrolurch:
    $default =~ s/\%ROW/$row/g;

    $default =~ s/\$ALIAS/$alias/g;
    $default =~ s/\$DEVICE/$name/g;
    $default =~ s/\$READING/$reading/g;
    $default =~ s/\$VALUE/$value/g;
    $default =~ s/\$ROOM/$room/g;
    $default =~ s/\$GROUP/$group/g;
# Elektrolurch
    $default =~ s/\$ROW/$row/g;
# Der Hash kann auch einen Perl-Code enthalten
  if( $default =~ m/^{.*}$/) {
    $default = eval $default;
    $default = "" if( $@ );
  }

   }

  return $default;
}


configDB und Windows befreite Zone!

Roaster

Zitat von: Elektrolurch am 23 September 2014, 09:20:05
es muss natürlich CallMon und nicht TM heißen.
Dachte ich mir schon ;-)
Zitat von: Elektrolurch am 23 September 2014, 09:20:05
Aber es kann sein, dass Deine Version der readingsGroup im mapping noch keinen perl-Ausdruck versteht, ich hatte das als Ergänzung dem Autor vorgeschlagen, möglicherweise hat er es noch nicht in die offizielle Version übernommen.
So sieht es wohl aus. Dann warten wir mal bis Andre die neue Version eingecheckt hat, sofern er die Änderungen für gut befunden hat.

Dann habe ich aber nach wir vor mein Problem mit den Rufarten die ich gerne durch Symbole ersetzt hätte :( Ich weiß nicht, was ich letztendlich in der Definition bei valueIcon angeben muss, da das was offensichtlich an anderer Stelle (alter Callmon) funktioniert hat geht hier nicht (mehr).

Bisher:
attr Anrufliste valueIcon {'A0.out_connected' => 'phone_ring_out@green',

Meine Versuche - ohne Erfolg:
attr Anrufliste2 valueIcon {'A0.->' => 'phone_ring_in@green',
oder attr Anrufliste2 valueIcon {'->' => 'phone_ring_in@green',

Michael