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
du kannst das icon ganz normal per valueIcon setzen und dann mit valueSuffix den wochentag als text dran hängen.
gruss
andre
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
hm, kann man da mit split drin werkeln ?
{ Biotonne => " ".((split / /, ReadingsVal ($DEVICE,$READING,0))[1]) ." " }
ja. genau in der art. du kannst beliebigen perl code verwenden:
..., reading => '{...}', ...
gruss
andre
Hi,
super, hat geklappt...
Danke euch beiden!
Gruß
Andreas
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
stacktrace einschalten und
schauen wo die meldung genau her kommt.
gruss
andre
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
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
$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
Moin Vize,
keine schlechte Idee, merk ich mir mal ;)
kvo1