33_readingsGroup.pm Fehler

Begonnen von Tom111, 17 Juni 2015, 15:13:15

Vorheriges Thema - Nächstes Thema

Tom111

Ich bekomme seit dem heutigen Update folgende Fehlermeldungen:

2015.06.17 15:05:19 1: PERL WARNING: Use of uninitialized value $. in regexp compilation at ./FHEM/33_readingsGroup.pm line 164.
2015.06.17 15:05:19 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE \(/ at ./FHEM/33_readingsGroup.pm line 164.


Ich habe die alte Version erst einmal wieder zurückgespielt!
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

justme1968

hab es eben repariert.

die meldung sollte mit der version von morgen weg sein.

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

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

stromer-12

#2
Ich bekomme seit dem update von gestern und heute folgende Fehlermeldung:
PERL WARNING: Argument "91.5 %" isn't numeric in numeric gt (>) at (eval 1177) line 1.

Mit der Version 8462 gab es diesen Meldung noch nicht.

Attributes:
  mapping    %ALIAS
  valueFormat { 'measured-temp' => "%.1f °C", temperature => "%.1f °C", dewpoint => "%.1f °C", humidity => "%.1f %%", absFeuchte => "%.1f g/m³" }
  valueIcon  { 'fan.on' => "weather_humidity\@red", 'fan.off' => "weather_humidity\@green"}
  valueStyle {( $VALUE =~ m/(on|off)/ )? undef :( $VALUE > 19.9 )?'style="color:limegreen;text-align:right"':( $VALUE < 17 )?'style="color:dodgerblue;text-align:right"':'style="color:orange;text-align:right"'}
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Elektrolurch

#3
Zitat:
PERL WARNING: Argument "91.5 %" isn't numeric in numeric gt (>) at (eval 1177) line 1.

perl hat da auch recht: "91.5 %"
Das ist zunächst mal keine Zahl.
Dein device scheint im reading auch die Einheiten mitzuliefern.
Ich glaube aber nicht, dass die readingsGroup irgendwo die Größe eines readings mit 'gt' vergleicht.


Das hier ist schuld:
  valueStyle {( $VALUE =~ m/(on|off)/ )? undef :( $VALUE > 19.9 )?'style="color:limegreen;text-align:right"':( $VALUE < 17
configDB und Windows befreite Zone!

stromer-12

Nur hat der ValueStyle bis vor 3 Tagen noch funktioniert wie angegeben. mit der alten Version der Readingsgroup kommen diese Warnungen nicht.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Elektrolurch

Zitat:
Nur hat der ValueStyle bis vor 3 Tagen noch funktioniert wie angegeben. mit der alten Version der Readingsgroup kommen diese Warnungen nicht.


Kaum  vorstellbar. $VALUE wird einfach von readingsGroup durchgereicht und Dein perl-Ausdruck wird von "eval" berechnet und nicht von der readingsGroup.
perl ist aber so schlau und schneidet die Zahl vom Rest ab. Es ist eine (unschöne) Warnung, aber der Ausdruck dürfte korrekt ausgewertet werden.
Wie gesagt, hinter der Zahl steht ja das "%" und damit ist das ganze genau genommen keine Zahl mehr, sondern ein String.
configDB und Windows befreite Zone!

Tom111

#6
oh man, es kommen jetzt noch mehr Warnungen als vorher  :-\

Variable "$name" will not stay shared at ./FHEM/33_readingsGroup.pm line 1252, <$fh> line 1452.
main::updateRefs() called too early to check prototype at ./FHEM/33_readingsGroup.pm line 67, <$fh> line 1452.
Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/perl/5.14/Exporter.pm line 67, <$fh> line 1452.
at /opt/fhem/FHEM/33_readingsGroup.pm line 1310
Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/perl/5.14/Exporter.pm line 67, <$fh> line 1452.
at /opt/fhem/FHEM/33_readingsGroup.pm line 1310
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

stromer-12

Zitat von: Elektrolurch am 18 Juni 2015, 13:04:08
Zitat:
Nur hat der ValueStyle bis vor 3 Tagen noch funktioniert wie angegeben. mit der alten Version der Readingsgroup kommen diese Warnungen nicht.

Kaum  vorstellbar. $VALUE wird einfach von readingsGroup durchgereicht und Dein perl-Ausdruck wird von "eval" berechnet und nicht von der readingsGroup.
perl ist aber so schlau und schneidet die Zahl vom Rest ab. Es ist eine (unschöne) Warnung, aber der Ausdruck dürfte korrekt ausgewertet werden.
Wie gesagt, hinter der Zahl steht ja das "%" und damit ist das ganze genau genommen keine Zahl mehr, sondern ein String.

Andre hat ja am 16. einiges hin und hergeschoben, dadurch wird jetzt vermutlich das valueFormat jetzt bei der valueStyle-Auswertung mit einbezogen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

justme1968

der valueStyle fehler ist ziemlich sicher nicht durch das update entstanden. es kann sein das du die meldung vorher nur nicht gesehen hast weil fhem sie ab dem zweiten auftreten automatisch unterdrückt.

ab morgen gibt es ein update in dem man statt $VALUE auch $NUM verwenden kann. da sind alle einheiten abgeschnitten. es gibt auch eine neue rgVal2Num($) routine die einheiten abschneidet.


die anderen meldungen scheinen von der perl version abhängig zu sein. ich hoffe in der version morgen sind sie auch behoben.

gruss
  andre

diese meldungen scheinen von der perl version abhängig zu sein.

ab morgen gibt es eine neue version. ich hoffe ich habe alle 3 behoben.

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

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

Tom111

Zitat von: Tom111 am 18 Juni 2015, 13:22:05
Hallo,
Folgende Fehlermeldungen laufen nach dem heutigen Update noch auf:

Variable "$count" will not stay shared at ./FHEM/33_readingsGroup.pm line 1346, <$fh> line 1452.
Variable "$name" will not stay shared at ./FHEM/33_readingsGroup.pm line 1347, <$fh> line 1452.


Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

justme1968

welche perl version verwendest du ?

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

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

Elektrolurch

Hallo Andre,

zwei Dinge:
Variable "$count" will not stay shared at ./FHEM/33_readingsGroup.pm line 1346, <> line 166.
Variable "$name" will not stay shared at ./FHEM/33_readingsGroup.pm line 1347, <> line 166.
perl-Version auf FB (gem. Verzeichnisnamen) 5.12.2

Habe heute (19.6.) erst das Update gemacht.
Die Warnung ist neu, bei gleicher Konfig:
2015.06.19 12:52:31 1: PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/33_readingsGroup.pm line 588.

In valueStyle hat sich anscheinend wirklich ein bug eingeschlichen:
Ich rufe da mit $READING und $VALUE eine kleine sub auf, die die Farben in Abhängigkeit der Temperatur anzeigt. Da kommt $VALUE so an:
2015.06.19 12:45:15 1: PERL WARNING: Argument "akt 17 M-BM-0C" isn't numeric in numeric le (<=) at ./FHEM/99_myUtilsSolar.pm line 197.
Das ist das gesamte Feld, zusammengesetzt aus Prefix,Value und Suffix

2015.06.19 12:52:31 1: PERL WARNING: Argument "45.244.7" isn't numeric in numeric le (<=) at ./FHEM/99_myUtilsSolar.pm line 197.
Da habe ich mal statt $VALUE $NUM ausprobiert. Lustige Zahl mit wei ".2, die da rauskommt.


Mit commands und Attributen schaut gut aus. Danke.
Das werde ich im nächsten Modul gleich mit einbauen.

Elektrolurch
configDB und Windows befreite Zone!

Tom111

Zitat von: justme1968 am 19 Juni 2015, 12:54:53
welche perl version verwendest du ?

gruss
  andre
Fhem info:
Perl     : v5.14.2
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

justme1968

zu den 'will not stay shared' warnungen habe ich noch keine idee. wenn ich zurück bin schaue ich mal mit einer älteren perl version.

die $type warnung habe ich eben behoben.

die valueStyle warnung verstehe ich jetzt erst. ich hatte die reihenfolge der ersetzungen geändert. dabei ist es passiert das jeweils der aktuelle wert verwendet wurde statt dem original wert. ich habe das eben geändert. es wird jetzt wieder das original reading verwendet. eigentlich wäre es aber richtig das ergebniss von valueFormat zu verwenden. das ist aber nicht mehr ganz rückwärts kompatibel. mal sehen wie ich das trotzdem umstellen kann.

zu 45.244.7: ist das wirklich der readings wert? das ist keine zahl und da kann man auch nicht wirklich eine einheit abschneiden um eine zahl zu bekommen. $NUM bzw. rgVal2Num macht intern zur zeit das gleiche das auch readingNum macht. d.h. alles was nicht - . oder zahl ist zu entfernen. das hat den vorteil das auch einheiten vor dem wert entfernt werden. eigentlich würde ich lieber nach dem ersten leerzeichen abschneiden. das funktioniert aber nicht für einheiten vor dem wert und auch nicht wenn es kein leerzeichen gibt. in deinem fall hätte es auch keine auswirkung.

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

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

justme1968

ich denke ich habe das 'will not stay shared' problem auch gefunden.

sollte morgen weg sein.

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

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