[gelöst] fb_callist und icons in readingsgroups

Begonnen von the ratman, 04 Dezember 2017, 15:54:56

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

ich bräuchte mal hilfe ... da ich probleme am floorplan mit iframes und der fb-callist habe (siehe https://forum.fhem.de/index.php/topic,80357.0.html ), wollt ich eine readingsgroup mit den daten der fb-callist machen.
das dumme: ich krieg keine icons wie in der fb-callist in die readingsgroup, weil die wieder div. beschränlungen bei den valueicons zu haben scheint.

ne idee, wie die valueicon einer rg aussehen müsste?
so{
'=> ((o))' => 'phone_ring@blue',
'<= ((o))' => 'phone_ring@green',
'=> [=]' => 'phone_ring_in@blue',
'<= [=]' => 'phone_ring_in@green',
'=> X' => 'phone_missed_in@red',
'<= X' => 'phone_missed_out@green',
'=>' => 'phone_call_end_in@blue',
'<=' => 'phone_call_end_out@green',
'=> O_O' => 'phone_answering@blue'
}
​gehts mal nicht - die leerzeichen, nehm ich mal an. wie krieg ich die hin, weil wildcards gehen ja auch ned ...

ich nehm auch ideen in sachen iframe/floorplan und fb_callist entgegen. der weg ist mir egal, hauptsache, ich hab am floorplan trotz iframe-einbindung wieder meine grafiken *g*
→do↑p!dnʇs↓shit←

marvin78

Du musst schon, wie in der Doku beschrieben, die Namen der Readings angeben.

the ratman

#2
du meinst z.b. '1-state.=>'?

nö, mag ned.

wenn dus probieren magst und ne fb-calllist am laufen hast:defmod rg_telefonate_info readingsGroup <>,<am/um>,<dauer>,<name>,<nummer>\
telefonate_info:1-state,1-timestamp,1-duration,1-name,1-number\
telefonate_info:2-state,2-timestamp,2-duration,2-name,2-number\
telefonate_info:3-state,3-timestamp,3-duration,3-name,3-number\
telefonate_info:4-state,4-timestamp,4-duration,4-name,4-number\
telefonate_info:5-state,5-timestamp,5-duration,5-name,5-number
attr rg_telefonate_info cellStyle {\
'r:1' => 'style="color: #fff;; background-color: #000;; -moz-border-radius:4px;; border-radius:4px;; padding-right: 5px;; padding-left: 5px;; float: left;;"',\
'c:1' => 'style="font-face: bold;; font-size: 150%;; color: #fff;; background-color: #999;; -moz-border-radius:16px;; border-radius:16px;; padding-right: 5px;; padding-left: 5px;; float: left;;"'\
}
attr rg_telefonate_info fp_seite_informationen 385,10,1,anrufe
attr rg_telefonate_info group readingsgroups
attr rg_telefonate_info noheading 1
attr rg_telefonate_info nonames 1
attr rg_telefonate_info nostate 1
attr rg_telefonate_info room fritzbox
attr rg_telefonate_info valueIcon {\
'1-state.=>' => 'phone_call_end_in@blue',\
'1-state.<=' => 'phone_call_end_out@green',\
'1-state.=> ((o))' => 'phone_ring@blue',\
'1-state.<= ((o))' => 'phone_ring@green',\
'1-state.=> [=]' => 'phone_ring_in@blue',\
'1-state.<= [=]' => 'phone_ring_in@green',\
'1-state.=> X' => 'phone_missed_in@red',\
'1-state.<= X' => 'phone_missed_out@green',\
'1-state.=> O_O' => 'phone_answering@blue'\
}\
→do↑p!dnʇs↓shit←

marvin78

Du musst sicher ein paar Zeichen escapen. Kann man die readings Werte nicht in was auswertbareres mappen (also Text) ?  Entweder per userReading oder direkt im Modul (ich habe es nicht vor mir, aber ich habe im Hinterkopf, dass das geht).

the ratman

das sind die readings, so, wie sie aus der fb_callist kommen.
escapen? ich steh mit regexp und so zeugs auf kriegsfuß - hab ich noch nie kapiert. kannst mir da auf die sprünge helfen bitte?
→do↑p!dnʇs↓shit←

Markus Bloch

Nach einigem Rumtesten und Code-Debuggen bin ich auf folgende Lösung gekommen:

attr rg_telefonate_info valueIcon {\
'1-state.=&gt;;' => 'phone_call_end_in@blue',\
'1-state.&lt;;=' => 'phone_call_end_out@green',\
'1-state.=&gt;; ((o))' => 'phone_ring@blue',\
'1-state.&lt;;= ((o))' => 'phone_ring@green',\
'1-state.=&gt;; [=]' => 'phone_ring_in@blue',\
'1-state.&lt;;= [=]' => 'phone_ring_in@green',\
'1-state.=&gt;; X' => 'phone_missed_in@red',\
'1-state.&lt;;= X' => 'phone_missed_out@green',\
'1-state.=&gt;; O_O' => 'phone_answering@blue',\
\
'2-state.=&gt;;' => 'phone_call_end_in@blue',\
'2-state.&lt;;=' => 'phone_call_end_out@green',\
'2-state.=&gt;; ((o))' => 'phone_ring@blue',\
'2-state.&lt;;= ((o))' => 'phone_ring@green',\
'2-state.=&gt;; [=]' => 'phone_ring_in@blue',\
'2-state.&lt;;= [=]' => 'phone_ring_in@green',\
'2-state.=&gt;; X' => 'phone_missed_in@red',\
'2-state.&lt;;= X' => 'phone_missed_out@green',\
'2-state.=&gt;; O_O' => 'phone_answering@blue',\
\
'3-state.=&gt;;' => 'phone_call_end_in@blue',\
'3-state.&lt;;=' => 'phone_call_end_out@green',\
'3-state.=&gt;; ((o))' => 'phone_ring@blue',\
'3-state.&lt;;= ((o))' => 'phone_ring@green',\
'3-state.=&gt;; [=]' => 'phone_ring_in@blue',\
'3-state.&lt;;= [=]' => 'phone_ring_in@green',\
'3-state.=&gt;; X' => 'phone_missed_in@red',\
'3-state.&lt;;= X' => 'phone_missed_out@green',\
'3-state.=&gt;; O_O' => 'phone_answering@blue',\
\
'4-state.=&gt;;' => 'phone_call_end_in@blue',\
'4-state.&lt;;=' => 'phone_call_end_out@green',\
'4-state.=&gt;; ((o))' => 'phone_ring@blue',\
'4-state.&lt;;= ((o))' => 'phone_ring@green',\
'4-state.=&gt;; [=]' => 'phone_ring_in@blue',\
'4-state.&lt;;= [=]' => 'phone_ring_in@green',\
'4-state.=&gt;; X' => 'phone_missed_in@red',\
'4-state.&lt;;= X' => 'phone_missed_out@green',\
'4-state.=&gt;; O_O' => 'phone_answering@blue',\
\
'5-state.=&gt;;' => 'phone_call_end_in@blue',\
'5-state.&lt;;=' => 'phone_call_end_out@green',\
'5-state.=&gt;; ((o))' => 'phone_ring@blue',\
'5-state.&lt;;= ((o))' => 'phone_ring@green',\
'5-state.=&gt;; [=]' => 'phone_ring_in@blue',\
'5-state.&lt;;= [=]' => 'phone_ring_in@green',\
'5-state.=&gt;; X' => 'phone_missed_in@red',\
'5-state.&lt;;= X' => 'phone_missed_out@green',\
'5-state.=&gt;; O_O' => 'phone_answering@blue',\
\
}



Aus irgendwelchen Gründen führt readingsGroup offenbar eine Ersetzung von HTML-Entities durch. Weswegen man das Größer-/Kleiner-Zeichen als HTML-Entity schreiben muss. Warum das so ist, kann Andre bestimmt beantworten.

Ich bin eh der Meinung diese kryptischen Readings-Werte für den Status eines Anrufs gegen Wörter zu ersetzen, da es damit bisher nur zu Problemen bei Anwendern gekommen ist.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

the ratman

#6
hey suppi,

thx für die reaktion und für die funzende lösung.
an sowas hätt ich jetzt echt nicht gedacht ...

ZitatIch bin eh der Meinung diese kryptischen Readings-Werte für den Status eines Anrufs gegen Wörter zu ersetzen, da es damit bisher nur zu Problemen bei Anwendern gekommen ist.
oooohhh ja! bitte! "intern" scheint mir das ja sogar so gelöst. immerhin ruft die fb_calllist selber mit namen auf.
→do↑p!dnʇs↓shit←