FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Vize am 17 August 2015, 18:21:59

Titel: [gelöst] Icon für Teil eines readings
Beitrag von: Vize am 17 August 2015, 18:21:59
Hallo zusammen,

ich habe mal eine Frage zu Icons in einer readingsGroup.

In einem dummy habe ich readings mit "mehrteiligen" Werten angelegt:
Internals:
   NAME       du_muellabfuhr
   NR         174
   STATE      ???
   TYPE       dummy
   Readings:
     2015-08-17 16:48:48   Biotonne        9 Mittwoch
     2015-08-17 16:48:48   GelberSack      2 Mittwoch
     2015-08-17 16:48:48   Papiertonne     23 Mittwoch
     2015-08-17 16:48:48   Restmuell       2 Mittwoch


Diese übergebe ich so in eine readingsGroup, also steht dann z.B. in der readingsGroup auch "9 Mittwoch".

Ist es möglich nur die Zahlen (hier also die 9) in der readingsGroup gegen ein Icon auszutauschen während gleichzeitig das "Mittwoch" als Wort stehenbleibt?

Wenn ja, wie? Ich hab schon den WIKI-Eintrag für readingsGroup durchgeackert, aber finde dort dazu nichts.
Bin wie immer für jede Hilfe dankbar...

Gruß
Andreas
Titel: Antw:Icon für Teil eines readings
Beitrag von: justme1968 am 17 August 2015, 18:41:29
du kannst das icon ganz normal per valueIcon setzen und dann mit valueSuffix den wochentag als text dran hängen.

gruss
  andre
Titel: Antw:Icon für Teil eines readings
Beitrag von: Vize am 17 August 2015, 18:57:53
Hi andre,

danke für den Tipp...aber wenn ich das aus dem Wiki zu readingsGroup übernehme:
{ Biotonne => " ".ReadingsVal ($DEVICE,$READING,0) ." " }

dann steht immer noch "9 Mittwoch" dahinter...

Würdest du mir bitte nochmal helfen, wie es auszusehen hat, damit nur der zweite Teil - also der Wochentag - stehenbleibt....

Danke!
Gruß
Andreas
Titel: Antw:Icon für Teil eines readings
Beitrag von: BlackStone am 17 August 2015, 19:02:17
hm, kann man da mit split drin werkeln ?
{ Biotonne => " ".((split / /, ReadingsVal ($DEVICE,$READING,0))[1]) ." " }



Titel: Antw:Icon für Teil eines readings
Beitrag von: justme1968 am 17 August 2015, 19:31:47
ja. genau in der art. du kannst beliebigen perl code verwenden:

..., reading => '{...}', ...

gruss
  andre
Titel: Antw:Icon für Teil eines readings
Beitrag von: Vize am 17 August 2015, 20:41:47
Hi,

super, hat geklappt...

Danke euch beiden!

Gruß
Andreas
Titel: Antw:Icon für Teil eines readings
Beitrag von: Vize am 18 August 2015, 08:44:27
Moin,

ich hab das
Zitat von: BlackStone am 17 August 2015, 19:02:17
{ Biotonne => " ".((split / /, ReadingsVal ($DEVICE,$READING,0))[1])." " }
mal in meine Müllabfuhr-Visualisierung eingebaut.

Ich meine, dass erst seitdem im log diese Warnung auftaucht:
PERL WARNING: Useless use of private variable in void context at ...

Weiß jemand, warum die Warnung ausgegeben wird und wie diese mit dem code oben zusammenhängen könnte?

Gruß
Andreas
Titel: Antw:[gelöst] Icon für Teil eines readings
Beitrag von: justme1968 am 18 August 2015, 09:52:16
stacktrace einschalten und
schauen wo die meldung genau her kommt.

gruss
  andre
Titel: Antw:[gelöst] Icon für Teil eines readings
Beitrag von: Vize am 18 August 2015, 17:18:15
Hi,

