PERL Warnung nach Update heute 09.08.2017

Begonnen von Frank_Huber, 09 August 2017, 16:37:49

Vorheriges Thema - Nächstes Thema

Frank_Huber

Hi,

Hab seit dem Update heute folgende Warnung in Log:
Zitat2017.08.09 13:06:19 1: PERL WARNING: Prototype mismatch: sub main::round ($$) vs none at /usr/share/perl/5.20/Exporter.pm line 66.
2017.08.09 13:06:19 3: eval: my $EVENT='Temp_1: 27.68';my $EVTPART1='27.68';my $EVTPART0='Temp_1:';my $SELF='Poolheizung_Diff';my $TYPE='ESPEasy';my $NAME='Pool_Temp_1';{
use Math::Round qw/round/;
my $wert1=ReadingsVal("Pool_Temp_1","Temp_1",0);
my $wert2=ReadingsVal("Pool_Temp_2","Temp_2",0);
my $wert3=$wert1-$wert2;
$wert3 = Math::Round::nearest('0.01',$wert3);
fhem("setreading Pool_Temp_1 TempDiff $wert3");
}
2017

das ist das notify dazu:
defmod Poolheizung_Diff notify Pool_Temp_1:Temp_1:.* {\
use Math::Round qw/round/;;\
my $wert1=ReadingsVal("Pool_Temp_1","Temp_1",0);;\
my $wert2=ReadingsVal("Pool_Temp_2","Temp_2",0);;\
my $wert3=$wert1-$wert2;;\
$wert3 = Math::Round::nearest('0.01',$wert3);;\
fhem("setreading Pool_Temp_1 TempDiff $wert3");;\
}


aufgefallen ist mir das ganze da seit dem Update der Plot den Wert nicht mehr zeichnet.
berechnet wird es wohl soweit ich es an den Daten der Readings sehe wird aber nicht in die DBLog geschrieben.

das ganze lief bisher problemlos.
Jemand ne Idee?

Danke & Grüße
Frank

rudolfkoenig

ZitatHab seit dem Update heute folgende Warnung in Log:
Ich kann mir z.Zt. nicht vorstellen, dass es mit dem update zu tun hat.

Mit
use Math::Round qw/round/;
hast du round importiert, aber ein round gibt es schon in FHEM/99_Utils.pm.
Die aus Math::Round hat einen Parameter, die aus FHEM/Utils.pm zwei.
Ich vermute das Problem kann durch weglassen der erwaehnten Zeile geloest werden.



amenomade

Rudi war schneller: ich wollte gerade fragen, warum du "round" importierst, wenn du "nearest" nutzt...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Frank_Huber

Ich hatte mir das mal zusammenkopiert und war froh dass es funktioniert.
Mag sein dass es mit dem Update nichts zu tun hat, Es hat aber auf die Minute mit dem Update / Neustart geklemmt.

Hab die zeile rausgenommen und paarmal das Reading manuell gesetzt, funktioniert wieder wie es soll!

Danke euch für den Hinweis! :)

Frank_Huber

Eines fällt mir gerade noch auf:

negative Werte werden nicht geloggt / geplottet.
"vorher" wurden Sie das.

Woran kann denn das noch liegen?

Frank_Huber

zu früh gefreut vorhin. Es geht nur wenn das Ergebnis positiv ist.
im Log hab ich weiterhin:
Zitat2017.08.09 19:49:08 1: ERROR evaluating my $EVTPART0='Temp_1:';my $EVTPART1='22.37';my $TYPE='ESPEasy';my $EVENT='Temp_1: 22.37';my $NAME='Pool_Temp_1';my $SELF='Poolheizung_Diff';{
my $wert1=ReadingsVal("Pool_Temp_1","Temp_1",0);
my $wert2=ReadingsVal("Pool_Temp_2","Temp_2",0);
my $wert3=$wert1-$wert2;
$wert3 = Math::Round::nearest('0.01',$wert3);
fhem("setreading Pool_Temp_1 TempDiff $wert3");
}: Undefined subroutine &Math::Round::nearest called at (eval 1213) line 5.

2017.08.09 19:49:08 3: Poolheizung_Diff return value: Undefined subroutine &Math::Round::nearest called at (eval 1213) line 5.

oder muss ich die Zeile umschreiben die Round enthält?

amenomade

Dann... wie irgendwie schon erwähnt... mach eher
use Math::Round qw/nearest/;
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Frank_Huber

So, nachdem ich auch festgestellt hab dass der minicul nichts mehr auswertet (empfangene raw Pakete hab ich im log gesehen) hab ich einen restore gemacht. Damit waren alle Probleme beseitigt.

Gesendet von meinem S3_32 mit Tapatalk