Hallo zusammen,
ich habe mal grob folgendes immer wieder im LOG, wie kann ich genau die Stellen finden die es verursachen?
PERL WARNING: Useless use of string in void context at (eval 194) line 1.
2019.12.04 20:43:42 3: eval: my $EVTPART0='on';my $SELF='Jahreshochrechnung';my $NAME='Abfrage_Verbrauch';my $EVENT='on';my $TYPE='dummy';{my $Strom=Value("Verbrauch"); my $zeit1=Value("Zeit"); my $Jahresverbrauch=sprintf("%.2f",($Strom/($zeit1/60))*8760); my $kosten= $Jahresverbrauch*0.25;"Wert ist: $Jahresverbrauch"; fhem("set Jahresverbrauch $Jahresverbrauch kwh $kosten €")}
2019.12.04 20:43:42 1: PERL WARNING: Argument "531895 Minuten" isn't numeric in division (/) at (eval 194) line 1.
2019.12.04 20:43:42 3: eval: my $EVTPART0='on';my $SELF='Jahreshochrechnung';my $NAME='Abfrage_Verbrauch';my $EVENT='on';my $TYPE='dummy';{my $Strom=Value("Verbrauch"); my $zeit1=Value("Zeit"); my $Jahresverbrauch=sprintf("%.2f",($Strom/($zeit1/60))*8760); my $kosten= $Jahresverbrauch*0.25;"Wert ist: $Jahresverbrauch"; fhem("set Jahresverbrauch $Jahresverbrauch kwh $kosten €")}
2019.12.04 20:43:42 1: PERL WARNING: Argument "324.377 kw 81.09 �M-^B�" isn't numeric in division (/) at (eval 194) line 1.
2019.12.04 20:43:42 3: eval: my $EVTPART0='on';my $SELF='Jahreshochrechnung';my $NAME='Abfrage_Verbrauch';my $EVENT='on';my $TYPE='dummy';{my $Strom=Value("Verbrauch"); my $zeit1=Value("Zeit"); my $Jahresverbrauch=sprintf("%.2f",($Strom/($zeit1/60))*8760); my $kosten= $Jahresverbrauch*0.25;"Wert ist: $Jahresverbrauch"; fhem("set Jahresverbrauch $Jahresverbrauch kwh $kosten €")}
2019.12.04 20:43:42 1: PERL WARNING: "my" variable $Zeit masks earlier declaration in same scope at (eval 195) line 1.
2019.12.04 20:43:42 3: eval: my $NAME='Abfrage_Verbrauch';my $SELF='Stromverbrauch';my $EVTPART0='on';my $TYPE='dummy';my $EVENT='on';{my $test2=Value("Heimkino_Steckdose_Verbrauch"); my $Verbrauch=sprintf("%.3f",($test2-419977)/1000); my $Preis=sprintf("%.2f",($Verbrauch*0.25)); Log 3, "Wert ist: $Verbrauch"; fhem("set Verbrauch $Verbrauch kw $Preis €"); {my $test1=Value("Zeitintervall"); my $Zeit=Value("Zeit"); my $Zeit=$Zeit+$test1; "Wer ist: $Zeit";fhem("set Zeit $Zeit Minuten");} }
2019.12.04 20:43:42 1: PERL WARNING: Useless use of string in void context at (eval 195) line 1.
2019.12.04 20:43:42 3: eval: my $NAME='Abfrage_Verbrauch';my $SELF='Stromverbrauch';my $EVTPART0='on';my $TYPE='dummy';my $EVENT='on';{my $test2=Value("Heimkino_Steckdose_Verbrauch"); my $Verbrauch=sprintf("%.3f",($test2-419977)/1000); my $Preis=sprintf("%.2f",($Verbrauch*0.25)); Log 3, "Wert ist: $Verbrauch"; fhem("set Verbrauch $Verbrauch kw $Preis €"); {my $test1=Value("Zeitintervall"); my $Zeit=Value("Zeit"); my $Zeit=$Zeit+$test1; "Wer ist: $Zeit";fhem("set Zeit $Zeit Minuten");} }
2019.12.04 20:43:42 3: Wert ist: 324.385
2019.12.04 20:43:42 1: PERL WARNING: Argument "531895 Minuten" isn't numeric in addition (+) at (eval 195) line 1.
2019.12.04 20:43:42 3: eval: my $NAME='Abfrage_Verbrauch';my $SELF='Stromverbrauch';my $EVTPART0='on';my $TYPE='dummy';my $EVENT='on';{my $test2=Value("Heimkino_Steckdose_Verbrauch"); my $Verbrauch=sprintf("%.3f",($test2-419977)/1000); my $Preis=sprintf("%.2f",($Verbrauch*0.25)); Log 3, "Wert ist: $Verbrauch"; fhem("set Verbrauch $Verbrauch kw $Preis €"); {my $test1=Value("Zeitintervall"); my $Zeit=Value("Zeit"); my $Zeit=$Zeit+$test1; "Wer ist: $Zeit";fhem("set Zeit $Zeit Minuten");} }
2019.12.04 20:43:42 1: PERL WARNING: Useless use of string in void context at (eval 196) line 1.
2019.12.04 20:43:42 3: eval: my $EVTPART0='on';my $NAME='Abfrage_Verbrauch';my $SELF='Zeitberechnung';my $EVENT='on';my $TYPE='dummy';{my $test=Value("Zeit"); my $Tage=sprintf("%d", ($test/60)/24); my $zahl=$Tage; my $stunden=sprintf("%d", ($test/60-24*$zahl));"Wert ist: $Tage"; fhem("set Gesamtzeit $Tage Tag(e) $stunden Stunde(n)")}
2019.12.04 20:43:42 1: PERL WARNING: Argument "531900 Minuten" isn't numeric in division (/) at (eval 196) line 1.
2019.12.04 20:43:42 3: eval: my $EVTPART0='on';my $NAME='Abfrage_Verbrauch';my $SELF='Zeitberechnung';my $EVENT='on';my $TYPE='dummy';{my $test=Value("Zeit"); my $Tage=sprintf("%d", ($test/60)/24); my $zahl=$Tage; my $stunden=sprintf("%d", ($test/60-24*$zahl));"Wert ist: $Tage"; fhem("set Gesamtzeit $Tage Tag(e) $stunden Stunde(n)")}
2019.12.04 20:43:54 3: AmbilightRaspon return value: -1
So sieht Abfrage Verbrauch aus:
Abfrage_Verbrauch:on {my $Strom=Value("Verbrauch"); my $zeit1=Value("Zeit"); my $Jahresverbrauch=sprintf("%.2f",($Strom/($zeit1/60))*8760); my $kosten= $Jahresverbrauch*0.25;"Wert ist: $Jahresverbrauch"; fhem("set Jahresverbrauch $Jahresverbrauch kwh $kosten €")}
Hi,
kannst Du bitte ein list von dem Device posten wo Abfrage_Verbrauch vorkommt?
Außerdem bitte
list Verbrauch
list Zeit
Das Detail in deinem Code erscheint mir irgendwie überflüssig:
Zitat;"Wert ist: $Jahresverbrauch";
Gruß Otto
List Device:
Internals:
DEF fritzbox:4445452 powerMeter,tempSensor,switch
FUUID edw465865
IODev fritzbox
LASTInputDev fritzbox
MSGCNT 10
NAME Schaltsteckdose_Heimkino
NR 24
STATE on
TYPE FBDECT
fritzbox_MSGCNT 10
fritzbox_TIME 2019-12-04 21:23:54
id 52487453
props microphone,powerMeter,tempSensor,switch
READINGS:
2019-12-04 21:23:54 AIN 24655
2019-12-04 21:23:54 FBNAME FRITZ!DECT 200 #1 Heimkino Wohnzimmer
2019-12-04 21:23:54 FBPROP microphone,powerMeter,tempSensor,switch
2019-12-04 21:23:54 FBTYPE FRITZ!DECT 200
2019-12-04 21:23:54 ID 16
2019-12-04 21:23:54 devicelock no
2019-12-04 21:23:54 energy 744411 Wh
2019-12-04 21:23:54 fwversion 04.16
2019-12-04 21:23:54 locked no
2019-12-04 21:23:54 mode manuell
2019-12-04 21:23:54 power 64.73 W
2019-12-04 21:23:54 present yes
2019-12-04 21:23:54 state on
2019-12-04 21:23:54 tempadjust 0.0 C
2019-12-04 21:23:54 temperature 27.5 C (measured)
2019-12-04 21:23:54 voltage 228.063 V
Attributes:
IODev fritzbox
event-min-interval power:30
event-on-change-reading state,power,energy
room Wohnzimmer
list Verbrauch
Internals:
FUUID 4c978463
NAME Verbrauch
NR 63
STATE 324.427 kw 81.11 €
TYPE dummy
READINGS:
2019-12-04 21:23:42 state 324.427 kw 81.11 €
Attributes:
room Verbrauch
list Zeit
Internals:
FUUID eknlk2po
NAME Zeit
NR 62
STATE 531940 Minuten
TYPE dummy
READINGS:
2019-12-04 21:23:42 state 531940 Minuten
Attributes:
Gut dann ist die Meldung erstmal verständlich
324.427 kw 81.11 € ist nicht numerisch ;)
Der andere Dummy auch nicht.
Und dieses Abfrage_Verbrauch sehe ich nicht?
Ja genau aber wie entgehe ich dieser Meldung?
Wie meinst du deine Frage?
es kommt hier her, falls du das meinst:
Abfrage_Verbrauch:on {my $test2=Value("Heimkino_Steckdose_Verbrauch"); my $Verbrauch=sprintf("%.3f",($test2-419977)/1000); my $Preis=sprintf("%.2f",($Verbrauch*0.25)); Log 3, "Wert ist: $Verbrauch"; fhem("set Verbrauch $Verbrauch kw $Preis €"); {my $test1=Value("Zeitintervall"); my $Zeit=Value("Zeit"); my $Zeit=$Zeit+$test1; "Wer ist: $Zeit";fhem("set Zeit $Zeit Minuten");} }
Es nutzt nichts wenn Du stoisch immer wieder einen Ausschnitt als eine Zeile postest.
Was ist das? Wo steht das?
Ein notify? Ein userreadings?
Warum schreibst Du nicht numerische Werte in den Dummy und willst anschließen damit rechnen? Nimm die Originalwerte zum rechnen!
Du kannst mit ReadingsNum("Verbrauch","state",99) arbeiten, der liefert nur die erste Zahl zurück.
Da er nicht antwortet, hat er das möglicherweise noch nicht kapiert. Also fragen wir doch mal, was denn das Ergebnis der Rechnung
Zitat("324.427 kw 81.11 €" - 419977)/1000
sein sollte.
LG
pah
e ich habe es leider tatsächlich noch nicht kapiert. Das ganze ist schon über 1 jahr her muss mich da auch erst wieder reindenken