mit stacktrace kommt dieses:
2015.08.18 17:15:29 1: PERL WARNING: Useless use of private variable in void context at (eval 6358) line 1.
2015.08.18 17:15:29 3: stacktrace:
2015.08.18 17:15:29 3:     main::__ANON__                      called by (eval 6358) (1)
2015.08.18 17:15:29 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2015.08.18 17:15:29 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (605)
2015.08.18 17:15:29 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (992)
2015.08.18 17:15:29 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1081)
2015.08.18 17:15:29 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1493)
2015.08.18 17:15:29 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (806)
2015.08.18 17:15:29 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (435)
2015.08.18 17:15:29 3:     main::FW_Read                       called by fhem.pl (3045)
2015.08.18 17:15:29 3:     main::CallFn                        called by fhem.pl (648)
2015.08.18 17:15:29 1: PERL WARNING: Useless use of private variable in void context at (eval 6361) line 1.
2015.08.18 17:15:29 3: stacktrace:
2015.08.18 17:15:29 3:     main::__ANON__                      called by (eval 6361) (1)
2015.08.18 17:15:29 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2015.08.18 17:15:29 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (605)
2015.08.18 17:15:29 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (992)
2015.08.18 17:15:29 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1081)
2015.08.18 17:15:29 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1493)
2015.08.18 17:15:29 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (806)
2015.08.18 17:15:29 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (435)
2015.08.18 17:15:29 3:     main::FW_Read                       called by fhem.pl (3045)
2015.08.18 17:15:29 3:     main::CallFn                        called by fhem.pl (648)
2015.08.18 17:15:29 1: PERL WARNING: Useless use of private variable in void context at (eval 6374) line 1.
2015.08.18 17:15:29 3: stacktrace:
2015.08.18 17:15:29 3:     main::__ANON__                      called by (eval 6374) (1)
2015.08.18 17:15:29 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2015.08.18 17:15:29 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (605)
2015.08.18 17:15:29 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (992)
2015.08.18 17:15:29 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1081)
2015.08.18 17:15:29 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1493)
2015.08.18 17:15:29 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (806)
2015.08.18 17:15:29 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (435)
2015.08.18 17:15:29 3:     main::FW_Read                       called by fhem.pl (3045)
2015.08.18 17:15:29 3:     main::CallFn                        called by fhem.pl (648)
2015.08.18 17:15:29 1: PERL WARNING: Useless use of private variable in void context at (eval 6377) line 1.
2015.08.18 17:15:29 3: stacktrace:
2015.08.18 17:15:29 3:     main::__ANON__                      called by (eval 6377) (1)
2015.08.18 17:15:29 3:     (eval)                              called by ./FHEM/33_readingsGroup.pm (342)
2015.08.18 17:15:29 3:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (605)
2015.08.18 17:15:29 3:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (992)
2015.08.18 17:15:29 3:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1081)
2015.08.18 17:15:29 3:     main::readingsGroup_detailFn        called by ./FHEM/01_FHEMWEB.pm (1493)
2015.08.18 17:15:29 3:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (806)
2015.08.18 17:15:29 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (435)
2015.08.18 17:15:29 3:     main::FW_Read                       called by fhem.pl (3045)
2015.08.18 17:15:29 3:     main::CallFn                        called by fhem.pl (648)


Kannst du da was mit anfangen?

Gruß
Andreas
Titel: Antw:[gelöst] Icon für Teil eines readings
Beitrag von: Vize am 18 August 2015, 20:33:20
Hi,

ich glaub, ich hab es selber gelöst...

Ich wollte das Ganze eigentlich mit dem valuePrefix
{ $READING => " ".((split / /, ReadingsVal ($DEVICE,$READING,0))[1]) ." " }
zusammenfassend für alle readings vereinfachen.

Das "$READING =>" braucht man aber wohl nicht, und wenn ich es auf das hier reduziere (inkl. löschen der zu viel gesetzten Klammern):
{ " ".(split / /, ReadingsVal ($DEVICE,$READING,0))[1]." " }

ist die Warnung im log weg...

Gruß
Andreas
Titel: Antw:[gelöst] Icon für Teil eines readings
Beitrag von: justme1968 am 18 August 2015, 20:47:40
$READING => geht auch nicht da die variable zum zeitpunkt des ersten eval noch nicht belegt ist. für die hash variante müssen die keys konstante strings sein. wenn ein attribut für alle werte gelten soll geht es ohne hash einfach direkt mit perl code.

gruss
  andre
Titel: Antw:[gelöst] Icon für Teil eines readings
Beitrag von: kvo1 am 19 August 2015, 00:57:31
Moin Vize,
keine schlechte Idee, merk ich mir mal  ;)
kvo1